summaryrefslogtreecommitdiffstats
path: root/lib/plist.c
diff options
context:
space:
mode:
authorpaulo <paul@bayleaf.org.uk>2010-01-27 11:40:13 +0000
committerpaulo <paul@bayleaf.org.uk>2010-01-27 11:40:13 +0000
commit6503ce4cef43d8fe4da510fe9c55911c4af296e9 (patch)
tree39776a6f5c1ee6046aafc0072f92c923840fb9ca /lib/plist.c
parentffb52b1a705814c52d2d1b41c7058897f11b5aa3 (diff)
downloadquagga-6503ce4cef43d8fe4da510fe9c55911c4af296e9.tar.bz2
quagga-6503ce4cef43d8fe4da510fe9c55911c4af296e9.tar.xz
Fixed program shutdown. Added peering engine side of TTL changing.
Changed names of peer states. Writed in peering engine side of sending route_refresh.
Diffstat (limited to 'lib/plist.c')
-rw-r--r--lib/plist.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/plist.c b/lib/plist.c
index b01c48f6..9cf099dd 100644
--- a/lib/plist.c
+++ b/lib/plist.c
@@ -2834,6 +2834,30 @@ prefix_bgp_orf_entry (struct stream *s, prefix_list_ref ref,
return s;
}
+/* Get the i'th BGP ORF prefix from the given list.
+ * return 1 - got ORF prefix.
+ * return 0 - no such entry
+ */
+int
+prefix_bgp_orf_get(struct prefix_list *plist, vector_index i,
+ struct orf_prefix *orfpe, enum prefix_list_type *pe_type)
+{
+ struct prefix_list_entry *pe = NULL;
+
+ if (!plist || i >= plist->list.end)
+ return 0;
+
+ pe = vector_slot(&plist->list, i);
+ orfpe->seq = pe->seq;
+ orfpe->ge = pe->ge;
+ orfpe->le = pe->le;
+ orfpe->p = pe->prefix;
+
+ *pe_type = pe->type;
+
+ return 1;
+}
+
/* Set or Unset a BGP ORF entry. */
int
prefix_bgp_orf_set (char *name, afi_t afi, struct orf_prefix *orfp,