diff options
-rw-r--r-- | bgpd/ChangeLog | 10 | ||||
-rw-r--r-- | bgpd/bgp_route.c | 16 | ||||
-rw-r--r-- | zebra/ChangeLog | 9 | ||||
-rw-r--r-- | zebra/zebra_rib.c | 12 |
4 files changed, 36 insertions, 11 deletions
diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog index eadd07f1..68cb1176 100644 --- a/bgpd/ChangeLog +++ b/bgpd/ChangeLog @@ -1,3 +1,13 @@ +2005-11-14 Paul Jakma <paul.jakma@sun.com> + + * bgp_route.c: (bgp_process_rsclient) convert to new workqueue + specs and shut up gcc, which complains about cast from void + via function parameters, for some dumb reason. Do the cast + inside the function instead. + (bgp_process_main,bgp_processq_del) ditto. + (bgp_clear_route_node) ditto. + (bgp_clear_node_queue_del) ditto. + 2005-11-03 Paul Jakma <paul.jakma@sun.com> * bgp_damp.c: (bgp_reuse_timer) struct bgp can be retrieved via diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index 0658cabe..f2621c1f 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -1242,8 +1242,9 @@ struct bgp_process_queue }; static wq_item_status -bgp_process_rsclient (struct bgp_process_queue *pq) +bgp_process_rsclient (struct work_queue *wq, void *data) { + struct bgp_process_queue *pq = data; struct bgp *bgp = pq->bgp; struct bgp_node *rn = pq->rn; afi_t afi = pq->afi; @@ -1309,8 +1310,9 @@ bgp_process_rsclient (struct bgp_process_queue *pq) } static wq_item_status -bgp_process_main (struct bgp_process_queue *pq) +bgp_process_main (struct work_queue *wq, void *data) { + struct bgp_process_queue *pq = data; struct bgp *bgp = pq->bgp; struct bgp_node *rn = pq->rn; afi_t afi = pq->afi; @@ -1390,8 +1392,10 @@ bgp_process_main (struct bgp_process_queue *pq) } static void -bgp_processq_del (struct bgp_process_queue *pq) +bgp_processq_del (struct work_queue *wq, void *data) { + struct bgp_process_queue *pq = data; + bgp_unlock_node (pq->rn); XFREE (MTYPE_BGP_PROCESS_QUEUE, pq); } @@ -2450,8 +2454,9 @@ struct bgp_clear_node_queue }; static wq_item_status -bgp_clear_route_node (struct bgp_clear_node_queue *cq) +bgp_clear_route_node (struct work_queue *wq, void *data) { + struct bgp_clear_node_queue *cq = data; struct bgp_adj_in *ain; struct bgp_adj_out *aout; struct bgp_info *ri; @@ -2493,8 +2498,9 @@ bgp_clear_route_node (struct bgp_clear_node_queue *cq) } static void -bgp_clear_node_queue_del (struct bgp_clear_node_queue *cq) +bgp_clear_node_queue_del (struct work_queue *wq, void *data) { + struct bgp_clear_node_queue *cq = data; bgp_unlock_node (cq->rn); peer_unlock (cq->peer); /* bgp_clear_node_queue_del */ XFREE (MTYPE_BGP_CLEAR_NODE_QUEUE, cq); diff --git a/zebra/ChangeLog b/zebra/ChangeLog index f943d655..16f83ae7 100644 --- a/zebra/ChangeLog +++ b/zebra/ChangeLog @@ -1,3 +1,12 @@ +2005-11-14 Paul Jakma <paul.jakma@sun.com> + + * zebra_rib.c: (rib_process) convert to new workqueue specs and + shut up gcc, which complains about cast from void via + function parameters, for some dumb reason. Do the cast + inside the function instead. + (rib_queue_qnode_del) ditto. + (rib_queue_init) no need for the casts anymore. + 2005-11-12 Alexander Gall <gall@switch.ch> * See [quagga-dev 1815] diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index 060f46da..fb983bdb 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -881,8 +881,9 @@ rib_uninstall (struct route_node *rn, struct rib *rib) /* Core function for processing routing information base. */ static wq_item_status -rib_process (struct zebra_queue_node_t *qnode) +rib_process (struct work_queue *wq, void *data) { + struct zebra_queue_node_t *qnode = data; struct rib *rib; struct rib *next; struct rib *fib = NULL; @@ -1052,8 +1053,9 @@ rib_queue_add (struct zebra_t *zebra, struct route_node *rn, struct rib *del) /* free zebra_queue_node_t */ static void -rib_queue_qnode_del (struct zebra_queue_node_t *qnode) +rib_queue_qnode_del (struct work_queue *wq, void *data) { + struct zebra_queue_node_t *qnode = data; route_unlock_node (qnode->node); if (qnode->del) @@ -1076,13 +1078,11 @@ rib_queue_init (struct zebra_t *zebra) } /* fill in the work queue spec */ - zebra->ribq->spec.workfunc = (wq_item_status (*) (void *))&rib_process; + zebra->ribq->spec.workfunc = &rib_process; zebra->ribq->spec.errorfunc = NULL; - zebra->ribq->spec.del_item_data = (void (*) (void *)) &rib_queue_qnode_del; + zebra->ribq->spec.del_item_data = &rib_queue_qnode_del; /* XXX: TODO: These should be runtime configurable via vty */ zebra->ribq->spec.max_retries = 3; - zebra->ribq->spec.hold = 500; - zebra->ribq->spec.delay = 10; return; } |