[Olsr-cvs] olsrd-current/lib/quagga/src quagga.c,1.11,1.12
Bernd Petrovitsch
(spam-protected)
Thu Nov 29 01:49:44 CET 2007
Update of /cvsroot/olsrd/olsrd-current/lib/quagga/src
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv16024/lib/quagga/src
Modified Files:
quagga.c
Log Message:
Major Changes:
- renamed "struct local_hna_entry" to "struct ip_prefix_list" since
it is exactly that. Renamed the functions in src/local_hna_set.{c,h}
in the same way.
- each IPv4 and IPv6 function pairs in src/local_hna_set.{c,h} is
called from the same place and have the same signature. So I
condensed each of them.
- Since we have only 3 functions left in src/local_hna_set.{c,h}
and they are used for the configuration, the .h file is now part
of src/olsr_cfg.h and the ,c file of src/cfgparser/olsrd_conf.c.
- replaced "struct ipc_net" with "struct ip_prefix_list" since it
serves the same purpose as the "struct ip_prefix_list"
- replaced "struct ipc_host" with "struct ip_prefix_list" since it
serves the same purpose as the "struct ip_prefix_list" and is
just a special case. No need to duplicate code etc.
- removed "union hna_netmask" from src/olsr_types since we use the
prefix_len everywhere (and that is an olsr_u8_t in several other
struct's).
That implies changes and simplifications in the code handling
them (since the IPv4 is similar to IPv6).
- the config file parser now understands for IPv4 addresses also
"/$prefix".
- On the output side, the patch generates only "/$prefix" which
kills code since it is the same as the IPv6 handling.
- There are some netmask conversions left (mainly in the plugins)
but that be cleaned up afterwards.
- extracted ip{,4,6}{cmp,equal} and formatting functions from
net_olsr.{c,h} into src/ipcalc.{c,h} since net_olsr.h became
IMHO to much of a "put anything in there".
- renamed "sockaddr_to_string()" to "sockaddr4_to_string()"
since it is exactly that (unless I'm missing something).
Minor Changes:
- lib/httpinfo/src/admin_html.h contained just some variable
definitions so it is now integrated in the only user:
admin_interface.c
- olsrd_dot_draw.c got rid of two indicator variables if
a socket is valid or not. Since sockets may use "-1" as the
"not open", "invalid" value, there is no need for two more
ints.
- and the dot_draw plugin is somewhat smaller and easier to read.
- const'ified some functions
Index: quagga.c
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/lib/quagga/src/quagga.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** quagga.c 11 Nov 2007 23:10:25 -0000 1.11
--- quagga.c 29 Nov 2007 00:49:42 -0000 1.12
***************
*** 32,36 ****
#include "log.h"
#include "defs.h"
- #include "local_hna_set.h"
#include "routing_table.h"
--- 32,35 ----
***************
*** 77,81 ****
static void zebra_connect (void);
- static uint32_t prefixlentomask (uint8_t);
static void free_ipv4_route (struct ipv4_route);
/*
--- 76,79 ----
***************
*** 673,689 ****
}
- static uint32_t prefixlentomask (uint8_t prefix) {
- uint32_t mask = 0;
-
- if (prefix) {
- mask = 0xffffffff<<(32-prefix);
- mask = ntohl(mask);
- }
-
- return mask;
- }
-
int add_hna4_route (struct ipv4_route r) {
! union olsr_ip_addr net, mask;
#ifdef MY_DEBUG
--- 671,676 ----
}
int add_hna4_route (struct ipv4_route r) {
! union olsr_ip_addr net;
#ifdef MY_DEBUG
***************
*** 691,698 ****
#endif
- mask.v4.s_addr = prefixlentomask(r.prefixlen);
net.v4.s_addr = r.prefix;
! add_local_hna4_entry(&net, &mask);
free_ipv4_route(r);
return 0;
--- 678,684 ----
#endif
net.v4.s_addr = r.prefix;
! ip_prefix_list_add(&olsr_cnf->hna_entries, &net, r.prefixlen);
free_ipv4_route(r);
return 0;
***************
*** 701,705 ****
int delete_hna4_route (struct ipv4_route r) {
! union olsr_ip_addr net, mask;
#ifdef MY_DEBUG
--- 687,691 ----
int delete_hna4_route (struct ipv4_route r) {
! union olsr_ip_addr net;
#ifdef MY_DEBUG
***************
*** 707,714 ****
#endif
- mask.v4.s_addr = prefixlentomask(r.prefixlen);
net.v4.s_addr = r.prefix;
! remove_local_hna4_entry(&net, &mask) ? 0 : -1;
free_ipv4_route(r);
return 0;
--- 693,699 ----
#endif
net.v4.s_addr = r.prefix;
! ip_prefix_list_remove(&olsr_cnf->hna_entries, &net, r.prefixlen) ? 0 : -1;
free_ipv4_route(r);
return 0;
More information about the Olsr-cvs
mailing list