sgw: cache the correct timestamp
[olsrd.git] / CHANGELOG
1 0.9.0.3 -------------------------------------------------------------------
2
3 Alex Dunn (1):
4       Makefile.osx: create .dylibs
5
6 Ferry Huberts (1):
7       Fix CHANGELOG
8
9 Henning Rogge (3):
10       Update version after release of v0.9.0.2
11       Handle interface broadcast/multicast address zero
12       Release v0.9.0.3
13
14 0.9.0.2 -------------------------------------------------------------------
15
16 Ferry Huberts (4):
17       conf: lock_file is derived config.
18       jsoninfo: fix a crash when there are no gateways
19       txtinfo: fix a crash when there are no gateways
20       release: fix release script
21
22 Henning Rogge (2):
23       Update version after release of v0.9.0.1
24       Release v0.9.0.2
25
26 0.9.0.1 -------------------------------------------------------------------
27
28 Ferry Huberts (3):
29       neighbors: signal link changes when deleting a neighbor
30       jsoninfo: do not output smart-gateway info when not enabled.
31       txtinfo: jsoninfo: do not output smart-gateway info when not enabled.
32
33 Henning Rogge (2):
34       Update version after release of v0.9.0
35       Release v0.9.0.1
36
37 0.9.0 -------------------------------------------------------------------
38
39 Daniel Golle (4):
40       plugins: fix build with musl
41       plugins: fix build on some glibc systems
42       plugins: use previous definition of struct udphdr on Android
43       plugins: fix precompiled syntax
44
45 Ferry Huberts (98):
46       build: uberclean must also remove builddata.txt
47       build: add some pud targets
48       Rename 'struct interface' to 'struct interface_olsr'
49       Merge branch 'release-0.6.8'
50       pud: wireformat-java: improve java detection
51       pud: wireformat-java: improve java detection
52       sgw: ensure a bandwidth of 1 does not alias onto 0 when serialising
53       sgw: minor improvement
54       sgw: gwContainer can't be null here
55       dyn_gw: fix a Coverity warning
56       pud: nmealib: fix a Coverity warning
57       pud: nmealib: fix a Coverity warning
58       httpinfo: fix a Coverity warning
59       parser: fix a Coverity warning
60       quagga: minor readability fixes
61       olsr_random: introduce better random functions
62       main: replace random() by our own function
63       unix: replace random() by our own function
64       bsd: replace random() by our own function
65       win32: replace random() by our own function
66       pud: nmealib: replace random() by our own function
67       secure: replace random() by our own function
68       contrib: fix the build
69       contrib: replace random() by our own function
70       olsr_switch: replace random() by our own function
71       olsr_random: need to include time.h
72       pud: nmealib: align nmea_random to olsrd _random
73       pud: nmealib: doc: disable generation of the PDF; pdflatex somehow fails
74       pud: nmealib: doc: upgrade doxygen configuration file
75       sgw: egress file: use full time resolution on Linux
76       sgw: egress: Android is not Linux
77       jsoninfo: formatting
78       jsoninfo: some comparison simplifications
79       jsoninfo: clearer distinction between JSON and non-JSON blocks
80       jsoninfo: more comparison simplifications
81       jsoninfo: refactor outputting JSON
82       sgw: fix a shadowing warning
83       jsoninfo: formatting fixup
84       jsoninfo: systemTime and timeSinceStartup can be first
85       jsoninfo: minor fixup
86       jsoninfo: the IP address for a neighbour can also be an IPv6 address
87       jsoninfo: add version, 2hop and sgw. now in sync with txtinfo
88       arprefresh: update the readme
89       dyngw: update the readme
90       dyngw_plain: update the readme
91       httpinfo: update the readme
92       jsoninfo: update the readme
93       secure: update the readme
94       txtinfo: update the readme
95       pud: move the config sample into the readme
96       ipcalc: fix a double slash for IPv6 in olsr_ip_prefix_to_string
97       cfg: make sure lockfile has a default as specified in the cfg file
98       cfgfile_gen: whitespace and typo fixes
99       cfgfile_gen: better LinkQualityMult examples
100       cfgfile_gen: make sure to print IPv6Src as an IPv6 prefix
101       cfgfile_gen: fix default for RtProto
102       cfgfile_gen: add some comments to the generated configuration file
103       cfgfile_gen: print comments when the are no ipc_nets
104       cfgfile_gen: improve printing of HNAs
105       cfgfile_gen: improve printing of MainIp
106       cfgfile_gen: improve printing of SmartGatewayPrefix
107       cfgfile_gen: improve printing of SmartGatewayEgressFile
108       cfgfile_gen: update comments file SmartGatewayEgressFilePeriod
109       cfgfile_gen: improve printing of SmartGatewayEgressInterfaces
110       cfgfile_gen: improve printing of SmartGatewayPolicyRoutingScript
111       cfgfile_gen: improve printing of UseNiit
112       cfgfile_gen: improve printing of routing tables
113       cfgfile_gen: improve printing of routing table priorities
114       files: remove olsrd.conf.default.lq-fisheye
115       files: minor improvements to the FunkFeuer configuration files
116       files: minor improvements to the commotion configuration file
117       files: rename the generated configuration files
118       files: add configurations files corresponding to generated (txt) files
119       files: add a README, explaining generation of effective config files
120       files: remove lq and rfc effective config files
121       files: add a script to generate an effective configuration file
122       files: update the default effective configuration file to current state
123       mantissa: fix a typo in a comment
124       mantissa: add a function to query the minimum interval
125       sgw: fill HNA header in the same order as the fields in the packet
126       sgw: extract appending a sgw HNA into its own function
127       sgw: olsr_modifiy_inetgw_netmask can choose between normal and zero bw
128       jsoninfo: validity times are in 'me' format, convert them to msec first
129       sgw: fix a typo in an assert
130       sgw: sgw HNAs are not considered normal HNAs during processing
131       sgw: implement HNA expiry
132       sgw: update the status file when a sgw HNA is removed (multi-sgw mode
133          only)
134       ifnet: also store the HNA validity time in msec
135       sgw: do not write uplink/downlink speed directly
136       sgw: immediately remove sgw HNAs with zero bandwidth
137       sgw: send sgw HNAs with zero bandwidth after local gw has gone away
138       sgw: do not send zero bandwidth sgw HNAs by default
139       pud: doc: update the documentation
140       release: stricter matching of release tags
141       autobuf: fix warning in Windows release builds
142       Merge branch 'release-0.6.7'
143       Merge branch 'release-0.6.8'
144       Branch v0.9.0
145
146 Henning Rogge (7):
147       Update version after release of v0.6.8
148       Update version after release of v0.6.8
149       tc: properly initialise the path_costs field in a new tc
150       tc: properly initialise the path_costs field in a new tc
151       keep pushing data through dotdraw plugin
152       Restrict maxmimum message size (not packet size) to IPv6 minimal MTU.
153       Release v0.9.0
154
155 Sebastian Kürten (2):
156       Added simple hard-coded whitelist
157       Revert "Added simple hard-coded whitelist"
158
159 Teco Boot (1):
160       arprefresh: README adjusted for plugin name
161
162 0.6.8 -------------------------------------------------------------------
163
164 Ferry Huberts (81):
165       linux: increase the netlink buffer size
166       linux: fix using tables >= 256
167       linux: fix type of af_family
168       linux: do not try to set routes with negative metric
169       linux: add 'flags' parameter to olsr_new_netlink_route function
170       linux: add 'scope' parameter to olsr_new_netlink_route function
171       linux: make it possible to add/remove blackhole routes
172       linux: export the olsr_new_netlink_route function
173       Update version after branch of v0.6.7
174       android: use the machine specific NDK instead of always the 32bit variant
175       Merge branch 'linux-routes.v1'
176       android: fix build on 32 bit platform (see 0295e11)
177       linux: olsr_if_isup: fix return code in error path
178       conf parser: fix a warning
179       Merge branch 'release-0.6.7'
180       linux: fix a typo
181       sgw: move add/remove of ifchange handler to better place
182       sgw: export multi_gateway_mode method
183       sgw: make sure gw->ipv6 is always set for a new gateway
184       sgw: cost calculation can now directly account for interface up/down
185          status
186       config parser: minor improvement for SmartGatewayEgressInterfaces
187       pud: fix strto* result checking for out-of-range situations
188       sgwdynspeed: fix strto* result checking for out-of-range situations
189       Merge branch 'release-0.6.7'
190       Merge branch 'release-0.6.7'
191       release: fix up the CHANGELOG
192       Merge branch 'release-0.6.7'
193       sgw: fix deserialize_gw_speed
194       txtinfo: fix formatting in ipc_print_sgw
195       sgw: move 'struct sgw_egress_if' type into a separate include file
196       sgw: store table & rule numbers in the sgw_egress_if structure
197       sgw: add egress file reader settings
198       sgw: add egress file reader
199       sgw: track the interface index of an egress interface
200       sgw: track the up status of an egress interface
201       sgw: use the smartgw_tunnel_monitor to track up/down of egress interfaces
202       sgw: introduce function to process multi-sgw changes
203       sgw: determine best exit link in doRoutesMultiGw
204       sgw: determine best overall link in doRoutesMultiGw
205       sgw: add SmartGatewayStatusFile setting
206       sgw: add the smart gateway status file writer
207       sgw: add reportNewGateway function
208       sgw: program best overall link routes
209       sgw: program best egress link route
210       sgw: program egress link routes
211       sgwdynspeed: only allow the plugin in single-sgw mode
212       sgw: fix default path costs for egress interfaces
213       sgw: initialise the egress interfaces earlier
214       sgw: lazily determine the sgw costs weights
215       sgw: show all sgw tunnels in the output file instead of only the active
216          one
217       sgw: reset cached egress file timestamp on file access errors
218       sgw: do not prematurely exit doRoutesMultiGw
219       Merge branch 'msgw'
220       sgw: do not make the egress types available only on linux
221       sgw: initialise the egress best routes differently
222       sgw: remove an unused variable
223       sgw: unshadow a variable
224       sgw: change the cached timestamp
225       build: make TOPDIR an absolute path
226       sgw: android has no getline(), implement it
227       android: bump the NDK compiler version
228       android: fixup regex makefile
229       sgw: fix android build
230       pud: duplicate android regex trick from nameservice
231       sgw: always clear egress settings when this egress file is not readable
232       Revert "sgw: always clear egress settings when this egress file is not
233          readable"
234       sgw: always clear egress settings when this egress file is not readable
235       sgw: refresh the advertised speed when the best overall link changes
236       sgw: when there is no best overall link advertise 0 bandwidth
237       sgw: only advertise egress speeds
238       sgw: refactor egress file change detection
239       sgw: uplink and downlink fields can be 9 chars wide in the output file
240       sgw: tune the status file for IPv4, making it a bit more compact
241       sgw: use MAX_SMARTGW_SPEED instead of hard-coding it
242       sgw: fix cost calculation for advertised speeds greater or equal than MAX
243       sgw: the costs are signed numbers
244       sgw: react to path cost changes on all active gateways
245       txtinfo: fix output of /sgw command
246       build: uberclean must also remove builddata.txt
247       build: add some pud targets
248       Rename 'struct interface' to 'struct interface_olsr'
249
250 Henning Rogge (6):
251       Update version after release of v0.6.7.1
252       Only use IPV6_TCLASS and IPV6_V6ONLY when defined
253       Merge branch 'master' of git://olsr.org/olsrd
254       Prevent memory leak when setting up new interface
255       Fix bug of former commit
256       Release v0.6.8
257
258 Nico Geyso (1):
259       dyn gw plugin - add PingCmd parameter
260
261 0.6.7.1 -------------------------------------------------------------------
262
263 Ferry Huberts (6):
264       android: use the machine specific NDK instead of always the 32bit variant
265       android: fix build on 32 bit platform (see 0295e11)
266       plugins: add a comment to clarify strange behaviour
267       txtinfo: duplicate code in branch
268       txtinfo: ensure null termination of string buffer
269       jsoninfo: fix indentation
270
271 Henning Rogge (2):
272       Update version after release of v0.6.7
273       Release v0.6.7.1
274
275 Nico Geyso (2):
276       jsoninfo: set_plugin_boolean stores into an int
277       txtinfo: set_plugin_boolean stores into an int
278
279 0.6.7 -------------------------------------------------------------------
280
281 Note: In this release the configuration files have been moved from /etc into
282       /etc/olsrd.
283
284 Note: In this release the pud plugin was upgraded to version 2.0.0.
285       This is because of a breaking change in its wire format. If you have
286       deployed the pud plugin on your mesh then you should update all nodes
287       to the new pud plugin at the same time since there is no interoperability
288       between the old version and the new version.
289
290 Alessio Caiazza (4):
291       Hotfix for very long http headers also for jsoninfo
292       Hotfix for very long http headers also for jsoninfo
293       jsoninfo: HTTP headers with CORS (if requested)
294       jsoninfo: HTTP headers with CORS (if requested)
295
296 Bernhard Marker (2):
297       added json plugin to openwrt build Makefile
298       json openwrt Makefile update
299
300 Charlie Root (1):
301       Small fixes to allow compilation with OpenBSD
302
303 David Dahlberg (4):
304       Adjusted OpenBSD installation paths
305       An rc.d file for OpenBSD
306       Remove linux-isms from Makefile
307       Install openbsd/olsrd.rcd to /etc/rc.d/olsrd.
308
309 Ferry Huberts (170):
310       release: use olsrd-version prefix for files in the tarballs
311       Update version after branch of v0.6.6
312       Remove mercurial ignore file; we use git
313       build: ignore builddata.c when hashing sources
314       Remove mercurial ignore file; we use git
315       build: ignore builddata.c when hashing sources
316       Revert "Update version after release of v0.6.5.3"
317       Merge branch 'release-0.6.5'
318       Merge branch 'release-0.6.6'
319       release: fix the list of generated files
320       release: update some comments
321       release: refactor the checkVersionIncrementing function
322       release: do not update the version on master when it's already higher
323       release: only report that master changed when it was actually changed
324       release: fix the list of generated files
325       release: update some comments
326       release: refactor the checkVersionIncrementing function
327       release: do not update the version on master when it's already higher
328       release: only report that master changed when it was actually changed
329       release: checkVersionIncrementing: optionally allow equal versions
330       release: also check against the Makefile version when branching
331       release: checkVersionIncrementing: optionally allow equal versions
332       release: also check against the Makefile version when branching
333       Merge branch 'release-0.6.4'
334       Merge branch 'release-0.6.5'
335       Merge branch 'release-0.6.6'
336       txtinfo: prevent buffer overflow
337       Merge branch 'release-0.6.6'
338       pud: wireformat-java: Makefile: also clean up the generated headers
339       pud: wireformat: java: rename Git-SHA1 manifest header to Git-SHA
340       pud: wireformat: java: also add a Git-Descriptor manifest header
341       pud: nmealib: _nmea_parse_time not parsing hsec when given "hhmmss" format
342       pud: nmealib: _nmea_parse_time not parsing hsec when given "hhmmss" format
343       quagga: add some parentheses
344       httpinfo: add smart gateway information tab
345       txtinfo: add sgw command
346       cfgfile: don't hard-code defaults in texts
347       txtinfo: mention the /sgw command in the README
348       Makefile: add cfgparser_install and cfgparser_clean targets
349       linux: add -rdynamic to linker options for debug builds
350       linux: fix 'add -rdynamic to linker options for debug builds'
351       build: really _ignore_ builddata.c when hashing sources
352       build: only print the md5 hash in hash_source.sh
353       Makefile: fix builddata when building from tarball
354       build: really _ignore_ builddata.c when hashing sources
355       build: only print the md5 hash in hash_source.sh
356       Makefile: fix builddata when building from tarball
357       build: only re-generate src/builddata.c when needed
358       cfgfile: no more magic numbers for RtTable* defaults
359       sgw: move cost calculation into it own unit
360       sgw: minor comment fixup
361       make: fixup bashisms in hash_source.sh
362       Move the configuration files into /etc/olsrd/
363       pud: install configuration files under ETCDIR
364       sgwdynspeed: install configuration files under ETCDIR
365       build: hash_source.sh: specify the mktemp template
366       pud: fix readIPAddress function
367       pud: fix readIPAddress function
368       httpinfo: center the header row of the smart gateway tables
369       Merge branch 'release-0.6.5'
370       Merge branch 'release-0.6.6'
371       Fix #34: Description of "timeout" parameter in "nameservice" plugin...
372       pud: remove getNodeId, rename getNodeIdWithLength to getNodeId
373       pud: firm up setupNodeIdBinaryAndValidate
374       pud: merge nodeIdType and nodeId parameters into nodeId parameter
375       pud: remove some strlen's in nettools
376       pud: remove a strlen in the DNS name handling of the wire format.
377       pud: make wireformat constants unsigned
378       pud: clarify the URN number
379       pud: add MIP OID nodeId type
380       pud: add an assert to silence a Coverity false positive
381       pud: specify conversion base in readULL
382       pud: don't copy memory we're not allowed to access
383       pud: specify where to store the result in
384          intSetupNodeIdBinaryDoubleLongLong
385       pud: fix intSetupNodeIdBinaryDoubleLongLong for short values
386       pud: add UUID nodeId type
387       httpinfo: rename a function
388       pud: make sure to only use accessor functions in the 'present' nmea field
389       httpinfo: also show the present field on the nmea info
390       Merge branch 'release-0.6.6'
391       pud: fix java detection in the wireformat java bindings (again)
392       pud: fix java detection in the wireformat java bindings (again)
393       Merge branch 'release-0.6.5'
394       Merge branch 'release-0.6.6'
395       pud: do the same fix as in the previous commit, now for i386
396       pud: do the same fix as in the previous commit, now for i386
397       Merge branch 'release-0.6.5'
398       Merge branch 'release-0.6.6'
399       Make sure to save/restore errno in signal handlers
400       Make sure to save/restore errno in signal handlers
401       Merge branch 'release-0.6.5'
402       Merge branch 'release-0.6.6'
403       main: olsr_create_lock_file: fix return value check on 'open' call
404       main: add some extra braces
405       main: olsr_create_lock_file: fix return value check on 'open' call
406       pud: use the nmea present field in the wireformat
407       pud: fix readIPAddress function
408       pud: fix readIPAddress function
409       Merge branch 'release-0.6.5'
410       Merge branch 'release-0.6.6'
411       tok: improve the nmea_calc_crc function a bit
412       tok: improve the nmea_calc_crc function a bit
413       neighbor table: fix crash in olsr_print_neighbor_table on MinGW
414       neighbor table: fix crash in olsr_print_neighbor_table on MinGW
415       win32: accomodate old and new mingw setups
416       mingw: fix Ubuntu 13.10 / Debian Wheezy mingw mess
417       p2pd: add UseTTLDecrement configuration setting
418       httpinfo: also show the path costs in the SmartGateway table
419       txtinfo: also show the path costs in the SmartGateway table
420       gw: make SmartGatewayDividerEtx a 32 bit number
421       doc: add a gnuplot file to show the smart gateway cost calculation
422       Fix some eclipse warnings
423       p2pd: recompute the IPv4 header checksum after adjusting the TTL
424       sgwdynspeed: ignore unknown options
425       sgw: adjust policy routing script a bit
426       sgw: rename a variable in parsing of sgw_egress_if
427       sgw: preserve order of declared SmartGatewayEgressInterfaces
428       sgwdynspeed: avoid spamming the log with 'unknown option' messages
429       sgw: fix the policy routing script
430       sgwdynspeed: allow string values and empty values in the speed file
431       sgwdynspeed: fgets includes EOLs in the read string, strip them off
432       sgwdynspeed: do not go outside of the string when stripping EOLs
433       sgwdynspeed: rename 2 variables
434       sgwdynspeed: ignore everything we don't understand when reading the file
435       sgwdynspeed: make the EOL stripping much faster
436       sgwdynspeed: remove some dead code
437       gw: remove commands in comments concerning the policy routing script
438       gw: fix the 'ip' delete argument in the policy routing script
439       gw: simplify overlap checking code
440       gw: Add endif comments
441       gw: fix gateway takedown calculation
442       gw: fix a typo
443       gw: move path_cost into the gateway struct, ensure it's always up-to-date
444       gw: add SmartGatewayMarkOffsetServerTunnel configuration parameter
445       gw: fix null pointer dereferences in cost calculation
446       gw: fix a minor copy/paste typo
447       gw: when a node advertises maximum bandwidth then only consider path costs
448       README-Olsr-Extensions: Fix some typos
449       pud: update  nmealib samples Makefile
450       sgw: rework policy rules setup
451       sgwdynspeed: rename a function parameter to avoid a compiler warning
452       common: add an extra check in autobuf_enlarge to avoid a compiler warning
453       pud: update nmealib to 2.0.0
454       pud: nmealib: Fix a typo in Tobias's surname
455       txtinfo: make the sgw output better machine parseable
456       pud: nmealib: include latest fixes
457       pud: nmealib: fix isInvalidNMEACharacter function
458       p2pd: fix recomputeIPv4HeaderChecksum function
459       Revert "Use strscpy instead of strcpy"
460       pud: nmealib: fix return value of nmea_parser_init
461       pud: disable distribution of position updates over OLSR when olsrTtl is 0
462       Fix strange coding in the 'long headers' fix
463       Fix strange coding in the 'long headers' fix
464       httpinfo: the position timestamp month is zero based
465       Merge tag 'v0.6.5.6'
466       Merge tag 'v0.6.6.2'
467       Revert "Fix for win32 compiling with i686-w64-mingw32-gcc on ubuntu"
468       pud: nmealib: NMEA String Length Override Support
469       Fix a signed/unsigned warning
470       gw: change the costs type to signed 64bits
471       build: gui: do not overwrite the LDFLAGS but append to it
472       build: add address santizer, compile with SANITIZE_ADDRESS=1
473       p2pd: fir compile warning, initialise ipHeader
474       gui: fix 'warning: multiple common of ...' warnings
475       conf: ensure the egress interface names have a valid length
476       README: improve the smart gateway text a bit
477       sgw: multi-sgw mode is only supported on IPv4
478       CHANGELOG: add a note about the configuration files
479       Merge remote-tracking branch 'olsr/openbsd'
480       Branch v0.6.7
481
482 Hans-Christoph Steiner (3):
483       purge ancient debian/ folder, people should use the current files
484       add instructions for building Debian package from canonical sources
485       clarify instructions for http:// downloading of debian/ folder
486
487 Henning Rogge (32):
488       Fix multicast join for IPv6
489       Release v0.6.5.3
490       Update version after release of v0.6.5.3
491       Update version after release of v0.6.5.3
492       Release v0.6.5.4
493       Update version after release of v0.6.5.4
494       Fix segfault in cfgparser standalone executable
495       Fix build break for MinGW compilation on Fedora 19.
496       Fix build break for MinGW compilation on Fedora 19.
497       Release v0.6.5.5
498       Update version after release of v0.6.5.5
499       Ignore IFF_RUNNING when checking if an interface is up or down.
500       use inet_pton instead of inet_aton
501       win32: do not add -Wcast-qual to compiler warning flags
502       Fix processing error for fragmented hellos
503       Fix some spelling mistakes
504       Merge branch 'master' of http://olsr.org/git/olsrd
505       Fix processing error for fragmented hellos
506       Fix some spelling mistakes
507       Try to delete and retry for BSD ipv4 too
508       Use strscpy instead of strcpy
509       Smooth LQ calculation if link suddenly breaks.
510       Clean before compile when using Openwrt olsrd-stable-git makefile
511       Fix copypaste error
512       Hotfix for very long http headers
513       Fix stupid mistake, don't know why gcc didn't complained locally
514       Hotfix for much too long http headers
515       Release v0.6.5.6
516       Make link debug output source a bit more readable
517       Add LQ/NLQ/ETX to neighbor table debug output
518       Add boolean ipv6only parameter to txtinfo and jsoninfo
519       Release v0.6.7
520
521 Manuel Munz (1):
522       Fix jsoninfo again after a regression which was introduced with
523
524 Markus Kittenberger (1):
525       fix: TXTINFO_ALLOW_LOCALHOST - add missing ntohl()
526
527 Patrick Grimm (2):
528       jsoninfo: only listen on IPv6 when running under IPv6
529       txtinfo: only listen on IPv6 when running under IPv6
530
531 Ronald in 't Velt (2):
532       Fix setsockopt for setting Traffic Class in IPv6
533       Fix setsockopt for setting Traffic Class in IPv6
534
535 Saverio Proto (2):
536       txtinfo: update README file
537       Missing patch of header files for "Add boolean ipv6only parameter to
538          txtinfo and jsoninfo"
539
540 Scott Kidder (2):
541       jsoninfo: ensure output is wrapped in curly braces.
542       jsoninfo: ensure output is wrapped in curly braces.
543
544 Teco Boot (2):
545       Added LINUX_NL80211 readme file
546       Support for FIB metric configuration, other than 2
547
548 Yury Popov (1):
549       Fix for win32 compiling with i686-w64-mingw32-gcc on ubuntu
550
551 0.6.6.2 -------------------------------------------------------------------
552
553 Alessio Caiazza (2):
554       Hotfix for very long http headers also for jsoninfo
555       jsoninfo: HTTP headers with CORS (if requested)
556
557 Ferry Huberts (8):
558       pud: fix java detection in the wireformat java bindings (again)
559       pud: do the same fix as in the previous commit, now for i386
560       Make sure to save/restore errno in signal handlers
561       main: olsr_create_lock_file: fix return value check on 'open' call
562       pud: fix readIPAddress function
563       tok: improve the nmea_calc_crc function a bit
564       neighbor table: fix crash in olsr_print_neighbor_table on MinGW
565       Fix strange coding in the 'long headers' fix
566
567 Henning Rogge (5):
568       Update version after release of v0.6.6.1
569       Fix processing error for fragmented hellos
570       Fix some spelling mistakes
571       Hotfix for much too long http headers
572       Release v0.6.6.2
573
574 0.6.6.1 -------------------------------------------------------------------
575
576 Henning Rogge (2):
577       Update version after release of v0.6.6
578       Release v0.6.6.1
579
580 Manuel Munz (1):
581       Fix jsoninfo again after a regression which was introduced with
582
583 0.6.6 -------------------------------------------------------------------
584
585 Bastian Bittorf (3):
586       [hotfix] plugin: httpinfo: in case of an unrecoverable error ("could not
587          initialize HTTP socket") exit for returnvalue != 0
588       plugin: dot_draw: readme: make it clear, that it only opens an
589          IPv4-socket, so a 'telnet ::1 2004' is not possible
590       plugin: dot_draw: readme: replaced a b0rken link
591
592 Ferry Huberts (146):
593       Update version after branch of v0.6.5
594       gateway: store current gateway(s) in a struct
595       gateway: lazily allocate the current gateway structs
596       gateway: add path_cost to 'set gateway' interface
597       gateway: add interface to get the gateway costs
598       gateway: simplify by using the new costs interface
599       gateway: add gateway_list.{c,h}
600       gateway: keep track of the active gateways in a list
601       Merge branch 'release-0.6.5'
602       pud: java make target is dependent on library make target
603       Merge branch 'release-0.6.5'
604       Merge branch 'release-0.6.5'
605       json_info: only output smart gateway info on Linux
606       kernel_route: olsr_os_inetgw_tunnel_route can now take the table
607       gateway: let the gateway code determine the tunnel name
608       gateway: remove the worst gateway before adding new one
609       gateway: add SmartGatewayUseCount configuration parameter
610       gateway: use SmartGatewayUseCount setting the the gateway lists
611       gateway: add SmartGatewayEgressInterfaces configuration parameter
612       gateway: add SmartGatewayMarkOffset{Egress,Tunnels} configuration
613          parameters
614       gateway: add SmartGatewayPolicyRoutingScript configuration parameter
615       gateway: initialise a set of fixed tunnel names in/for multi-gateway mode
616       gateway: initialise the egress interface names in/for multi-gateway mode
617       gateway: use fixed tunnel names in/for multi-gateway mode
618       gateway: setup and clear table specific default routes in/for
619          multi-gateway mode
620       gateway: setup/cleanup multi-gateway mode during startup/shutdown of olsrd
621       gateway: introduce and use MULTI_GW_MODE define
622       gateway: enable multi-gateway mode
623       gateway: convert some defines into inline functions
624       kernel_route: olsr_os_inetgw_tunnel_route now needs the table explicitly
625       Merge branch 'multigw'
626       gateway: remove 2 superfluous asserts
627       gateway: add an assert to prevent an 'unused' warning
628       gateway: also adjust the IPv6 gateway list in olsr_update_gateway_entry
629       gateway: fix policy script permissions checking
630       gateway: the gateway policy script really is a bash script
631       gateway: minor indentation fixes in the gateway script
632       gateway: fix copy/paste mistake in setting up the egress rules
633       gateway: remove policy rules before adding them
634       gateway: ignore errors in remove-before-add rule removals
635       Revert "linux: name is required to be non-null in
636          olsr_os_cleanup_iptunnel"
637       gateway: do not show (bogus) errors
638       gateway: cleanup the server tunnel later
639       cfgparser: add SmartGatewayAlwaysRemoveServerTunnel configuration
640          parameter
641       gateway: use SmartGatewayAlwaysRemoveServerTunnel configuration parameter
642       gateway: fix a revert problem
643       gateway: use tnl_(4|6) tunnel names instead of tnl(4|6)_
644       gateway: properly set the egress interface names
645       json_info: do not loop forever on smart gateway egress interfaces
646       pud: the best uplink gateway is the same as the current (smart) gateway
647       pud: there is no hard dependency on smart gateway
648       pud: only forward downlinked messages when the smart gateway system is
649          enabled
650       pud: update documentation about smart gateway changes
651       gateway: fix 2 small typos in a comment
652       Revert "pud: the best uplink gateway is the same as the current (smart)
653          gateway"
654       pud: minor update resulting from the previous revert
655       pud: minor update to getBestUplinkGateway
656       gateway: minor improvement to get_unused_iptunnel_name
657       gateway: update some comments
658       gateway: remove 2 unneeded asserts
659       gateway: use standard macro to loop over the gateway tree in
660          olsr_cleanup_gateways
661       gateway: fix 'eligible' conditions in gw_default_choose_gateway
662       gateway: minor speed improvement in gw_default_choose_gateway
663       android: fix the path of the tunnel node in the /dev tree
664       pud: use the proper __ANDROID__ define
665       gateway: allow advertisement of zero bandwidth
666       gateway: add some comments
667       gateway: also set (update) the gateway when costs have changed
668       gateway: find_interfaceName only works in multi-gateway mode
669       gateway: simplify gw_default_calc_threshold
670       gateway: improve comments of gw_default_weigh_costs a bit
671       gateway: rename some variables to make it more readable
672       gateway: fix stable count dampening in gw_default_timer
673       gateway: do not use bitwise operators for logic conditions
674       gateway: reverse semantics of two variables
675       gateway: always select a new gateway when threshold != 0
676       main: add -pidfile command line option
677       main: fix pidfile compilation on windows
678       Merge branch 'release-0.6.5'
679       make: enable 32/64 bit cross compilation
680       pud: pull in nmealib v1.0.4
681       gateway: remove some 'unused' code from sgw script
682       make: fix typos in 'enable 32/64 bit cross compilation' commit
683       pud: enable 32/64 bit cross compilation for the java build
684       make: ifdef fixups
685       Merge branch 'release-0.6.5'
686       Merge branch 'release-0.6.5'
687       Merge branch 'release-0.6.5'
688       pud: detect the java include directory
689       dyn_gw: remove bogus include
690       make: fix a type in the Linux SUBDIRS assignment
691       make: add dyn_gw, mdns and p2pd to the Android SUBDIRS
692       pud: update nmealib 32/64 cross compilation
693       Revert "pud: update nmealib 32/64 cross compilation"
694       main: fix 2 minor warnings for win64 build on debian squeeze
695       make: only install sgw related files when sgw is supported
696       mdns: fix container_of pointer arith
697       mdns: don't use non-standard ushot type
698       mdns: fix three alignment warnings
699       mdns: supported on Android
700       p2pd: supported on Android
701       make: ensure win32 install respects DESTDIR
702       Merge branch 'release-0.6.5'
703       gateway: work around kernel IPIP module initialisation bug
704       gateway: fix overlap in success/fail IPIP tunnel init
705       doc: make the documentation generation commands a bit more verbose
706       pud: detect the java include directory
707       pud: better detection of java jdk
708       pud: better detection of java jdk
709       gateway: work around kernel IPIP module initialisation bug
710       Merge branch 'release-0.6.5'
711       PUD: nmealib: fix parsing of date in GPRMC
712       pud: nmealib: fixup the previous commit
713       main: use /dev/urandom by default
714       main: use /dev/urandom by default
715       pud: set local loopback for multicast tx
716       pud: set local loopback for multicast tx
717       Merge branch 'release-0.6.5'
718       arprefresh: fix some spelling
719       arprefresh: document the BPF program to make it readable
720       arprefresh: use the ARRAYSIZE macro
721       arprefresh: remove a comment
722       arprefresh: do not process IPv6 packets when in IPv4 mode
723       arprefresh: add a note about VLANs and IPv6
724       remove pthread usage as much as possible
725       Branch v0.6.6
726       Remove mercurial ignore file; we use git
727       build: ignore builddata.c when hashing sources
728       build: move build data into its own include file
729       gateway: always deal with 64bit scaled path costs
730       gateway: introduce and use removeGatewayFromList function
731       gateway: add SmartGatewayTakeDownPercentage configuration parameter
732       gateway: proactively take down 'expensive' gateways
733       release: fix the list of generated files
734       release: update some comments
735       release: refactor the checkVersionIncrementing function
736       release: do not update the version on master when it's already higher
737       release: only report that master changed when it was actually changed
738       release: checkVersionIncrementing: optionally allow equal versions
739       release: also check against the Makefile version when branching
740       txtinfo: prevent buffer overflow
741       pud: nmealib: _nmea_parse_time not parsing hsec when given "hhmmss" format
742       build: really _ignore_ builddata.c when hashing sources
743       build: only print the md5 hash in hash_source.sh
744       Makefile: fix builddata when building from tarball
745       pud: fix readIPAddress function
746
747 Hans-Christoph Steiner (3):
748       GNU/Linux: add service profile for 'ufw' firewall package
749       update Commotion example olsrd.conf to represent current project state
750       dyn_gw/dyn_gw_plain require /proc, remove from default build on non-Linux
751
752 Henning Rogge (7):
753       Fixed debug output of Scheduler polling interval
754       Fix multicast join for IPv6
755       Merge branch 'master' of http://olsr.org/git/olsrd
756       Update version after release of v0.6.5.2
757       Update version after release of v0.6.5.2
758       Fix build break for MinGW compilation on Fedora 19.
759       Release v0.6.6
760
761 Ronald in 't Velt (1):
762       Fix setsockopt for setting Traffic Class in IPv6
763
764 Saverio Proto (3):
765       main: fix the check on inet_pton return value because it returns 1 on
766          success.
767       mDNS: remove from Makefile PTHREAD useless dependency
768       txtinfo: update README file
769
770 Scott Kidder (1):
771       jsoninfo: ensure output is wrapped in curly braces.
772
773 Vasilis Tsiligiannis (1):
774       olsrd-quagga: Fix memory leak when adding and deleting routes
775
776 equinox (1):
777       quagga plugin routes additional
778
779 0.6.5.6 -------------------------------------------------------------------
780
781 Alessio Caiazza (2):
782       Hotfix for very long http headers also for jsoninfo
783       jsoninfo: HTTP headers with CORS (if requested)
784
785 Ferry Huberts (8):
786       pud: fix java detection in the wireformat java bindings (again)
787       pud: do the same fix as in the previous commit, now for i386
788       Make sure to save/restore errno in signal handlers
789       main: olsr_create_lock_file: fix return value check on 'open' call
790       pud: fix readIPAddress function
791       tok: improve the nmea_calc_crc function a bit
792       neighbor table: fix crash in olsr_print_neighbor_table on MinGW
793       Fix strange coding in the 'long headers' fix
794
795 Henning Rogge (5):
796       Update version after release of v0.6.5.5
797       Fix processing error for fragmented hellos
798       Fix some spelling mistakes
799       Hotfix for much too long http headers
800       Release v0.6.5.6
801
802 0.6.5.5 -------------------------------------------------------------------
803
804 Ferry Huberts (4):
805       build: really _ignore_ builddata.c when hashing sources
806       build: only print the md5 hash in hash_source.sh
807       Makefile: fix builddata when building from tarball
808       pud: fix readIPAddress function
809
810 Henning Rogge (3):
811       Update version after release of v0.6.5.4
812       Fix build break for MinGW compilation on Fedora 19.
813       Release v0.6.5.5
814
815 Scott Kidder (1):
816       jsoninfo: ensure output is wrapped in curly braces.
817
818 0.6.5.4 -------------------------------------------------------------------
819
820 Ferry Huberts (11):
821       Remove mercurial ignore file; we use git
822       build: ignore builddata.c when hashing sources
823       release: fix the list of generated files
824       release: update some comments
825       release: refactor the checkVersionIncrementing function
826       release: do not update the version on master when it's already higher
827       release: only report that master changed when it was actually changed
828       release: checkVersionIncrementing: optionally allow equal versions
829       release: also check against the Makefile version when branching
830       txtinfo: prevent buffer overflow
831       pud: nmealib: _nmea_parse_time not parsing hsec when given "hhmmss" format
832
833 Henning Rogge (2):
834       Update version after release of v0.6.5.3
835       Release v0.6.5.4
836
837 0.6.5.3 -------------------------------------------------------------------
838
839 Ferry Huberts (5):
840       pud: detect the java include directory
841       pud: better detection of java jdk
842       gateway: work around kernel IPIP module initialisation bug
843       main: use /dev/urandom by default
844       pud: set local loopback for multicast tx
845
846 Henning Rogge (2):
847       Update version after release of v0.6.5.2
848       Release v0.6.5.3
849
850 Ronald in 't Velt (1):
851       Fix setsockopt for setting Traffic Class in IPv6
852
853 0.6.5.2 -------------------------------------------------------------------
854
855 Henning Rogge (2):
856       Update version after release of v0.6.5.1
857       Release v0.6.5.2
858
859 Saverio Proto (1):
860       main: fix the check on inet_pton return value because it returns 1 on
861          success.
862
863 Vasilis Tsiligiannis (1):
864       olsrd-quagga: Fix memory leak when adding and deleting routes
865
866 0.6.5.1 -------------------------------------------------------------------
867
868 Ferry Huberts (1):
869       release: use olsrd-version prefix for files in the tarballs
870
871 Henning Rogge (2):
872       Update version after release of v0.6.5
873       Release v0.6.5.1
874
875 0.6.5 -------------------------------------------------------------------
876
877 Aaron Kaplan (1):
878       chose the proper #define in order to take the right #include
879
880 Alessandro (4):
881       mDNS: Implemented Host Filtering for ipv4 and ipv6, writing in the config
882          file which hosts to ignore. The mDNS packets from the ignored hosts
883          will be ignored and not propagated in the network
884       mDNS: Updated README file for mDNS plugin
885       mDNS: Reworked logic of router Election. The election is now handled on
886          interface basis, because the router could have one interface where it
887          needs to be master and another interface where it needs to be
888          disabled. There was a logical bug in the earlier implementation.
889       mDNS: BUGFIX, mDNS plugin, hello message of router election not sent if
890          debug = 0
891
892 Alessandro Gnagni (3):
893       mDNS: Fixing loops for mDNS packets when mDNS plugin is misconfigured
894       mDNS: review of Alessandro Gnagni patch, inserted a config value to
895          enable or disable TTL check and change, default is enabled.
896       mDNS: Implemented router election mechansim to have only 1 active mDNS
897          OLSR router in 1 LAN
898
899 Andreas Tonnesen (1):
900       x86_64 patch from Bernd
901
902 Bernd Petrovitsch (1):
903       * added -Wbad-function-cast
904
905 Ferry Huberts (219):
906       gateway: clarify header with extra comments and ordering
907       gateway: reorder functions to reflect order in header
908       gateway: formatting
909       gateway: remove 'unused' v{4,6}gw_choosen_external
910       gateway: add asserts to validate gw_handler
911       gateway: clear gw_handler during cleanup
912       gateway: add init and cleanup hooks for gateway plugins
913       gateway: rename hooks
914       gateway: add comments to struct olsr_gw_handler function prototypes
915       gateway: inline olsr_find_gateway_entry function
916       gateway: inline olsr_trigger_inetgw_selection function
917       gateway: rename a function
918       gateway: simplify a condition
919       gateway: push an if condition into its nested if's
920       gateway: merge 2 code blocks
921       gateway: the gateway to set must be in the gateway tree
922       gateway: the gateway to set must either be an IPv4 or IPv6 gateway or
923          both
924       gateway: prevent 2 NULL dereferences
925       gateway: merge 2 code blocks
926       pud: force pending buffer out if not enough space for our message
927       pud: include nmealib v1.0.3
928       http_info: pud satellites in use are now green, not in use are red
929       ifdef: fix some include ifdefs
930       update comments on all ifdefs
931       olsrd_plugin: remove #if 1
932       gateway: rename 2 variables
933       remove most '#if 0' blocks
934       gateway: merge the olsr_get_ipv{4,6}_inet_gateway functions
935       mdns: fix compilation warnings
936       mdns: fix a compilation warning / copy-paste error
937       bsd: fixup comment
938       improve VERBOSE handling
939       common: fix varargs cleanup
940       pud: fix resource leak
941       pud: fix socket error
942       pud: fix socket error
943       pud: fix position file stat/use race
944       pud: fix getBestUplinkGateway
945       pud: nmealib: fix copy/paste error
946       pud: nmealib: fix buffer overrun
947       pud: nmealib: fix buffer overrun
948       pud: nmealib: fix invalid format string conversion
949       add a COVERITY instructions text file
950       pud: nmealib: fix invalid format string conversion
951       pud: nmealib: fix invalid format string conversion
952       pud: fix closing fd
953       pud: fix checking of downlink message IP version
954       sgwdynspeed: fix resource leak and file stat/use race
955       bmf: explicitly cast fgetc result into a char
956       bmf: do not close an 'error' socket return value
957       bmf: do not dereference NULL pointer
958       httpinfo: do not close an 'error' socket return value
959       httpdinfo: fix resource leak
960       secure: can only work for IPv4, so assert on it
961       secure: do not hard-code a sizeof()
962       secure: decrease a (stack allocated) buffer size
963       secure: use sizeof() of the fields being copied
964       secure: decrease a (stack allocated) buffer size
965       secure: initialise rrmsg correctly
966       secure: can only work for IPv4, so assert on it
967       secure: do not hard-code a sizeof()
968       secure: decrease a (stack allocated) buffer size
969       secure: use sizeof() of the fields being copied
970       secure: decrease a (stack allocated) buffer size
971       secure: initialise crmsg correctly
972       secure: can only work for IPv4, so assert on it
973       secure: do not hard-code a sizeof()
974       secure: decrease a (stack allocated) buffer size
975       secure: initialise cmsg correctly
976       nameservice: fix a resource leak
977       nameservice: fix wrong size argument
978       nameservice: check return value of fcntl
979       nameservice: do not close an fd that is not open
980       nameservice: remove some dead code
981       jsoninfo: fix a resource leak
982       jsoninfo: make sure that uuid is null-terminated
983       jsoninfo: remove some dead code
984       jsoninfo: remove pointless compare
985       mdns: suppress a Coverity warning
986       mdns: remove some dead code
987       mdns: do not close an fd that is not open
988       mdns: do not close an fd that is not open
989       mdns: check return value of inet_pton
990       mdns: check return value of sendto
991       p2pd: do not close an fd that is not open
992       p2pd: do not close an fd that is not open
993       p2pd: remove some dead code
994       bmf: do not close an fd that is not open
995       pud: remove some dead code
996       quagga: explicitly ignore return value of fcntl
997       tas: fix a memory leak
998       txtinfo: remove some dead code
999       main: fix an Out-of-bounds access
1000       cfgparser: fix some memory leaks
1001       cfgparser: fix a copy/paste error and resulting memory leak
1002       cfgparser: fix dereference before assert
1003       linux: apm: fix retry opening of apm proc file
1004       olsr_switch: fix a memory leak
1005       lq: make sure that info_head != NULL
1006       lq: make sure last_ip != NULL
1007       android: fix type punning warning
1008       pud: fix alignment warning
1009       gateway: initialise the handler before setting up the tunnel
1010       gateway: cleanup: free the allocated memory cookie
1011       gateway: ensure cleanup uses the reverse order of init
1012       gateway: minor simplification in olsr_delete_gateway_entry
1013       gateway: allow immediate removal of a gateway entry
1014       gateway: split olsr_delete_gateway_entry
1015       gateway: walk the gateway tree to properly cleanup
1016       linux: sanitise ACPI battery data
1017       defs: fix strscpy null pointer dereference
1018       tas: lua: official source code for 5.0.2
1019       tas: lua: run gnu-indent.sh script
1020       cleanup, 1. step (to get some local changes away):
1021       * added -Wcast-qual: this killed lots of unnecessary type-casts
1022       Fix sytax errs and line break quirks for gnu-indent
1023       ARM alignment warnings fixed
1024       Patch ALIGN_NOWARN_ARM macro for better priority handling.
1025       use the POSIX standard '__linux__' macro instead of 'linux'
1026       tas: lua: run gnu-indent.sh script
1027       tas: lua: sync up to official source code with fixes
1028       Merge branch 'lua-official-502'
1029       cookie: an array already is a pointer
1030       cookie: add an assert
1031       Revert "httpdinfo: fix resource leak"
1032       httpinfo: add a comment about why the client socket is not closed
1033       gateway: minor optimisation
1034       gateway: improve cleanup
1035       gateway: rename gw_mem_cookie to gateway_entry_mem_cookie
1036       gateway: add a define for the tunnel name
1037       gateway: stub out olsr_print_gateway_entries on #ifdef NODEBUG
1038       duplicate_set: stub out olsr_print_duplicate_table on #ifdef NODEBUG
1039       link_set: stub out olsr_print_link_set on #ifdef NODEBUG
1040       mpr_set: stub out olsr_print_mpr_set on #ifdef NODEBUG
1041       routing_table: stub out olsr_print_routing_table on #ifdef NODEBUG
1042       tc_set: stub out olsr_print_tc_table on #ifdef NODEBUG
1043       two_hop_neighbor_table: stub out olsr_print_two_hop_neighbor_table on
1044          #ifdef NODEBUG
1045       hna_set: stub out olsr_print_hna_set on #ifndef NODEBUG
1046       hna_set: stub out olsr_print_hna_set on #ifdef NODEBUG and fix
1047       neighbor_table: stub out olsr_print_neighbor_table on #ifndef NODEBUG
1048       neighbor_table: stub out olsr_print_neighbor_table on #ifdef NODEBUG and
1049          fix
1050       use INET_ADDRSTRLEN and INET6_ADDRSTRLEN instead of magic constants
1051       gateway: only remove a tunnel when there is one
1052       gateway: rename a variable
1053       gateway: minor improvement in NULL comparisons
1054       hna_set: olsr_ip_prefix_to_string outputs a wider string
1055       gateway: refactor olsr_set_inet_gateway
1056       Merge tag 'v0.6.4'
1057       win32: use #ifdef _WIN32
1058       Makefile: fixup some forgotten make command prefixes
1059       Makefile: add gui target
1060       Makefile: always pass VERBOSE to the make command
1061       gui: linux: minor Makefile fixup
1062       gui: linux: clean and install are phony targets
1063       gui: linux: add VERBOSE handling
1064       gui: linux: fix some 'may be used uninitialized' compiler warnings
1065       gui: linux: use toplevel make options
1066       gui: linux: fix some 'noreturn' compiler warnings
1067       gui: linux: fix some 'discards const qualifier' compiler warnings
1068       gui: linux: fix some 'old-style function definition' compiler warnings
1069       gui: linux: fix 'too few arguments to function ipc_connect' compiler
1070          warning
1071       gui: linux: fix a 'mixed declarations and code' compiler warning
1072       gui: linux: fix some 'unused parameter' compiler warnings
1073       Revert "gui: linux: fix some 'may be used uninitialized' compiler
1074          warnings"
1075       gui: linux: fix some 'may be used uninitialized' compiler warnings
1076       gui: linux: fix some 'shadow' compiler warnings
1077       gui: linux: fix inccorrect sizeof()
1078       gui: linux: fix string buffer overflow
1079       gui: linux: fix string buffer overflow
1080       gui: linux: fix the string buffer overflow better
1081       gateway: simplify stopping the cleanup timer
1082       tas: remove plugin
1083       main: do not seed the random number generator with the process id
1084       win32: remove unused getpid() function
1085       hna_set: explicitly cast to (time_t *) in calls to localtime()
1086       neighbor_table: explicitly cast to (time_t *) in calls to localtime()
1087       main: improve random number generator seed
1088       bmf: do the minimum length check earlier
1089       changelog: update to current state
1090       print_packet: fix wrong use of sizeof()
1091       main: remove -dispin and -dispout command line options
1092       main: add release script
1093       Update version after release of v0.6.4
1094       Changelog: remove 0.6.5 preliminary changelog
1095       Merge branch 'release-0.6.4'
1096       bmf: check minimumLength against buffer size
1097       sgwdynspeed: put plugin config in olsrd.conf.sample
1098       pud: put plugin config in olsrd.conf.sample
1099       cookie: raise the number of cookies
1100       pud: enable dynamic polling of the position file
1101       gateway: only check smart gateway configuration on linux
1102       linux: put #ifdef __linux__ around code
1103       doc: add doxygen documentation generation
1104       doc: fix common documentation tags
1105       doc: fix linux specific documentation tags
1106       doc: fix unix specific documentation tags
1107       doc: fix bsd specific documentation tags
1108       doc: fix win32 specific documentation tags
1109       doc: do not generate documentation for gui code
1110       release: move the stringTrim function up a bit
1111       release: make gitIsGitDirectory do the correct thing
1112       release: fix usage of literal dot in regular expressions
1113       release: move into the base directory earlier
1114       release: convert some code into checkIsOlsrdGitCheckout function
1115       release: convert some code into checkGitSigningKeyIsConfigured function
1116       release: convert some code into getPrevRelTag function
1117       release: the script can now also create a release branch
1118       Merge branch 'release-0.6.4' into mmmm
1119       Branch v0.6.5
1120       pud: change java include path to generic java include path
1121       pud: java make target is dependent on library make target
1122       doc: clean up the latex directory if empty
1123       Revert "linux: name is required to be non-null in
1124          olsr_os_cleanup_iptunnel"
1125       gateway: fix a revert problem
1126       android: fix the path of the tunnel node in the /dev tree
1127       gateway: fix stable count dampening in gw_default_timer
1128       gateway: always select a new gateway when threshold != 0
1129       main: add -pidfile command line option
1130       main: fix pidfile compilation on windows
1131
1132 Frank de Brabander (4):
1133       New feature: support for Linux NL802.11 wireless link information in cost
1134          calculation.
1135       Merge branch with new lq plugin for NL80211 support
1136       Incorporate fix by Ferry Hubert for float to double promotion
1137       Fix optional compilation of the nl80211 lq plugin
1138
1139 Hans-Christoph Steiner (9):
1140       use the POSIX standard '__linux__' macro instead of 'linux'
1141       use the Microsoft standard '_WIN32' macro instead of the self-defined
1142          'WIN32'
1143       olsrd-adhoc-setup: use static BSSID by default to assoc. with the right
1144          mesh
1145       olsrd-adhoc-setup: configure NetworkManager to be nice when adhoc is
1146          manually setup
1147       fix misspelling: 'adress' --> 'address'
1148       fixed misspelling: usefull -> useful
1149       add gcc hardening flags to linux-gtk GUI
1150       android: update to use gcc 4.6, available starting with NDK r8
1151       android: gcc 4.6 comes with NDK r8b and is not in NDK r8
1152
1153 Henning Rogge (29):
1154       Pud: Do not use the variable name strlen.
1155       Fix buffer overflow in mdns plugin
1156       Add -Werror=format-security
1157       Add VERBOSE flag to makefile to display full gcc commands
1158       Fix slightly insulting error message.
1159       Moved regex library to a makefile of its own to solve the issues with
1160          compiler warnings.
1161       fix control flow if kill() command fails to end program
1162       fix wrong sizeof() parameter
1163       Convert allocated memory into temporary variable
1164       Protect against stupid data from ACPI
1165       Close socket if bind() fails.
1166       Merge branch 'master' of http://olsr.org/git/olsrd
1167       Use strscpy instead of strncpy.
1168       Check inet_pton return value
1169       Close file descriptor if error happens
1170       Fix scanf() format vulnerabilities
1171       Fix command line parsing macro
1172       Fail in IPC initializationis always fatal.
1173       fail of non-blocking netlink socket is not fatal
1174       Declare olsr_exit() as noreturn
1175       Interface will always be found.
1176       no hostroute possible in this if() branch
1177       reset link timer if not set
1178       Remove dead codepath
1179       Cleanup error handling in ipc_init()
1180       Remove unnecessary asserts
1181       Make sure calculated header length does not skip over buffer
1182       Fix multicast join for IPv6
1183       Release v0.6.5
1184
1185 Saverio Proto (12):
1186       mDNS: Skeleton code for new host filter feature in mDNS plugin
1187       mDNS: Upgrading the container_of.h that was backported from src/common in
1188          master
1189       mDNS: Fix most of the warnings from the compiler
1190       mDNS: Update checksum field of the IPv4 Header after altering TTL
1191       mDNS: trivial debug print fix and code readibility improvement
1192       mDNS: Change version of mdns plugin to 1.0.1 after GSoC 2012 work by
1193          Alessandro Gnagni
1194       mDNS: init ListOfFilteredHosts in the proper place and not at every
1195          received packet
1196       mDNS: trivial, removed TODO from code for something that was implemented
1197       mDNS: better debug support for filtered hosts feature
1198       mDNS: Fixed typo in README
1199       Revert "mDNS: init ListOfFilteredHosts in the proper place and not at
1200          every received packet"
1201       Merge remote-tracking branch 'origin/mDNS-plugin-GSoC-2012'
1202
1203 0.6.4 --------------------------------------------------------------------
1204
1205 Bugfix and plugin release 0.6.4
1206 - Update of Smartgateway system
1207 - small updates to several plugins
1208 - lots of updates for PUD plugin
1209
1210 0.6.3 --------------------------------------------------------------------
1211
1212 Bugfix and plugin release 0.6.3
1213
1214 - PUD plugin (position update plugin)
1215 - JSONinfo plugin
1216 - sgwdynspeed plugin (select dynamic smart gateway based on gw speed)
1217 - Update on Quagga plugin (for new Quagga)
1218 - Fixes for Androids
1219 - Some fixes for GTK and Win32 gui
1220 - Lots of core fixes to support new compiler warnings
1221
1222 0.6.2 --------------------------------------------------------------------
1223
1224 Bugfix release for 0.6.1
1225
1226 - Compatibility for Linux kernel 3.x
1227 - Lots of small fixes
1228 - reworked makefile output
1229 - updates for some plugins
1230 - repair for Smartgateway feature
1231
1232 Read GIT changelog at http://olsr.org/git to see a complete history.
1233
1234 0.6.1 --------------------------------------------------------------------
1235
1236 Bugfix release for 0.6.0
1237
1238 Markus Kittenberger <Markus.Kittenberger@gmx.at>
1239 - Major bugfix for the neighbor table when a neighbor gets a new main IP.
1240 - add /interface command to txtinfo, allow multiple commands per request
1241
1242 Henning Rogge <henning.rogge@fkie.fraunhofer.de>
1243 - wait up to four seconds for aquiring the OLSRd lock. This helps to
1244   shutdown OLSRd with a script and restart it at once (kill <pid> is
1245   asynchrone, and kill -w is not available in busybox)
1246 - add md5 has of all source/headers into version string
1247
1248 Mitar<mitar@tnode.com>
1249 - lot's of small changes for Android. Slowly Android gets a fully
1250   supported platform for OLSRd.
1251
1252 and a lot more small bugfixes. Read GIT changelog at http://olsr.org/git
1253 to see a complete history.
1254
1255 0.6.0 --------------------------------------------------------------------
1256
1257 Change in version number system. No more -rcX for release candidates and
1258 -rX for bugfix releases. In future bugfix releases or updates of plugins
1259 will increase the third digit of the version string while feature releases
1260 will increase the first and/or the second one.
1261
1262 Markus Kittenberger <Markus.Kittenberger@gmx.at>
1263 Henning Rogge <henning.rogge@fkie.fraunhofer.de>
1264 - added NIIT kernel module support for sending IPv4 traffic over
1265   IPv6 mesh networks. See README-Olsr-Extensions for more information.
1266 - added SmartGateway support. OLSRd can now automatically build
1267   IPIP tunnels towards the gateway to prevent gateway flapping.
1268   See README-Olsr-Extensions for more information.
1269 - complete rewrite of linux netlink routing code. New code should be
1270   more understandable and easier to debug/improve.
1271
1272 Teco Boots <teco@inf-net.nl>
1273 - new dyngw plugin. More flexible and more features.
1274 - new p2pd plugin (generalized mdns plugin)
1275
1276 Vasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
1277 - new version of quagga plugin (with IPv6 support !)
1278
1279 Sven-Ola Tuecke <sven-ola@gmx.de>
1280 - fixes for improved uClibc support
1281 - fixes for better linux kernel 2.4 support
1282
1283 Saverio Proto <zioproto@gmail.com>
1284 - new mdns plugin. (backport from master branch)
1285
1286 Eric Tromps <erik_tromp@hotmail.com>
1287 - new version of bmf plugin. NO pthreads are necessary anymore
1288
1289 and a lot more small bugfixes. Read GIT changelog at http://olsr.org/git
1290 to see a complete history.
1291
1292 0.5.6-r8 ---------------------------------------------------------------------
1293
1294 Alina Friedrichsen <x-alina@gmx.net>
1295 - patch for using deticated output socket for OLSR packages. This allows
1296   to set the src-ip of OLSR packages, which is useful for interfaces
1297   with multiple IPs
1298
1299 Bruce Ford <fordbr@gmail.com>
1300 - fixes for compiling olsrd for win32
1301
1302 Henning Rogge <henning.rogge@fkie.fraunhofer.de>
1303 - fix for memoryleak during MID processing
1304 - patch series for "network logoff" of OLSRd, other nodes now get
1305   notified if an OLSR node switch down to remove it from their database.
1306 - cleanup of naming conventions for settings src/dst-ips of OLSR-packets
1307   for ipv4/6. See example config files. 
1308 - patch to ignore HNA4 for IPv6 and HNA6 for IPv4
1309
1310 Markus Kittenberger <Markus.Kittenberger@gmx.at>
1311 - patch series for MID handling cleanup
1312 - compiletime switch for txtinfo to always allow localhost access
1313 - add "InterfaceDefaults" section to config files to allow setting values
1314   which are shared by all interfaces but can be overwritten in specific
1315   config file settings
1316 - patch series to allow OLSRd handle multiple config files
1317   (multiple "-f <cfgfile>" options)
1318
1319 0.5.6 ---------------------------------------------------------------------
1320
1321 PATCHES and BUGFIXES from Henning Rogge <rogge@fgan.de>
1322 - Bugfix for fragmented TC sequence numbers
1323 - eliminate second timer for edge garbage collection (aka border code).
1324 - fix SPF bug
1325 - fix for jitter calculation
1326 - refactor linkset code
1327 - add netsimpcap, a network simulation device
1328 - parser refactoring
1329 - fix for possible overflow in fpm plugin
1330 - prevent Originator-IP from changing during runtime
1331 - fix several compiler warnings
1332 - fix hanging TC entry from lost onehop neighbor
1333 - fix drop package with same seqno in etx_ff
1334 - fix segfault in parsing HNA package with bad netmask
1335 - fix avl_comparator for route_paths
1336 - fix alignment problem in packet buffers
1337 - fix: segfault in neighbor/neighbor-2 table
1338 - fix: lqmult default parsing
1339 - HACK: MinTCVTime parameter hack for Berlin FF network...
1340   feel free to ask on the mailing list.
1341 - add Watchdog plugin
1342 - add explicit runtime lock for OLSR.
1343 - remove lq-hysteresis for tc on the receiver side.
1344 - enhance protection against malformed packages to prevent
1345   OLSR parsing uninitialized data. Thank you Markus and Keks for the LONG
1346   debugging session
1347 - block tc-redundancy 0/1, it doesn't work with the current dijkstra code
1348 - convert httpinfo/txtinfo/dotdraw to nonblocking and autobuf to
1349   prevent blocking outgoing connections
1350 - fix some bugs with lq-mult
1351 - fix bug in duplicate set sequencenumber handling
1352 - add Debian/KFreeBSD support (Thanks to Holger Levsen and friends for help)
1353 - fix segfault in 'interface lost' monitor
1354 - add LQ hysteresis to etx-ff metric
1355
1356 PATCH from Markus Kittenberger <Markus.Kittenberger@gmx.at>:
1357 - txtinfo plugin: add more http options
1358 - allow configuration of OLSR UDP port
1359 - allow configuration of proto Tag for Routes (RtProto)
1360 - add fallback policy rule (priority 65536) if RtTable is used,
1361     to ensure that routes can be added to this table
1362 - resolve many error conditions while adding routes to the linux kernel
1363     (Warning this will also delete any conflicting routes made by other routing daemons or admins)
1364 - interface modes mesh (default) and ether (no retransmit of olsr-messages back into a broadcastdomain)
1365 - fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
1366 - fix several compiler warnings
1367 - fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
1368 - create policy rule later during startup
1369 - send MID also with one interface, if its ip different from originator-id
1370 - linux rtnetlink code cleanup
1371 - workaround: generate routes to single hop neighbours on the fly when inserting routes via them
1372     (active only with fib_metric=flat)
1373 - testing: insert routes with source-ip set to originator ip
1374 - testing: syslog numbering (e.g. useful to detect lost syslog messages when using remote-syslog)
1375 - testing: custom library path (default /usr/testlib)
1376 Testing features must be activated in olsr_cfg.h before compiling olsrd.
1377 This features are used to run a test network in Vienna parallel to the existing
1378 OLSR network.
1379 - more RT-Netlink cleanups and fixes
1380 - backport of timejump patch from TIP
1381 - Add detection for vanishing interfaces to Linux netlink code
1382 - fix incorret route sorting on new neighbours. use only delete and add/change avl tree,
1383   instead of 3 trees
1384 - learn neighbours interface alias address from received hellos
1385
1386 PATCHES from Hannes Gredler <hannes@gredler.at>:
1387 - add small valgrind howto
1388 - remove the per tc_edge timer
1389 - add some basic infrastructure for cookies
1390   cookies are used to track usage of timer and memory resources
1391 - add a lightweight memory manager to reduce malloc() churn.
1392 - eliminate data field from avl_node and list_node and
1393   replace this via inline recasts
1394 - add indentation dotfile for future code cleanup
1395 - refactor the timer implementation, get rid of timeout functions
1396   all manipulations done in constant time.
1397 - use calloc rather than malloc for lazy callers
1398 - log RIB add/del transactions only if there is an actual route change
1399 - fix to to always insert a HNA Net when receiving a HNA refresh
1400 - fix delete all routes if the last IP address is gone
1401 - reduce TC vtime jitter from 25% down to 5%
1402
1403 PATCHES and BUGFIXES from Sven-Ola Tuecke <sven-ola@gmx.de>:
1404 - add a fixed-point math implementation, which saves
1405   a great deal of CPU on embedded devices
1406 - fix for Link quality dijkstra limit
1407 - nameservice plugin supports mac addresses
1408 - fix fork/restart code
1409 - fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
1410 - fix several compiler warnings
1411 - fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
1412 - add makefile support for google android
1413 - fix default olsrd.conf examples
1414
1415 PATCHES and BUGFIXES from Aaron Kaplan <aaron@lo-res.org>:
1416 - fix openbsd warnings / compile errors about sprintf strcpy
1417 - fix string overflow in dyn_gw plugin
1418 - fix string overflow in pgraph plugin
1419 - fix openbsd/osx coompile errors
1420
1421 BUGFIX by Peter Tarjan <peter.tarjan@birdtelecom.hu>:
1422 - Do not remember LQ information UNSPEC_LINK neighbors in Hellos.
1423 - ignore UNSPEC link for linktype if there is an ASYM/LOST/SYM Link in the
1424   same Hello message
1425 - ignore UNSPEC_LINKS during MPR lookup
1426 - broken MID route handling: we also check the data structures for routing,
1427   even if a MID entry exists.
1428
1429 BUGFIX by John Hay <jhay@meraka.org.za>:
1430 - FIX: IPv6 MTU in BSD
1431 - Another BSD ipv6 Patch by John Hay
1432 - fixes for 64 Bit FreeBSD
1433 - fixes for NetBSD
1434
1435
1436 BUGFIX from Erik Tromp <erik_tromp@hotmail.com>:
1437 - update in bmf due to new flags field in tc_edge_entry
1438
1439 PATCH from Clemens Hopfer <datacop@inode.at>:
1440 - dot_draw plugin: close the connection after graph output.
1441
1442 PATCH from Joe Gio <joezgio@gmail.com>:
1443 - track if AC power is connected/disconnected
1444
1445 PATCH from Hagen Paul Pfeifer <hagen@jauu.net>:
1446 - import jenkins hash for good hash calculations
1447
1448 PATCH from Andres Ambrois <andresambrois@gmail.com>:
1449 - nameservice plugin: add parameters for SIGHUPing other daemons, or calling scripts
1450
1451 BUGFIX by Benny Tops <b.tops@mindef.nl>:
1452 - fix wrong order of drop_tc checkt in olsr_input_tc
1453
1454 Felix (OpenWRT NBD):
1455 - fix bison problem for OpenWRT
1456
1457 Sebastian Harl:
1458 - add LISTEN parameter for httpinfo/txtinfo/dotdraw
1459
1460 0.5.5 ---------------------------------------------------------------------
1461
1462 BUGFIX from Andreas Jacobs <andjac@kawo1.rwth-aachen.de>:
1463 - calculate correct sleeptime
1464
1465 BUGFIX from Dario Borriello <dario_bodj@hotmail.com>:
1466 - do not update LQ if not configured
1467
1468 BUGFIX from Jo-Philipp Wich <freifunk@wwsnet.net:
1469 - fix olsr_ip_to_string() buffer quirk
1470 - fix txtinfo format quirks in HNA table
1471 - name-service plugin - write MID entries to hosts file
1472 - avoid infinite loop in the message parser
1473
1474 PATCH by John Hay <jhay@meraka.org.za>:
1475 - compile clean on FreeBSD
1476 - bugfix: do not account for IP headers when building MID6 messages
1477
1478 PATCHES from Henning Rogge <rogge@fgan.de>:
1479 - join LQ and non-LQ Hello execution paths
1480
1481 PATCHES from otti <otti@wirdorange.org>:
1482 - rttable-default: configures a new policy routing table for the default route
1483
1484 BUGFIXES and PATCHES by Sven-Ola Tuecke <mail2news@commando.de>:
1485 - Windows Vista: add interface metric to SPF computed metric
1486 - lqtc-seqno: Optimize check for old seqno numbers in LQTC messages
1487 - lqnatthresh: maintain an advantage for the current (NAT) inet gw
1488 - fisheye-startup: Changed to MAX_TTL for the first 32 LQTCs
1489 - Added and removed files necessary for win32 compile
1490 - Fix for hg: do not remove anything in .hg with 'make uberclean'
1491 - 104-olsrd-verysmallfix
1492 - 105-fix-lq-buffer-quirks
1493 - 106-fix-seqnocheck
1494 - 110-bmf-v152
1495 - 121-olsrd-fib-metric-approx
1496 - 133-fix-lqneigh
1497 - 136-optimize-invalidip-check
1498 - 138-optimize-message-generation
1499
1500 BUGFIX from Lorenz Shori <lorenz.schori@gmx.ch>:
1501 - Mac OSX compile fixes
1502
1503 BUGFIXES and PATCHES by Hannes Gredler <hannes@gredler.at>
1504 - fix not deleted tc entry.
1505 - avoid setting routes with an invalid/impossible netmask.
1506 - refactoring of TC parsing to kill another pile of malloc()/free()s
1507   saving (again) code and especially run.time performance.
1508 - RIB Refactoring, Part 2:
1509   - avoid the periodical rib-tree insertion
1510   - add a FOR_ALL_HNA_RT_ENTRIES() macro for the snmp folks
1511     (or any parties who want to walk HNA entries).
1512   - add an olsr_cnf option 'flat_fib_metrics' which defaults to TRUE.
1513 - fix broken prefix insertion (regression of the RIB refactoring)
1514 - squelsh compiler warnings on Mac OSX
1515
1516 PATCH by John Hay <jhay@meraka.org.za>:
1517 - also printout our own HNAs in the dotdraw plugin.
1518
1519 PATCH by Patrick McCarty <mccartyp@gmail.com>:
1520 - fixed compile errors in the BSD port
1521
1522 PATCHES by Sven-Ola Tuecke <mail2news@commando.de>:
1523 - 102-olsrd-cvs-fixes.patch: use different buffers in the same printf()
1524 - 103-olsrd-rt-exportroute-cleanup.patch: avoid a malloc()ed list of functions
1525 - 132-save-the-fish.patch: really save the fish and avoid to forward invalid
1526   messages from older olsrd versions
1527 - 135-georss-map-for-nameservice.patch: fixes and extensions for the namesaervice plugin
1528 - 138-olsrd-fixdotdraw.patch: fix the dot_draw plugin
1529 (all to be found on http://download-master.berlin.freifunk.net/sven-ola/nylon/packages/olsrd/files/)
1530 - Replaced "which" with a /bin/sh script snippet
1531
1532 PATCHES and CLEANUPS by Bernd Petrovitsch <bernd@firmix.at>
1533 - Jens Nachtigall <nachtigall@web.de> suggested (and reminded) to use
1534   olsrd.conf.default.lq as the default installed one.
1535   It makes much more sense as - to the best of my(bernd's) knowledge - all
1536   larger networks uses the LQ extensions. And new customers should better
1537   be pushed in that direction.
1538 - with the help of Patrick McCarty <mccartyp@gmail.com>, we got olsr to build
1539   on OpenBSD again:
1540   * OpenBSD'd `sed` is pretty conservative and doesn't understand 's|re|sub|'.
1541     So we fall back to the old 's/re/sub/' and quote all '/' and '.' correctly
1542     (which was the main reason to use '|').
1543     And while I'm at it: Remove the useless $(CCACHE) from the $(CC) for
1544     dependency generation and beautify (read: "$(strip)") $(CPPFLAGS).
1545   * OpenBSD needs an explicit "#include <sys/types.h>" before
1546     "#include <netinet/in.h>".
1547 - fixed lib/secure/src/md5.h: This was broken as it had
1548   "typedef unsigned long int UINT4;". "unsigned long int" is 8 bytes on x86_64.
1549   We are using now the standardized types from <inttypes.h>.
1550 - fixed warnings and improved lib/secure/src/md5.c:
1551   * we are using memcpy() and memset() instead of the open-coded loops as
1552     suggested 
1553   * const'ified
1554   * added function prototypes for static functions
1555   * moved static functions to the top so that their declaration is before
1556     their use to allow gcc to inline if only used once.
1557   It remains ugly - God knows why there are that so many useless
1558   type-casts.
1559 - Some minor and trivial cleanup: Added two functions to calculate the ETX
1560   value from a struct tc_edge_entry and a struct link_entry, respectively.
1561   And use them everywhere.
1562 - added http://meshcube.org/nylon/utils/olsr-topology-view.pl into
1563   lib/httpinfo/misc as suggested by Jens Nachtigall <nachtigall@web.de>
1564 - Killed "struct olsrd_config *cnf" in src/cfgparser/olsrd_conf.h and replaced
1565   it's usage with "olsr_cnf" from src/defs.h.
1566   Serious cleanup: olsrd_get_default_cnf() does no longer initialize the global
1567   "cnf" variable" but uses a local one which is returned as before. And
1568   olsrd_parse_cnf() does no longer return the global variable it is working on.
1569 - Merged "struct hna4_entry" and "struct hna6_entry" into
1570   "struct local_hna_entry" (as "struct hna_entry" is a different thing)
1571   Both have almost the same data (IP address + netmask/prefix) so we use
1572   the quite new "struct olsr_ip_prefix" to store it.
1573   Also merged the "hna4" and "hna6" pointer in "struct olsr_config" -
1574   look at the global "olsr_cnf->ip_version".
1575 - added a olsr_ip_prefix_to_string() function
1576 - .h file cleanup: def.h does not longer include net_olsr.h because it 
1577   doesn't needs it.
1578 - more type safety: the macros COPY_IP() and COMP_IP are gone and replaced
1579   with "=" or similar "normal" C operations. There are also now the inline
1580   functions ip4cmp() and ip4equal() to work on "struct in_addr", ip6cmp()
1581   and ip6equal() to work on "struct in6_addr" and ipcmp() and ip6equal()
1582   to work on "union olsr_ip_addr".
1583   Most (or even more precise: almost all) uses of COPY_IP() and COMP_IP()
1584   are in "if (olsr_cnf->ip_version) { ... } else { ... }" anyway to
1585   there is no reson to copy an IPv4 address effectively with
1586   "memcpy(&dst, &src, 4)" or compare with memcmp(&a, &b, 4)" wher the
1587   always "4" is stored in a variable inhibiting compiler optimization.
1588   There is also the deprecated function genipcopy() mimicking the old
1589   typeless COPY_IP() macro for the last few places where a cleanup is
1590   needed anyways.
1591   There also lots of old macros left over (commented out of course) until
1592   we are confident that everything works. And then I will kill them too.
1593 - Fixed the misleading definition of "v4" in "struct olsr_ip_addr" fom
1594   "olsr_u32_t" (in network-byteorder!) to "struct in_addr". Lots of
1595   temporary variables to call inet_ntoa()/inet_ptoa() vanished .....
1596 - We have now ip4_to_string(), ip6_to_string() and olsr_ip_to_string()
1597   to print a "struct in_addr", "struct in6_addr" and "union olsr_ip_addr"
1598   into a string buffer.
1599 - cleanup: olsr_ip_to_string() and similar non-reentrant functions now must
1600   get a target buffer. To ease that, there is the "struct ipaddr_str"
1601   which is large enough for all of them (read: for an IPv6 address). This
1602   also removes the cyclic buffer there.
1603   All of these function return a "const char *" which can be directly used
1604   for printf(3) and friends.
1605 - const'ified more functions
1606 - converted the source to UTF-8.
1607 - "struct sig_msg" uses an olsr_u8_t for a byte array (and not "char")
1608 - force the few inline function to always be inlined.
1609 - #ifdef the body of the olsr_print_hna_set() and olsr_print_neighbor_table()
1610   if nothing is done
1611 - declare "int_addr", "int_netmask" and "int_broadaddr" in "struct interface"
1612   as "struct sockaddr_in" since it is that what we actually want there (and
1613   it is similar to the IPv6 code).
1614 - updated the olsrd.conf.default.lq-fisheye to the Debian-deliverd version
1615   after recent discussions olsr-dev@olsr.org
1616 - use "inline_avl_comp_ipv4()" in "avl_comp_ipv4()"
1617 - clean up the routes on more signals. Basically we want to do this on all
1618   signals which terminate the program.
1619 - killed a superflous global buffer in src/main.c
1620 - made inline functions from avl_walk_{first,last,next,prev} and created
1621   "const" versions of it. inline_avl_comp_ipv4() is now also an inline function
1622   (and not a macro)
1623 - created a typedef's for various function pointers - much easier to read.
1624 - cleanup: compare tree->comp (adn other pointers)) to NULL (and not 0)
1625 - killed superflous "return"s at the end of void functions
1626 - const'ified more parameters in many more functions in the .h and
1627   .c files
1628 - init-functions with constant or ignored return values are "void"
1629 - created a typedef fro the callback in "struct export_route_entry"
1630   and using it!
1631 - moved the initialization of the {add,chg,del}_kernel_list variables
1632   into process_routes.c. So they are now "static" there.
1633 - olsr_export_{add,del}_route{,6} are now static in process_routes.c
1634   since they are not used elsewhere.
1635 - olsr_addroute_add_function() and olsr_deldroute_add_function() were
1636   almost identical - made one function out of it.
1637   Same for olsr_addroute_del_function() and olsr_deldroute_del_function().
1638 - fixed the sort order in avl_comp_ipv4_prefix(): We compare now the IPv4
1639   values in host byte order (and not network byte order). So the route
1640   list in the e.g. httpinfo plugin is now nicely sorted.
1641 - fixed and improved the `gcc-warnings` script:
1642   * support older gcc's (as on Debian/Sarge) as they have slightly different
1643     error messages
1644   * removed superflous lines
1645   * replaced the call of `sed` with shell built-in features fixing syntax
1646     errors on Debian/Sarge
1647   * set all locale-relevant variables to "C" (just to be sure)
1648 - consolidated ip{4,6,}{cmp,equal}: all are nwo inline functions using only
1649   the minimal necessary operations. Thanks to Hannes Gredler
1650   <hannes@gedler.at> and Sven-Ola Tuecke <mail2news@commando.de> for pointing
1651   that out and suggesting the `inline`, respectively.
1652   use ip{4,}cmp in lq_avl.[ch] to resue the code. inline_avl_comp_ipv4
1653   is superflous now (and replaced by ip4cmp) and use the global MIN and MAX
1654   macro instead of AVLMIN and AVLMAX
1655 - killed netmasks from the IPv4 part of the code and use the prefixlen there
1656   (similar to thte IPv6 part). Manymore details on
1657   http://lists.olsr.org/pipermail/olsr-dev/2007-November/001464.html
1658 - removed the superflous "open_ipc" field from the "struct olsrd_config" as
1659   it contains only the equivalent of "olsr_cnf->debug_level > 1".
1660 - inspired by Sven-Ola Tuecke: avoid a bash'ism (i.e. "OPTS="${OPTS//$opt}") in
1661   gcc-warnings and ld-warnings. But we do not replace it with `sed` (since it
1662   costs a fork(2) and an exec(3)) but also with shell code which doesn't use
1663   any external program.
1664 - added configuration file support for "flat fib metrics".
1665
1666 0.5.4 ---------------------------------------------------------------------
1667
1668 QUAGGA by Immo 'FaUl' Wehrenberg <immo.olsr@do.bundessicherheitsministerium.de>
1669 - updated to svn version 33
1670
1671 BMF PLUGIN  by Erik Tromp <erik_tromp@hotmail.com>
1672 - updated to 1.5.1
1673 - updated to latest plugin interfaces changes and killed warnings (by Bernd
1674   Petrovitsch <bernd@firmix.at>)
1675
1676 PATCH by Hannes Gredler <hannes@gredler.at> which rewrites the route handling.
1677 To quote him:
1678 ----  snip  ----
1679 change list:
1680 - get rid of separate routing tables for HNA and per-node routes, everything is
1681   now unified in an AVL routing tree (&routingtree)
1682
1683 - introduce walking macros (OLSR_FOR_ALL_RT_ENTRIES()) that hide the internal
1684   structure of the RIB for making life of the plugin authors easier.
1685
1686 - get rid of different SPF implementations for LQ and non-LQ code paths. a
1687   non-LQ edge is simply substituted with a cost of 1.0
1688
1689 - get rid of host masks - a new data type olsr_prefix is introduced which is
1690   basically an ip address plus a prefix length.
1691
1692   do not install the metric in the kernel FIB - for the kernel its pointless
1693   if the route gets installed with a metric of N or M.
1694
1695   we do not need to update the kernel FIB if we have hop count only changes
1696   (for example if there is a reroute action further downstream)
1697
1698   the only things which triggers a kernel FIB route update is a next hop
1699   change (a next hop is neighboring gateway router plus an interface).
1700
1701   all OLSR routes are installed with a metric of 2
1702
1703 - separate between rt_entry and rt_path - the former is a route installed in the
1704   kernel with an next hop. the latter is a candidate for best path selection
1705   after SPF calculation has been done. in the rt_entry we keep a pointer to the
1706   best_path and also to the next hop that was installed in the kernel FIB.
1707
1708   we always keep all originator of a route, if a route originator goes away we
1709   can easy recompute the best path for the route.
1710
1711   the next hop in the rt_entry gets only updated upon a successful route_add
1712   call - that way we always remember what next hop to delete.
1713
1714   stray routes should be history now.
1715
1716 - tweak the linked list toolkit to operate on circular lists.
1717
1718 - get rid of malloc calls for building the kernel update list. the list node is
1719   now embedded in the rt_entry.
1720
1721 - introduce three queues (add/chg/del) for kernel updates.
1722
1723 - for neighbor route dependency tracking the neighbor routes are queued first or
1724   last (depending on which queue you work on)
1725
1726 - rework all the plugins which directly manipulate rt entries.
1727
1728 - rework the plugins that read from the routing table (most notably nameserver,
1729   httpinfo and quagga plugin)
1730
1731 - lots of comments that explains the intentions and purpose of this code-piece.
1732
1733 non RT related stuff:
1734 - use a list rather than a tree for storing the post-SPF results, which further
1735   improves the raw-SPF runtime.
1736
1737 - add display of SPF runtime (masked behind #ifdef SPF_PROFILING)
1738
1739 - http://gredler.at/download/olsrd/neighbor_routes3.diff: This updates the own
1740   IP address (read: the main address) after changes (e.g. on
1741   `ifup wlan0; sleep 1; ifdown wlan0`) and kills the
1742   olsr_fill_routing_table_with_neighbors() function.
1743 ----  snip  ----
1744 And Sven-Ola Tuecke <mail2news@commando.de> fixed an instability issue on interface
1745 up/down operations (see 102-olsrd-rt-refactoring-fixes.patch below) and a missing
1746 initialization.
1747
1748 PATCH by Hannes Gredler <hannes@gredler.at> which "consolidates
1749 the link-state database and the spf-calculation in order
1750 to calculate routes more efficiently".
1751 To quote him (more):
1752 ----  snip  ----
1753 - use the link-state (tc) database for SPF calculations rather than
1754   replicating the notion of vertices and edges for a SPF run.
1755   this heavily reduces malloc() calls and shrinks the total CPU
1756   load of the route calculation path between 60%-80%.
1757 ----  snip  ----
1758
1759 PATCHES by Sven-Ola Tuecke <mail2news@commando.de> to be found on from
1760 http://download-master.berlin.freifunk.net/sven-ola/nylon/packages/olsrd/files/
1761 - 102-olsrd-rt-refactoring-fixes.patch
1762   Because you changed a lot of basics: It's time to handle a general
1763   flaw in the routing system. Plase take a look at chk_if_changed(). This
1764   will free() any "struct interface" pointer without warning at any time.
1765   This is why it's possile to SEGV olsrd with a simple "ifdown xxx".
1766   The patch replaces the (maybe) invalid pointer with an index reference
1767   "iif_index". You can always ask the OS for a name. Please note, that I do
1768   not have a working BSD toolchain, so I've placed an #error in the IPv6
1769   BSD-part where the author/porter has started to hack something funny.
1770
1771 - 110-olsrd-double-wlancard-neigh-hack.patch:
1772   This is a hack for Nodes having to wifi cards with the same channel,
1773   bssid, IP-Range etc. If two nodes can see each other by means of two
1774   possible links (here: two wifi cards with equal config), a bug is  triggered
1775   with the Neigh-is-SYM detections. This small little hack prevents this.
1776
1777 - 112-olsrd-nameservice-fixemptyname.patch:
1778   This is an addon to my lat/lon stuff which will prevent olsrd from
1779   running (oops?) if no hostname is given and the nameservice plugin
1780   is loaded.
1781
1782 - 113-olsrd-dyngwplain-pluginvers5.patch:
1783   This updates the dyngwplain plugin to the new Plugin Iface
1784
1785 - 140-olsrd-arprefreshed.patch:
1786   This is a new one. Opens a packet socket and listen to UDP(698), extract
1787   the sender MAC and refreshes the ARP cache whith that. Should speedup
1788   especially in cases, if you initially try to use a longer routing path which
1789   normally triggers a "ARP-Lookup-Chain".
1790 - 106-olsrd-nameserviceparams.patch:
1791   This patch converts more plugins to the new interface version.
1792 - 104-olsrd-policy-routing.patch
1793   Reworked this one to discard GPL helper functions. Also checked IPv6 and
1794   re-included the IPC hookup. The patch adds a "RtTable [number]" for
1795   /etc/olsrd.conf which is simply the Linux
1796   policy routing table to use. Defaults to 254 (== main).
1797   This patch was modified/clenaed up by <bernd@firmix.at> to use "#if"
1798   instead of "#ifdef" as it's more robust against typos.
1799 - 110-olsrd-fixpacketprint.patch, 112-olsrd-nameservice-fixemptyname.patch,
1800   113-olsrd-txtinfo-fixhttpget.patch, 114-olsrd-timeoutlimit.patch,
1801   115-olsrd-nameserviceparamfix.patch and
1802   116-olsrd-fix-pluginparam-addons.patch fixing the compilation warning
1803   on 64bit and lots of other improvements.
1804 - "Save the fish" patch: Avoid forwarding of packets with too low TTL. This
1805   kills lots of packet forwarding storms.
1806   NB: The oneliner was applied by hand by BP and formatted to look (in BPs O)
1807   more readable.
1808
1809 PATCH by Arnd Hannemann <hannemann@i4.informatik.rwth-aachen.de>
1810 olsr_makefile_make_use_of_exename.patch
1811 - This patch makes sure that the EXENAME variable of Makefile.inc is used
1812   in Makefile.
1813
1814 PATCHES by John Hay <jhay@meraka.org.za>
1815 - update to new FreeBSD WLAN API
1816 - do not require /bin/bash, use /bin/sh
1817 - Fixed alignment so that olsrd runs on FreeBSD/arm
1818 - allow more interface in an IPv6 subnet on FreeBSD
1819 - use PREFIX and DESTDIR as all the other Makefile.$OS also for FreeBSD
1820 - make txtinfo plugin work with IPv6
1821
1822 PATCH by Andreas Jacobs <jacobs@i4.informatik.rwth-aachen.de>
1823 - fix the loss link quality calculation for "windows size % 4 != 0"
1824
1825 PATCH by Acinonyx <acinonyxs@yahoo.gr>
1826 - Bug fix: include $(TOPDIR)/Makefile.inc at the begin in the Quagga plugin
1827
1828 PATCH by David Cornejo <dcornejo@gmail.com>
1829 - fixed an "+=" of an uninitialized variable (detected with/by the
1830   scan.coverty.com).
1831
1832 BUG reported by Aaron Kaplan <aaron@lo-res.org>
1833 - BSD-xargs doesn't know "-r".
1834
1835 PATCHES and CLEANUPS by Bernd Petrovitsch <bernd@firmix.at>
1836 - Made a function from the ME_TO_DOUBLE() macro (in src/mantissa.h).
1837   This saves code throughout the code even on i386 and will even more
1838   on architectures without floating point units and "-msoft-float".
1839 - And the mathemathics in src/mantissa.h is reformulated to minimize
1840   floating point operations to save CPU power - especially on embedded
1841   devices.
1842 - I rewrote the half of src/lq_packet.[ch] which deals with incoming
1843   packets. This was triggered with performance output of gcc produced
1844   by Sven-Ola Tuecke at CCCamp07.
1845   This kills *lots* of (more than) superflous malloc()s and the same
1846   number of (free()s). And it also kills some code and copying around of
1847   data.
1848 - Make it compile without warning with flex-2.5.33 (to be found on Fedora 7
1849   and Gentoo in Sep-2007) again.
1850
1851 - converted the dyn_gw plugin to plugin interface version 5 (which leaves
1852   the quagga plugion as the last with the old one).
1853 - paving the way to activate -Wshadow, much more to do
1854 - const-ify parameters here and there
1855 - use NULL for pointers (and not "0")
1856 - Killed "extern" declarations in (not generated) .c files
1857
1858 - Based on a patch by Gianni Costanzi <gianni.costanzi@gmail.com> (so credits
1859   and thanks have to go there):
1860   added OS_CFLAG_PTHREAD Makefile variable since gcc (on Linux) requests this
1861   in the manual page.
1862   Changes/additions:
1863   - I added definitions to all OS-specific Makefile.$OS with the value similar
1864     to the value in OS_LIB_PTHREAD (either empty or "-pthread").
1865   - The variable is added to CPPFLAGS (and not CFLAGS) since CPPFLAGS is used
1866     for all cpp and gcc calls (and gcc's man page indicates that it sets
1867     variables for both of them).
1868
1869 0.5.3 ---------------------------------------------------------------------
1870
1871 URGENT BUG FIX
1872 Ignacio García Pérez <iggarpe@terra.es> found a serious bug in the dot-draw
1873 plugin and identified it's source.
1874
1875 BUG FIX
1876 The bmf plugin wanted to kill a not-started thread and this causes a segmentation
1877 violation. This happens if the old plugin interface support is not compiled in
1878 and one uses - or more asccurate: wants to use - the bmf plugin which uses that
1879 ATM. Thanks to Cedric Krier <ced@ced.homedns.org> for reporting this.
1880
1881 DEPENDENCIES FIXED
1882 The dependencies (*.d files) are now properly generated and used. And they also
1883 dependen on the Makefile in the current directory and the Makefile.inc so that
1884 changes there also lead to new compilation.
1885 Remember: We support "ccache" so install it to save lot of meaningless recompiles
1886 if nothing (as seen by the real C compiler, i.e. after the C preprocessor) has
1887 changed.
1888
1889 BUILD FIX
1890 Linux/IA64 and Linux/HPPA also need "-fPIC".
1891
1892 CLEANUPS
1893 - olsr_switch does no longer generate warnings
1894 - olsr_switch is also built with "build_all" and cleaned with "uberclean"
1895 - More "const" all over the place.
1896 - More "static" for local functions and variables.
1897 - Killed an unnecessary "static" variable.
1898
1899 0.5.2 ---------------------------------------------------------------------
1900
1901 URGENT BUG FIX
1902 Sven-Ola Tuecke found a serious bug of the class "show stopper" and sent a patch.
1903
1904 PLUGIN CLEANUP
1905 Plugins handle parameters quite individually (case-sensitive vs case-insensitive,
1906 different parsing functions for the same values, etc.). Plugin Interface version 5
1907 now exports a table of { parameter-name, parsing-function, addr-of-storage } and
1908 it's size. Common functions should be shared.
1909
1910 0.5.1 ---------------------------------------------------------------------
1911
1912 MISC
1913 Upgrade to olsr-bmf 1.5 from Erik Tromp <erik_tromp@hotmail.com>
1914
1915 latitude/longitude support is now in the nameservice plugin done by
1916 Sven-Ola Tuecke <mail2news@commando.de>
1917
1918 added the spf refactoring patch from  Hannes Gredler <hannes@gredler.at> which
1919 saves a noteworthy amount of CPU time. To quote him:
1920 ----  snip  ----
1921 1. use of an AVL tree as a min-heap implementation
1922
1923    as a means for efficient sorting.
1924    (the etx metric is used as the key in the candidate tree)
1925
1926 2. next-hop propagation
1927
1928    rather than tracking the previous node in olsr_relax()
1929    i have changed that model and pre-populate all one-hop neighbors
1930    with their own IP address as 'next-hop' and pull that
1931    pointer up once new paths are explored.
1932
1933    as a result no walker for counting hops and extracting next-hops
1934    is required - it turns out at this is slighly more efficient
1935    than the existing behaviour (even with the cache applied).
1936 ----  snip  ----
1937
1938 CLEANUPS
1939 * moved a only locally needed hack from "union olsr_ip_addr" into the only place
1940   where it is needed in hashing.c
1941
1942 0.5.0 ---------------------------------------------------------------------
1943
1944 APPLIED PATCHES FROM FREIFUNK-FIRMWARE
1945 libsmake, dyngwplain, nameservices+services, tzxtinfo, quagga, quagga-routehandler,
1946 optimize, fixes from Eric Tromp and Sven-Ola Tuecke, CPU-optimize, secure key, HNA-IP
1947
1948 CLEANUPS
1949 removed hardcoded limit on the number of interfaces (at least in the Unix part)
1950 made Makefile targets much more consistent
1951
1952 MISC
1953 put Bmf-1.3 plugin into it
1954
1955 FreeBSD IPv6 SUPPORT
1956
1957 Patch from John Hay applied.
1958
1959 BUGFIXES
1960
1961 0.4.10 --------------------------------------------------------------------
1962
1963 OLSR NETWORK SIMULATOR
1964
1965 An application called olsr_switch(sorry for the nameclash with the win32
1966 GUI) has been added. If olsrd is ran using the -hint option it can now
1967 connect to olsr_switch and be part of a virtual network. This means
1968 that multiple instances can be ran at the same host! The olsr_switch
1969 application allows the user to define link variables on all viritual
1970 links in the network, creating all possible topologies. Read more in
1971 the readme file.
1972
1973 EXPERIMENTAL FISH EYE ALGORITHM
1974
1975 An experimental algorithm for TTL settings on TC messages has
1976 been added. Read more in the corresponding README file.
1977
1978 OPENBSD SUPPORT
1979
1980 olsrd now also compiles on OpenBSD systems. Thanks a lot to Holger
1981 Mauermann for the patches!
1982
1983 BUILDSYSTEM REWRITE
1984
1985 Bruno has rewritten the make system. OS detection is now done
1986 automagically and the general design is much improved.
1987
1988 IP ADDRESS VALIDATION
1989
1990 Olsrd now maintains a set of IP addresses that is considered
1991 invalid. Checks against this set is done on all received
1992 OLSR packets announced originator addresses. The dataset can
1993 be updated dynamically.
1994
1995 PLUGIN INTERFACE
1996
1997 Updated interface version to 3 and added more noticeable warning
1998 for version missmatch.
1999
2000 MATH LIB DEPENDENCY
2001
2002 The dependency on the math lib came from the use of pow(3) in the
2003 mantissa/exponent calculation. The calls to pow in this long forgotten
2004 code, was very unnessecarry. The pow calls are replaced with bitwise
2005 shifts and -lm is no longer needed.
2006
2007 ICMP REDIRECTS ON LINUX
2008
2009 On Linux systems "0" is now also written to the all/send_redirects
2010 procfile and not only the pr. interface ones. Hopefully this resolves
2011 problems reported with systems still sending ICMP redirects.
2012
2013 BUGFIXES
2014
2015 - Fixed init of IPv6 addrtype variable. It used to be uninitialized,
2016   causing it to default to site-local and have some weird side-effects.
2017 - Fixed crash when changing IPv6 address at run-time
2018 - Fixed a bug that prevented setting willingness 0 in the configfile
2019 - Fixed bad handling of missing command line arguments
2020 - Did various updates to prevent assertion when a neighbor
2021   has changed IP and sends HELLO before its olsrd precess has detected
2022   the change.
2023 - Fixed return value check on times(2) calls in the scheduler
2024 - Fixed bug(s) that could cause crash when an interface was brought
2025   down while olsrd was running.
2026 - Removed the silent (read: unchecked) hard limit of 16 interfaces.
2027 - Compiles now cleanly on 64bit (e.g. x86_64).
2028
2029 0.4.9 ---------------------------------------------------------------------
2030
2031 OPTIMIZATIONS
2032
2033 The MID database is now also indexed by alias addresses. this makes
2034 look-ups of main addresses based on alias addresses _much_ faster.
2035 The mid_lookup_main_addr function alone has gone from >30% of the
2036 total CPU time used by olsrd to <1%.
2037 PLUGIN DEVELOPERS: datatypes for MID entries has been changed.
2038
2039 Routing table calculation in the LQ case now uses balanced binary
2040 trees instead of linked lists, which makes look-ups much faster.
2041
2042 The debug output function olsr_printf() is not used by olsrd
2043 internals any more. Instead the macro OLSR_PRINTF is to be used.
2044 This macro does debug level testing _before_ doing any function
2045 calls(both printf itself and parameters to printf). This is a much
2046 more optimized way of doing debug output. In addition olsrd can
2047 be built without any debug output code if doing 'make NODEBUG=1'.
2048
2049 TIMEOUT OF DATASETS
2050
2051 Validity times for dataset entries are now set using the clock_t type
2052 (used to be struct timeval). This data is now fetched from the times(2)
2053 function instead of gettimeofday(2). This prevents possible problems
2054 if the system time is changed.
2055 PLUGIN DEVELOPERS: Note that datatypes for close to all dataset entries
2056 (link, neighbor, mid, hna, tc etc.) has been changed!!
2057
2058 CONFIGURATION FILE
2059
2060 Multiple interfaces can now use the same interface configuration block.
2061 Example:
2062 Interface "if0" "if1" "if2"
2063 {
2064         .....
2065 }
2066
2067 Interface configurations now also support the "Weight" directive. When
2068 olsrd finds multiple links to a neighbor it will choose the link
2069 going via the interface with the lowest weight. Olsrd normally
2070 sets this weight dynamically based on interface characteristics,
2071 but if the user wishes to set a fixed weight in a interface(or
2072 a group of interfaces), this directive is now available.
2073
2074 Moreover, interface configurations now support the "LinkQualityMult"
2075 directive. It takes an IP address and a multiplier as arguments.
2076
2077 Example:
2078
2079 Interface "if0"
2080 {
2081   [...]
2082
2083   LinkQualityMult 192.168.0.1 0.7
2084   LinkQualityMult default 0.5
2085
2086   [...]
2087 }
2088
2089 The idea is to make certain links via the configured interface
2090 artificially worse or better than they really are. The first parameter
2091 specifies the IP address of a neighbour interface. The second
2092 parameter is the multiplier to be applied to the link to the specified
2093 neighbour interface.
2094
2095 After we have derived the link quality from the packet loss among the
2096 packets received from the specified neighbour interface, we multiply
2097 the link quality by the given multiplier. So, the multiplier changes
2098 the LQ value that we use when determining the ETX, which is 1 / (LQ *
2099 NLQ).
2100
2101 If "default" is given as the IP address then the multiplier applies to
2102 all links via the configured interface. Note, however, that olsrd only
2103 assigns one multiplier to each link. It does so in the following way.
2104
2105 * If there is a "LinkQualityMult" line that matches the IP address of
2106   the link's neighbour interface, then use the multiplier in this
2107   line.
2108
2109 * If there isn't any matching line, then look for a "default" line. If
2110   there is a "default" line, then use the multiplier in this "default"
2111   line.
2112
2113 * Otherwise use 1.0, i.e. do not modify the LQ value at all.
2114
2115 Hence, a line with an IP address has priority over a "default" line.
2116
2117 In the above example, the LQ value of the link between the local
2118 interface if0 and the neighbour interface 192.168.0.1 would be
2119 multiplied by 0.7. All other links between the local interface if0 and
2120 a neighbour interface would be multiplied by 0.5.
2121
2122 IPV6 SOCKETS
2123
2124 The socket option IPV6_V6ONLY is now set on IPv6 sockets in linux.
2125 This means that olsrd will no longer receive IPv4 traffic when
2126 running in IPv6 mode.
2127 This should enable users to actually run one olsrd instance using
2128 IPv6 and one using IPv4 at the same time :)
2129
2130 PLUGINS
2131
2132 The httpinfo, dyn_gw and dot_draw plugins now all include olsrd
2133 headerfiles directly. A plugin should define OLSR_PLUGIN before
2134 including olsrd headers. Doing things this way removed the
2135 redundant datatype definitions that has so often caused trouble
2136 when things has been updated in olsrd.
2137
2138 NETBSD SUPPORT
2139
2140 olsrd now also compiles on NetBSD systems. Use 'make OS=nbsd' to
2141 build. This port is not very well tested and feedback is greatly
2142 appreciated.
2143
2144 EXPERIMENTAL MULTI-INTERFACE CODE FOR FREEBSD
2145
2146 Experimental code using libnet can be compiled in allowing multiple
2147 interfaces to be used in FreeBSD.  You enable this by compiling using
2148 OS=fbsd-ll.  You must have libnet-devel installed for this to work
2149 (/usr/ports/net/libnet-devel).
2150
2151 OTHER UPDATES
2152
2153 - WLAN devices are now detected in FreeBSD
2154 - First specified interfaces IP is used as main address.
2155 - Broadcastflag is not checked on interface if fixed broadcast is
2156   set in config.
2157 - Removed Linux link layer code as this was not really in use.
2158 - Added -nofork command line option
2159
2160 BUGFIXES
2161
2162 - Link sensing now works according to announced vtime from
2163   neighbors. Previously links going symmetric->asymmetric
2164   were not necessarily detected until the holding time expired.
2165 - A bug in route addition/removal that could lead to routes
2166   using GWs being added before the actual route to the GW
2167   was set up, has been fixed.
2168 - A bug in the interface selection in route calculation has been
2169   fixed. New routes are no longer added prior to deleting old ones,
2170   since this caused trouble.
2171 - A bug in the IPv6 multicast address configuration has been fixed.
2172   This caused olsrd not to work with global IPv6 addresses.
2173 - A bug in the IPv6 prefix-from IPaddr function has been fixed. This
2174   bug caused HNA prefixes to always be calculated to 0.
2175 - If a 2-hop neighbor is also a 1-hop neighbor, a bug made olsrd
2176   prefer a bad direct link to a better link via an MPR.
2177 - If a link or interface lookup failed, olsrd crashed.
2178 - Fixed a crash in the LQ packet generation code based on a
2179   signed/unsigned integer comparison.
2180
2181
2182 0.4.8 ---------------------------------------------------------------------
2183
2184 LICENSE CHANGE
2185
2186 Olsrd is now distributed under a BSD style license. We believe olsrd will
2187 be better off using this license as it opens up for commercial players
2188 to use olsrd freely in their products. In the end this will lead to
2189 this kind of users doing serious testing and bug fixing of olsrd.
2190
2191 ETX-LIKE LINK QUALITY DETECTION
2192
2193 We can now determine the packet loss on a link by looking at the serial
2194 numbers of the OLSR messages received from a neighbor. This tells us how
2195 many packets get through from our neighbor to us. We use a new extended
2196 kind of HELLO messages (LQ_HELLO messages, LQ = link quality) to broadcast
2197 the link quality that we have determined on our end of the link to our
2198 neighbors. So do our neighbors, and we as well as they end up with an
2199 idea of how good the link is in both directions. From the LQ_HELLOs we
2200 also learn the link quality between our neighbors and our two-hop neigh-
2201 bors. In this way we can select those neighbors as MPRs that have the
2202 best links to our two-hop neighbors. To distribute the link quality
2203 throughout the network, we use a new extended version of TC messages
2204 (LQ_TC messages). They contain the qualities at both ends of each of our
2205 links. Nodes can then run Dijkstra's algorithm to find a path between
2206 themselves and other nodes that minimizes the packet loss.
2207
2208 If the newly introduced "LinkQualityLevel" is set to zero in the
2209 configuration file, link quality is not used and the daemon behaves as
2210 before, i.e. as specified by the OLSR RFC. If this parameter is set
2211 to 1, LQ_HELLOs and LQ_TCs are used instead of HELLOs and TCs, link
2212 quality is measured and MPRs are selected based on the link qualities.
2213 If this parameter is set to 2, the routing table is additionally
2214 calculated based on the link qualities.
2215
2216 Setting "LinkQualityLevel" to a non-zero value BREAKS COMPATIBILITY. You
2217 will then not be able to participate in RFC-conformant OLSR networks
2218 any longer. This is because we use LQ_HELLOs and LQ_TCs instead of HELLOs
2219 and TCs in this case.
2220
2221 It's best practice to set "LinkQualityLevel" to the same value on all
2222 nodes in a network.
2223
2224 When determining the quality of a link olsrd only considers a given
2225 number of most recent OLSR packets received from its neighbors. By
2226 default, olsrd looks at the 10 most recent OLSR packets. This can be
2227 changed via the "LinkQualityWinSize" configuration option. Values
2228 between 3 and 128 are legal.
2229
2230 NEW CONFIGFILE PARSER/FORMAT/SCHEME
2231
2232 A whole new config file syntax and parser is introduced with this
2233 release. The parser is generated using flex and bison and it is
2234 designed to be very modular. The parser can be compiled as either
2235 a standalone binary, a shared library or as part of olsrd. This way
2236 other applications can parse and generate olsrd configuration files
2237 only by linking to the dynamic library.
2238 In the new configfile options can be set pr. interface, plugin
2239 parameters can be set, more IPC options can be set...and more.
2240 The syntax is documented in the olsrd.conf(5) manual page found
2241 in the files/ directory.
2242 Olsrd internals now uses a single struct, as returned by the config
2243 parser, for all configuration in runtime. this means that updating
2244 values in this struct will dynamically update olsrd operation. It
2245 also means that all configuration is now kept in one place instead
2246 of spread all across the place.
2247
2248 FREEBSD AND MAC OSX PORT
2249
2250 This version offers an initial port of olsrd to FreeBSD and Mac OS
2251 X. Like the Windows port it currently does not support IPv6. As this
2252 is a very first try at supporting FreeBSD and Mac OS X, this port is
2253 probably not as reliable as the Linux version. We'd greatly appreciate
2254 feedback and bug reports. To compile you need GNU make. Then simply
2255 run "gmake OS=fbsd" to build the executable.
2256
2257 NEW MAKEFILE(S)
2258
2259 The makefiles used to build olsrd have been rewritten and now includes
2260 dependency file generation using makedep.
2261
2262 DEBUG OUTPUT
2263
2264 Tables are now only printed if changes occur, so there are no longer
2265 any periodical output when using a debuglevel >0. A "heartbeat" is
2266 now printed to STDOUT(if it is a terminal) in the form of a rotating
2267 line to show that olsrd is actually operating.
2268 Adding "ClearScreen yes" to the configuration file clears the screen
2269 each time before the debug output shows updated information. This
2270 makes the debug output easier to read in many cases. "ClearScreen no"
2271 is the default, if no "ClearScreen" directive is given in the
2272 configuration file.
2273
2274 PLUGIN INTERFACE
2275
2276 There are some changes in the plugin interface. It is now at
2277 version 2. Plugin specific parameters from the configfile
2278 using the PlParam option, will now be passed on to plugins.
2279 To receive such parameters a plugin must implement a function:
2280 int
2281 register_olsr_param(char *key, char *value)
2282 to which parameter pairs will be passed.
2283
2284 NO MORE THREADS
2285
2286 Olsrd no longer uses any thread library on its operation. Everything
2287 now happens in the main thread allowing for use of olsrd on platforms
2288 with no thread library.
2289
2290 ACPI SUPPORT IN WILLINGNESS CALCULATION(LINUX)
2291
2292 The willingness calculation for Linux, now also supports the more
2293 modern ACPI proc interface in addition to APM. This is not well
2294 tested and feedback is appreciated!
2295
2296 IPC OPTIONS
2297
2298 Various options regarding IPC connections can now be set in the
2299 configfile. The options are max connections, allowed unicast
2300 hosts and allowed net-ranges.
2301
2302 CODE REWRITES
2303
2304 Much of the message generation and net output code is rewritten.
2305 Sending of partial messages should now work 100%. Also TC, MID
2306 and HNA messages are now cached for a random amount of time
2307 before transmitted - this often leads to the situation where these
2308 messages are sent together with an HELLO message, which is highly
2309 desirable since it saves network resources.
2310 PLUGIN DEVELOPERS must note that the buffers and size variables
2311 used in net output is no longer directly accessible!
2312
2313 NET OUTPUT CODE REWRITTEN
2314
2315 Every interface now has one outputbuffer registered. This allows
2316 messages to be "cached" as explained above, so that multiple
2317 messages are stacked together.
2318 Also the outputbuffer and size are no longer accessible directly,
2319 an API is available to plugins(and olsr code).
2320
2321 OS DEPENDENT NETWORK INTERFACE
2322
2323 The OS dependent network functions are now defined in net_os.h
2324 instead of being mixed up with internal network functions
2325 in net.h.
2326
2327 BUGFIXES
2328
2329 A bug that caused the announced ANSN sequence number to never stop
2330 being increased when a change in the MPR selector set was detected
2331 has been fixed. Another TC related bug that caused timed out TC
2332 entries not to be deleted from the routing table in certain cases
2333 has also been fixed. These bugs could cause unstable routes.
2334 A bug that in many cases caused the wrong routes to be deleted
2335 when using IPv6 has been fixed.
2336
2337
2338 0.4.7 ---------------------------------------------------------------------
2339
2340 NATIVE WINDOWS GUI AND INSTALLER
2341
2342 We now have a native Windows GUI. The GTK+ version is no longer
2343 supported on Windows. The new native GUI is pretty compact as it does
2344 not require the GTK+ runtime DLLs. In addition to monitoring olsrds
2345 state the GUI offers an easy way for novice users to configure
2346 olsrd. It's pretty self-explanatory. Have a look at README-WIN32.txt
2347 for details. The Windows version now also comes with an installer
2348 based on the freely available Nullsoft Scriptable Install System
2349 (NSIS). Looks like the Windows port is becoming more and more
2350 Windows-ish. :-)
2351
2352 WIRELESS INTERFACE DETECTION ON WINDOWS
2353
2354 Like the Linux version the Windows port is now able to tell WLAN
2355 interfaces from wired interfaces. We can now, for example, set
2356 different HELLO intervals for WLAN interfaces and wired interfaces,
2357 respectively.
2358
2359 ROUTE UPDATES
2360
2361 The order of updates of calculated routes is swapped. Now new routes
2362 are added prior to deleting old ones. This could fix issues where
2363 in some very very few cases one could experiment loss of routes.
2364
2365 BUGFIXES
2366
2367 There were quite some bugs in IPv6 operation in 0.4.6. These are
2368 the bugs that were fixed:
2369 - HNA message parsing did not work.
2370 - Some IPv6 addresses were printed as IPv4 addresses in the
2371   debug output.
2372 - The '-dispin' option now works again.
2373 - A filedescriptor leak in the IPv6 interface detection caused
2374   olsrd to crash.
2375
2376
2377 0.4.6 ---------------------------------------------------------------------
2378
2379 WINDOWS PORT!
2380
2381 Read the README-WIN32.txt file!
2382
2383 DYNAMIC NETWORK INTERFACE UPDATES
2384
2385 Network interfaces can now be updated and removed/added at
2386 runtime. Olsrd will check all interfaces specified in the config
2387 file or on the command-line, every 5 seconds. If updates
2388 occur, olsrd will register this and update the necessary data.
2389 If interfaces are removed or added, olsrd will detect this
2390 and configure the interfaces. If an interface is removed
2391 olsrd will continue to check the interface, so if say, a PCMCIA
2392 card is removed and later on reinserted(and given the same name),
2393 olsrd will detect this and start running on it again.
2394
2395 Note that olsrd will now run even if no interfaces are detected.
2396
2397 ROUTE CALCULATION UPDATE
2398
2399 All 1 hop neighbor addresses that are not directly reachable trough
2400 a symmetric link in the link set will now be added with a GW in the
2401 routing table. this GW will be an interface address from a registered
2402 symmetric link to the neighbor.
2403
2404 MID UPDATE
2405
2406 Alias addresses are now registered in the link set processing
2407 if available. This is not to pretty(since the vtime has to
2408 be a mere guess) but it gives faster initial route updates.
2409 If a HELLO is received(at initial registration) from an IP
2410 that is not the same as the one set as main address in the
2411 received HELLO header, then the IP from which the HELLO was
2412 received will be registered as an alias of the main address
2413 set in the HELLO header. The default vtime is set to 15 secs.
2414
2415 CODE RESTRUCTURING
2416
2417 All OS dependent interface configuration code is now located in
2418 OS/ifnet.c(that would be linux/ifnet.c if using GNU/Linux).
2419 The functions are available trough the headerfile src/ifnet.h
2420
2421 CODE CLEANUPS
2422
2423 - Some timer issues fixed
2424 - Got rid of the global socket descriptors
2425 - Updated indexing of network interfaces
2426 - Introduced a global socket to use for ioctl calls(ioctl_s)
2427 - Removed upper limit for interfaces to use
2428 - Point-to-point interfaces are now allowed
2429 - The main select(2) loop now uses a timeout
2430 - A small bugfix in the select fd-set update code
2431 - Some bugfixes in the configuration file parsing
2432 - stdout/stderr are now set to not be buffered
2433 - A bugfix in the MID generation regarding seq. numbering
2434
2435 PLUGIN INTERFCAE
2436
2437 A new set of functions that are called whenever a change in the
2438 interface configuration(update, addition, removal) is made is
2439 introduced.
2440 These functions are added and removed very much like the ptf
2441 functions. Available trough the functions add_ifchgf and del_ifchgf.
2442
2443 OBS OBS OBS!!! PLUGIN DEVELOPERS READ THIS!!!!
2444
2445 The interface struct(declared in interfaces.h) has changed.
2446 Plugin developers must update plugins that uses the interface
2447 struct!
2448
2449 The headerfile olsr_plugin_io.h which contains the plugin interface
2450 commands now contains a revision list where all changes are
2451 stated.
2452
2453
2454 0.4.5 ---------------------------------------------------------------------
2455
2456 PLUGIN: SECURE OLSR
2457
2458 A plugin that generates and checks message signatures is added.
2459 Check lib/secure
2460
2461 PLUGIN: TOPOLOGY GRAPH
2462
2463 A plugin that generates output of the topology in the dot format
2464 is added. See lib/dot_draw
2465
2466 OPTIMIZATIONS
2467
2468 Some optimizations done that should cause fewer route recalculations.
2469
2470 BUGFIXES
2471
2472 Some bugs reported by Takafumi Tanaka fixed.
2473
2474 RESTORATION OF NETWORK SETTINGS
2475
2476 Network settings like disabling of ICMP redirects and spoof filter, are
2477 now restored at exit by olsrd.
2478
2479 RFC COMPLIANCE FIX
2480
2481 Nodes would in certain scenarios retransmit messages originating for
2482 themselves. This was a RFC incompliance. Reported by Ingmar Baumgart.
2483
2484 NON-WLAN TIMERS
2485
2486 No longer setting the HELLO interval of non-wlan interfaces as a multiplier
2487 of the wlan interval. The interval is set seperatly now.
2488 Due to this there are some updates in the configfile imperatives.
2489
2490 CODE CLEANUPS
2491
2492 Some new macros introduced for table insertion and removal and IP
2493 copying and comparison.
2494
2495 FRONT END BUGFIXES
2496
2497 IPv6 bugfixes in the GUI.
2498
2499
2500 0.4.4 ---------------------------------------------------------------------
2501
2502 ROUTE CALCULATION
2503
2504 Routes are no longer added via neighbors declaring a willingness
2505 of WILL_NEVER.
2506
2507 LINK SENSING AND ROUTE CALCULATION
2508
2509 Link sensing and route calculation has been updated to handle
2510 multiple links between hosts in a sane way.
2511
2512 IP SPOOF FILTERING
2513
2514 IP spoof filtering is disabled on the interfaces which olsrd runs.
2515 These settings are not restored!
2516
2517 ICMP REDIRECTS
2518
2519 ICMP redirect message generation is disabled on the interfaces
2520 which olsrd runs.
2521 These settings are not restored!
2522
2523 CONFIGFILE OPTIONS FOR MID AND HNA ADDED
2524
2525 Options to set the MID and HNA emission intervals and
2526 validity time in the configfile added.
2527
2528 IPv6 ADDRESS SCOPE
2529
2530 Option to set what IPv6 address type(scope) to use in the
2531 configfile added. It can be set to either global or site-local.
2532
2533 IPv6 MULTICAST
2534
2535 Options to set site-local and global multicast addresses
2536 in the configfile added.
2537
2538 EMISSION INTERVAL FUNCTION
2539
2540 Functions to set emission intervals at runtime added.
2541
2542 LINK LAYER NOTIFICATIONS
2543
2544 If started with the -llinfo switch olsrd will collect and display
2545 link-layer information on neighbors. This is no longer limited to
2546 one interface. But no action is taken based on this info - and
2547 there is a upper limit of 8 neighbors from which this info can
2548 be collected pr. interface. This limitation is inherited from the
2549 WLAN drivers and is not something imposed by the olsrd code!
2550
2551 IPv6 HNA MESSAGE FORMAT
2552
2553 IPv6 HNA messages now contains 128-bit netmask instead of prefix.
2554
2555 PLUGIN FUNCTIONS
2556
2557 Added "packet transform functions" which allow plugins to alter all
2558 outgoing OLSR traffic.
2559
2560 RESTRUCTURING
2561
2562 Moved most headers out of OS dependent directories. The tunneling
2563 and link-layer notification interface is not yet separated from
2564 the /linux directory.
2565
2566 MANUALPAGE
2567
2568 A manpage(olsrd(8)) describing olsrd has been created. It is installed
2569 when using 'make install'.
2570
2571
2572 0.4.3 ---------------------------------------------------------------------
2573
2574 PLUGIN SUPPORT
2575
2576 Olsrd now supports runtime-loadable plugins! A couple of example plugins
2577 are located in the lib/ directory. Read the README files in the various
2578 plugin directories for more info. A directive to load plugins have been
2579 added to the configfile as well.
2580 Documentation of the plugin interface can be fount at http://www.olsr.org.
2581
2582 The plugin interface is designed to be extendable. But it should _always_
2583 be backwards compatible with the interface used in this release!
2584
2585 LINK-LAYER NOTIFICATION
2586
2587 Some preliminary link-layer notification code has been added. Link quality
2588 can be written to stdout if olsrd is started with the -llinfo switch.
2589 No action is currently taken based on this info. And info will only
2590 be retrieved from the interface named "eth1".
2591 This code is not usable for users as of yet!
2592
2593 MPR UPDATES
2594
2595 Neighbors with willingness set to WILL_ALWAYS is now always added. The
2596 MPR selection is optimized as described in RFC3626 section 8.3.1
2597 point 5.
2598
2599 MPR BUGS
2600
2601 There was a couple of bugs in the MPR selection code. All fixed.
2602
2603 LINUX 2.6 BUG
2604
2605 Users could not run olsrd on multiple interfaces using the Linux 2.6 kernel
2606 series. This is now fixed.
2607
2608 MINOR BUGS
2609
2610 One small bug in link hysteresis initialization and one in HNA route
2611 deletion.
2612
2613 MESSAGE-SEQUENCENUMBER INCOMPLIANCE
2614
2615 Message-seqnos was implemented on a pr. messagetype and pr. interface
2616 basis. This is not RFC3626 compliant and has been updates. All messages
2617 and interfaces now uses a global seuencenumber.
2618
2619 RANDOM SEQUENCENUMBERS
2620
2621 Sequencenumbers are now initialized using a random value.
2622
2623 DAEMON MODE
2624
2625 Fixes for running olsrd in daemon mode(debug 0).
2626
2627 OPTIMIZATIONS
2628
2629 Optimizations based on profiling implemented.
2630
2631 SANITATION
2632
2633 Message size is checked for every message before passing it to the
2634 appropriate message parsing function. If the size is bigger than the
2635 remaining size of the olsr packet then the message is discarded.
2636
2637 GUI FRONT-END
2638
2639 Some minor modifications done to the gui.
2640
2641 INTERNAL CHANGES
2642
2643 Lots of changes in handling of registration and unregistration of
2644 scheduler, socketparser, parser and local hna set.
2645 Some restructuring and movement of functions.
2646
2647
2648 0.4.2 ---------------------------------------------------------------------
2649
2650 No public release
2651
2652 0.4.1 ---------------------------------------------------------------------
2653
2654 No public release
2655
2656 0.4.0 ---------------------------------------------------------------------
2657
2658 LINK HYSTERESIS
2659
2660 Link hysteresis as described in the RFC added.
2661
2662 TC REDUNDANCY
2663
2664 TC redundancy as described in the RFC added
2665
2666 MPR REDUNDANCY
2667
2668 MPR redundancy as described in the RFC added
2669
2670 SCHEDULER REWRITE
2671
2672 The scheduler has been rewritten to register scheduled
2673 events(function pointers) dynamically.
2674
2675 PARSER REWRITE
2676
2677 The parser has been rewritten to register parse functions
2678 on a pr. messagetype dynamically
2679
2680 MALLOC WRAPPER
2681
2682 A wrapper for the malloc(3) syscal has been introduced.
2683 olsr_malloc(size_t, const char *) should ALWAYS be used.
2684
2685 CODE RESTRUCTURING
2686
2687 Lots of restructuring in headerfiles.
2688 Linux spesific code moved to subdirectory linux/
2689 FreeBSD code to be put in freebsd/
2690 LOTS of code restructured due to the rexrite of the scheduler
2691 and parser.
2692
2693 MPR CALCULATION
2694
2695 Optimizing the MPR set as suggested in the RFC section
2696 8.3.1 point 5 added.
2697
2698 BUGFIXES
2699
2700 Some bugs in MPR selection fixed.
2701
2702
2703 0.3.8 ---------------------------------------------------------------------
2704
2705 CODE REWRITES
2706
2707 HNA code completely rewritten!
2708 The old code was really bad! Now it is much cleaner implemented and
2709 should work fine.
2710 One- and two-hop neighbor list structures rewritten. They now use
2711 the same hashed double-linked lists as the rest of the information
2712 sets use.
2713
2714 CODE RESTRUCTURING
2715
2716 Some code restructuring which resulted in the new files: timer.h,
2717 mantissa.c, mantissa.h, hashing.c, hashing.h, linux/net.c
2718 linux/net.h, linux/kernel_routes.c, linux/kernel_routes.h and some
2719 renamed files
2720
2721 BUG FIXES
2722
2723 The bug causing errormessages on exit is fixed.
2724 The bug that caused initial HNA routes in the GUI to display a hopcount
2725 of 0 fixed.
2726 IPv6 HNA netmasks were all added as /128. It's fixed now.
2727
2728 IPv6
2729
2730 Turns out sitelocal address had to be preferred to avoid IPv6 header
2731 messing up link-sensing. Bug fixed
2732
2733
2734 0.3.7 ---------------------------------------------------------------------
2735
2736 CODE REWRITES
2737
2738 The entire TC set and MPR selector set code rewritten. Hashing and
2739 double linked lists added to the MID code.
2740 Lots of HNA code has been rewritten as well.
2741
2742 HNA bugfix
2743
2744 When a node lost connectivity to a HNA GW all HNA entries to that gw
2745 was deleted. This has been fixed - and HNA entries only gets deleted
2746 on timeout now.
2747 Other HNA bugs have been fixed as well. But the whole HNA implementation
2748 needs a rewrite!
2749
2750 Holdingtime BUGfix
2751
2752 There was a bug that caused holdingtime not to be properly recalculated
2753 when using non-default emission intervals.
2754
2755 Forwarding and symmetric neighbors
2756
2757 Seems I had misread the RFC on what a 1-hop symmetric neighbor is.
2758 Now the link-set is checked when a check for a symmetric neighbor
2759 is done. Not the 1 hop neighbor set as it used to be. This way
2760 the hack when receiving MID messages could be removed.
2761
2762 IPv6
2763
2764 Global addresses are now preferred. Sitelocal addresses are only used
2765 if no global addresses are found. There have been problems where
2766 the address set in the IP header of IPv6 packets do not match the
2767 address chosen by OLSR.
2768
2769 GUI - 0.2.5
2770
2771 The GUI is finally updated! It can now handle piggybacked messages
2772 and link sensing HELLO message format.
2773
2774
2775 0.3.6 ---------------------------------------------------------------------
2776
2777 HNA support using IPv6
2778
2779 HNA now works using IPv6 as well! Just add the network address and
2780 prefix in the HNA6 section in the configfile. The IPv6 HNA packets differ
2781 some from the IPv4 as they don't send the netmask but the prefix.
2782
2783
2784 NEW FILENAME FOR THE BINARY AND CONFIG FILE
2785
2786 They are now called olsrd and olsrd.conf. I figured I'd use the olsrd
2787 name before somebody else started using it ;-)
2788
2789
2790 Config file
2791
2792 New options: DEBUG, HNA6 and IPC-CONNECT added to config file.
2793
2794
2795 Output
2796
2797 A printf-wrapper has been introduced - debug level output handling
2798 is much more uniform now.
2799 The daemon should run fine in detached mode now(DEBUG 0)
2800
2801 GUI front-end
2802
2803 The GUI front-end can now connect and disconnect at any time while the
2804 daemon is running, if started using the -ipc switch or with IPC set to
2805 'yes' in the configfile.
2806
2807
2808 BUGS
2809
2810 A small HNA bug fixed.
2811
2812
2813 0.3.5 ---------------------------------------------------------------------
2814
2815 Forwarding jitter
2816
2817 Forwarding jitter added. Messages are piggybacked if they arrive(and are to
2818 be forwarded) while there is data to be forwarded buffered.
2819 Added some bugfixes to support parsing of piggybacked messages as well.
2820
2821 Route calculation
2822
2823 Fixed route calculation so that 2 hop neighbors are added. This smooths
2824 changes from 1 hop to 2 hop neighbor out. The old way one had to wait for
2825 a TC before the 2 hop neighbors were added.
2826
2827 2 hop neighbor set
2828
2829 All neighbors received in HELLO messages are added to the two hop
2830 neighborhood. This helps smoothing out the 1-to-2 hop transition as well.
2831
2832 MID calculation
2833
2834 MID calculation had to be updated due to the registering of two hop neighbors
2835 that are already one hop neighbors. They should not be considered when calculating
2836 two hop coverage.
2837
2838 Optimizations
2839
2840 Deletion of possible one hop neighbors registered on non main-addresses when
2841 first registering MID info from a node removed. This can not occur due
2842 to the fact that registering of neighbor nodes are done on main addresses
2843 from link-sensing
2844 Option to not forward messages on wired links on which they arrived removed.
2845 This is no longer usable to any degree when adding support for piggybacking
2846 of forwarded messages is to be implemented.
2847
2848 Cleanups
2849
2850 Some unused parameters and commandline options were removed.
2851
2852
2853
2854 0.3.3 ---------------------------------------------------------------------
2855
2856 TC MESSAGEING
2857
2858 Added sending of empty TC messages if all MPR selectors are removed. Empty
2859 TC messages are sent for a TC_HOLD_TIME period as described in section
2860 9.3 in the RFC.
2861
2862 HNA
2863
2864 Fixed HNA route calculations for IPv6. I forgot to upgrade this in 0.3.2
2865
2866 OPTIONS
2867
2868 -hnaint and -midint command line optionas added to set the interval
2869 of HNA and MID generation.
2870
2871 FORWARDING
2872
2873 As an optimization messages have not been forwarded on the received interface
2874 if this is registered as a non-WLAN interface. This causes problems for
2875 people using Ethernet-to-WLAN adapters. This optimization is now turned
2876 off by default. It can be activated using the -nofwlan option.
2877
2878 BUGS
2879
2880 THERE ARE SOME NASTY BUGS IN 0.3.2!
2881 Fixed a bug that caused 2 hop neighbors not to time out.
2882 Fixed a bug that caused a 1 hop neighbor timeout not to recalculate
2883 the routing table.
2884 Fixed a small memleak in the MID set
2885 Fixed some smaller bugs.
2886
2887 IPv6 functioning is not well tested in this release.
2888
2889 0.3.2 ---------------------------------------------------------------------
2890
2891 HNA
2892
2893 Updated HNA to be RFC compliant. This means that all received HNA tuples
2894 are registered and only the subset of unique entries(net/netmask) with
2895 the smallest hopcount is inserted into the routing table.
2896
2897 Config file
2898
2899 User can specify configfile name using the -f switch.
2900
2901 Bugs
2902
2903 Fixed a link-sensing bug that caused problems when using MID nodes.
2904
2905 0.3.1 ---------------------------------------------------------------------
2906
2907 MPR calculation
2908
2909 MPR calculation is now based on the willingness announced by nodes.
2910
2911 Neighbor set
2912
2913 The neighbor set does not have timeouts on entries any more. Creation
2914 and deletion of neighbor entries is done from the link-set as suggested
2915 in the RFC.
2916
2917 Cleanups
2918
2919 Gotten rid of a lot of code that became more or less obsolete due to
2920 all the changes introduced in 0.3.0.
2921
2922 Bugs
2923
2924 Fixed a nasty bug concerning the sequence numbering of TC packets.
2925 Fixed some bugs regarding MPR calculation - and probably introduced
2926 a whole new species when implementing the willingness-based calculation ;-)
2927
2928
2929 0.3.0 ---------------------------------------------------------------------
2930
2931 Due to the extensive amount of updates this release is versioned 0.3.0
2932
2933 Duplicate table and forwarding
2934
2935 The duplicate table functionality is totally rewritten in 100% RFC
2936 compliance. The forward algorithm specified in the RFC is implemented
2937 this meant rewriting much of the packet processing code. The daemon
2938 also forwards unknown packettypes now.
2939
2940 Link sensing and neighbor processing
2941
2942 Link sensing and neighbor processing was done in the same operation in the
2943 old code. Link sensing is now a mechanism of its own which is 100% RFC
2944 compliant. Neighbor processing and HELLO generation has been partly
2945 rewritten to be RFC compliant. Neighbors are now registered as either
2946 SYN or NOT_SYM. The NOT_NEIGH, SYM_NEIGH and MPR_NEIGH values are only
2947 used when building HELLO messages. Links are in one of the following states:
2948 UNSPEC_LINK, ASYM_LINK or SYM_LINK.
2949 HELLO messages now advertise link status of neighbors on the interface
2950 the message is transmitted.
2951
2952 Willingness
2953
2954 A node now dynamically calculates willingness based on powersource and
2955 possibly battery power. If the node is AC powered it announces a willingness
2956 of 6. If batterypowered the willingness is calculated as:
2957 P / 26
2958 Where P is percentage of power left.
2959
2960 Configuration file
2961
2962 The daemon now tries to read its configuration from the file /etc/uolsrd.conf
2963 A "standard" configuration file is installed when doing 'make install'.
2964 This file should be edited to fit your needs.
2965 Command-line options can still be used to override the configuration form
2966 the file(ore if no config file is present).
2967 The -f switch can also be used to specify a configuration file.
2968
2969 Willingness
2970
2971 If AdvancedPowerManagemant(APM) is supported on your system the willingness
2972 of the node is dynamically calculated based upon the powerstatus of the node.
2973 MPR calculation based upon willingness is not done as of yet.
2974
2975 TC ANSN
2976
2977 A bugs in the TC processing fixed.
2978
2979 HNA
2980
2981 Some serious HNA bugs fixed. These bugs caused a node to always choos the
2982 gateway with the larges hopcout :) More seriously - a bug caused looping
2983 of HNA messages in certain scenarios.
2984
2985 Package sequence numbers
2986
2987 These were added. Not much use as of now - but they're there(as specified
2988 in the RFC).
2989
2990 Broadcast address
2991
2992 Users can now specify the broadcast address to use. Useful if one wishes to
2993 use the 255.255.255.255 broadcast.
2994
2995
2996
2997 0.2.5 ---------------------------------------------------------------------
2998
2999 Htime and Vtime
3000
3001 Htime and Vtime processing and handling added. Holding times used to be
3002 a static value for all nodes. Now every node can signal its vlidity time
3003 to others.
3004 To achieve this mantissa/exponent calculation functionality was added.
3005 Messages now include Vtime(and Htime in HELLO) values in mantissa/exponent
3006 format instead of just zero. These values are as stated above, used as holding
3007 time for nodes.
3008 the GUI should be upgraded as well...
3009
3010 Jitter
3011
3012 The use of jitter in message generation intervals vere fixed.
3013
3014
3015 0.2.4 ---------------------------------------------------------------------
3016
3017 Seqno bugs
3018
3019 Some bugs concerning sequence numbers in HELLO and MID message handling
3020 was fixed. Newly registered nodes in the neighbor and MID sets were
3021 initialized with a seqno of 0. When using a "wraparound" sequencenumber
3022 check(as defined in olsr_protocol.h) this can produce errors if a new
3023 node joins a network where existing nodes has seqnos >0x00FF.
3024
3025 IPv6 related bugs
3026
3027 Some checks and copying of node addresses where done using sizeof(u_olsr32_t)
3028 which is 32 bits. This caused only the 32 firs bits of IPv6 addresses to
3029 be copied and checked.