On Wed, 2007-11-21 at 08:04 +0100, Hannes Gredler wrote: > On Wed, Nov 21, 2007 at 12:36:43AM +0100, Bernd Petrovitsch wrote: [...] > | Now that I'm stumbling over it: Find "struct ipc_net" in > src/olsr_cnf.h > > hmmm ... is only really used in ipc_check_allowed_ip() - > just replace address/mask in 'struct ipc_net' to 'struct olsr_ip_prefix' Obviously;-) Something like in the patch at http://bernd.petrovitsch.priv.at/olsr-ng/kill-netmasks.patch? 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 A patched OLSRD is right now running on my home node. Let's see how well it is tomorrow. Any feedback appreciated! Bernd -- Firmix Software GmbH http://www.firmix.at/ mobil: +43 664 4416156 fax: +43 1 7890849-55 Embedded Linux Development and Services