==== 0.0.9b ==== New features: * ntk-resolv has the new option "-l" * An active tcp socket is kept for each rnode, in this way, it is possible to send them tcp packets without the need of estabilishing a new tcp connection each time. * The qspn packets are now sent using the tcp sockets described above. * Since the UDP isn't used anymore for ntk packets, the udp daemon has been removed. The udp port of the radar daemon is now 269/udp. The 271/udp port has been deprecated. * When we have multiple interfaces to reach the same rnode, send the QSPN packets from a random device, each time. * Code cleaned Bug fixes: * gcc-4 compilation warnings fixed. * SNSD recursion works in ntk-resolv ==== 0.0.8b ==== New features: * The Scattered Name Service Disgregation (NTK_RFC 0009) has been implemented. See http://lab.dyne.org/Ntk_SNSD and the man page of andna(8). * ntk-resolve has been updated to support SNSD queries. * The `netsukuku_d' binary and its man page have been renamed to `ntkd' `netsukuku_wifi' and its man page have been renamed to `ntk-wifi'. * Static binaries and packages are now available. http://netsukuku.freaknet.org/packages/ * Netsukuku has been compiled for OpenWRT: http://netsukuku.freaknet.org/openwrt/ * NetsukukuD compresses automatically packets > 1024 bytes using the zlib. * A pid file is written on /var/run/ntkd.pid. It is used to check if other instances of ntkd are already running. * The new option `use_shared_internet' has been added. It specifies if ntkd will load balance the Internet traffic of this host using the Inet connections shared by the Netsukuku nodes. * The new command line option `-l' specifies that ntkd should send all of its messages to the specified file. * The scripts ip_masquerade.sh, tc_shaper.sh, rc.ntk, ntk-wifi, are not dependent on bash anymore. * The ANDNA keyring is now saved separately from the lcl_cache. It is saved in andna_lcl_keyring. * The `andna_' prefix is now used for the filename of the andna caches. Bug fixes: * A workaround to the gcc 27945 bug ( http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27945 ) has been implemented. The nodes affected with bug receive malformed packets during the hook. * The outgoing traffic to a node of the LAN is not shaped anymore. * There was a bug that incremented the `hname_updates' counter, in the andna_cache of a hostname, even if the registration/update was rejected. Having wrong `hname_updates' counter, led to some syncronization problems. * Ntkd is now able to detect, while running, the remotion of a network device it was using. * Various memory leaks have been fixed. * A workaround for the way getopt handles the optional arguments (i.e. -r in ntkd) has been written. It is now possible to write ntkd -drdddD without expecting strange behaviours. See http://www.freaknet.org/alpt/src/patches/getopt-opt-arg/readme * The code has been optimized and cleaned. Extra: * The man page for netsukuku.conf has been written. netsukuku.conf(5). ==== 0.0.7b ==== New features: * Multi-inet-gateways. The Netsukuku nodes will now automatically use multiple inet-gateways to connect to the Internet, therefore their Internet connection will be effectively load-balanced. * Anti-loop multi-igw shield. The nodes which share their Internet connection will also automatically use the shared connection of the other nodes. Through a simple marking system, death loops are avoided. * Traffic shaping. The nodes which share their Internet connection can now shape it, in this way they'll prioritize their local outgoingtraffic and the lowdelay one (f.e. SSH). * The lowdelay TOS is now set in the ANDNA resolve requests. Bug fixes: * When all the rnodes die, the radar resets the qspn counters * Code cleaned * A lot of bugs, which you haven't and you will never heard, have been fixed. We've already forgotten them. ==== 0.0.6b ==== New features: * The NTK_RFC 0008 has been implemented. ( http://lab.dyne.org/Ntk_restricted_ip_classes ) Bug fixes: * The NTK_RFC 0007 has been implemented. It fixes an exploitable bug in the ANDNA protocol. * NetsukukuD has been tested on big endian machines. A lot of endianness bugs has been fixed during the tests and now it seems to work gracefully. A lot of thanks to Vampire ;* * The ppp connection to the Internet doesn't set an IP address in the default route of the kernel but only the used ppp interface, therefore NetsukukuD has to deduce it from the IP assigned to the ppp interface, i.e. ppp0. * Execute /etc/netsukuku/ip_masquerade.sh only if it is writable just by root. * Execute "/etc/netsukuku/ip_masquerade.sh stop" when NetsukukuD is closed. * Added a timeout of 60 seconds for the reverse resolution request. * A possible memory overrun in the rsa (un)packing functions has been fixed. ==== 0.0.5b ==== New features: * The Internet Gateway Search (NTK_RFC 0003) has been implemented. A node can now share its Internet connection among the other nodes (only in restricted mode). ( Read the RFC: http://lab.dyne.org/Ntk_IGS ) * Main part of the NTK_RFC 0001 written, the (g)nodes have now the ability to rehook to avoid IP collision. ( http://lab.dyne.org/Ntk_gnodes_contiguity ) * ANDNS has been implemented. It is a new specification of the DNS protocol for Netsukuku. It is compatible with the actual DNS protocol. ( http://lab.dyne.org/Ntk_andna_and_dns ) * Multi interfaces multipath: if we can reach a rnode trough multiple interfaces, use them all with a multipath route. * The dns_wrapper code is no more dependent on Boost. Bug fixes: * map_rnode doesn't use anymore the timeval struct and map_rnode.rtt was removed 'cause it was obsolete. In conclusion we gained 12 bytes for each rnode. * Added a check in get_free_nodes to verify the validity of fn_hdr->ipstart. For example if the rnode has an IP which doesn't match with fn_hdr->ipstart there must be some errors. This led to bug 0002. * Fixed a bug in the multiif code: the packets destined to gnodes were sent only from the first device. * qspn_remove_deads() removes the routes of the dead nodes from the routing table of the kernel. * Restricted nodes and normal nodes are now invisible to each other. * 127.0.0.0/8 banned. * The command line options override the ones specified in the config file. * code heavily cleaned. ==== 0.0.4b ==== New features: * The multi-interface support was added, now it is possible to use multiple network interfaces without the need of the bridge, just specify each interface you want to use with the -i option. (man netsukuku_d). * The multipath support has been enabled for the external map, this means that more than one route will be used to reach a gnode. In other words the load balacing has been fully enabled. * Endianness fixes: now the packets can be sent between two machines with different endianness. * When the daemon is launched /etc/resolv.conf is modified automatically, so the "nameserver 127.0.0.1" is added in the first line of resolv.conf. The old resolv.conf is at /etc/resolv.conf.bak. When the daemon is closed /etc/resolv.conf.bak is moved to /etc/resolv.conf. * Added CC and CXX options in Scontruct. Changes provided by Tero Auvinen. * At hooking the first radar_scan is retried for three times. * The Make/configure support was added. Now you can use both SCons or Make to compile and install Netsukuku. Bug fixes: * All the the packets are now sent without any alignment. * The free_nodes struct has been optimised: to keep the list of free nodes it uses single bits instead of single bytes, this means that the list is now of 32 bytes instead of 256. * The bug in the load_rh_cache code is now fixed. (It caused crashes when the daemon was closed). * The installation path of the man page is now fixed. * The installation paths are changed!! BIN_DIR=/usr/bin/, MAN_DIR=/usr/man * The /usr/share/netsukuku directory is now created by the daemon itself. * Now /sys/net/ipv4/conf/INTERFACE/rp_filter is automatically disabled for the used network interface. * Errors in load_hostnames() fixed. (It crashed if there was an just an empty '\n'). ==== 0.0.3b ==== * The ANDNA code, with its DNS wrapper, is completed and tested. * The Netsukuku code was cleaned. Now it's ready to be an API. * The Italian to English translation of the document is finished. ==== 0.0.2b ==== * NetsukukuD goes beta! ==== 0.0.1b ==== * NetsukukuD compiles, at least. ==== 0.0.0a ==== * The void and its nulliness filled the existence.