[Olsr-dev] Quagga plugin CPPFLAGS ignored
Hannes Gredler
(spam-protected)
Fri Oct 12 10:32:52 CEST 2007
hi vassilis,
see comments inline prefixed by HG>.
On Thu, Oct 11, 2007 at 11:30:37PM +0300, Acinonyx wrote:
| diff -Nur olsrd-current/lib/quagga/src/quagga.c olsrd-current-patched/lib/quagga/src/quagga.c
| --- olsrd-current/lib/quagga/src/quagga.c 2007-10-11 22:08:23.000000000 +0300
| +++ olsrd-current-patched/lib/quagga/src/quagga.c 2007-10-11 22:43:48.000000000 +0300
| @@ -160,7 +160,7 @@
|
| void init_zebra (void) {
| zebra_connect();
| - if (!zebra.status&STATUS_CONNECTED)
| + if (!(zebra.status&STATUS_CONNECTED))
| olsr_exit ("(QUAGGA) AIIIII, could not connect to zebra! is zebra running?",
| EXIT_FAILURE);
| }
| @@ -185,7 +185,7 @@
| int i;
|
| zebra_connect();
| - if (!zebra.status & STATUS_CONNECTED) return; // try again next time
| + if (!(zebra.status & STATUS_CONNECTED)) return; // try again next time
|
| if (zebra.options & OPTION_EXPORT) {
| OLSR_FOR_ALL_RT_ENTRIES(tmp) {
| @@ -244,6 +244,9 @@
| unsigned char zebra_send_command (unsigned char command,
| unsigned char *options, int optlen) {
|
| + if (!(zebra.status & STATUS_CONNECTED))
| + return 0;
| +
| #ifdef ZEBRA_HEADER_MARKER
| char *p = olsr_malloc (optlen + 6, "zebra_send_command");
| uint16_t length = optlen + 6; /* length of option + command + packet_length +
| @@ -441,9 +444,13 @@
| free (buf);
| return NULL;
| }
| - if (ret < 0 && errno != EAGAIN) { // oops - we got disconnected
| - olsr_printf (1, "(QUAGGA) Disconnected from zebra\n");
| - zebra.status &= ~STATUS_CONNECTED;
| + if (ret < 0) {
| + if (errno != EAGAIN) { // oops - we got disconnected
| + olsr_printf (1, "(QUAGGA) Disconnected from zebra\n");
| + zebra.status &= ~STATUS_CONNECTED;
| + }
| + free (buf);
| + return NULL;
| }
|
| *len += ret;
| @@ -792,13 +799,13 @@
| route.flags = zebra.flags;
| route.prefixlen = r->rt_dst.prefix_len;
| route.prefix = r->rt_dst.prefix.v4;
| - if ((r->rt_best->rtp_nexthop.gateway.v4 == r->rt_dst.prefix.v4 &&
| + if ((r->rt_nexthop.gateway.v4 == r->rt_dst.prefix.v4 &&
| route.prefixlen == 32)){
| route.message |= ZAPI_MESSAGE_IFINDEX;
| route.ind_num = 1;
| route.index = olsr_malloc (sizeof *route.index,
| "zebra_add_olsr_v4_route");
| - *route.index = htonl (r->rt_best->rtp_nexthop.iif_index);
| + *route.index = htonl (r->rt_nexthop.iif_index);
| route.nexthops = olsr_malloc (sizeof route.nexthops->type +
| sizeof route.nexthops->payload,
| "zebra_add_olsr_v4_route");
| @@ -813,10 +820,9 @@
| sizeof route.nexthops->payload),
| "zebra_add_olsr_v4_route");
| route.nexthops->type = ZEBRA_NEXTHOP_IPV4;
| - route.nexthops->payload.v4 = r->rt_best->rtp_nexthop.gateway.v4;
| + route.nexthops->payload.v4 = r->rt_nexthop.gateway.v4;
| }
| - route.metric = r->rt_best->rtp_metric.hops;
| - route.metric = htonl (route.metric);
| + route.metric = 0;
HG> why are you changing that ? - i was under the impression that
you need the metric for the BGP MED export ?
|
| if (zebra.distance) {
| route.message |= ZAPI_MESSAGE_DISTANCE;
| diff -Nur olsrd-current/lib/quagga/version-script.txt olsrd-current-patched/lib/quagga/version-script.txt
| --- olsrd-current/lib/quagga/version-script.txt 2007-10-11 22:08:21.000000000 +0300
| +++ olsrd-current-patched/lib/quagga/version-script.txt 2007-10-11 22:34:31.000000000 +0300
| @@ -2,8 +2,8 @@
| {
| global:
| olsrd_plugin_interface_version;
| - olsrd_plugin_register_param;
| olsrd_plugin_init;
| + olsrd_get_plugin_parameters;
|
| local:
| *;
| --
| Olsr-dev mailing list
| (spam-protected)
| http://lists.olsr.org/mailman/listinfo/olsr-dev
More information about the Olsr-dev
mailing list