[Olsr-cvs] olsrd-current/lib/txtinfo/src olsrd_txtinfo.c, 1.16, 1.17

Bernd Petrovitsch (spam-protected)
Thu Nov 29 01:49:44 CET 2007


Update of /cvsroot/olsrd/olsrd-current/lib/txtinfo/src
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv16024/lib/txtinfo/src

Modified Files:
	olsrd_txtinfo.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: olsrd_txtinfo.c
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/lib/txtinfo/src/olsrd_txtinfo.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** olsrd_txtinfo.c	29 Nov 2007 00:10:17 -0000	1.16
--- olsrd_txtinfo.c	29 Nov 2007 00:49:42 -0000	1.17
***************
*** 66,69 ****
--- 66,70 ----
  #include <errno.h>
  
+ #include "ipcalc.h"
  #include "olsr.h"
  #include "olsr_types.h"
***************
*** 403,407 ****
      int size;
      int index;
!     struct local_hna_entry *hna;
  
      size = 0;
--- 404,408 ----
      int size;
      int index;
!     struct ip_prefix_list *hna;
  
      size = 0;
***************
*** 438,456 ****
              struct hna_net *tmp_net;
              for (tmp_net = tmp_hna->networks.next; tmp_net != &tmp_hna->networks; tmp_net = tmp_net->next) {
! 		if (olsr_cnf->ip_version == AF_INET) {
!                     struct ipaddr_str addrbuf, maskbuf, mainaddrbuf;
!                     const union olsr_ip_addr netmask = { .v4 = { .s_addr = tmp_net->A_netmask.v4 } };
!                     ipc_sendf("%s\t%s\t%s\n",
!                               olsr_ip_to_string(&addrbuf, &tmp_net->A_network_addr),
!                               olsr_ip_to_string(&maskbuf, &netmask),
!                               olsr_ip_to_string(&mainaddrbuf, &tmp_hna->A_gateway_addr));
! 		} else {
!                     struct ipaddr_str addrbuf, mainaddrbuf;
!                     ipc_sendf("%s\t%d\t%s\n",
!                               olsr_ip_to_string(&addrbuf, &tmp_net->A_network_addr),
!                               tmp_net->A_netmask.v6,
!                               olsr_ip_to_string(&mainaddrbuf, &tmp_hna->A_gateway_addr));
! 		}
! 	    }            
  	}
      }
--- 439,448 ----
              struct hna_net *tmp_net;
              for (tmp_net = tmp_hna->networks.next; tmp_net != &tmp_hna->networks; tmp_net = tmp_net->next) {
!                 struct ipaddr_str addrbuf, mainaddrbuf;
!                 ipc_sendf("%s\t%d\t%s\n",
!                           olsr_ip_to_string(&addrbuf, &tmp_net->A_network_addr),
!                           tmp_net->prefixlen,
!                           olsr_ip_to_string(&mainaddrbuf, &tmp_hna->A_gateway_addr));
!             }
  	}
      }





More information about the Olsr-cvs mailing list