Since I mailbombed the olsr-cvs@ list: ---- snip ----- Another fat commit: The main target was: - Fixed the misleading definition of "v4" in "struct olsr_ip_addr" fom "olsr_u32_t" (in network-byteorder!) to "struct in_addr". Lots of temporary variables to call inet_ntoa()/inet_ptoa() vanished ..... - declare "int_addr", "int_netmask" and "int_broadaddr" in "struct interface" as "struct sockaddr_in" since it is that what we actually want there (and it is similar to the IPv6 code). To get that thoroughly via compiler errors, we get: - We have now ip4_to_string(), ip6_to_string() and olsr_ip_to_string() to print a "struct in_addr", "struct in6_addr" and "union olsr_ip_addr" into a string buffer. Alas, this also annoyed me since ages: - cleanup: olsr_ip_to_string() and similar non-reentrant functions now must get a target buffer. To ease that, there is the "struct ipaddr_str" which is large enough for all of them (read: for an IPv6 address). This also removes the cyclic buffer there. All of these function return a "const char *" which can be directly used for printf(3) and friends. And some cleanups: - const'ified more functions - converted the source to UTF-8. - "struct sig_msg" uses an olsr_u8_t for a byte array (and not "char") - force the few inline function to always be inlined. - #ifdef the body of the olsr_print_hna_set() and olsr_print_neighbor_table() if nothing is done - use "inline_avl_comp_ipv4()" in "avl_comp_ipv4()" - clean up the routes on more signals. Basically we want to do this on all signals which terminate the program. - killed a superflous global buffer in src/main.c This version was breing since weeks and running for severa day in Vienna's FunkFeuer net without any noticably problem! Please report anything that broke! ---- snip ----- And please any other appropriate feedback! Bernd -- Firmix Software GmbH http://www.firmix.at/ mobil: +43 664 4416156 fax: +43 1 7890849-55 Embedded Linux Development and Services