redhat: completely rewritten RPM spec file and generation
[olsrd.git] / CHANGELOG
1 0.9.7 -------------------------------------------------------------------
2
3 Christoph Loesch (1):
4       interfaces: add 'silent' mode
5
6 Ferry Huberts (52):
7       Update version after branch of v0.9.6
8       Merge branch 'release-0.9.6'
9       info: java: upgrade gradle wrapper
10       info: automatically detect whether the reply should have HTTP headers
11       Merge branch 'release-0.9.6'
12       Merge branch 'release-0.9.6'
13       info: java: gradle: upgrade wrapper
14       info: java: update workspace
15       info: java: update jackson bundles
16       info: java: gradle: upgrade wrapper
17       info: java: gradle: upgrade wrapper
18       pud: only check gpsd status; no clear of info on bad fix or invalid signal
19       link_set: fix typo in f8d4e24
20       Merge branch 'release-0.9.6'
21       Update version after release of v0.9.6.2
22       Merge branch 'release-0.9.6'
23       info: java: upgrade gradle wrapper
24       Merge pull request #28 from stspdotname/missing-olsr-random-include
25       Merge pull request #29 from stspdotname/detect-wifi-on-bsd
26       Merge pull request #30 from stspdotname/route-deletion-needs-netmask
27       Merge pull request #26 from neeels/segfault_cleanup
28       Merge pull request #25 from neeels/master
29       Merge pull request #34 from stspdotname/rtm-delete-flags
30       Merge pull request #36 from stspdotname/rtm-delete-flags-v6
31       Merge pull request #35 from stspdotname/icmp6-rediraccept
32       Merge pull request #31 from stspdotname/add-ipv6-routes-correctly
33       info: java: fix tests by letting mock bind to localhost
34       Merge pull request #37 from stspdotname/bcast-addr-len-and-type
35       Merge pull request #32 from stspdotname/fix-sendto-ipv4
36       info: java: upgrade workspace
37       info: java: upgrade gradle wrapper
38       info: java: upgrade gradle wrapper
39       info: java: use Java 1.8
40       hashing: fix implicit fall-through warning on gcc 7
41       all: link with -lm where <math.h> is included.
42       nameservice: fix potential null pointer dereference warnings on gcc 7
43       olsr_spf: fix potential null pointer dereference warnings on gcc 7
44       src: fix format truncation errors on gcc 7
45       process_routes: fix potential null pointer dereference warnings on gcc 7
46       info: java: upgrade gradle wrapper
47       info: fix the previous commit: windows doesn't support MSG_DONTWAIT
48       Merge pull request #49 from wiedi/osx-clock-10.12
49       info.java: remove date and hosts fields.
50       info: java: upgrade gradle wrapper
51       all: ensure timers are set to NULL after calling olsr_stop_timer
52       httpinfo: ensure timers are set to NULL after calling olsr_stop_timer
53       dyn_gw: fix GCC 8 compilation problems
54       secure: fix GCC 8 compilation problems
55       poprouting: format code
56       poprouting: fix memory leak in isCommand
57       Branch v0.9.7
58       Release v0.9.7
59
60 Gabriel (1):
61       Poprouting plugin for OLSRd (#53)
62
63 Henning Rogge (1):
64       info: do not block when sending data
65
66 Neels Hofmeyr (2):
67       fix segfault when printing "You must be root"
68       fix: don't attempt to cleanup uninitialized multiGwTunnels
69
70 Reiner Herrmann (2):
71       all: make sure all make filelists are sorted
72       all: remove build_host and build_date to enable reproducible building
73
74 Sebastian Wiedenroth (1):
75       mach: clock_gettime and friends appeared in Mac OSX 10.12
76
77 Stefan Sperling (9):
78       Add a missing include for olsr_random() on BSD.
79       Implement a simpler way of detecting wifi interfaces on BSD.
80       Fix route deletion on BSD.
81       Use correct RTM flags while deleting a route on BSD.
82       Do not toggle net.inet6.icmp6.rediraccept on OpenBSD.
83       Use correct RTM flags while deleting an IPv6 route on BSD.
84       Fix adding IPv6 routes on BSD.
85       Fix initialization of a struct sockaddr_in.
86       Fix olsr_sendto() for IPv4 on BSD.
87
88 iwanovich (1):
89       routing: remove rt_entry.rt_best pointer when rt_path is deleted (#61)
90
91 pocki80 (1):
92       correctly report silent mode on olsrd startup summary
93
94 0.9.6.2 -------------------------------------------------------------------
95
96 Ferry Huberts (2):
97       link_set: fix typo in f8d4e24
98       Release v0.9.6.2
99
100 Henning Rogge (1):
101       Update version after release of v0.9.6.1
102
103 0.9.6.1 -------------------------------------------------------------------
104
105 Ferry Huberts (6):
106       changelog: fixup
107       info: java: upgrade gradle wrapper
108       info: automatically detect whether the reply should have HTTP headers
109       lq_packet: make the hello link order a define
110       hello reception: use link status ordering
111       hello reception: only remove UNSPEC duplicates
112
113 Henning Rogge (2):
114       Update version after release of v0.9.6
115       Release v0.9.6.1
116
117 Iwan G. Flameling (2):
118       lq_packet: do not report duplicate neighbours in HELLO messages
119       hello reception: remove duplicate neighbors
120
121 0.9.6 -------------------------------------------------------------------
122
123 * The versions of the following plugins have changed:
124   - jsoninfo    :   0.0 -->   1.1
125   - nameservice :   0.3 -->   0.4
126   - netjson     :   1.0 -->   1.1
127   - pud         : 2.0.0 --> 3.0.0 (including its extra libraries)
128   - txtinfo     :   0.1 -->   1.1
129
130 * All info plugins (jsoninfo, netjson and txtinfo) now support a number of
131   request prefixes:
132   - /http : forces output WITH    http headers, temporarily overriding the
133             configured "httpheaders" value.
134   - /plain: forces output WITHOUT http headers, temporarily overriding the
135             configured "httpheaders" value.
136
137   These prefixes have to be at the start of the request string, can occur
138   only there, and can occur only once.
139
140 Bastian Bittorf (1):
141       logging: show interface name during blocked socket error
142
143 Ferry Huberts (79):
144       Update version after branch of v0.9.5
145       changelog: adjust to put notes on top
146       release: adjust script to create multiple tar files
147       Merge branch 'release-0.9.5'
148       mach: add wrapper for clock_gettime
149       sgw: fix interface monitor for single-sgw mode
150       Merge branch 'release-0.9.5'
151       txtinfo: do not use http headers by default
152       info: fix json Content-Type header
153       Merge branch 'release-0.9.5'
154       main: improve EXECINFO include handling a bit
155       Merge branch 'release-0.9.5'
156       main: blacklist UCLIBC for OLSR_HAVE_EXECINFO_H
157       Merge branch 'release-0.9.5'
158       info: java: upgrade gradle wrapper
159       info: ensure the request is initially empty
160       info: rework HTTP request detection and request sanitation
161       info: send everything on empty requests
162       info: drain the request when there are too many requests in flight
163       info: trivial comment fix
164       info: trival debug output fix
165       info: improve readability of the 'empty request' check
166       info: protect stripEOLs against invalid input and zero length
167       info: protect skipMultipleSlashes against invalid input and zero length
168       info: protect skipLeadingWhitespace against invalid input and zero length
169       info: protect stripTrailingSlashes against invalid input and zero length
170       info: protect cutAtFirstEOL against invalid input and zero length
171       info: rename stripEOLs to stripTrailingWhitespace
172       info: be explicit about adding headers
173       info: fix a comment and add a comment
174       info: read the request as early as possible
175       info: sanitise the request right after it's been received
176       info: introduce command prefixes '/http' and '/plain'
177       conf: clear allocated default config before filling it.
178       conf: ensure the correct configuration file is stored in the configuration
179       conf: calculate the checksum over the effective configuration
180       main: save argc and argv for later use
181       jsoninfo: always output the configuration checksum
182       jsoninfo: add cli arguments to the config object
183       info: fix levels of a few debug messages
184       info: move a comment
185       info: add a comment about the size of the receive buffer
186       info: fix drain_request to not block
187       info: allow a small delay between connection accept and request arrival
188       info: do not block when receiving the request
189       info: return 'REQUEST TIMEOUT' when receiving the request did not work
190       info: release changed java OSGi bundles
191       info: add sanitation of the configuration
192       info: add request timeout configuration parameter
193       changelog: add a note about the '/http' and '/plain' request prefixes
194       info: update java dependency bundles
195       doc: upgrade doxygen configuration
196       doc: minor adjustment of the makefile
197       doc: fix warnings
198       doc: move pdf generation into new doc-pdf make target
199       gui: clean-ups
200       make: remove -Wmissing-include-dirs
201       files: get rid of net-tools usage
202       files: update configuration generation script
203       Merge pull request #12 from booo/sighup-interval
204       Merge pull request #14 from bittorf/master
205       cfgparser: use correct SHA256_DIGEST_LENGTH
206       cfgparser: pull in openssl sha256 code to avoid linking to it
207       cfgparser: use superfasthash for the configuration checksum
208       logging: work around bogus Coverity warning
209       Merge pull request #16 from SvenRoederer/rename_sighup-interval
210       Merge pull request #18 from SvenRoederer/olsr-nameservice-version
211       nameservice: fix plugin versions
212       nameservice: fix typos of filewrite-interval plugin parameter
213       pud: bump version
214       jsoninfo: bump version
215       netjson: bump version
216       txtinfo: bump version
217       changelog: add a remark about updated plugin versions
218       lq_packet: change link status ordering in hello messages
219       Branch v0.9.6
220       changelog: minor layout fixes
221       release: minor improvements to the release script
222       release: insert changelog just before the marker of the previous release
223
224 Henning Rogge (2):
225       Update version after release of v0.9.5
226       Release v0.9.6
227
228 Philipp Borgers (1):
229       nameservice: add new sighup-interval parameter
230
231 Sebastian Wiedenroth (1):
232       fix timing issues on systems where RAND_MAX is not INT32_MAX
233
234 Sven Roederer (2):
235       nameservice: rename parameter "sighup_interval" to "filewrite_interval"
236       nameservice: bump version to 0.4
237
238 Thorsten Maerz (1):
239       make: strip CC
240
241 0.9.5 -------------------------------------------------------------------
242
243 Note: The txtinfo and jsoninfo plugins were 'merged' to use a common
244       codebase for receiving requests and dispatching replies. Also,
245       these plugins were subjected to review and fixes. As a result:
246       - request handling has become much stricter, e.g. a txtinfo
247         request '/links' will no longer work since the correct request is
248         (and has always been) '/lin'.
249       - some fixes change the format and/or content of txtinfo and/or
250         jsoninfo output. An example is the txtinfo output of the request
251         '/mid' when 'vtime' is enabled on txtinfo; this has been broken
252         since the end of 2009 (c555a44).
253       - invalid requests will return HTTP error status code
254         "Not Found" (404) when HTTP headers are enabled, and report
255         an error in the output when they are not enabled.
256       - requests without output will return HTTP error status code
257         "No Content" (204) when HTTP headers are enabled, and report
258         an error in the output when they are not enabled.
259
260       It is VERY strongly advised to check your scripts and applications
261       interfacing with olsrd txtinfo and/or jsoninfo before switching
262       to this version of olsrd.
263
264
265 Ferry Huberts (824):
266       Update version after branch of v0.9.0
267       Merge branch 'release-0.9.0'
268       neighbors: signal link changes when deleting a neighbor
269       Merge branch 'release-0.6.8'
270       Merge branch 'release-0.9.0'
271       conf: lock_file is derived config.
272       jsoninfo: fix a crash when there are no gateways
273       txtinfo: fix a crash when there are no gateways
274       Merge branch 'release-0.9.0'
275       Merge branch 'release-0.9.0'
276       Merge branch 'release-0.9.0'
277       files: regenerate the generated default full configuration
278       Fixup CHANGELOG file
279       Merge branch 'release-0.6.8'
280       Merge branch 'release-0.9.0'
281       jsoninfo: fix a Coverity warning
282       txtinfo: similar fix as the previous commit
283       make: add NOSTRIP option
284       files: minor improvement to config file generation script
285       sgw: add SmartGatewayMaxCostMaxEtx configuration setting
286       jsoninfo: fix a Coverity warning
287       txtinfo: similar fix as the previous commit
288       Merge branch 'release-0.9.0'
289       files: regenerate the generated default full configuration
290       files: minor improvement to config file generation script
291       sgw: add SmartGatewayMaxCostMaxEtx configuration setting
292       Merge branch 'release-0.9.0'
293       egressFile: use a define for the line length
294       pud: clear the cached timestamp when the position file can't be read
295       pud: increase the resolution of the cached timestamp of the position file
296       pud: minor fix in the function reading the position file
297       pud: cache the correct timestamp
298       sgwdynspeed: clear the cached timestamp when the speed file can't be read
299       sgwdynspeed: increase the resolution of the cached timestamp
300       sgwdynspeed: properly close the speed file
301       sgwdynspeed: cache the correct timestamp
302       sgw: cache timestamp of egress file earlier
303       sgw: cache the correct timestamp
304       sgw: remove unneeded check against 0 for cached timestamp
305       sgw: properly close the egress file
306       sgw: do not clear egress data in the read race
307       sgw: properly open and stat the egress file
308       Merge branch 'release-0.9.0'
309       sgwdynspeed: let the out block close the file
310       sgw: fix EOL stripping of the egress file
311       Merge branch 'release-0.9.0'
312       quagga: zero-out the extra allocated buffer size
313       conf: clean up interface names on config file read failure
314       cookie: fix loop invariant assert and exit on cookie exhaustion
315       quagga: zero-out the extra allocated buffer size
316       quagga: restore socket status on error paths in zclient_read function
317       Merge branch 'release-0.9.0'
318       sgw: do not program routes on interfaces that are not up
319       sgw: policy script: fix error reports when too many arguments
320       sgw: policy script: fix some comparisons
321       sgw: policy script: move some declarations
322       sgw: policy script: minor improvement
323       sgw: policy script: fix cosmetic rebase  issue of the previous commit
324       cfg: minor fixup to printing of SmartGatewayPolicyRoutingScript
325       dyn_gw: fix a mistake in 36111ca
326       cfg: fix printing of a few <not set> settings
327       sgw: add SmartGatewayInstanceId setting
328       sgw: policy script: add the instance id to the script
329       sgw: policy script: log invocations and add cleanup mode
330       sgw: invoke the cleanup mode of the policy script on start and stop
331       jsoninfo: also output SmartGatewayInstanceId
332       olsr_exit: protect against a NULL olsr_cnf
333       olsr_exit: protect against a NULL message
334       olsr_exit: also flush stderr on exit
335       olsr_exit: clarify why the explicit exit is needed
336       olsr: make sure olsr_cnf is initialised
337       mdns: update a comment about exit
338       p2pd: update a comment about exit
339       dyngw: call olsr_exit() instead of exit()
340       httpinfo: call olsr_exit() instead of exit()
341       pgraph: call olsr_exit() instead of exit()
342       secure: call olsr_exit() instead of exit()
343       linux: call olsr_exit() instead of exit()
344       unix: call olsr_exit() instead of exit()
345       win32: call olsr_exit() instead of exit()
346       olsr: call olsr_exit() instead of exit()
347       plugin_loader: call olsr_exit() instead of exit()
348       quagga: clean up invocation of olsr_exit
349       build_msg: clean up invocation of olsr_exit
350       cookie: clean up invocation of olsr_exit
351       interfaces: clean up invocation of olsr_exit
352       lq_plugin: clean up invocation of olsr_exit
353       main: clean up invocation of olsr_exit
354       olsr: clean up invocation of olsr_exit
355       parser: clean up invocation of olsr_exit
356       quagga: clean up olsr_exit messages
357       linux: clean up olsr_exit messages
358       ipc_frontend: clean up olsr_exit messages
359       main: clean up olsr_exit messages
360       httpinfo: remove unused copyright_string
361       conf: remove unused copyright_string
362       main: remove unused copyright_string
363       main: remove pointless type size asserts
364       main: make sure all variables are initialised
365       main: move some initialisation to the beginning of main
366       main: always store argv
367       random: remove pointless olsr_init_random, only invoked in main
368       conf: fix determining the lock file, mirror what main does
369       main: no need to re-determine lock_file; already setup by set_derived_cnf
370       main: use olsr_cnf->lock_file directly
371       lock_file: move olsrd_get_default_lockfile into its own file
372       main: move olsr_create_lock_file into its own file
373       lock_file: add olsr_remove_lock_file function
374       main: remove the lock file in olsr_shutdown
375       main: move printing of version into a function
376       main: move loading the config into the loadConfig function
377       main: minor improvements to loadConfig
378       main: initialise timers after processing the configuration
379       main: process olsrd options in a block
380       main: minor improvements
381       conf: remove an unneeded printf
382       conf: move loadConfig function here from main
383       pid: move pid file handling into its own file
384       main: move lock file creation into the lock_file file
385       main: move conf_file_name variable into cfgparser
386       main: limit the scope of 2 variables to where they are needed
387       main: invoke olsr_exit at the end of main
388       main: minor update
389       main: initialise IPC a bit earlier
390       main: call olsr_exit when writing the PID file fails
391       main: minor update
392       link_set: make sure link_changes is initialised
393       main: minor update
394       main: call olsr_exit in olsr_reconfigure
395       main: track the heartbeat timer
396       main: stop the heartbeat timer during shutdown
397       pid_file: add removePidFile function
398       log: add olsr_closelog function
399       main: close the log in olsr_shutdown
400       main: stop the scheduler in olsr_shutdown
401       main: move CLI related function into their own file
402       main: move some functions around
403       lock_file: explicitly ignore failure of file removal
404       conf: avoid memory leaks during parsing
405       conf: make sure debug_handle is initialised
406       conf: ensure all config fields are explicitly initialised
407       conf: add ip_prefix_list_clear function
408       conf: olsrd_free_cnf: set pointers back to NULL after freeing
409       conf: olsrd_free_cnf: refactor a bit to use the lists directly
410       conf: olsrd_free_cnf: reorder a bit
411       conf: olsrd_free_cnf: free everything
412       conf: do not leak the configuration when freeing it
413       conf: initialise sgw uplink & downlink before setting them
414       main: open syslog right at the start
415       main: minor update
416       sgw: only select an olsr or egress interface when it is up
417       jsoninfo: sgw field in /sgw response is not an array
418       jsoninfo: sgw: simplify prefix output
419       jsoninfo: sgw: show tableNr, ruleNr and bypassRuleNr too
420       jsoninfo: sgw: show entries without tc too
421       jsoninfo: sgw: minor simplification reducing memory usage
422       txtinfo: sgw: show entries without tc too
423       txtinfo: sgw: line-up to jsoninfo
424       txtinfo: sgw: do not access uninitialised memory
425       txtinfo: sgw: print the prefix length for IPv6
426       txtinfo: format code
427       txtinfo: use the same c-basic-offset: 2 as jsoninfo
428       txtinfo: simplify an ifdef
429       txtinfo: simplify some string comparisons
430       txtinfo: simplify some send_what checks
431       txtinfo: use a define for the plugin name
432       txtinfo: rename some functions
433       txtinfo: use defines for some variables
434       txtinfo: use a define to rename TXTINFO_ALLOW_LOCALHOST
435       txtinfo: rename some SIW_x flags
436       txtinfo: move ipc_print_mid function up a bit
437       txtinfo: move ipc_print_gateways function up a bit
438       txtinfo: move ipc_print_version function up a bit
439       txtinfo: rename txtinfo_write_data function
440       txtinfo: use the plugin name in a malloc call
441       txtinfo: re-order the sent information
442       txtinfo: simplify some comparisons
443       txtinfo: add httpheaders configuration parameter
444       txtinfo: http headers must use \r\n line endings
445       txtinfo: use HTTP/1.1
446       txtinfo: use a bigger (2 CPU pages) initial buffer
447       txtinfo: renumber SIW_x defines and put them in 'groups'
448       txtinfo: the configuration is a special case
449       txtinfo: send everything on an unknown option
450       txtinfo: some more formatting
451       txtinfo: remove superfluous forward declarations
452       txtinfo: expand SIW_RUNTIME_ALL to include all runtime information
453       txtinfo: remove personal copyrights, just check the git log
454       jsoninfo: use a define for the plugin name
455       jsoninfo: use defines for some variables
456       jsoninfo: use a define to rename TXTINFO_ALLOW_LOCALHOST
457       jsoninfo: use the set_plugin_boolean function
458       jsoninfo: initialise outbuffer_count
459       jsoninfo: update some comments
460       jsoninfo: move some functions around
461       jsoninfo: use the plugin name in a malloc call
462       jsoninfo: use a smaller (2 CPU pages) initial buffer
463       jsoninfo: limit the number of in-flight connection to 3, like txtinfo
464       jsoninfo: rename a function
465       jsoninfo: more formatting
466       jsoninfo: fix content type of http headers for /olsr.conf
467       jsoninfo: remove personal copyrights, just check the git log
468       jsoninfo: move some variables around
469       jsoninfo: move json support functions into their own file
470       txtinfo: fixup the Content-Type http header
471       jsoninfo: ensure date in http header is in GMT, as advertised
472       jsoninfo: fixup the Server http header
473       jsoninfo: fixup the Connection http header
474       jsoninfo: fixup the Content-Type http header
475       jsoninfo: fixup the Content-Length http header
476       txtinfo: remove a pointless assert
477       txtinfo: also send the (UTF-8) charset in the content type
478       txtinfo: avoid a memcpy: just move the abuf.buf pointer and clear abuf
479       jsoninfo: refactor generation of the headers
480       jsoninfo: also send the (UTF-8) charset in the content type
481       jsoninfo: avoid a memcpy: just move the abuf.buf pointer and clear abuf
482       jsoninfo: send http headers by default
483       txtinfo: bring over proper http header support from jsoninfo
484       olsr_exit: use EXIT_SUCCESS or EXIT_FAILURE exclusively
485       olsr_exit: fix some exit codes
486       exit: use EXIT_SUCCESS or EXIT_FAILURE exclusively
487       exit: fix some exit codes
488       txtinfo: undo output re-ordering of 4563faa
489       jsoninfo: use the same order as txtinfo
490       jsoninfo: remove an unused define
491       src: add some forgotten includes
492       txtinfo: use the same 'c-basic-offset: 2' as jsoninfo
493       txtinfo: treat the olsrd configuration differently
494       txtinfo: catch '/all' earlier when determining the action
495       txtinfo: send the information in the runtime and startup groups for '/all'
496       txtinfo: '/ver' and '/neighbours' are specials when determining the action
497       txtinfo: add (unsupported) commands '/config' and '/plugins'
498       txtinfo: add /runtime and /startup commands
499       jsoninfo: INADDR_LOOPBACK is in host format and the socket address is not
500       jsoninfo: fix PLUGIN_NAME that is reported on plugin init
501       jsoninfo: initialise uuidfile as well
502       jsoninfo: use standard set_plugin_string function for uuidfile parameter
503       jsoninfo: reorder some includes
504       jsoninfo: fix some indents
505       jsoninfo: add Freifunk neighbours special case, like txtinfo
506       txtinfo: move http header related functions into common code
507       jsoninfo: move http header related functions into common code
508       txtinfo: move determining the action into a separate function
509       jsoninfo: move determining the action into a separate function
510       txtinfo: add plugin_init hook
511       jsoninfo: add plugin_init hook
512       txtinfo: move ipc_print_* functions into a 'printers' unit
513       jsoninfo: move ipc_print_* functions into a 'printers' unit
514       txtinfo: use a table of function pointers in send_info
515       jsoninfo: use a table of function pointers in send_info
516       txtinfo: move SIW_x defines into common code
517       jsoninfo: move SIW_x defines into common code
518       txtinfo: wrap the outbuffer in a struct for easier usage
519       jsoninfo: wrap the outbuffer in a struct for easier usage
520       jsoninfo: only need to reset entry number for json output
521       txtinfo: determine the mime type via the functions table
522       jsoninfo: determine the mime type via the functions table
523       txtinfo: put the plugin init hook in the functions table
524       jsoninfo: put the plugin init hook in the functions table
525       txtinfo: put command parsing in the functions table
526       jsoninfo: put command parsing in the functions table
527       txtinfo: put output start/end in the functions table
528       jsoninfo: put output start/end in the functions table
529       txtinfo: convert INFO_ALLOW_LOCALHOST define into a plugin parameter
530       jsoninfo: convert INFO_ALLOW_LOCALHOST define into a plugin parameter
531       txtinfo: convert ACTIVATE_VTIME_TXTINFO into a plugin parameter
532       txtinfo: wrap generic info plugin configuration in a struct
533       jsoninfo: wrap generic info plugin configuration in a struct
534       info: merge jsoninfo and txtinfo common code
535       Makefile: add pseudo plugin info
536       txtinfo: move code from olsr_txtinfo into olsr_plugin
537       jsoninfo: move code from olsr_jsoninfo into olsr_plugin
538       info: code formatting
539       info: rename some http header function parameters
540       info: rename type printer_functions_t to info_plugin_functions_t
541       info: rename variable printer_functions to functions
542       txtinfo: rename variable printer_functions to functions
543       jsoninfo: rename variable printer_functions to functions
544       info: rename type outbuffer_t to info_plugin_outbuffer_t
545       info: do not export info_plugin_outbuffer_t, only used internally
546       info: rename header files recursive include guards
547       info: rename a http header function
548       info: update copyrights
549       jsoninfo: rename info_plugin_config to config
550       txtinfo: rename info_plugin_config to config
551       info: rename a function parameter
552       info: rename info_plugin_config to config
553       info: rename PLUGIN_NAME to name
554       info: rename a function
555       info: add some asserts
556       info: remove some comments
557       info: ensure all variables are correctly initialised and cleaned up
558       info: use a define for the info_plugin_config_t plugin parameters
559       jsoninfo: rename 'printers' unit
560       txtinfo: rename 'printers' unit
561       info: split out neighbors and 2hop printer functions
562       info: rename a function prototype
563       info: minor formatting fix
564       info: there can only be a single command, optimise determine_action
565       info: write_data: exit early if there is nothing to send
566       info: write_data: do not add invalid sockets to the FD set
567       info: write_data: add a comment
568       info: write_data: properly clean up an output buffer
569       info: write_data: do not consider an invalid socket for send
570       info: write_data: use a safer 'close the socket' condition
571       info: write_data: do not move buffers around
572       info: ipc_action: rename 2 variables
573       info: ipc_action: move inet_ntop out of condition blocks
574       info: ipc_action: only use addr in debug builds
575       info: ipc_action: minor simplification
576       info: ipc_action: merge 2 if statements
577       info: ipc_action: make the IPv6 if statement like the IPv4 one
578       info: ipc_action: use a static sink buffer
579       info: ipc_action: use a safer 'oversize' comparison
580       info: ipc_action: minor fix
581       info: plugin_ipc_init: rename 2 variables
582       info: plugin_ipc_init: 'unelse' an else branch, the if already returns
583       info: plugin_ipc_init: close the ipc_socket on the error paths
584       info: plugin_ipc_init: fix a perror message
585       info: plugin_ipc_init: merge 2 if statements
586       info: http headers: add some asserts
587       info: check against the correct __linux__ define
588       txtinfo: rename header files recursive include guards
589       jsoninfo: rename header files recursive include guards
590       txtinfo: remove some unused includes
591       jsoninfo: remove some unused includes
592       info: add a function to initialise the config
593       txtinfo: use the function to initialise the config
594       jsoninfo: use the function to initialise the config
595       jsoninfo: helpers: minor simplification of abuf_json_new_indent
596       jsoninfo: helpers: firm up asserts on currentjsondepth
597       jsoninfo: helpers: use abuf_json_insert_comma
598       jsoninfo: helpers: output floats in full precision
599       jsoninfo: helpers: fix output format for int/long
600       jsoninfo: helpers: use an actual bool as parameter for abuf_json_boolean
601       jsoninfo: helpers: get_string_from_file ensures '\0' in the first byte
602       jsoninfo: helpers: use sizeof() for buffers
603       jsoninfo: helpers: use a double as parameter for abuf_json_float
604       jsoninfo: helpers: use sizeof() for uuid size
605       txtinfo: define the vtime extern in the proper place
606       jsoninfo: define the uuidfile extern in the proper place
607       info: minor reordering in send_info to reflect SIW_x order
608       info: simplify use of the functions table
609       txtinfo: simplify setup of the functions table
610       jsoninfo: simplify setup of the functions table
611       info: simplify use of the functions table further
612       info: simplify determine_action
613       info: update README
614       txtinfo: update README
615       jsoninfo: update README
616       info: remove unused nompr field from the configuration
617       txtinfo: minor improvements to /sgw printing
618       jsoninfo: helpers: add abuf_json_ip_address
619       jsoninfo: use the new ip address helper in /sgw printing
620       jsoninfo: minor improvement to /sgw printing
621       lq plugins: ensure string termination in lq_print_cost functions
622       jsoninfo: minor field reordering for /sgw
623       jsoninfo: add 'selectable' field to /sgw
624       jsoninfo: refactor /gateways
625       jsoninfo: move duplicated 'selectable' code into a function
626       txtinfo: simplify some code for /gat
627       txtinfo: minor formatting in /gat
628       txtinfo: also print gateways without a tc in /gat
629       txtinfo: do not use tabs in the /gat table, use fixed widths
630       txtinfo: minor scope change of 2 variable in /gat
631       jsoninfo: only show gateways of the request IP version in /gateways
632       jsoninfo: neighbors/2hop: show more information
633       files: clarify why jsoninfo is in the example configuration files
634       make: support building with clang (on Linux)
635       all: fixes resulting from building with clang
636       txtinfo: use strcmp instead of strstr
637       jsoninfo: use strcmp instead of strstr
638       jsoninfo: review of /hna
639       txtinfo: review of /hna
640       info: strip EOLs from the command
641       CHANGELOG: add a note about txtinfo and jsoninfo being merged
642       cookie: split assert to see which part actually triggers the assert
643       info: do not try to interpret the request when it is too large
644       info: fix processing of command per HTTP request
645       main: add & enable a new SEGV handler (Linux only)
646       Add a safety net in the segfault handler
647       ifnet: remove unused function set_flag
648       linux: netlink_process_link: simplify NULL comparisons and add some braces
649       linux: netlink_process_link: always determine the interface name
650       linux: netlink_process_link: always determine the oif
651       linux: netlink_process_link: simplify a comparison
652       linux: netlink_process_link: compute up status only once
653       linux: netlink_process_link: simplify an if/else
654       ifnet: add getInterfaceLinkState function
655       all: use the getInterfaceLinkState function
656       Fix 2 Coverity warnings
657       ifnet: ensure string termination
658       pud: nmealib: be less strict about satellite elevation
659       txtinfo: review /lin
660       txtinfo: review /nei and /2ho
661       txtinfo: review /hna
662       txtinfo: add forgotten 2hop  in function table
663       jsoninfo: add forgotten 2hop  in function table
664       jsoninfo: protect abuf_json_ip_address against a NULL IP address
665       jsoninfo: protect against a possible null-deref in ipc_print_neighbors
666       jsoninfo: also show the hops for /sgw, like for /gateways
667       jsoninfo: also show local HNAs, like txtinfo does
668       jsoninfo: review /links and show more information
669       jsoninfo: extract printing a gateway to a function
670       info: minor update to the README
671       info: fix send result error check in write_data
672       info: do not send buffers of zero length, wget can't handle that
673       info: introduce and use ARRAY_SIZE define
674       info: simplify send_info function
675       jsoninfo: simplify isCommand function
676       jsoninfo / sgw: isGwSelectable function is common, use it as such
677       jsoninfo: minor improvements
678       jsoninfo: be a bit more explicit in determine_mime_type
679       txtinfo: minor fixes to the README
680       txtinfo: simplify isCommand function
681       txinfo: fix 2-hop output
682       txtinfo: avoid a potential null deref in 2-hop
683       txtinfo: simplify printing links
684       txtinfo: avoid a potential null deref in links
685       txtinfo: simplify printing routes
686       txtinfo: avoid a potential null deref in routes
687       txtinfo: simplify printing topology
688       txtinfo: simplify printing HNAs
689       txtinfo: simplify and fix printing MIDs
690       txtinfo: clarify that using /gat and /sgw on non-Linux is an error
691       txtinfo: simplify gateways
692       txtinfo: simplify sgw
693       txtinfo: add an empty line after the version, like all other tables
694       txtinfo: simplify interfaces
695       changelog: update the warning about txtinfo/jsoninfo
696       main: musl does not support execinfo.h (the backtrace functions)
697       make: preserve debugging info when NOSTRIP is set
698       info: requests that are too large must set s to < 0
699       info: also handle empty requests
700       info: rename an HTTP status define
701       info: requesting / now is equivalent to /all
702       info: prepare for more HTTP status codes
703       info: add function to the function table to output an error
704       info: respond with "not found" (404) on invalid commands
705       info: respond with "no content" (204) on empty output
706       txtinfo: /config & /plugins are not implemented: return "not found" (404)
707       changelog: update for info/jsoninfo/txtinfo changes
708       make: add more recognised formats to the gcc-warnings script
709       make: need to load the OS specific makefile before evaluating WARNINGS
710       make: remove conditionals in WARNINGS section, no longer needed
711       make: sort warnings flags and make that section a bit easier to read
712       unix: fix GCC 6 warnings
713       link_set: fix GCC 6 warnings
714       sgw: fix GCC 6 warnings
715       parser: fix GCC 6 warnings
716       bmf: fix GCC 6 warnings
717       mdns: fix GCC 6 warnings
718       p2pd: fix GCC 6 warnings
719       pud: fix GCC 6 warnings
720       quagga: fix GCC 6 warnings
721       make: add new GCC 6 warning flags
722       scheduler: fix a typo
723       scheduler: mark timers for removal and only remove them in a cleanup walk
724       main: ensure all timers are stopped in shutdown
725       cfgparser: remove some unreachable code
726       scheduler: mark timers for removal and only remove them in a cleanup walk
727       main: ensure all timers are stopped in shutdown
728       scheduler: fix olsr_flush_timers to not hang
729       main: print the received signal name instead of the signal number
730       main: cleanup the gateways earlier on shutdown
731       scheduler: fix olsr_flush_timers to not hang
732       main: cleanup the gateways earlier on shutdown
733       txtinfo: output an error on unknown status codes too
734       txtinfo: move a function
735       jsoninfo: output an error on unknown status codes too
736       jsoninfo: re-arrange some imports
737       jsoninfo: all neighbour entries now have twoHopNeighborCount
738       jsoninfo: add hysteresis to /links
739       jsoninfo: add etx to /routes
740       jsoninfo: improve /topology, show more information
741       jsoninfo: improve /hna
742       info: add a comment about why info_plugin_outbuffer_t is there
743       info: try to send the response immediately
744       info: speed up sending pending responses
745       info: check for retry after trying to send
746       jsoninfo: remove some dead code
747       txtinfo: check INFO_HTTP_OK upon entry of the function
748       main: add noreturn attribute on olsr_segv_handler
749       make: improve clang support
750       make: do not add -Wcast-qual on Windows
751       make: move -Werror flag into the normal list of warnings
752       make: fix compiler flags probing
753       gui: fix a few clang warnings
754       jsoninfo: improve /mid and add validityTime of mid entry itself
755       jsoninfo: improve printing a gateway entry, and add expiry/cleanup timers
756       jsoninfo: improve the ipc_print_gateways_ipvx function
757       jsoninfo: improve the skip condition in ipc_print_gateways_ipvx
758       builddata: generate more build information
759       jsoninfo: show more information in /version
760       config: always lower-case plugin parameter names
761       bmf: ignore case on the BmfMechanism plugin parameter value
762       jsoninfo: make abuf_json_int take a long long value
763       jsoninfo: simplify /plugins
764       jsoninfo: fix a windows compile error
765       scheduler: fix a typo
766       scheduler: do not stop timers that are not running
767       scheduler: make olsr_flush_timers more robust
768       main: do not allow nested shutdown
769       scheduler: fix a typo
770       scheduler: do not stop timers that are not running
771       scheduler: make olsr_flush_timers more robust
772       jsoninfo: minor improvement to /2hop
773       jsoninfo: helpers: move a static string declaration
774       jsoninfo: helpers: add asserts
775       jsoninfo: helpers: output an empty string when the string is null
776       jsoninfo: helpers: account for NaN and INF in float printing
777       jsoninfo: add some comments
778       jsoninfo: simplify output_error by using an abuf
779       jsoninfo: minor improvements
780       jsoninfo: put printing a hna entry into a function and use it
781       jsoninfo: improve and update /config
782       jsoninfo: use the abuf_json_ip_address helper
783       jsoninfo: use print_link_quality_multipliers_array_entry in /interfaces
784       jsoninfo: add print_interface_config function and use it
785       jsoninfo: improve /interfaces
786       jsoninfo: do not show interface /sys/class/net/data in /interfaces
787       jsoninfo: move some static functions around
788       info: strip trailing slashes from the command
789       info: skip multiple leading slashes on the command
790       info: re-introduce composite commands
791       jsoninfo: add some asserts
792       jsoninfo: protect against nulll-deref in print_interface_config
793       jsoninfo: protect against out-of-bounds accesses of TXT array
794       jsoninfo: in /plugins list plugin parameters as array entries
795       jsoninfo: in /plugins show parameters as name/value
796       jsoninfo: simplify /mid output
797       jsoninfo: in /plugins list plugin parameters as map entries
798       jsoninfo: allow key to be NULL when printing an IP address
799       jsoninfo: print the 2-hops neighbors as a simple list of IP addresses
800       jsoninfo: minor simplification in /2hop
801       info: create more space for more info commands
802       jsoninfo: add a function to directly convert an IP address
803       jsoninfo: in /interfaces show 'state' text as 'up' boolean
804       jsoninfo: in /interfaces use the new IP address helper function
805       jsoninfo: remove an obsolete comment
806       jsoninfo: in /interfaces show message times like validity times
807       jsoninfo: allow key to be NULL when printing a string
808       jsoninfo: improve /config
809       jsoninfo: in /config rename sgw weight section to costsCalculation
810       jsoninfo: remove a derived field from the /config output
811       jsoninfo: fix a typo in /config
812       sgw: fix a mask in the sgw status file
813       Revert "sgw: fix a mask in the sgw status file"
814       sgw: update a comment
815       info: move json helpers here from jsoninfo
816       info: add abuf_json_prefix json helper
817       info: minor layout improvements
818       info: move iterating over a table of siw/function entries into a function
819       info: rename json helpers files
820       sgw: add isEgressSelected function
821       jsoninfo: also show egress information in /sgw
822       jsoninfo: do not null-deref prefix in abuf_json_prefix
823       jsoninfo: in /sgw separate prefixes and their lengths
824       make: improve jsoninfo and txtinfo dependencies on info
825       sgw: do not show unused tunnels in the status file
826       sgw: remove some dead code left over in the previous commit
827       info: minor layout improvements
828       info: use AUTOBUFCHUNK instead of hard-coding it
829       info: fix a type
830       info: move some type delcarations up in a header file
831       info: make the INFO_PLUGIN_CONFIG_PLUGIN_PARAMETERS a bit safer
832       info: make SIW_ENTRIES accessible from other functions
833       plugin util: make set_plugin_boolean actually set a bool
834       plugin util: add set_plugin_long function
835       abuf: add abuf_concat function
836       cfgfile: cache the generated configuration file
837       scheduler: export the olsr_times function
838       info: add support for caching and use it
839       info: minor fix
840       info: reflect that the SIW defines are 64 bit wide
841       info: completely switch of caching for timeouts <= 0
842       info: lazily initialise the cache
843       sgw: remove struct costs_weights and max_cost_etx_max from the costs API
844       spf: tc->path_cost is a route cost, fix level 2 OLSR_PRINTF messages
845       spf: safer checking against LINK_COST_BROKEN and ROUTE_COST_BROKEN
846       routing table: safer checking against LINK_COST_BROKEN & ROUTE_COST_BROKEN
847       pud: safer checking against LINK_COST_BROKEN and ROUTE_COST_BROKEN
848       sgw: safer checking against LINK_COST_BROKEN and ROUTE_COST_BROKEN
849       lq plugins: safer checking against LINK_COST_BROKEN and ROUTE_COST_BROKEN
850       lq plugins: explicit unsigned for LINK_COST_BROKEN and ROUTE_COST_BROKEN
851       fpm: add fpmtod function
852       lq plugins: add get_cost_scaled function
853       lq plugins: make the print_cost_float functions behave the same
854       lq plugins: remove print_cost, use get_cost_scaled in generic function
855       lq: add get_linkcost_scaled function
856       lq: minor optimisation
857       main: initialise sgw system after the tables
858       bmf: fix currEtx type and link/route confusion
859       sgw: show the route costs text in log messages
860       sgw: add get_gwcost_scaled and get_gwcost_text functions
861       sgw: show the scaled route cost in the program status file
862       sgw: show the scaled gw cost in the program status file
863       httpinfo: show the scaled route cost in the sgw pane
864       httpinfo: show the scaled gw cost in the sgw pane
865       txtinfo: show the scaled route cost in the sgw output
866       txtinfo: show the scaled gw cost in the sgw output
867       jsoninfo: show scaled route/link cost in
868          gateways|sgw|links|routes|topology
869       jsoninfo: show the scaled gw cost in gateways|sgw
870       sgw: simplify get_gwcost_scaled
871       info: make defines for SIW_* constants a bit clearer
872       info: add the define SIW_EVERYTHING
873       info: fix send_what for empty requests
874       info: stop evaluating send_what when all information has been processed
875       info: only try to match supported commands
876       arprefresh: show Git SHA in plugin constructor
877       bmf: use PLUGIN_NAME_SHORT in logs
878       bmf: do no show version in plugin constructor
879       bmf: remove PLUGIN_AUTHOR, Git shows who worked on it
880       bmf: plugin name like other plugins and minor layout change
881       bmf: show Git SHA in plugin constructor
882       bmf: do not show copyright in constructor, Git shows who has copyright
883       dot_draw: remove PLUGIN_AUTHOR, Git shows who worked on it
884       dot_draw: do no show version in plugin constructor
885       dot_draw: show Git SHA in plugin constructor
886       dyn_gw: remove PLUGIN_AUTHOR, Git shows who worked on it
887       dyn_gw: show Git SHA and no version in plugin constructor
888       dyn_gw_plain: show Git SHA and no author in plugin constructor
889       httpinfo: remove PLUGIN_AUTHOR, Git shows who worked on it
890       httpinfo: show Git SHA and no version and no author in plugin constructor
891       jsoninfo: remove PLUGIN_AUTHOR, Git shows who worked on it
892       jsoninfo: show Git SHA and no version in plugin constructor
893       mdns: remove PLUGIN_AUTHOR, Git shows who worked on it
894       mdns: show Git SHA and no version and no copyright in plugin constructor
895       mini: cleanup
896       nameservice: remove PLUGIN_AUTHOR, Git shows who worked on it
897       nameservice: show Git SHA and no version in plugin constructor
898       p2pd: show Git SHA and no version in plugin constructor
899       pgraph: remove PLUGIN_AUTHOR, Git shows who worked on it
900       pgraph: show Git SHA and no version in plugin constructor
901       pud: use Git SHA from builddata
902       quagga: remove PLUGIN_AUTHOR, Git shows who worked on it
903       quagga: show plugin name and Git SHA in plugin constructor
904       sgwdynspeed: use Git SHA from builddata
905       secure: remove PLUGIN_AUTHOR, Git shows who worked on it
906       secure: show Git SHA and no version in plugin constructor
907       txtinfo: remove PLUGIN_AUTHOR, Git shows who worked on it
908       txtinfo: show Git SHA and no version in plugin constructor
909       watchdog: show plugin name and Git SHA in plugin constructor
910       jsoninfo: simplify setup of plugin functions
911       txtinfo: simplify setup of plugin functions
912       all: ensure all files have the same license header
913       Remove list-excludes
914       all: avoid includes with relative paths whenever possible
915       info: be more paranoid when handling received data
916       info: fix mistake in previous commit
917       quagga: fixup include files
918       quagga: use AUTOBUFCHUNK as allocation unit
919       info: do not include INFO_HTTP_VERSION in httpStatusToReply return
920       info: add INFO_HTTP_REQUEST_ENTITY_TOO_LARGE http code
921       info: add INFO_HTTP_INTERNAL_SERVER_ERROR http code
922       info: add INFO_HTTP_FORBIDDEN http code
923       info: add INFO_HTTP_SERVICE_UNAVAILABLE http code
924       jsoninfo: use httpStatusToReply in output_error
925       txtinfo: use httpStatusToReply in output_error
926       info: refactor ipc_action to be much clearer and safer
927       info: add netjson commands
928       netjson: add plugin
929       info: use a session struct in the JSON helpers
930       netjson: various fixes
931       all: allocate autobuf memory in AUTOBUFCHUNK sized chunks
932       httpinfo: reduce memory usage
933       info: start with a single AUTOBUFCHUNK sized chunk of memory
934       autobuf: work around a warning
935       autobuf: simplify abuf_vappendf
936       android: minor improvements to the Makefile and README
937       info: fail info_plugin_init when plugin_ipc_init fails
938       link_set: fix a crash: use the entry name in a printf
939       olsr: add olsr_realloc function
940       quagga: refactor zclient_read to be much more readable and safer
941       quagga: improve zparse function a bit
942       bmf: use the new olsr_realloc function
943       mdns: use the new olsr_realloc function
944       p2pd: use the new olsr_realloc function
945       quagga: use the new olsr_realloc function
946       scheduler: use the monotonic clock
947       spf: use the monotonic clock in profiling code
948       scheduler: fix Debian compilation problem
949       make: need to link with -lrt on Debian for clock_gettime
950       make: only link to -lrt on Linux
951       openwrt: fixup the git repository link to point to GitHub
952       make: add defines for leak and undefined sanitize compiler warnings
953       all: ensure unsigned numbers are used in shifts
954       all: use the INLINE define
955       all: move definitions of INLINE into compiler.h
956       config: fix memory leaks on the shutdown path
957       dyn_gw: fix memory leaks on the shutdown path
958       sgw: fix memory leaks on the shutdown path
959       make: continue running when a sanitizer reports an error
960       info: increase the number of in-flight replies to 8
961       info: fix a use-after-free for incomplete immediate sends
962       info: fix detection of whether the reply was fully sent
963       info: fix outbuffer slot determination
964       info: fix an assert
965       info: make a bit of code more defensive
966       info: saved_count is used as 'this is the first reply', so rename it
967       info: send 'service unavailable' when there are too many replies in-flight
968       netjson: clear allocated memory before setting fields in it
969       netjson: do not duplicate nodes when adding a mid
970       netjson: improve node_self detection for cleanup
971       netjson: fix NetworkGraph output
972       info: add 'pretty' parameter to jsoninfo and netjson modules
973       info: only set the 'name' const once
974       info: make cache_timeout_generic more robust
975       info: better initialisation of the cache structures
976       info: ensure all cache structures are always initialised
977       avl: protect against NULL pointers
978       interfaces: protect against a NULL pointer
979       main: separate shutdown and cleanup up gateways
980       egress: clear a variable after freeing it
981       sgw: do not iterate over NULL gw entries in OLSR_FOR_ALL_GATEWAY_ENTRIES
982       sgw: do not iterate over NULL gw entries in OLSR_FOR_ALL_GWS
983       sgw: gw NULL check no longer needed when using OLSR_FOR_ALL_GWS
984       info: add some asserts
985       info: disable caching for now, it somehow causes memory corruption
986       sgw: harden isGwSelectable function
987       Revert "autobuf: simplify abuf_vappendf"
988       Revert "info: disable caching for now, it somehow causes memory
989          corruption"
990       autobuf: make 2 functions more robust
991       sgw: use iptables '-w' option
992       sgw: preserve egress interface ordering in iptables rules
993       sgw: preserve sgw tunnel ordering in iptables rules
994       sgw: optimise iptables rule ordering
995       linux: merge 2 functions
996       linux: export os_ip_tunnel function
997       sgw: remove any left-over sgw tunnels during startup and shutdown
998       sgw: add a policy rule for the server-end tunnel
999       sgw: egress interface routes must also be programmed on interface up/down
1000       sgw: egress interface routes must always be present when interface is up
1001       sgw: track whether network/gateway are required per egress interfaces
1002       sgw: fix egress route programming
1003       jsoninfo: output require(Network|Gateway) status for egress interfaces
1004       sgw: adjust egress to include requireNetwork and requireGateway settings
1005       sgw: fix use of uninitialised value
1006       info: fix cache age calculation
1007       quagga: fix some clang alignment warnings
1008       pud: only update the timestamp if the position is invalid and not updated
1009       pud: do not report uplink send errors, they're not really relevant
1010       pud: write the position to an output file when so configured
1011       pud: remove satellite info from the position output file
1012       pud: fixup of the README
1013       ipcalc: protect prefix_to_netmask against invalid input
1014       cfgparser: simplify Makefile a bit
1015       Move strscat/cpy to a file of their own and clean them up
1016       defs: remove an unused include
1017       common: fix file headers
1018       common: fix an include file guard
1019       common: code formatting
1020       common: add a comment
1021       common: more asserts
1022       common: make an exit condition in strscat more readable
1023       common: remove some comments on asserts
1024       common: make the paranoid check exit a bit friendlier
1025       ipcalc: protect prefix_to_netmask against invalid input
1026       cfgparser: simplify Makefile a bit
1027       common: move strscat/cpy to a file of their own
1028       common: add comments to strscat/cpy functions
1029       common: strscat/cpy are simple wrappers around the same function
1030       common: add some asserts to strscat/cpy
1031       common: rename a variable in strscat/cpy
1032       common: let the compiler decide how to place variables in strscat/cpy
1033       common: do not invoke _internal_strscpy in strscat when not enough space
1034       common: rename a variable in strscat/cpy
1035       common: be paranoid about incoming parameters in strscat/cpy
1036       common: refactor _internal_strscpy in strscat/cpy
1037       autobuf: just use memcpy instead of strcpy
1038       quagga: improve some strscy() calls
1039       linux: improve some strscy() calls
1040       lq_plugin: do not confuse malloc size with name size
1041       Merge branch 'fixes-pulled-apart' into fixes
1042       autobuf: format code
1043       abuf: no need to set buf[0] to '\0', calloc already did that
1044       abuf: use a define for the maximum size
1045       README-Olsr-Extensions: add the -w option to the iptables examples
1046       Merge branch 'release-0.9.0'
1047       jsoninfo: always output the PID
1048       nmealib: fix an extern C
1049       nmealib: make nmea_INFO_is_present an INLINE function
1050       nmealib: add some *_to_string helper functions
1051       build: get rid of HTTPINFO_PUD define
1052       httpinfo: use the normal nmea_INFO_is_present function
1053       httpinfo: use new nmealib *_to_string helper functions
1054       jsoninfo: allow all 'type' helpers without a key
1055       nmealib: fix a warning
1056       jsoninfo: be a bit more lenient in the helpers w.r.t. NULL values
1057       info: add support for the pud plugin position
1058       jsoninfo: add support for the pud plugin position
1059       build: add -Wmissing-include-path
1060       build: fix GCC 6 warning about EAGAIN and EWOULDBLOCK being equal
1061       autobuf: let's limit the maximum size to 16MB
1062       pud: update nmealib to 3.0.0
1063       pud: nmealib: minor update
1064       pud: nmealib now sets year and month correctly
1065       pud: further adjustments for new nmealib
1066       jsoninfo: nmealib now sets year and month correctly
1067       jsoninfo: further adjustments for new nmealib
1068       httpinfo: nmealib now sets year and month correctly
1069       httpinfo: further adjustments for new nmealib
1070       jsoninfo: fix mistakes introduced in 0db233f
1071       pud: minor layout improvement
1072       pud: minor layout fix
1073       pud: move to stationary on undetermined moving state
1074       pud: force a state change to moving when 'no info received' changes
1075       pud: split a function
1076       pud: add gpsd related configuration parameters
1077       pud: timers: add gpsd fetch timer functions
1078       pud: use gpsd fetch timer
1079       pud: add gpsd functions
1080       pud: hook up gpsd timer
1081       pud: remove rx path
1082       pud: update documentation
1083       pud: make sure to actually count inUse satellites (on older gpsd)
1084       pud: fix extracting position information from gpsd
1085       pud: remove the instance of the nmea parser, no longer used
1086       info: integrate java OSGi bundles
1087       info: release java OSGi bundles
1088       Merge pull request #2 from kakru/fix-shadow-error-in-pud
1089       ohs_cmd: avoid compiler warning
1090       release: fix the release script's git repository check
1091       Branch v0.9.5
1092
1093 Henning Rogge (15):
1094       Handle interface broadcast/multicast address zero
1095       Handle interface broadcast/multicast address zero
1096       Release v0.6.8.1
1097       Update version after release of v0.6.8.1
1098       Update version after release of v0.9.0.3
1099       Configuration file cleanup
1100       Merge branch 'master' of git://olsr.org/olsrd
1101       Modify .gitignore file to keep full default example
1102       Change README Git on Github
1103       Don't use strcpy, we don't need checks there anyways.
1104       Allow for a "soft fail" in non-debug builds
1105       Fix some strscy() calls or make them more readable
1106       Buffer for quagga was too long (1 byte)
1107       Fix cfgparser makefile
1108       Release v0.9.5
1109
1110 Karol Kruzelecki (1):
1111       pud: fix of 'time' shadowing a global declaration (that causes a
1112          compilation error on older Ubuntu)
1113
1114 0.9.0.3 -------------------------------------------------------------------
1115
1116 Alex Dunn (1):
1117       Makefile.osx: create .dylibs
1118
1119 Ferry Huberts (1):
1120       Fix CHANGELOG
1121
1122 Henning Rogge (3):
1123       Update version after release of v0.9.0.2
1124       Handle interface broadcast/multicast address zero
1125       Release v0.9.0.3
1126
1127 0.9.0.2 -------------------------------------------------------------------
1128
1129 Ferry Huberts (4):
1130       conf: lock_file is derived config.
1131       jsoninfo: fix a crash when there are no gateways
1132       txtinfo: fix a crash when there are no gateways
1133       release: fix release script
1134
1135 Henning Rogge (2):
1136       Update version after release of v0.9.0.1
1137       Release v0.9.0.2
1138
1139 0.9.0.1 -------------------------------------------------------------------
1140
1141 Ferry Huberts (3):
1142       neighbors: signal link changes when deleting a neighbor
1143       jsoninfo: do not output smart-gateway info when not enabled.
1144       txtinfo: jsoninfo: do not output smart-gateway info when not enabled.
1145
1146 Henning Rogge (2):
1147       Update version after release of v0.9.0
1148       Release v0.9.0.1
1149
1150 0.9.0 -------------------------------------------------------------------
1151
1152 Daniel Golle (4):
1153       plugins: fix build with musl
1154       plugins: fix build on some glibc systems
1155       plugins: use previous definition of struct udphdr on Android
1156       plugins: fix precompiled syntax
1157
1158 Ferry Huberts (98):
1159       build: uberclean must also remove builddata.txt
1160       build: add some pud targets
1161       Rename 'struct interface' to 'struct interface_olsr'
1162       Merge branch 'release-0.6.8'
1163       pud: wireformat-java: improve java detection
1164       pud: wireformat-java: improve java detection
1165       sgw: ensure a bandwidth of 1 does not alias onto 0 when serialising
1166       sgw: minor improvement
1167       sgw: gwContainer can't be null here
1168       dyn_gw: fix a Coverity warning
1169       pud: nmealib: fix a Coverity warning
1170       pud: nmealib: fix a Coverity warning
1171       httpinfo: fix a Coverity warning
1172       parser: fix a Coverity warning
1173       quagga: minor readability fixes
1174       olsr_random: introduce better random functions
1175       main: replace random() by our own function
1176       unix: replace random() by our own function
1177       bsd: replace random() by our own function
1178       win32: replace random() by our own function
1179       pud: nmealib: replace random() by our own function
1180       secure: replace random() by our own function
1181       contrib: fix the build
1182       contrib: replace random() by our own function
1183       olsr_switch: replace random() by our own function
1184       olsr_random: need to include time.h
1185       pud: nmealib: align nmea_random to olsrd _random
1186       pud: nmealib: doc: disable generation of the PDF; pdflatex somehow fails
1187       pud: nmealib: doc: upgrade doxygen configuration file
1188       sgw: egress file: use full time resolution on Linux
1189       sgw: egress: Android is not Linux
1190       jsoninfo: formatting
1191       jsoninfo: some comparison simplifications
1192       jsoninfo: clearer distinction between JSON and non-JSON blocks
1193       jsoninfo: more comparison simplifications
1194       jsoninfo: refactor outputting JSON
1195       sgw: fix a shadowing warning
1196       jsoninfo: formatting fixup
1197       jsoninfo: systemTime and timeSinceStartup can be first
1198       jsoninfo: minor fixup
1199       jsoninfo: the IP address for a neighbour can also be an IPv6 address
1200       jsoninfo: add version, 2hop and sgw. now in sync with txtinfo
1201       arprefresh: update the readme
1202       dyngw: update the readme
1203       dyngw_plain: update the readme
1204       httpinfo: update the readme
1205       jsoninfo: update the readme
1206       secure: update the readme
1207       txtinfo: update the readme
1208       pud: move the config sample into the readme
1209       ipcalc: fix a double slash for IPv6 in olsr_ip_prefix_to_string
1210       cfg: make sure lockfile has a default as specified in the cfg file
1211       cfgfile_gen: whitespace and typo fixes
1212       cfgfile_gen: better LinkQualityMult examples
1213       cfgfile_gen: make sure to print IPv6Src as an IPv6 prefix
1214       cfgfile_gen: fix default for RtProto
1215       cfgfile_gen: add some comments to the generated configuration file
1216       cfgfile_gen: print comments when the are no ipc_nets
1217       cfgfile_gen: improve printing of HNAs
1218       cfgfile_gen: improve printing of MainIp
1219       cfgfile_gen: improve printing of SmartGatewayPrefix
1220       cfgfile_gen: improve printing of SmartGatewayEgressFile
1221       cfgfile_gen: update comments file SmartGatewayEgressFilePeriod
1222       cfgfile_gen: improve printing of SmartGatewayEgressInterfaces
1223       cfgfile_gen: improve printing of SmartGatewayPolicyRoutingScript
1224       cfgfile_gen: improve printing of UseNiit
1225       cfgfile_gen: improve printing of routing tables
1226       cfgfile_gen: improve printing of routing table priorities
1227       files: remove olsrd.conf.default.lq-fisheye
1228       files: minor improvements to the FunkFeuer configuration files
1229       files: minor improvements to the commotion configuration file
1230       files: rename the generated configuration files
1231       files: add configurations files corresponding to generated (txt) files
1232       files: add a README, explaining generation of effective config files
1233       files: remove lq and rfc effective config files
1234       files: add a script to generate an effective configuration file
1235       files: update the default effective configuration file to current state
1236       mantissa: fix a typo in a comment
1237       mantissa: add a function to query the minimum interval
1238       sgw: fill HNA header in the same order as the fields in the packet
1239       sgw: extract appending a sgw HNA into its own function
1240       sgw: olsr_modifiy_inetgw_netmask can choose between normal and zero bw
1241       jsoninfo: validity times are in 'me' format, convert them to msec first
1242       sgw: fix a typo in an assert
1243       sgw: sgw HNAs are not considered normal HNAs during processing
1244       sgw: implement HNA expiry
1245       sgw: update the status file when a sgw HNA is removed (multi-sgw mode
1246          only)
1247       ifnet: also store the HNA validity time in msec
1248       sgw: do not write uplink/downlink speed directly
1249       sgw: immediately remove sgw HNAs with zero bandwidth
1250       sgw: send sgw HNAs with zero bandwidth after local gw has gone away
1251       sgw: do not send zero bandwidth sgw HNAs by default
1252       pud: doc: update the documentation
1253       release: stricter matching of release tags
1254       autobuf: fix warning in Windows release builds
1255       Merge branch 'release-0.6.7'
1256       Merge branch 'release-0.6.8'
1257       Branch v0.9.0
1258
1259 Henning Rogge (7):
1260       Update version after release of v0.6.8
1261       Update version after release of v0.6.8
1262       tc: properly initialise the path_costs field in a new tc
1263       tc: properly initialise the path_costs field in a new tc
1264       keep pushing data through dotdraw plugin
1265       Restrict maxmimum message size (not packet size) to IPv6 minimal MTU.
1266       Release v0.9.0
1267
1268 Sebastian Kürten (2):
1269       Added simple hard-coded whitelist
1270       Revert "Added simple hard-coded whitelist"
1271
1272 Teco Boot (1):
1273       arprefresh: README adjusted for plugin name
1274
1275 0.6.8.1 -------------------------------------------------------------------
1276
1277 Ferry Huberts (4):
1278       pud: wireformat-java: improve java detection
1279       release: stricter matching of release tags
1280       autobuf: fix warning in Windows release builds
1281       neighbors: signal link changes when deleting a neighbor
1282
1283 Henning Rogge (4):
1284       Update version after release of v0.6.8
1285       tc: properly initialise the path_costs field in a new tc
1286       Handle interface broadcast/multicast address zero
1287       Release v0.6.8.1
1288
1289 0.6.8 -------------------------------------------------------------------
1290
1291 Ferry Huberts (81):
1292       linux: increase the netlink buffer size
1293       linux: fix using tables >= 256
1294       linux: fix type of af_family
1295       linux: do not try to set routes with negative metric
1296       linux: add 'flags' parameter to olsr_new_netlink_route function
1297       linux: add 'scope' parameter to olsr_new_netlink_route function
1298       linux: make it possible to add/remove blackhole routes
1299       linux: export the olsr_new_netlink_route function
1300       Update version after branch of v0.6.7
1301       android: use the machine specific NDK instead of always the 32bit variant
1302       Merge branch 'linux-routes.v1'
1303       android: fix build on 32 bit platform (see 0295e11)
1304       linux: olsr_if_isup: fix return code in error path
1305       conf parser: fix a warning
1306       Merge branch 'release-0.6.7'
1307       linux: fix a typo
1308       sgw: move add/remove of ifchange handler to better place
1309       sgw: export multi_gateway_mode method
1310       sgw: make sure gw->ipv6 is always set for a new gateway
1311       sgw: cost calculation can now directly account for interface up/down
1312          status
1313       config parser: minor improvement for SmartGatewayEgressInterfaces
1314       pud: fix strto* result checking for out-of-range situations
1315       sgwdynspeed: fix strto* result checking for out-of-range situations
1316       Merge branch 'release-0.6.7'
1317       Merge branch 'release-0.6.7'
1318       release: fix up the CHANGELOG
1319       Merge branch 'release-0.6.7'
1320       sgw: fix deserialize_gw_speed
1321       txtinfo: fix formatting in ipc_print_sgw
1322       sgw: move 'struct sgw_egress_if' type into a separate include file
1323       sgw: store table & rule numbers in the sgw_egress_if structure
1324       sgw: add egress file reader settings
1325       sgw: add egress file reader
1326       sgw: track the interface index of an egress interface
1327       sgw: track the up status of an egress interface
1328       sgw: use the smartgw_tunnel_monitor to track up/down of egress interfaces
1329       sgw: introduce function to process multi-sgw changes
1330       sgw: determine best exit link in doRoutesMultiGw
1331       sgw: determine best overall link in doRoutesMultiGw
1332       sgw: add SmartGatewayStatusFile setting
1333       sgw: add the smart gateway status file writer
1334       sgw: add reportNewGateway function
1335       sgw: program best overall link routes
1336       sgw: program best egress link route
1337       sgw: program egress link routes
1338       sgwdynspeed: only allow the plugin in single-sgw mode
1339       sgw: fix default path costs for egress interfaces
1340       sgw: initialise the egress interfaces earlier
1341       sgw: lazily determine the sgw costs weights
1342       sgw: show all sgw tunnels in the output file instead of only the active
1343          one
1344       sgw: reset cached egress file timestamp on file access errors
1345       sgw: do not prematurely exit doRoutesMultiGw
1346       Merge branch 'msgw'
1347       sgw: do not make the egress types available only on linux
1348       sgw: initialise the egress best routes differently
1349       sgw: remove an unused variable
1350       sgw: unshadow a variable
1351       sgw: change the cached timestamp
1352       build: make TOPDIR an absolute path
1353       sgw: android has no getline(), implement it
1354       android: bump the NDK compiler version
1355       android: fixup regex makefile
1356       sgw: fix android build
1357       pud: duplicate android regex trick from nameservice
1358       sgw: always clear egress settings when this egress file is not readable
1359       Revert "sgw: always clear egress settings when this egress file is not
1360          readable"
1361       sgw: always clear egress settings when this egress file is not readable
1362       sgw: refresh the advertised speed when the best overall link changes
1363       sgw: when there is no best overall link advertise 0 bandwidth
1364       sgw: only advertise egress speeds
1365       sgw: refactor egress file change detection
1366       sgw: uplink and downlink fields can be 9 chars wide in the output file
1367       sgw: tune the status file for IPv4, making it a bit more compact
1368       sgw: use MAX_SMARTGW_SPEED instead of hard-coding it
1369       sgw: fix cost calculation for advertised speeds greater or equal than MAX
1370       sgw: the costs are signed numbers
1371       sgw: react to path cost changes on all active gateways
1372       txtinfo: fix output of /sgw command
1373       build: uberclean must also remove builddata.txt
1374       build: add some pud targets
1375       Rename 'struct interface' to 'struct interface_olsr'
1376
1377 Henning Rogge (6):
1378       Update version after release of v0.6.7.1
1379       Only use IPV6_TCLASS and IPV6_V6ONLY when defined
1380       Merge branch 'master' of git://olsr.org/olsrd
1381       Prevent memory leak when setting up new interface
1382       Fix bug of former commit
1383       Release v0.6.8
1384
1385 Nico Geyso (1):
1386       dyn gw plugin - add PingCmd parameter
1387
1388 0.6.7.1 -------------------------------------------------------------------
1389
1390 Ferry Huberts (6):
1391       android: use the machine specific NDK instead of always the 32bit variant
1392       android: fix build on 32 bit platform (see 0295e11)
1393       plugins: add a comment to clarify strange behaviour
1394       txtinfo: duplicate code in branch
1395       txtinfo: ensure null termination of string buffer
1396       jsoninfo: fix indentation
1397
1398 Henning Rogge (2):
1399       Update version after release of v0.6.7
1400       Release v0.6.7.1
1401
1402 Nico Geyso (2):
1403       jsoninfo: set_plugin_boolean stores into an int
1404       txtinfo: set_plugin_boolean stores into an int
1405
1406 0.6.7 -------------------------------------------------------------------
1407
1408 Note: In this release the configuration files have been moved from /etc into
1409       /etc/olsrd.
1410
1411 Note: In this release the pud plugin was upgraded to version 2.0.0.
1412       This is because of a breaking change in its wire format. If you have
1413       deployed the pud plugin on your mesh then you should update all nodes
1414       to the new pud plugin at the same time since there is no interoperability
1415       between the old version and the new version.
1416
1417 Alessio Caiazza (4):
1418       Hotfix for very long http headers also for jsoninfo
1419       Hotfix for very long http headers also for jsoninfo
1420       jsoninfo: HTTP headers with CORS (if requested)
1421       jsoninfo: HTTP headers with CORS (if requested)
1422
1423 Bernhard Marker (2):
1424       added json plugin to openwrt build Makefile
1425       json openwrt Makefile update
1426
1427 Charlie Root (1):
1428       Small fixes to allow compilation with OpenBSD
1429
1430 David Dahlberg (4):
1431       Adjusted OpenBSD installation paths
1432       An rc.d file for OpenBSD
1433       Remove linux-isms from Makefile
1434       Install openbsd/olsrd.rcd to /etc/rc.d/olsrd.
1435
1436 Ferry Huberts (170):
1437       release: use olsrd-version prefix for files in the tarballs
1438       Update version after branch of v0.6.6
1439       Remove mercurial ignore file; we use git
1440       build: ignore builddata.c when hashing sources
1441       Remove mercurial ignore file; we use git
1442       build: ignore builddata.c when hashing sources
1443       Revert "Update version after release of v0.6.5.3"
1444       Merge branch 'release-0.6.5'
1445       Merge branch 'release-0.6.6'
1446       release: fix the list of generated files
1447       release: update some comments
1448       release: refactor the checkVersionIncrementing function
1449       release: do not update the version on master when it's already higher
1450       release: only report that master changed when it was actually changed
1451       release: fix the list of generated files
1452       release: update some comments
1453       release: refactor the checkVersionIncrementing function
1454       release: do not update the version on master when it's already higher
1455       release: only report that master changed when it was actually changed
1456       release: checkVersionIncrementing: optionally allow equal versions
1457       release: also check against the Makefile version when branching
1458       release: checkVersionIncrementing: optionally allow equal versions
1459       release: also check against the Makefile version when branching
1460       Merge branch 'release-0.6.4'
1461       Merge branch 'release-0.6.5'
1462       Merge branch 'release-0.6.6'
1463       txtinfo: prevent buffer overflow
1464       Merge branch 'release-0.6.6'
1465       pud: wireformat-java: Makefile: also clean up the generated headers
1466       pud: wireformat: java: rename Git-SHA1 manifest header to Git-SHA
1467       pud: wireformat: java: also add a Git-Descriptor manifest header
1468       pud: nmealib: _nmea_parse_time not parsing hsec when given "hhmmss" format
1469       pud: nmealib: _nmea_parse_time not parsing hsec when given "hhmmss" format
1470       quagga: add some parentheses
1471       httpinfo: add smart gateway information tab
1472       txtinfo: add sgw command
1473       cfgfile: don't hard-code defaults in texts
1474       txtinfo: mention the /sgw command in the README
1475       Makefile: add cfgparser_install and cfgparser_clean targets
1476       linux: add -rdynamic to linker options for debug builds
1477       linux: fix 'add -rdynamic to linker options for debug builds'
1478       build: really _ignore_ builddata.c when hashing sources
1479       build: only print the md5 hash in hash_source.sh
1480       Makefile: fix builddata when building from tarball
1481       build: really _ignore_ builddata.c when hashing sources
1482       build: only print the md5 hash in hash_source.sh
1483       Makefile: fix builddata when building from tarball
1484       build: only re-generate src/builddata.c when needed
1485       cfgfile: no more magic numbers for RtTable* defaults
1486       sgw: move cost calculation into it own unit
1487       sgw: minor comment fixup
1488       make: fixup bashisms in hash_source.sh
1489       Move the configuration files into /etc/olsrd/
1490       pud: install configuration files under ETCDIR
1491       sgwdynspeed: install configuration files under ETCDIR
1492       build: hash_source.sh: specify the mktemp template
1493       pud: fix readIPAddress function
1494       pud: fix readIPAddress function
1495       httpinfo: center the header row of the smart gateway tables
1496       Merge branch 'release-0.6.5'
1497       Merge branch 'release-0.6.6'
1498       Fix #34: Description of "timeout" parameter in "nameservice" plugin...
1499       pud: remove getNodeId, rename getNodeIdWithLength to getNodeId
1500       pud: firm up setupNodeIdBinaryAndValidate
1501       pud: merge nodeIdType and nodeId parameters into nodeId parameter
1502       pud: remove some strlen's in nettools
1503       pud: remove a strlen in the DNS name handling of the wire format.
1504       pud: make wireformat constants unsigned
1505       pud: clarify the URN number
1506       pud: add MIP OID nodeId type
1507       pud: add an assert to silence a Coverity false positive
1508       pud: specify conversion base in readULL
1509       pud: don't copy memory we're not allowed to access
1510       pud: specify where to store the result in
1511          intSetupNodeIdBinaryDoubleLongLong
1512       pud: fix intSetupNodeIdBinaryDoubleLongLong for short values
1513       pud: add UUID nodeId type
1514       httpinfo: rename a function
1515       pud: make sure to only use accessor functions in the 'present' nmea field
1516       httpinfo: also show the present field on the nmea info
1517       Merge branch 'release-0.6.6'
1518       pud: fix java detection in the wireformat java bindings (again)
1519       pud: fix java detection in the wireformat java bindings (again)
1520       Merge branch 'release-0.6.5'
1521       Merge branch 'release-0.6.6'
1522       pud: do the same fix as in the previous commit, now for i386
1523       pud: do the same fix as in the previous commit, now for i386
1524       Merge branch 'release-0.6.5'
1525       Merge branch 'release-0.6.6'
1526       Make sure to save/restore errno in signal handlers
1527       Make sure to save/restore errno in signal handlers
1528       Merge branch 'release-0.6.5'
1529       Merge branch 'release-0.6.6'
1530       main: olsr_create_lock_file: fix return value check on 'open' call
1531       main: add some extra braces
1532       main: olsr_create_lock_file: fix return value check on 'open' call
1533       pud: use the nmea present field in the wireformat
1534       pud: fix readIPAddress function
1535       pud: fix readIPAddress function
1536       Merge branch 'release-0.6.5'
1537       Merge branch 'release-0.6.6'
1538       tok: improve the nmea_calc_crc function a bit
1539       tok: improve the nmea_calc_crc function a bit
1540       neighbor table: fix crash in olsr_print_neighbor_table on MinGW
1541       neighbor table: fix crash in olsr_print_neighbor_table on MinGW
1542       win32: accomodate old and new mingw setups
1543       mingw: fix Ubuntu 13.10 / Debian Wheezy mingw mess
1544       p2pd: add UseTTLDecrement configuration setting
1545       httpinfo: also show the path costs in the SmartGateway table
1546       txtinfo: also show the path costs in the SmartGateway table
1547       gw: make SmartGatewayDividerEtx a 32 bit number
1548       doc: add a gnuplot file to show the smart gateway cost calculation
1549       Fix some eclipse warnings
1550       p2pd: recompute the IPv4 header checksum after adjusting the TTL
1551       sgwdynspeed: ignore unknown options
1552       sgw: adjust policy routing script a bit
1553       sgw: rename a variable in parsing of sgw_egress_if
1554       sgw: preserve order of declared SmartGatewayEgressInterfaces
1555       sgwdynspeed: avoid spamming the log with 'unknown option' messages
1556       sgw: fix the policy routing script
1557       sgwdynspeed: allow string values and empty values in the speed file
1558       sgwdynspeed: fgets includes EOLs in the read string, strip them off
1559       sgwdynspeed: do not go outside of the string when stripping EOLs
1560       sgwdynspeed: rename 2 variables
1561       sgwdynspeed: ignore everything we don't understand when reading the file
1562       sgwdynspeed: make the EOL stripping much faster
1563       sgwdynspeed: remove some dead code
1564       gw: remove commands in comments concerning the policy routing script
1565       gw: fix the 'ip' delete argument in the policy routing script
1566       gw: simplify overlap checking code
1567       gw: Add endif comments
1568       gw: fix gateway takedown calculation
1569       gw: fix a typo
1570       gw: move path_cost into the gateway struct, ensure it's always up-to-date
1571       gw: add SmartGatewayMarkOffsetServerTunnel configuration parameter
1572       gw: fix null pointer dereferences in cost calculation
1573       gw: fix a minor copy/paste typo
1574       gw: when a node advertises maximum bandwidth then only consider path costs
1575       README-Olsr-Extensions: Fix some typos
1576       pud: update  nmealib samples Makefile
1577       sgw: rework policy rules setup
1578       sgwdynspeed: rename a function parameter to avoid a compiler warning
1579       common: add an extra check in autobuf_enlarge to avoid a compiler warning
1580       pud: update nmealib to 2.0.0
1581       pud: nmealib: Fix a typo in Tobias's surname
1582       txtinfo: make the sgw output better machine parseable
1583       pud: nmealib: include latest fixes
1584       pud: nmealib: fix isInvalidNMEACharacter function
1585       p2pd: fix recomputeIPv4HeaderChecksum function
1586       Revert "Use strscpy instead of strcpy"
1587       pud: nmealib: fix return value of nmea_parser_init
1588       pud: disable distribution of position updates over OLSR when olsrTtl is 0
1589       Fix strange coding in the 'long headers' fix
1590       Fix strange coding in the 'long headers' fix
1591       httpinfo: the position timestamp month is zero based
1592       Merge tag 'v0.6.5.6'
1593       Merge tag 'v0.6.6.2'
1594       Revert "Fix for win32 compiling with i686-w64-mingw32-gcc on ubuntu"
1595       pud: nmealib: NMEA String Length Override Support
1596       Fix a signed/unsigned warning
1597       gw: change the costs type to signed 64bits
1598       build: gui: do not overwrite the LDFLAGS but append to it
1599       build: add address santizer, compile with SANITIZE_ADDRESS=1
1600       p2pd: fir compile warning, initialise ipHeader
1601       gui: fix 'warning: multiple common of ...' warnings
1602       conf: ensure the egress interface names have a valid length
1603       README: improve the smart gateway text a bit
1604       sgw: multi-sgw mode is only supported on IPv4
1605       CHANGELOG: add a note about the configuration files
1606       Merge remote-tracking branch 'olsr/openbsd'
1607       Branch v0.6.7
1608
1609 Hans-Christoph Steiner (3):
1610       purge ancient debian/ folder, people should use the current files
1611       add instructions for building Debian package from canonical sources
1612       clarify instructions for http:// downloading of debian/ folder
1613
1614 Henning Rogge (32):
1615       Fix multicast join for IPv6
1616       Release v0.6.5.3
1617       Update version after release of v0.6.5.3
1618       Update version after release of v0.6.5.3
1619       Release v0.6.5.4
1620       Update version after release of v0.6.5.4
1621       Fix segfault in cfgparser standalone executable
1622       Fix build break for MinGW compilation on Fedora 19.
1623       Fix build break for MinGW compilation on Fedora 19.
1624       Release v0.6.5.5
1625       Update version after release of v0.6.5.5
1626       Ignore IFF_RUNNING when checking if an interface is up or down.
1627       use inet_pton instead of inet_aton
1628       win32: do not add -Wcast-qual to compiler warning flags
1629       Fix processing error for fragmented hellos
1630       Fix some spelling mistakes
1631       Merge branch 'master' of http://olsr.org/git/olsrd
1632       Fix processing error for fragmented hellos
1633       Fix some spelling mistakes
1634       Try to delete and retry for BSD ipv4 too
1635       Use strscpy instead of strcpy
1636       Smooth LQ calculation if link suddenly breaks.
1637       Clean before compile when using Openwrt olsrd-stable-git makefile
1638       Fix copypaste error
1639       Hotfix for very long http headers
1640       Fix stupid mistake, don't know why gcc didn't complained locally
1641       Hotfix for much too long http headers
1642       Release v0.6.5.6
1643       Make link debug output source a bit more readable
1644       Add LQ/NLQ/ETX to neighbor table debug output
1645       Add boolean ipv6only parameter to txtinfo and jsoninfo
1646       Release v0.6.7
1647
1648 Manuel Munz (1):
1649       Fix jsoninfo again after a regression which was introduced with
1650
1651 Markus Kittenberger (1):
1652       fix: TXTINFO_ALLOW_LOCALHOST - add missing ntohl()
1653
1654 Patrick Grimm (2):
1655       jsoninfo: only listen on IPv6 when running under IPv6
1656       txtinfo: only listen on IPv6 when running under IPv6
1657
1658 Ronald in 't Velt (2):
1659       Fix setsockopt for setting Traffic Class in IPv6
1660       Fix setsockopt for setting Traffic Class in IPv6
1661
1662 Saverio Proto (2):
1663       txtinfo: update README file
1664       Missing patch of header files for "Add boolean ipv6only parameter to
1665          txtinfo and jsoninfo"
1666
1667 Scott Kidder (2):
1668       jsoninfo: ensure output is wrapped in curly braces.
1669       jsoninfo: ensure output is wrapped in curly braces.
1670
1671 Teco Boot (2):
1672       Added LINUX_NL80211 readme file
1673       Support for FIB metric configuration, other than 2
1674
1675 Yury Popov (1):
1676       Fix for win32 compiling with i686-w64-mingw32-gcc on ubuntu
1677
1678 0.6.6.2 -------------------------------------------------------------------
1679
1680 Alessio Caiazza (2):
1681       Hotfix for very long http headers also for jsoninfo
1682       jsoninfo: HTTP headers with CORS (if requested)
1683
1684 Ferry Huberts (8):
1685       pud: fix java detection in the wireformat java bindings (again)
1686       pud: do the same fix as in the previous commit, now for i386
1687       Make sure to save/restore errno in signal handlers
1688       main: olsr_create_lock_file: fix return value check on 'open' call
1689       pud: fix readIPAddress function
1690       tok: improve the nmea_calc_crc function a bit
1691       neighbor table: fix crash in olsr_print_neighbor_table on MinGW
1692       Fix strange coding in the 'long headers' fix
1693
1694 Henning Rogge (5):
1695       Update version after release of v0.6.6.1
1696       Fix processing error for fragmented hellos
1697       Fix some spelling mistakes
1698       Hotfix for much too long http headers
1699       Release v0.6.6.2
1700
1701 0.6.6.1 -------------------------------------------------------------------
1702
1703 Henning Rogge (2):
1704       Update version after release of v0.6.6
1705       Release v0.6.6.1
1706
1707 Manuel Munz (1):
1708       Fix jsoninfo again after a regression which was introduced with
1709
1710 0.6.6 -------------------------------------------------------------------
1711
1712 Bastian Bittorf (3):
1713       [hotfix] plugin: httpinfo: in case of an unrecoverable error ("could not
1714          initialize HTTP socket") exit for returnvalue != 0
1715       plugin: dot_draw: readme: make it clear, that it only opens an
1716          IPv4-socket, so a 'telnet ::1 2004' is not possible
1717       plugin: dot_draw: readme: replaced a b0rken link
1718
1719 Ferry Huberts (146):
1720       Update version after branch of v0.6.5
1721       gateway: store current gateway(s) in a struct
1722       gateway: lazily allocate the current gateway structs
1723       gateway: add path_cost to 'set gateway' interface
1724       gateway: add interface to get the gateway costs
1725       gateway: simplify by using the new costs interface
1726       gateway: add gateway_list.{c,h}
1727       gateway: keep track of the active gateways in a list
1728       Merge branch 'release-0.6.5'
1729       pud: java make target is dependent on library make target
1730       Merge branch 'release-0.6.5'
1731       Merge branch 'release-0.6.5'
1732       json_info: only output smart gateway info on Linux
1733       kernel_route: olsr_os_inetgw_tunnel_route can now take the table
1734       gateway: let the gateway code determine the tunnel name
1735       gateway: remove the worst gateway before adding new one
1736       gateway: add SmartGatewayUseCount configuration parameter
1737       gateway: use SmartGatewayUseCount setting the the gateway lists
1738       gateway: add SmartGatewayEgressInterfaces configuration parameter
1739       gateway: add SmartGatewayMarkOffset{Egress,Tunnels} configuration
1740          parameters
1741       gateway: add SmartGatewayPolicyRoutingScript configuration parameter
1742       gateway: initialise a set of fixed tunnel names in/for multi-gateway mode
1743       gateway: initialise the egress interface names in/for multi-gateway mode
1744       gateway: use fixed tunnel names in/for multi-gateway mode
1745       gateway: setup and clear table specific default routes in/for
1746          multi-gateway mode
1747       gateway: setup/cleanup multi-gateway mode during startup/shutdown of olsrd
1748       gateway: introduce and use MULTI_GW_MODE define
1749       gateway: enable multi-gateway mode
1750       gateway: convert some defines into inline functions
1751       kernel_route: olsr_os_inetgw_tunnel_route now needs the table explicitly
1752       Merge branch 'multigw'
1753       gateway: remove 2 superfluous asserts
1754       gateway: add an assert to prevent an 'unused' warning
1755       gateway: also adjust the IPv6 gateway list in olsr_update_gateway_entry
1756       gateway: fix policy script permissions checking
1757       gateway: the gateway policy script really is a bash script
1758       gateway: minor indentation fixes in the gateway script
1759       gateway: fix copy/paste mistake in setting up the egress rules
1760       gateway: remove policy rules before adding them
1761       gateway: ignore errors in remove-before-add rule removals
1762       Revert "linux: name is required to be non-null in
1763          olsr_os_cleanup_iptunnel"
1764       gateway: do not show (bogus) errors
1765       gateway: cleanup the server tunnel later
1766       cfgparser: add SmartGatewayAlwaysRemoveServerTunnel configuration
1767          parameter
1768       gateway: use SmartGatewayAlwaysRemoveServerTunnel configuration parameter
1769       gateway: fix a revert problem
1770       gateway: use tnl_(4|6) tunnel names instead of tnl(4|6)_
1771       gateway: properly set the egress interface names
1772       json_info: do not loop forever on smart gateway egress interfaces
1773       pud: the best uplink gateway is the same as the current (smart) gateway
1774       pud: there is no hard dependency on smart gateway
1775       pud: only forward downlinked messages when the smart gateway system is
1776          enabled
1777       pud: update documentation about smart gateway changes
1778       gateway: fix 2 small typos in a comment
1779       Revert "pud: the best uplink gateway is the same as the current (smart)
1780          gateway"
1781       pud: minor update resulting from the previous revert
1782       pud: minor update to getBestUplinkGateway
1783       gateway: minor improvement to get_unused_iptunnel_name
1784       gateway: update some comments
1785       gateway: remove 2 unneeded asserts
1786       gateway: use standard macro to loop over the gateway tree in
1787          olsr_cleanup_gateways
1788       gateway: fix 'eligible' conditions in gw_default_choose_gateway
1789       gateway: minor speed improvement in gw_default_choose_gateway
1790       android: fix the path of the tunnel node in the /dev tree
1791       pud: use the proper __ANDROID__ define
1792       gateway: allow advertisement of zero bandwidth
1793       gateway: add some comments
1794       gateway: also set (update) the gateway when costs have changed
1795       gateway: find_interfaceName only works in multi-gateway mode
1796       gateway: simplify gw_default_calc_threshold
1797       gateway: improve comments of gw_default_weigh_costs a bit
1798       gateway: rename some variables to make it more readable
1799       gateway: fix stable count dampening in gw_default_timer
1800       gateway: do not use bitwise operators for logic conditions
1801       gateway: reverse semantics of two variables
1802       gateway: always select a new gateway when threshold != 0
1803       main: add -pidfile command line option
1804       main: fix pidfile compilation on windows
1805       Merge branch 'release-0.6.5'
1806       make: enable 32/64 bit cross compilation
1807       pud: pull in nmealib v1.0.4
1808       gateway: remove some 'unused' code from sgw script
1809       make: fix typos in 'enable 32/64 bit cross compilation' commit
1810       pud: enable 32/64 bit cross compilation for the java build
1811       make: ifdef fixups
1812       Merge branch 'release-0.6.5'
1813       Merge branch 'release-0.6.5'
1814       Merge branch 'release-0.6.5'
1815       pud: detect the java include directory
1816       dyn_gw: remove bogus include
1817       make: fix a type in the Linux SUBDIRS assignment
1818       make: add dyn_gw, mdns and p2pd to the Android SUBDIRS
1819       pud: update nmealib 32/64 cross compilation
1820       Revert "pud: update nmealib 32/64 cross compilation"
1821       main: fix 2 minor warnings for win64 build on debian squeeze
1822       make: only install sgw related files when sgw is supported
1823       mdns: fix container_of pointer arith
1824       mdns: don't use non-standard ushot type
1825       mdns: fix three alignment warnings
1826       mdns: supported on Android
1827       p2pd: supported on Android
1828       make: ensure win32 install respects DESTDIR
1829       Merge branch 'release-0.6.5'
1830       gateway: work around kernel IPIP module initialisation bug
1831       gateway: fix overlap in success/fail IPIP tunnel init
1832       doc: make the documentation generation commands a bit more verbose
1833       pud: detect the java include directory
1834       pud: better detection of java jdk
1835       pud: better detection of java jdk
1836       gateway: work around kernel IPIP module initialisation bug
1837       Merge branch 'release-0.6.5'
1838       PUD: nmealib: fix parsing of date in GPRMC
1839       pud: nmealib: fixup the previous commit
1840       main: use /dev/urandom by default
1841       main: use /dev/urandom by default
1842       pud: set local loopback for multicast tx
1843       pud: set local loopback for multicast tx
1844       Merge branch 'release-0.6.5'
1845       arprefresh: fix some spelling
1846       arprefresh: document the BPF program to make it readable
1847       arprefresh: use the ARRAYSIZE macro
1848       arprefresh: remove a comment
1849       arprefresh: do not process IPv6 packets when in IPv4 mode
1850       arprefresh: add a note about VLANs and IPv6
1851       remove pthread usage as much as possible
1852       Branch v0.6.6
1853       Remove mercurial ignore file; we use git
1854       build: ignore builddata.c when hashing sources
1855       build: move build data into its own include file
1856       gateway: always deal with 64bit scaled path costs
1857       gateway: introduce and use removeGatewayFromList function
1858       gateway: add SmartGatewayTakeDownPercentage configuration parameter
1859       gateway: proactively take down 'expensive' gateways
1860       release: fix the list of generated files
1861       release: update some comments
1862       release: refactor the checkVersionIncrementing function
1863       release: do not update the version on master when it's already higher
1864       release: only report that master changed when it was actually changed
1865       release: checkVersionIncrementing: optionally allow equal versions
1866       release: also check against the Makefile version when branching
1867       txtinfo: prevent buffer overflow
1868       pud: nmealib: _nmea_parse_time not parsing hsec when given "hhmmss" format
1869       build: really _ignore_ builddata.c when hashing sources
1870       build: only print the md5 hash in hash_source.sh
1871       Makefile: fix builddata when building from tarball
1872       pud: fix readIPAddress function
1873
1874 Hans-Christoph Steiner (3):
1875       GNU/Linux: add service profile for 'ufw' firewall package
1876       update Commotion example olsrd.conf to represent current project state
1877       dyn_gw/dyn_gw_plain require /proc, remove from default build on non-Linux
1878
1879 Henning Rogge (7):
1880       Fixed debug output of Scheduler polling interval
1881       Fix multicast join for IPv6
1882       Merge branch 'master' of http://olsr.org/git/olsrd
1883       Update version after release of v0.6.5.2
1884       Update version after release of v0.6.5.2
1885       Fix build break for MinGW compilation on Fedora 19.
1886       Release v0.6.6
1887
1888 Ronald in 't Velt (1):
1889       Fix setsockopt for setting Traffic Class in IPv6
1890
1891 Saverio Proto (3):
1892       main: fix the check on inet_pton return value because it returns 1 on
1893          success.
1894       mDNS: remove from Makefile PTHREAD useless dependency
1895       txtinfo: update README file
1896
1897 Scott Kidder (1):
1898       jsoninfo: ensure output is wrapped in curly braces.
1899
1900 Vasilis Tsiligiannis (1):
1901       olsrd-quagga: Fix memory leak when adding and deleting routes
1902
1903 equinox (1):
1904       quagga plugin routes additional
1905
1906 0.6.5.6 -------------------------------------------------------------------
1907
1908 Alessio Caiazza (2):
1909       Hotfix for very long http headers also for jsoninfo
1910       jsoninfo: HTTP headers with CORS (if requested)
1911
1912 Ferry Huberts (8):
1913       pud: fix java detection in the wireformat java bindings (again)
1914       pud: do the same fix as in the previous commit, now for i386
1915       Make sure to save/restore errno in signal handlers
1916       main: olsr_create_lock_file: fix return value check on 'open' call
1917       pud: fix readIPAddress function
1918       tok: improve the nmea_calc_crc function a bit
1919       neighbor table: fix crash in olsr_print_neighbor_table on MinGW
1920       Fix strange coding in the 'long headers' fix
1921
1922 Henning Rogge (5):
1923       Update version after release of v0.6.5.5
1924       Fix processing error for fragmented hellos
1925       Fix some spelling mistakes
1926       Hotfix for much too long http headers
1927       Release v0.6.5.6
1928
1929 0.6.5.5 -------------------------------------------------------------------
1930
1931 Ferry Huberts (4):
1932       build: really _ignore_ builddata.c when hashing sources
1933       build: only print the md5 hash in hash_source.sh
1934       Makefile: fix builddata when building from tarball
1935       pud: fix readIPAddress function
1936
1937 Henning Rogge (3):
1938       Update version after release of v0.6.5.4
1939       Fix build break for MinGW compilation on Fedora 19.
1940       Release v0.6.5.5
1941
1942 Scott Kidder (1):
1943       jsoninfo: ensure output is wrapped in curly braces.
1944
1945 0.6.5.4 -------------------------------------------------------------------
1946
1947 Ferry Huberts (11):
1948       Remove mercurial ignore file; we use git
1949       build: ignore builddata.c when hashing sources
1950       release: fix the list of generated files
1951       release: update some comments
1952       release: refactor the checkVersionIncrementing function
1953       release: do not update the version on master when it's already higher
1954       release: only report that master changed when it was actually changed
1955       release: checkVersionIncrementing: optionally allow equal versions
1956       release: also check against the Makefile version when branching
1957       txtinfo: prevent buffer overflow
1958       pud: nmealib: _nmea_parse_time not parsing hsec when given "hhmmss" format
1959
1960 Henning Rogge (2):
1961       Update version after release of v0.6.5.3
1962       Release v0.6.5.4
1963
1964 0.6.5.3 -------------------------------------------------------------------
1965
1966 Ferry Huberts (5):
1967       pud: detect the java include directory
1968       pud: better detection of java jdk
1969       gateway: work around kernel IPIP module initialisation bug
1970       main: use /dev/urandom by default
1971       pud: set local loopback for multicast tx
1972
1973 Henning Rogge (2):
1974       Update version after release of v0.6.5.2
1975       Release v0.6.5.3
1976
1977 Ronald in 't Velt (1):
1978       Fix setsockopt for setting Traffic Class in IPv6
1979
1980 0.6.5.2 -------------------------------------------------------------------
1981
1982 Henning Rogge (2):
1983       Update version after release of v0.6.5.1
1984       Release v0.6.5.2
1985
1986 Saverio Proto (1):
1987       main: fix the check on inet_pton return value because it returns 1 on
1988          success.
1989
1990 Vasilis Tsiligiannis (1):
1991       olsrd-quagga: Fix memory leak when adding and deleting routes
1992
1993 0.6.5.1 -------------------------------------------------------------------
1994
1995 Ferry Huberts (1):
1996       release: use olsrd-version prefix for files in the tarballs
1997
1998 Henning Rogge (2):
1999       Update version after release of v0.6.5
2000       Release v0.6.5.1
2001
2002 0.6.5 -------------------------------------------------------------------
2003
2004 Aaron Kaplan (1):
2005       chose the proper #define in order to take the right #include
2006
2007 Alessandro (4):
2008       mDNS: Implemented Host Filtering for ipv4 and ipv6, writing in the config
2009          file which hosts to ignore. The mDNS packets from the ignored hosts
2010          will be ignored and not propagated in the network
2011       mDNS: Updated README file for mDNS plugin
2012       mDNS: Reworked logic of router Election. The election is now handled on
2013          interface basis, because the router could have one interface where it
2014          needs to be master and another interface where it needs to be
2015          disabled. There was a logical bug in the earlier implementation.
2016       mDNS: BUGFIX, mDNS plugin, hello message of router election not sent if
2017          debug = 0
2018
2019 Alessandro Gnagni (3):
2020       mDNS: Fixing loops for mDNS packets when mDNS plugin is misconfigured
2021       mDNS: review of Alessandro Gnagni patch, inserted a config value to
2022          enable or disable TTL check and change, default is enabled.
2023       mDNS: Implemented router election mechansim to have only 1 active mDNS
2024          OLSR router in 1 LAN
2025
2026 Andreas Tonnesen (1):
2027       x86_64 patch from Bernd
2028
2029 Bernd Petrovitsch (1):
2030       * added -Wbad-function-cast
2031
2032 Ferry Huberts (219):
2033       gateway: clarify header with extra comments and ordering
2034       gateway: reorder functions to reflect order in header
2035       gateway: formatting
2036       gateway: remove 'unused' v{4,6}gw_choosen_external
2037       gateway: add asserts to validate gw_handler
2038       gateway: clear gw_handler during cleanup
2039       gateway: add init and cleanup hooks for gateway plugins
2040       gateway: rename hooks
2041       gateway: add comments to struct olsr_gw_handler function prototypes
2042       gateway: inline olsr_find_gateway_entry function
2043       gateway: inline olsr_trigger_inetgw_selection function
2044       gateway: rename a function
2045       gateway: simplify a condition
2046       gateway: push an if condition into its nested if's
2047       gateway: merge 2 code blocks
2048       gateway: the gateway to set must be in the gateway tree
2049       gateway: the gateway to set must either be an IPv4 or IPv6 gateway or
2050          both
2051       gateway: prevent 2 NULL dereferences
2052       gateway: merge 2 code blocks
2053       pud: force pending buffer out if not enough space for our message
2054       pud: include nmealib v1.0.3
2055       http_info: pud satellites in use are now green, not in use are red
2056       ifdef: fix some include ifdefs
2057       update comments on all ifdefs
2058       olsrd_plugin: remove #if 1
2059       gateway: rename 2 variables
2060       remove most '#if 0' blocks
2061       gateway: merge the olsr_get_ipv{4,6}_inet_gateway functions
2062       mdns: fix compilation warnings
2063       mdns: fix a compilation warning / copy-paste error
2064       bsd: fixup comment
2065       improve VERBOSE handling
2066       common: fix varargs cleanup
2067       pud: fix resource leak
2068       pud: fix socket error
2069       pud: fix socket error
2070       pud: fix position file stat/use race
2071       pud: fix getBestUplinkGateway
2072       pud: nmealib: fix copy/paste error
2073       pud: nmealib: fix buffer overrun
2074       pud: nmealib: fix buffer overrun
2075       pud: nmealib: fix invalid format string conversion
2076       add a COVERITY instructions text file
2077       pud: nmealib: fix invalid format string conversion
2078       pud: nmealib: fix invalid format string conversion
2079       pud: fix closing fd
2080       pud: fix checking of downlink message IP version
2081       sgwdynspeed: fix resource leak and file stat/use race
2082       bmf: explicitly cast fgetc result into a char
2083       bmf: do not close an 'error' socket return value
2084       bmf: do not dereference NULL pointer
2085       httpinfo: do not close an 'error' socket return value
2086       httpdinfo: fix resource leak
2087       secure: can only work for IPv4, so assert on it
2088       secure: do not hard-code a sizeof()
2089       secure: decrease a (stack allocated) buffer size
2090       secure: use sizeof() of the fields being copied
2091       secure: decrease a (stack allocated) buffer size
2092       secure: initialise rrmsg correctly
2093       secure: can only work for IPv4, so assert on it
2094       secure: do not hard-code a sizeof()
2095       secure: decrease a (stack allocated) buffer size
2096       secure: use sizeof() of the fields being copied
2097       secure: decrease a (stack allocated) buffer size
2098       secure: initialise crmsg correctly
2099       secure: can only work for IPv4, so assert on it
2100       secure: do not hard-code a sizeof()
2101       secure: decrease a (stack allocated) buffer size
2102       secure: initialise cmsg correctly
2103       nameservice: fix a resource leak
2104       nameservice: fix wrong size argument
2105       nameservice: check return value of fcntl
2106       nameservice: do not close an fd that is not open
2107       nameservice: remove some dead code
2108       jsoninfo: fix a resource leak
2109       jsoninfo: make sure that uuid is null-terminated
2110       jsoninfo: remove some dead code
2111       jsoninfo: remove pointless compare
2112       mdns: suppress a Coverity warning
2113       mdns: remove some dead code
2114       mdns: do not close an fd that is not open
2115       mdns: do not close an fd that is not open
2116       mdns: check return value of inet_pton
2117       mdns: check return value of sendto
2118       p2pd: do not close an fd that is not open
2119       p2pd: do not close an fd that is not open
2120       p2pd: remove some dead code
2121       bmf: do not close an fd that is not open
2122       pud: remove some dead code
2123       quagga: explicitly ignore return value of fcntl
2124       tas: fix a memory leak
2125       txtinfo: remove some dead code
2126       main: fix an Out-of-bounds access
2127       cfgparser: fix some memory leaks
2128       cfgparser: fix a copy/paste error and resulting memory leak
2129       cfgparser: fix dereference before assert
2130       linux: apm: fix retry opening of apm proc file
2131       olsr_switch: fix a memory leak
2132       lq: make sure that info_head != NULL
2133       lq: make sure last_ip != NULL
2134       android: fix type punning warning
2135       pud: fix alignment warning
2136       gateway: initialise the handler before setting up the tunnel
2137       gateway: cleanup: free the allocated memory cookie
2138       gateway: ensure cleanup uses the reverse order of init
2139       gateway: minor simplification in olsr_delete_gateway_entry
2140       gateway: allow immediate removal of a gateway entry
2141       gateway: split olsr_delete_gateway_entry
2142       gateway: walk the gateway tree to properly cleanup
2143       linux: sanitise ACPI battery data
2144       defs: fix strscpy null pointer dereference
2145       tas: lua: official source code for 5.0.2
2146       tas: lua: run gnu-indent.sh script
2147       cleanup, 1. step (to get some local changes away):
2148       * added -Wcast-qual: this killed lots of unnecessary type-casts
2149       Fix sytax errs and line break quirks for gnu-indent
2150       ARM alignment warnings fixed
2151       Patch ALIGN_NOWARN_ARM macro for better priority handling.
2152       use the POSIX standard '__linux__' macro instead of 'linux'
2153       tas: lua: run gnu-indent.sh script
2154       tas: lua: sync up to official source code with fixes
2155       Merge branch 'lua-official-502'
2156       cookie: an array already is a pointer
2157       cookie: add an assert
2158       Revert "httpdinfo: fix resource leak"
2159       httpinfo: add a comment about why the client socket is not closed
2160       gateway: minor optimisation
2161       gateway: improve cleanup
2162       gateway: rename gw_mem_cookie to gateway_entry_mem_cookie
2163       gateway: add a define for the tunnel name
2164       gateway: stub out olsr_print_gateway_entries on #ifdef NODEBUG
2165       duplicate_set: stub out olsr_print_duplicate_table on #ifdef NODEBUG
2166       link_set: stub out olsr_print_link_set on #ifdef NODEBUG
2167       mpr_set: stub out olsr_print_mpr_set on #ifdef NODEBUG
2168       routing_table: stub out olsr_print_routing_table on #ifdef NODEBUG
2169       tc_set: stub out olsr_print_tc_table on #ifdef NODEBUG
2170       two_hop_neighbor_table: stub out olsr_print_two_hop_neighbor_table on
2171          #ifdef NODEBUG
2172       hna_set: stub out olsr_print_hna_set on #ifndef NODEBUG
2173       hna_set: stub out olsr_print_hna_set on #ifdef NODEBUG and fix
2174       neighbor_table: stub out olsr_print_neighbor_table on #ifndef NODEBUG
2175       neighbor_table: stub out olsr_print_neighbor_table on #ifdef NODEBUG and
2176          fix
2177       use INET_ADDRSTRLEN and INET6_ADDRSTRLEN instead of magic constants
2178       gateway: only remove a tunnel when there is one
2179       gateway: rename a variable
2180       gateway: minor improvement in NULL comparisons
2181       hna_set: olsr_ip_prefix_to_string outputs a wider string
2182       gateway: refactor olsr_set_inet_gateway
2183       Merge tag 'v0.6.4'
2184       win32: use #ifdef _WIN32
2185       Makefile: fixup some forgotten make command prefixes
2186       Makefile: add gui target
2187       Makefile: always pass VERBOSE to the make command
2188       gui: linux: minor Makefile fixup
2189       gui: linux: clean and install are phony targets
2190       gui: linux: add VERBOSE handling
2191       gui: linux: fix some 'may be used uninitialized' compiler warnings
2192       gui: linux: use toplevel make options
2193       gui: linux: fix some 'noreturn' compiler warnings
2194       gui: linux: fix some 'discards const qualifier' compiler warnings
2195       gui: linux: fix some 'old-style function definition' compiler warnings
2196       gui: linux: fix 'too few arguments to function ipc_connect' compiler
2197          warning
2198       gui: linux: fix a 'mixed declarations and code' compiler warning
2199       gui: linux: fix some 'unused parameter' compiler warnings
2200       Revert "gui: linux: fix some 'may be used uninitialized' compiler
2201          warnings"
2202       gui: linux: fix some 'may be used uninitialized' compiler warnings
2203       gui: linux: fix some 'shadow' compiler warnings
2204       gui: linux: fix inccorrect sizeof()
2205       gui: linux: fix string buffer overflow
2206       gui: linux: fix string buffer overflow
2207       gui: linux: fix the string buffer overflow better
2208       gateway: simplify stopping the cleanup timer
2209       tas: remove plugin
2210       main: do not seed the random number generator with the process id
2211       win32: remove unused getpid() function
2212       hna_set: explicitly cast to (time_t *) in calls to localtime()
2213       neighbor_table: explicitly cast to (time_t *) in calls to localtime()
2214       main: improve random number generator seed
2215       bmf: do the minimum length check earlier
2216       changelog: update to current state
2217       print_packet: fix wrong use of sizeof()
2218       main: remove -dispin and -dispout command line options
2219       main: add release script
2220       Update version after release of v0.6.4
2221       Changelog: remove 0.6.5 preliminary changelog
2222       Merge branch 'release-0.6.4'
2223       bmf: check minimumLength against buffer size
2224       sgwdynspeed: put plugin config in olsrd.conf.sample
2225       pud: put plugin config in olsrd.conf.sample
2226       cookie: raise the number of cookies
2227       pud: enable dynamic polling of the position file
2228       gateway: only check smart gateway configuration on linux
2229       linux: put #ifdef __linux__ around code
2230       doc: add doxygen documentation generation
2231       doc: fix common documentation tags
2232       doc: fix linux specific documentation tags
2233       doc: fix unix specific documentation tags
2234       doc: fix bsd specific documentation tags
2235       doc: fix win32 specific documentation tags
2236       doc: do not generate documentation for gui code
2237       release: move the stringTrim function up a bit
2238       release: make gitIsGitDirectory do the correct thing
2239       release: fix usage of literal dot in regular expressions
2240       release: move into the base directory earlier
2241       release: convert some code into checkIsOlsrdGitCheckout function
2242       release: convert some code into checkGitSigningKeyIsConfigured function
2243       release: convert some code into getPrevRelTag function
2244       release: the script can now also create a release branch
2245       Merge branch 'release-0.6.4' into mmmm
2246       Branch v0.6.5
2247       pud: change java include path to generic java include path
2248       pud: java make target is dependent on library make target
2249       doc: clean up the latex directory if empty
2250       Revert "linux: name is required to be non-null in
2251          olsr_os_cleanup_iptunnel"
2252       gateway: fix a revert problem
2253       android: fix the path of the tunnel node in the /dev tree
2254       gateway: fix stable count dampening in gw_default_timer
2255       gateway: always select a new gateway when threshold != 0
2256       main: add -pidfile command line option
2257       main: fix pidfile compilation on windows
2258
2259 Frank de Brabander (4):
2260       New feature: support for Linux NL802.11 wireless link information in cost
2261          calculation.
2262       Merge branch with new lq plugin for NL80211 support
2263       Incorporate fix by Ferry Hubert for float to double promotion
2264       Fix optional compilation of the nl80211 lq plugin
2265
2266 Hans-Christoph Steiner (9):
2267       use the POSIX standard '__linux__' macro instead of 'linux'
2268       use the Microsoft standard '_WIN32' macro instead of the self-defined
2269          'WIN32'
2270       olsrd-adhoc-setup: use static BSSID by default to assoc. with the right
2271          mesh
2272       olsrd-adhoc-setup: configure NetworkManager to be nice when adhoc is
2273          manually setup
2274       fix misspelling: 'adress' --> 'address'
2275       fixed misspelling: usefull -> useful
2276       add gcc hardening flags to linux-gtk GUI
2277       android: update to use gcc 4.6, available starting with NDK r8
2278       android: gcc 4.6 comes with NDK r8b and is not in NDK r8
2279
2280 Henning Rogge (29):
2281       Pud: Do not use the variable name strlen.
2282       Fix buffer overflow in mdns plugin
2283       Add -Werror=format-security
2284       Add VERBOSE flag to makefile to display full gcc commands
2285       Fix slightly insulting error message.
2286       Moved regex library to a makefile of its own to solve the issues with
2287          compiler warnings.
2288       fix control flow if kill() command fails to end program
2289       fix wrong sizeof() parameter
2290       Convert allocated memory into temporary variable
2291       Protect against stupid data from ACPI
2292       Close socket if bind() fails.
2293       Merge branch 'master' of http://olsr.org/git/olsrd
2294       Use strscpy instead of strncpy.
2295       Check inet_pton return value
2296       Close file descriptor if error happens
2297       Fix scanf() format vulnerabilities
2298       Fix command line parsing macro
2299       Fail in IPC initializationis always fatal.
2300       fail of non-blocking netlink socket is not fatal
2301       Declare olsr_exit() as noreturn
2302       Interface will always be found.
2303       no hostroute possible in this if() branch
2304       reset link timer if not set
2305       Remove dead codepath
2306       Cleanup error handling in ipc_init()
2307       Remove unnecessary asserts
2308       Make sure calculated header length does not skip over buffer
2309       Fix multicast join for IPv6
2310       Release v0.6.5
2311
2312 Saverio Proto (12):
2313       mDNS: Skeleton code for new host filter feature in mDNS plugin
2314       mDNS: Upgrading the container_of.h that was backported from src/common in
2315          master
2316       mDNS: Fix most of the warnings from the compiler
2317       mDNS: Update checksum field of the IPv4 Header after altering TTL
2318       mDNS: trivial debug print fix and code readibility improvement
2319       mDNS: Change version of mdns plugin to 1.0.1 after GSoC 2012 work by
2320          Alessandro Gnagni
2321       mDNS: init ListOfFilteredHosts in the proper place and not at every
2322          received packet
2323       mDNS: trivial, removed TODO from code for something that was implemented
2324       mDNS: better debug support for filtered hosts feature
2325       mDNS: Fixed typo in README
2326       Revert "mDNS: init ListOfFilteredHosts in the proper place and not at
2327          every received packet"
2328       Merge remote-tracking branch 'origin/mDNS-plugin-GSoC-2012'
2329
2330 0.6.4 --------------------------------------------------------------------
2331
2332 Bugfix and plugin release 0.6.4
2333 - Update of Smartgateway system
2334 - small updates to several plugins
2335 - lots of updates for PUD plugin
2336
2337 0.6.3 --------------------------------------------------------------------
2338
2339 Bugfix and plugin release 0.6.3
2340
2341 - PUD plugin (position update plugin)
2342 - JSONinfo plugin
2343 - sgwdynspeed plugin (select dynamic smart gateway based on gw speed)
2344 - Update on Quagga plugin (for new Quagga)
2345 - Fixes for Androids
2346 - Some fixes for GTK and Win32 gui
2347 - Lots of core fixes to support new compiler warnings
2348
2349 0.6.2 --------------------------------------------------------------------
2350
2351 Bugfix release for 0.6.1
2352
2353 - Compatibility for Linux kernel 3.x
2354 - Lots of small fixes
2355 - reworked makefile output
2356 - updates for some plugins
2357 - repair for Smartgateway feature
2358
2359 Read GIT changelog at http://olsr.org/git to see a complete history.
2360
2361 0.6.1 --------------------------------------------------------------------
2362
2363 Bugfix release for 0.6.0
2364
2365 Markus Kittenberger <Markus.Kittenberger@gmx.at>
2366 - Major bugfix for the neighbor table when a neighbor gets a new main IP.
2367 - add /interface command to txtinfo, allow multiple commands per request
2368
2369 Henning Rogge <henning.rogge@fkie.fraunhofer.de>
2370 - wait up to four seconds for aquiring the OLSRd lock. This helps to
2371   shutdown OLSRd with a script and restart it at once (kill <pid> is
2372   asynchrone, and kill -w is not available in busybox)
2373 - add md5 has of all source/headers into version string
2374
2375 Mitar<mitar@tnode.com>
2376 - lot's of small changes for Android. Slowly Android gets a fully
2377   supported platform for OLSRd.
2378
2379 and a lot more small bugfixes. Read GIT changelog at http://olsr.org/git
2380 to see a complete history.
2381
2382 0.6.0 --------------------------------------------------------------------
2383
2384 Change in version number system. No more -rcX for release candidates and
2385 -rX for bugfix releases. In future bugfix releases or updates of plugins
2386 will increase the third digit of the version string while feature releases
2387 will increase the first and/or the second one.
2388
2389 Markus Kittenberger <Markus.Kittenberger@gmx.at>
2390 Henning Rogge <henning.rogge@fkie.fraunhofer.de>
2391 - added NIIT kernel module support for sending IPv4 traffic over
2392   IPv6 mesh networks. See README-Olsr-Extensions for more information.
2393 - added SmartGateway support. OLSRd can now automatically build
2394   IPIP tunnels towards the gateway to prevent gateway flapping.
2395   See README-Olsr-Extensions for more information.
2396 - complete rewrite of linux netlink routing code. New code should be
2397   more understandable and easier to debug/improve.
2398
2399 Teco Boots <teco@inf-net.nl>
2400 - new dyngw plugin. More flexible and more features.
2401 - new p2pd plugin (generalized mdns plugin)
2402
2403 Vasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
2404 - new version of quagga plugin (with IPv6 support !)
2405
2406 Sven-Ola Tuecke <sven-ola@gmx.de>
2407 - fixes for improved uClibc support
2408 - fixes for better linux kernel 2.4 support
2409
2410 Saverio Proto <zioproto@gmail.com>
2411 - new mdns plugin. (backport from master branch)
2412
2413 Eric Tromps <erik_tromp@hotmail.com>
2414 - new version of bmf plugin. NO pthreads are necessary anymore
2415
2416 and a lot more small bugfixes. Read GIT changelog at http://olsr.org/git
2417 to see a complete history.
2418
2419 0.5.6-r8 ---------------------------------------------------------------------
2420
2421 Alina Friedrichsen <x-alina@gmx.net>
2422 - patch for using deticated output socket for OLSR packages. This allows
2423   to set the src-ip of OLSR packages, which is useful for interfaces
2424   with multiple IPs
2425
2426 Bruce Ford <fordbr@gmail.com>
2427 - fixes for compiling olsrd for win32
2428
2429 Henning Rogge <henning.rogge@fkie.fraunhofer.de>
2430 - fix for memoryleak during MID processing
2431 - patch series for "network logoff" of OLSRd, other nodes now get
2432   notified if an OLSR node switch down to remove it from their database.
2433 - cleanup of naming conventions for settings src/dst-ips of OLSR-packets
2434   for ipv4/6. See example config files. 
2435 - patch to ignore HNA4 for IPv6 and HNA6 for IPv4
2436
2437 Markus Kittenberger <Markus.Kittenberger@gmx.at>
2438 - patch series for MID handling cleanup
2439 - compiletime switch for txtinfo to always allow localhost access
2440 - add "InterfaceDefaults" section to config files to allow setting values
2441   which are shared by all interfaces but can be overwritten in specific
2442   config file settings
2443 - patch series to allow OLSRd handle multiple config files
2444   (multiple "-f <cfgfile>" options)
2445
2446 0.5.6 ---------------------------------------------------------------------
2447
2448 PATCHES and BUGFIXES from Henning Rogge <rogge@fgan.de>
2449 - Bugfix for fragmented TC sequence numbers
2450 - eliminate second timer for edge garbage collection (aka border code).
2451 - fix SPF bug
2452 - fix for jitter calculation
2453 - refactor linkset code
2454 - add netsimpcap, a network simulation device
2455 - parser refactoring
2456 - fix for possible overflow in fpm plugin
2457 - prevent Originator-IP from changing during runtime
2458 - fix several compiler warnings
2459 - fix hanging TC entry from lost onehop neighbor
2460 - fix drop package with same seqno in etx_ff
2461 - fix segfault in parsing HNA package with bad netmask
2462 - fix avl_comparator for route_paths
2463 - fix alignment problem in packet buffers
2464 - fix: segfault in neighbor/neighbor-2 table
2465 - fix: lqmult default parsing
2466 - HACK: MinTCVTime parameter hack for Berlin FF network...
2467   feel free to ask on the mailing list.
2468 - add Watchdog plugin
2469 - add explicit runtime lock for OLSR.
2470 - remove lq-hysteresis for tc on the receiver side.
2471 - enhance protection against malformed packages to prevent
2472   OLSR parsing uninitialized data. Thank you Markus and Keks for the LONG
2473   debugging session
2474 - block tc-redundancy 0/1, it doesn't work with the current dijkstra code
2475 - convert httpinfo/txtinfo/dotdraw to nonblocking and autobuf to
2476   prevent blocking outgoing connections
2477 - fix some bugs with lq-mult
2478 - fix bug in duplicate set sequencenumber handling
2479 - add Debian/KFreeBSD support (Thanks to Holger Levsen and friends for help)
2480 - fix segfault in 'interface lost' monitor
2481 - add LQ hysteresis to etx-ff metric
2482
2483 PATCH from Markus Kittenberger <Markus.Kittenberger@gmx.at>:
2484 - txtinfo plugin: add more http options
2485 - allow configuration of OLSR UDP port
2486 - allow configuration of proto Tag for Routes (RtProto)
2487 - add fallback policy rule (priority 65536) if RtTable is used,
2488     to ensure that routes can be added to this table
2489 - resolve many error conditions while adding routes to the linux kernel
2490     (Warning this will also delete any conflicting routes made by other routing daemons or admins)
2491 - interface modes mesh (default) and ether (no retransmit of olsr-messages back into a broadcastdomain)
2492 - fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
2493 - fix several compiler warnings
2494 - fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
2495 - create policy rule later during startup
2496 - send MID also with one interface, if its ip different from originator-id
2497 - linux rtnetlink code cleanup
2498 - workaround: generate routes to single hop neighbours on the fly when inserting routes via them
2499     (active only with fib_metric=flat)
2500 - testing: insert routes with source-ip set to originator ip
2501 - testing: syslog numbering (e.g. useful to detect lost syslog messages when using remote-syslog)
2502 - testing: custom library path (default /usr/testlib)
2503 Testing features must be activated in olsr_cfg.h before compiling olsrd.
2504 This features are used to run a test network in Vienna parallel to the existing
2505 OLSR network.
2506 - more RT-Netlink cleanups and fixes
2507 - backport of timejump patch from TIP
2508 - Add detection for vanishing interfaces to Linux netlink code
2509 - fix incorret route sorting on new neighbours. use only delete and add/change avl tree,
2510   instead of 3 trees
2511 - learn neighbours interface alias address from received hellos
2512
2513 PATCHES from Hannes Gredler <hannes@gredler.at>:
2514 - add small valgrind howto
2515 - remove the per tc_edge timer
2516 - add some basic infrastructure for cookies
2517   cookies are used to track usage of timer and memory resources
2518 - add a lightweight memory manager to reduce malloc() churn.
2519 - eliminate data field from avl_node and list_node and
2520   replace this via inline recasts
2521 - add indentation dotfile for future code cleanup
2522 - refactor the timer implementation, get rid of timeout functions
2523   all manipulations done in constant time.
2524 - use calloc rather than malloc for lazy callers
2525 - log RIB add/del transactions only if there is an actual route change
2526 - fix to to always insert a HNA Net when receiving a HNA refresh
2527 - fix delete all routes if the last IP address is gone
2528 - reduce TC vtime jitter from 25% down to 5%
2529
2530 PATCHES and BUGFIXES from Sven-Ola Tuecke <sven-ola@gmx.de>:
2531 - add a fixed-point math implementation, which saves
2532   a great deal of CPU on embedded devices
2533 - fix for Link quality dijkstra limit
2534 - nameservice plugin supports mac addresses
2535 - fix fork/restart code
2536 - fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
2537 - fix several compiler warnings
2538 - fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
2539 - add makefile support for google android
2540 - fix default olsrd.conf examples
2541
2542 PATCHES and BUGFIXES from Aaron Kaplan <aaron@lo-res.org>:
2543 - fix openbsd warnings / compile errors about sprintf strcpy
2544 - fix string overflow in dyn_gw plugin
2545 - fix string overflow in pgraph plugin
2546 - fix openbsd/osx coompile errors
2547
2548 BUGFIX by Peter Tarjan <peter.tarjan@birdtelecom.hu>:
2549 - Do not remember LQ information UNSPEC_LINK neighbors in Hellos.
2550 - ignore UNSPEC link for linktype if there is an ASYM/LOST/SYM Link in the
2551   same Hello message
2552 - ignore UNSPEC_LINKS during MPR lookup
2553 - broken MID route handling: we also check the data structures for routing,
2554   even if a MID entry exists.
2555
2556 BUGFIX by John Hay <jhay@meraka.org.za>:
2557 - FIX: IPv6 MTU in BSD
2558 - Another BSD ipv6 Patch by John Hay
2559 - fixes for 64 Bit FreeBSD
2560 - fixes for NetBSD
2561
2562
2563 BUGFIX from Erik Tromp <erik_tromp@hotmail.com>:
2564 - update in bmf due to new flags field in tc_edge_entry
2565
2566 PATCH from Clemens Hopfer <datacop@inode.at>:
2567 - dot_draw plugin: close the connection after graph output.
2568
2569 PATCH from Joe Gio <joezgio@gmail.com>:
2570 - track if AC power is connected/disconnected
2571
2572 PATCH from Hagen Paul Pfeifer <hagen@jauu.net>:
2573 - import jenkins hash for good hash calculations
2574
2575 PATCH from Andres Ambrois <andresambrois@gmail.com>:
2576 - nameservice plugin: add parameters for SIGHUPing other daemons, or calling scripts
2577
2578 BUGFIX by Benny Tops <b.tops@mindef.nl>:
2579 - fix wrong order of drop_tc checkt in olsr_input_tc
2580
2581 Felix (OpenWRT NBD):
2582 - fix bison problem for OpenWRT
2583
2584 Sebastian Harl:
2585 - add LISTEN parameter for httpinfo/txtinfo/dotdraw
2586
2587 0.5.5 ---------------------------------------------------------------------
2588
2589 BUGFIX from Andreas Jacobs <andjac@kawo1.rwth-aachen.de>:
2590 - calculate correct sleeptime
2591
2592 BUGFIX from Dario Borriello <dario_bodj@hotmail.com>:
2593 - do not update LQ if not configured
2594
2595 BUGFIX from Jo-Philipp Wich <freifunk@wwsnet.net:
2596 - fix olsr_ip_to_string() buffer quirk
2597 - fix txtinfo format quirks in HNA table
2598 - name-service plugin - write MID entries to hosts file
2599 - avoid infinite loop in the message parser
2600
2601 PATCH by John Hay <jhay@meraka.org.za>:
2602 - compile clean on FreeBSD
2603 - bugfix: do not account for IP headers when building MID6 messages
2604
2605 PATCHES from Henning Rogge <rogge@fgan.de>:
2606 - join LQ and non-LQ Hello execution paths
2607
2608 PATCHES from otti <otti@wirdorange.org>:
2609 - rttable-default: configures a new policy routing table for the default route
2610
2611 BUGFIXES and PATCHES by Sven-Ola Tuecke <mail2news@commando.de>:
2612 - Windows Vista: add interface metric to SPF computed metric
2613 - lqtc-seqno: Optimize check for old seqno numbers in LQTC messages
2614 - lqnatthresh: maintain an advantage for the current (NAT) inet gw
2615 - fisheye-startup: Changed to MAX_TTL for the first 32 LQTCs
2616 - Added and removed files necessary for win32 compile
2617 - Fix for hg: do not remove anything in .hg with 'make uberclean'
2618 - 104-olsrd-verysmallfix
2619 - 105-fix-lq-buffer-quirks
2620 - 106-fix-seqnocheck
2621 - 110-bmf-v152
2622 - 121-olsrd-fib-metric-approx
2623 - 133-fix-lqneigh
2624 - 136-optimize-invalidip-check
2625 - 138-optimize-message-generation
2626
2627 BUGFIX from Lorenz Shori <lorenz.schori@gmx.ch>:
2628 - Mac OSX compile fixes
2629
2630 BUGFIXES and PATCHES by Hannes Gredler <hannes@gredler.at>
2631 - fix not deleted tc entry.
2632 - avoid setting routes with an invalid/impossible netmask.
2633 - refactoring of TC parsing to kill another pile of malloc()/free()s
2634   saving (again) code and especially run.time performance.
2635 - RIB Refactoring, Part 2:
2636   - avoid the periodical rib-tree insertion
2637   - add a FOR_ALL_HNA_RT_ENTRIES() macro for the snmp folks
2638     (or any parties who want to walk HNA entries).
2639   - add an olsr_cnf option 'flat_fib_metrics' which defaults to TRUE.
2640 - fix broken prefix insertion (regression of the RIB refactoring)
2641 - squelsh compiler warnings on Mac OSX
2642
2643 PATCH by John Hay <jhay@meraka.org.za>:
2644 - also printout our own HNAs in the dotdraw plugin.
2645
2646 PATCH by Patrick McCarty <mccartyp@gmail.com>:
2647 - fixed compile errors in the BSD port
2648
2649 PATCHES by Sven-Ola Tuecke <mail2news@commando.de>:
2650 - 102-olsrd-cvs-fixes.patch: use different buffers in the same printf()
2651 - 103-olsrd-rt-exportroute-cleanup.patch: avoid a malloc()ed list of functions
2652 - 132-save-the-fish.patch: really save the fish and avoid to forward invalid
2653   messages from older olsrd versions
2654 - 135-georss-map-for-nameservice.patch: fixes and extensions for the namesaervice plugin
2655 - 138-olsrd-fixdotdraw.patch: fix the dot_draw plugin
2656 (all to be found on http://download-master.berlin.freifunk.net/sven-ola/nylon/packages/olsrd/files/)
2657 - Replaced "which" with a /bin/sh script snippet
2658
2659 PATCHES and CLEANUPS by Bernd Petrovitsch <bernd@firmix.at>
2660 - Jens Nachtigall <nachtigall@web.de> suggested (and reminded) to use
2661   olsrd.conf.default.lq as the default installed one.
2662   It makes much more sense as - to the best of my(bernd's) knowledge - all
2663   larger networks uses the LQ extensions. And new customers should better
2664   be pushed in that direction.
2665 - with the help of Patrick McCarty <mccartyp@gmail.com>, we got olsr to build
2666   on OpenBSD again:
2667   * OpenBSD'd `sed` is pretty conservative and doesn't understand 's|re|sub|'.
2668     So we fall back to the old 's/re/sub/' and quote all '/' and '.' correctly
2669     (which was the main reason to use '|').
2670     And while I'm at it: Remove the useless $(CCACHE) from the $(CC) for
2671     dependency generation and beautify (read: "$(strip)") $(CPPFLAGS).
2672   * OpenBSD needs an explicit "#include <sys/types.h>" before
2673     "#include <netinet/in.h>".
2674 - fixed lib/secure/src/md5.h: This was broken as it had
2675   "typedef unsigned long int UINT4;". "unsigned long int" is 8 bytes on x86_64.
2676   We are using now the standardized types from <inttypes.h>.
2677 - fixed warnings and improved lib/secure/src/md5.c:
2678   * we are using memcpy() and memset() instead of the open-coded loops as
2679     suggested 
2680   * const'ified
2681   * added function prototypes for static functions
2682   * moved static functions to the top so that their declaration is before
2683     their use to allow gcc to inline if only used once.
2684   It remains ugly - God knows why there are that so many useless
2685   type-casts.
2686 - Some minor and trivial cleanup: Added two functions to calculate the ETX
2687   value from a struct tc_edge_entry and a struct link_entry, respectively.
2688   And use them everywhere.
2689 - added http://meshcube.org/nylon/utils/olsr-topology-view.pl into
2690   lib/httpinfo/misc as suggested by Jens Nachtigall <nachtigall@web.de>
2691 - Killed "struct olsrd_config *cnf" in src/cfgparser/olsrd_conf.h and replaced
2692   it's usage with "olsr_cnf" from src/defs.h.
2693   Serious cleanup: olsrd_get_default_cnf() does no longer initialize the global
2694   "cnf" variable" but uses a local one which is returned as before. And
2695   olsrd_parse_cnf() does no longer return the global variable it is working on.
2696 - Merged "struct hna4_entry" and "struct hna6_entry" into
2697   "struct local_hna_entry" (as "struct hna_entry" is a different thing)
2698   Both have almost the same data (IP address + netmask/prefix) so we use
2699   the quite new "struct olsr_ip_prefix" to store it.
2700   Also merged the "hna4" and "hna6" pointer in "struct olsr_config" -
2701   look at the global "olsr_cnf->ip_version".
2702 - added a olsr_ip_prefix_to_string() function
2703 - .h file cleanup: def.h does not longer include net_olsr.h because it 
2704   doesn't needs it.
2705 - more type safety: the macros COPY_IP() and COMP_IP are gone and replaced
2706   with "=" or similar "normal" C operations. There are also now the inline
2707   functions ip4cmp() and ip4equal() to work on "struct in_addr", ip6cmp()
2708   and ip6equal() to work on "struct in6_addr" and ipcmp() and ip6equal()
2709   to work on "union olsr_ip_addr".
2710   Most (or even more precise: almost all) uses of COPY_IP() and COMP_IP()
2711   are in "if (olsr_cnf->ip_version) { ... } else { ... }" anyway to
2712   there is no reson to copy an IPv4 address effectively with
2713   "memcpy(&dst, &src, 4)" or compare with memcmp(&a, &b, 4)" wher the
2714   always "4" is stored in a variable inhibiting compiler optimization.
2715   There is also the deprecated function genipcopy() mimicking the old
2716   typeless COPY_IP() macro for the last few places where a cleanup is
2717   needed anyways.
2718   There also lots of old macros left over (commented out of course) until
2719   we are confident that everything works. And then I will kill them too.
2720 - Fixed the misleading definition of "v4" in "struct olsr_ip_addr" fom
2721   "olsr_u32_t" (in network-byteorder!) to "struct in_addr". Lots of
2722   temporary variables to call inet_ntoa()/inet_ptoa() vanished .....
2723 - We have now ip4_to_string(), ip6_to_string() and olsr_ip_to_string()
2724   to print a "struct in_addr", "struct in6_addr" and "union olsr_ip_addr"
2725   into a string buffer.
2726 - cleanup: olsr_ip_to_string() and similar non-reentrant functions now must
2727   get a target buffer. To ease that, there is the "struct ipaddr_str"
2728   which is large enough for all of them (read: for an IPv6 address). This
2729   also removes the cyclic buffer there.
2730   All of these function return a "const char *" which can be directly used
2731   for printf(3) and friends.
2732 - const'ified more functions
2733 - converted the source to UTF-8.
2734 - "struct sig_msg" uses an olsr_u8_t for a byte array (and not "char")
2735 - force the few inline function to always be inlined.
2736 - #ifdef the body of the olsr_print_hna_set() and olsr_print_neighbor_table()
2737   if nothing is done
2738 - declare "int_addr", "int_netmask" and "int_broadaddr" in "struct interface"
2739   as "struct sockaddr_in" since it is that what we actually want there (and
2740   it is similar to the IPv6 code).
2741 - updated the olsrd.conf.default.lq-fisheye to the Debian-deliverd version
2742   after recent discussions olsr-dev@olsr.org
2743 - use "inline_avl_comp_ipv4()" in "avl_comp_ipv4()"
2744 - clean up the routes on more signals. Basically we want to do this on all
2745   signals which terminate the program.
2746 - killed a superflous global buffer in src/main.c
2747 - made inline functions from avl_walk_{first,last,next,prev} and created
2748   "const" versions of it. inline_avl_comp_ipv4() is now also an inline function
2749   (and not a macro)
2750 - created a typedef's for various function pointers - much easier to read.
2751 - cleanup: compare tree->comp (adn other pointers)) to NULL (and not 0)
2752 - killed superflous "return"s at the end of void functions
2753 - const'ified more parameters in many more functions in the .h and
2754   .c files
2755 - init-functions with constant or ignored return values are "void"
2756 - created a typedef fro the callback in "struct export_route_entry"
2757   and using it!
2758 - moved the initialization of the {add,chg,del}_kernel_list variables
2759   into process_routes.c. So they are now "static" there.
2760 - olsr_export_{add,del}_route{,6} are now static in process_routes.c
2761   since they are not used elsewhere.
2762 - olsr_addroute_add_function() and olsr_deldroute_add_function() were
2763   almost identical - made one function out of it.
2764   Same for olsr_addroute_del_function() and olsr_deldroute_del_function().
2765 - fixed the sort order in avl_comp_ipv4_prefix(): We compare now the IPv4
2766   values in host byte order (and not network byte order). So the route
2767   list in the e.g. httpinfo plugin is now nicely sorted.
2768 - fixed and improved the `gcc-warnings` script:
2769   * support older gcc's (as on Debian/Sarge) as they have slightly different
2770     error messages
2771   * removed superflous lines
2772   * replaced the call of `sed` with shell built-in features fixing syntax
2773     errors on Debian/Sarge
2774   * set all locale-relevant variables to "C" (just to be sure)
2775 - consolidated ip{4,6,}{cmp,equal}: all are nwo inline functions using only
2776   the minimal necessary operations. Thanks to Hannes Gredler
2777   <hannes@gedler.at> and Sven-Ola Tuecke <mail2news@commando.de> for pointing
2778   that out and suggesting the `inline`, respectively.
2779   use ip{4,}cmp in lq_avl.[ch] to resue the code. inline_avl_comp_ipv4
2780   is superflous now (and replaced by ip4cmp) and use the global MIN and MAX
2781   macro instead of AVLMIN and AVLMAX
2782 - killed netmasks from the IPv4 part of the code and use the prefixlen there
2783   (similar to thte IPv6 part). Manymore details on
2784   http://lists.olsr.org/pipermail/olsr-dev/2007-November/001464.html
2785 - removed the superflous "open_ipc" field from the "struct olsrd_config" as
2786   it contains only the equivalent of "olsr_cnf->debug_level > 1".
2787 - inspired by Sven-Ola Tuecke: avoid a bash'ism (i.e. "OPTS="${OPTS//$opt}") in
2788   gcc-warnings and ld-warnings. But we do not replace it with `sed` (since it
2789   costs a fork(2) and an exec(3)) but also with shell code which doesn't use
2790   any external program.
2791 - added configuration file support for "flat fib metrics".
2792
2793 0.5.4 ---------------------------------------------------------------------
2794
2795 QUAGGA by Immo 'FaUl' Wehrenberg <immo.olsr@do.bundessicherheitsministerium.de>
2796 - updated to svn version 33
2797
2798 BMF PLUGIN  by Erik Tromp <erik_tromp@hotmail.com>
2799 - updated to 1.5.1
2800 - updated to latest plugin interfaces changes and killed warnings (by Bernd
2801   Petrovitsch <bernd@firmix.at>)
2802
2803 PATCH by Hannes Gredler <hannes@gredler.at> which rewrites the route handling.
2804 To quote him:
2805 ----  snip  ----
2806 change list:
2807 - get rid of separate routing tables for HNA and per-node routes, everything is
2808   now unified in an AVL routing tree (&routingtree)
2809
2810 - introduce walking macros (OLSR_FOR_ALL_RT_ENTRIES()) that hide the internal
2811   structure of the RIB for making life of the plugin authors easier.
2812
2813 - get rid of different SPF implementations for LQ and non-LQ code paths. a
2814   non-LQ edge is simply substituted with a cost of 1.0
2815
2816 - get rid of host masks - a new data type olsr_prefix is introduced which is
2817   basically an ip address plus a prefix length.
2818
2819   do not install the metric in the kernel FIB - for the kernel its pointless
2820   if the route gets installed with a metric of N or M.
2821
2822   we do not need to update the kernel FIB if we have hop count only changes
2823   (for example if there is a reroute action further downstream)
2824
2825   the only things which triggers a kernel FIB route update is a next hop
2826   change (a next hop is neighboring gateway router plus an interface).
2827
2828   all OLSR routes are installed with a metric of 2
2829
2830 - separate between rt_entry and rt_path - the former is a route installed in the
2831   kernel with an next hop. the latter is a candidate for best path selection
2832   after SPF calculation has been done. in the rt_entry we keep a pointer to the
2833   best_path and also to the next hop that was installed in the kernel FIB.
2834
2835   we always keep all originator of a route, if a route originator goes away we
2836   can easy recompute the best path for the route.
2837
2838   the next hop in the rt_entry gets only updated upon a successful route_add
2839   call - that way we always remember what next hop to delete.
2840
2841   stray routes should be history now.
2842
2843 - tweak the linked list toolkit to operate on circular lists.
2844
2845 - get rid of malloc calls for building the kernel update list. the list node is
2846   now embedded in the rt_entry.
2847
2848 - introduce three queues (add/chg/del) for kernel updates.
2849
2850 - for neighbor route dependency tracking the neighbor routes are queued first or
2851   last (depending on which queue you work on)
2852
2853 - rework all the plugins which directly manipulate rt entries.
2854
2855 - rework the plugins that read from the routing table (most notably nameserver,
2856   httpinfo and quagga plugin)
2857
2858 - lots of comments that explains the intentions and purpose of this code-piece.
2859
2860 non RT related stuff:
2861 - use a list rather than a tree for storing the post-SPF results, which further
2862   improves the raw-SPF runtime.
2863
2864 - add display of SPF runtime (masked behind #ifdef SPF_PROFILING)
2865
2866 - http://gredler.at/download/olsrd/neighbor_routes3.diff: This updates the own
2867   IP address (read: the main address) after changes (e.g. on
2868   `ifup wlan0; sleep 1; ifdown wlan0`) and kills the
2869   olsr_fill_routing_table_with_neighbors() function.
2870 ----  snip  ----
2871 And Sven-Ola Tuecke <mail2news@commando.de> fixed an instability issue on interface
2872 up/down operations (see 102-olsrd-rt-refactoring-fixes.patch below) and a missing
2873 initialization.
2874
2875 PATCH by Hannes Gredler <hannes@gredler.at> which "consolidates
2876 the link-state database and the spf-calculation in order
2877 to calculate routes more efficiently".
2878 To quote him (more):
2879 ----  snip  ----
2880 - use the link-state (tc) database for SPF calculations rather than
2881   replicating the notion of vertices and edges for a SPF run.
2882   this heavily reduces malloc() calls and shrinks the total CPU
2883   load of the route calculation path between 60%-80%.
2884 ----  snip  ----
2885
2886 PATCHES by Sven-Ola Tuecke <mail2news@commando.de> to be found on from
2887 http://download-master.berlin.freifunk.net/sven-ola/nylon/packages/olsrd/files/
2888 - 102-olsrd-rt-refactoring-fixes.patch
2889   Because you changed a lot of basics: It's time to handle a general
2890   flaw in the routing system. Plase take a look at chk_if_changed(). This
2891   will free() any "struct interface" pointer without warning at any time.
2892   This is why it's possile to SEGV olsrd with a simple "ifdown xxx".
2893   The patch replaces the (maybe) invalid pointer with an index reference
2894   "iif_index". You can always ask the OS for a name. Please note, that I do
2895   not have a working BSD toolchain, so I've placed an #error in the IPv6
2896   BSD-part where the author/porter has started to hack something funny.
2897
2898 - 110-olsrd-double-wlancard-neigh-hack.patch:
2899   This is a hack for Nodes having to wifi cards with the same channel,
2900   bssid, IP-Range etc. If two nodes can see each other by means of two
2901   possible links (here: two wifi cards with equal config), a bug is  triggered
2902   with the Neigh-is-SYM detections. This small little hack prevents this.
2903
2904 - 112-olsrd-nameservice-fixemptyname.patch:
2905   This is an addon to my lat/lon stuff which will prevent olsrd from
2906   running (oops?) if no hostname is given and the nameservice plugin
2907   is loaded.
2908
2909 - 113-olsrd-dyngwplain-pluginvers5.patch:
2910   This updates the dyngwplain plugin to the new Plugin Iface
2911
2912 - 140-olsrd-arprefreshed.patch:
2913   This is a new one. Opens a packet socket and listen to UDP(698), extract
2914   the sender MAC and refreshes the ARP cache whith that. Should speedup
2915   especially in cases, if you initially try to use a longer routing path which
2916   normally triggers a "ARP-Lookup-Chain".
2917 - 106-olsrd-nameserviceparams.patch:
2918   This patch converts more plugins to the new interface version.
2919 - 104-olsrd-policy-routing.patch
2920   Reworked this one to discard GPL helper functions. Also checked IPv6 and
2921   re-included the IPC hookup. The patch adds a "RtTable [number]" for
2922   /etc/olsrd.conf which is simply the Linux
2923   policy routing table to use. Defaults to 254 (== main).
2924   This patch was modified/clenaed up by <bernd@firmix.at> to use "#if"
2925   instead of "#ifdef" as it's more robust against typos.
2926 - 110-olsrd-fixpacketprint.patch, 112-olsrd-nameservice-fixemptyname.patch,
2927   113-olsrd-txtinfo-fixhttpget.patch, 114-olsrd-timeoutlimit.patch,
2928   115-olsrd-nameserviceparamfix.patch and
2929   116-olsrd-fix-pluginparam-addons.patch fixing the compilation warning
2930   on 64bit and lots of other improvements.
2931 - "Save the fish" patch: Avoid forwarding of packets with too low TTL. This
2932   kills lots of packet forwarding storms.
2933   NB: The oneliner was applied by hand by BP and formatted to look (in BPs O)
2934   more readable.
2935
2936 PATCH by Arnd Hannemann <hannemann@i4.informatik.rwth-aachen.de>
2937 olsr_makefile_make_use_of_exename.patch
2938 - This patch makes sure that the EXENAME variable of Makefile.inc is used
2939   in Makefile.
2940
2941 PATCHES by John Hay <jhay@meraka.org.za>
2942 - update to new FreeBSD WLAN API
2943 - do not require /bin/bash, use /bin/sh
2944 - Fixed alignment so that olsrd runs on FreeBSD/arm
2945 - allow more interface in an IPv6 subnet on FreeBSD
2946 - use PREFIX and DESTDIR as all the other Makefile.$OS also for FreeBSD
2947 - make txtinfo plugin work with IPv6
2948
2949 PATCH by Andreas Jacobs <jacobs@i4.informatik.rwth-aachen.de>
2950 - fix the loss link quality calculation for "windows size % 4 != 0"
2951
2952 PATCH by Acinonyx <acinonyxs@yahoo.gr>
2953 - Bug fix: include $(TOPDIR)/Makefile.inc at the begin in the Quagga plugin
2954
2955 PATCH by David Cornejo <dcornejo@gmail.com>
2956 - fixed an "+=" of an uninitialized variable (detected with/by the
2957   scan.coverty.com).
2958
2959 BUG reported by Aaron Kaplan <aaron@lo-res.org>
2960 - BSD-xargs doesn't know "-r".
2961
2962 PATCHES and CLEANUPS by Bernd Petrovitsch <bernd@firmix.at>
2963 - Made a function from the ME_TO_DOUBLE() macro (in src/mantissa.h).
2964   This saves code throughout the code even on i386 and will even more
2965   on architectures without floating point units and "-msoft-float".
2966 - And the mathemathics in src/mantissa.h is reformulated to minimize
2967   floating point operations to save CPU power - especially on embedded
2968   devices.
2969 - I rewrote the half of src/lq_packet.[ch] which deals with incoming
2970   packets. This was triggered with performance output of gcc produced
2971   by Sven-Ola Tuecke at CCCamp07.
2972   This kills *lots* of (more than) superflous malloc()s and the same
2973   number of (free()s). And it also kills some code and copying around of
2974   data.
2975 - Make it compile without warning with flex-2.5.33 (to be found on Fedora 7
2976   and Gentoo in Sep-2007) again.
2977
2978 - converted the dyn_gw plugin to plugin interface version 5 (which leaves
2979   the quagga plugion as the last with the old one).
2980 - paving the way to activate -Wshadow, much more to do
2981 - const-ify parameters here and there
2982 - use NULL for pointers (and not "0")
2983 - Killed "extern" declarations in (not generated) .c files
2984
2985 - Based on a patch by Gianni Costanzi <gianni.costanzi@gmail.com> (so credits
2986   and thanks have to go there):
2987   added OS_CFLAG_PTHREAD Makefile variable since gcc (on Linux) requests this
2988   in the manual page.
2989   Changes/additions:
2990   - I added definitions to all OS-specific Makefile.$OS with the value similar
2991     to the value in OS_LIB_PTHREAD (either empty or "-pthread").
2992   - The variable is added to CPPFLAGS (and not CFLAGS) since CPPFLAGS is used
2993     for all cpp and gcc calls (and gcc's man page indicates that it sets
2994     variables for both of them).
2995
2996 0.5.3 ---------------------------------------------------------------------
2997
2998 URGENT BUG FIX
2999 Ignacio García Pérez <iggarpe@terra.es> found a serious bug in the dot-draw
3000 plugin and identified it's source.
3001
3002 BUG FIX
3003 The bmf plugin wanted to kill a not-started thread and this causes a segmentation
3004 violation. This happens if the old plugin interface support is not compiled in
3005 and one uses - or more asccurate: wants to use - the bmf plugin which uses that
3006 ATM. Thanks to Cedric Krier <ced@ced.homedns.org> for reporting this.
3007
3008 DEPENDENCIES FIXED
3009 The dependencies (*.d files) are now properly generated and used. And they also
3010 dependen on the Makefile in the current directory and the Makefile.inc so that
3011 changes there also lead to new compilation.
3012 Remember: We support "ccache" so install it to save lot of meaningless recompiles
3013 if nothing (as seen by the real C compiler, i.e. after the C preprocessor) has
3014 changed.
3015
3016 BUILD FIX
3017 Linux/IA64 and Linux/HPPA also need "-fPIC".
3018
3019 CLEANUPS
3020 - olsr_switch does no longer generate warnings
3021 - olsr_switch is also built with "build_all" and cleaned with "uberclean"
3022 - More "const" all over the place.
3023 - More "static" for local functions and variables.
3024 - Killed an unnecessary "static" variable.
3025
3026 0.5.2 ---------------------------------------------------------------------
3027
3028 URGENT BUG FIX
3029 Sven-Ola Tuecke found a serious bug of the class "show stopper" and sent a patch.
3030
3031 PLUGIN CLEANUP
3032 Plugins handle parameters quite individually (case-sensitive vs case-insensitive,
3033 different parsing functions for the same values, etc.). Plugin Interface version 5
3034 now exports a table of { parameter-name, parsing-function, addr-of-storage } and
3035 it's size. Common functions should be shared.
3036
3037 0.5.1 ---------------------------------------------------------------------
3038
3039 MISC
3040 Upgrade to olsr-bmf 1.5 from Erik Tromp <erik_tromp@hotmail.com>
3041
3042 latitude/longitude support is now in the nameservice plugin done by
3043 Sven-Ola Tuecke <mail2news@commando.de>
3044
3045 added the spf refactoring patch from  Hannes Gredler <hannes@gredler.at> which
3046 saves a noteworthy amount of CPU time. To quote him:
3047 ----  snip  ----
3048 1. use of an AVL tree as a min-heap implementation
3049
3050    as a means for efficient sorting.
3051    (the etx metric is used as the key in the candidate tree)
3052
3053 2. next-hop propagation
3054
3055    rather than tracking the previous node in olsr_relax()
3056    i have changed that model and pre-populate all one-hop neighbors
3057    with their own IP address as 'next-hop' and pull that
3058    pointer up once new paths are explored.
3059
3060    as a result no walker for counting hops and extracting next-hops
3061    is required - it turns out at this is slighly more efficient
3062    than the existing behaviour (even with the cache applied).
3063 ----  snip  ----
3064
3065 CLEANUPS
3066 * moved a only locally needed hack from "union olsr_ip_addr" into the only place
3067   where it is needed in hashing.c
3068
3069 0.5.0 ---------------------------------------------------------------------
3070
3071 APPLIED PATCHES FROM FREIFUNK-FIRMWARE
3072 libsmake, dyngwplain, nameservices+services, tzxtinfo, quagga, quagga-routehandler,
3073 optimize, fixes from Eric Tromp and Sven-Ola Tuecke, CPU-optimize, secure key, HNA-IP
3074
3075 CLEANUPS
3076 removed hardcoded limit on the number of interfaces (at least in the Unix part)
3077 made Makefile targets much more consistent
3078
3079 MISC
3080 put Bmf-1.3 plugin into it
3081
3082 FreeBSD IPv6 SUPPORT
3083
3084 Patch from John Hay applied.
3085
3086 BUGFIXES
3087
3088 0.4.10 --------------------------------------------------------------------
3089
3090 OLSR NETWORK SIMULATOR
3091
3092 An application called olsr_switch(sorry for the nameclash with the win32
3093 GUI) has been added. If olsrd is ran using the -hint option it can now
3094 connect to olsr_switch and be part of a virtual network. This means
3095 that multiple instances can be ran at the same host! The olsr_switch
3096 application allows the user to define link variables on all viritual
3097 links in the network, creating all possible topologies. Read more in
3098 the readme file.
3099
3100 EXPERIMENTAL FISH EYE ALGORITHM
3101
3102 An experimental algorithm for TTL settings on TC messages has
3103 been added. Read more in the corresponding README file.
3104
3105 OPENBSD SUPPORT
3106
3107 olsrd now also compiles on OpenBSD systems. Thanks a lot to Holger
3108 Mauermann for the patches!
3109
3110 BUILDSYSTEM REWRITE
3111
3112 Bruno has rewritten the make system. OS detection is now done
3113 automagically and the general design is much improved.
3114
3115 IP ADDRESS VALIDATION
3116
3117 Olsrd now maintains a set of IP addresses that is considered
3118 invalid. Checks against this set is done on all received
3119 OLSR packets announced originator addresses. The dataset can
3120 be updated dynamically.
3121
3122 PLUGIN INTERFACE
3123
3124 Updated interface version to 3 and added more noticeable warning
3125 for version missmatch.
3126
3127 MATH LIB DEPENDENCY
3128
3129 The dependency on the math lib came from the use of pow(3) in the
3130 mantissa/exponent calculation. The calls to pow in this long forgotten
3131 code, was very unnessecarry. The pow calls are replaced with bitwise
3132 shifts and -lm is no longer needed.
3133
3134 ICMP REDIRECTS ON LINUX
3135
3136 On Linux systems "0" is now also written to the all/send_redirects
3137 procfile and not only the pr. interface ones. Hopefully this resolves
3138 problems reported with systems still sending ICMP redirects.
3139
3140 BUGFIXES
3141
3142 - Fixed init of IPv6 addrtype variable. It used to be uninitialized,
3143   causing it to default to site-local and have some weird side-effects.
3144 - Fixed crash when changing IPv6 address at run-time
3145 - Fixed a bug that prevented setting willingness 0 in the configfile
3146 - Fixed bad handling of missing command line arguments
3147 - Did various updates to prevent assertion when a neighbor
3148   has changed IP and sends HELLO before its olsrd precess has detected
3149   the change.
3150 - Fixed return value check on times(2) calls in the scheduler
3151 - Fixed bug(s) that could cause crash when an interface was brought
3152   down while olsrd was running.
3153 - Removed the silent (read: unchecked) hard limit of 16 interfaces.
3154 - Compiles now cleanly on 64bit (e.g. x86_64).
3155
3156 0.4.9 ---------------------------------------------------------------------
3157
3158 OPTIMIZATIONS
3159
3160 The MID database is now also indexed by alias addresses. this makes
3161 look-ups of main addresses based on alias addresses _much_ faster.
3162 The mid_lookup_main_addr function alone has gone from >30% of the
3163 total CPU time used by olsrd to <1%.
3164 PLUGIN DEVELOPERS: datatypes for MID entries has been changed.
3165
3166 Routing table calculation in the LQ case now uses balanced binary
3167 trees instead of linked lists, which makes look-ups much faster.
3168
3169 The debug output function olsr_printf() is not used by olsrd
3170 internals any more. Instead the macro OLSR_PRINTF is to be used.
3171 This macro does debug level testing _before_ doing any function
3172 calls(both printf itself and parameters to printf). This is a much
3173 more optimized way of doing debug output. In addition olsrd can
3174 be built without any debug output code if doing 'make NODEBUG=1'.
3175
3176 TIMEOUT OF DATASETS
3177
3178 Validity times for dataset entries are now set using the clock_t type
3179 (used to be struct timeval). This data is now fetched from the times(2)
3180 function instead of gettimeofday(2). This prevents possible problems
3181 if the system time is changed.
3182 PLUGIN DEVELOPERS: Note that datatypes for close to all dataset entries
3183 (link, neighbor, mid, hna, tc etc.) has been changed!!
3184
3185 CONFIGURATION FILE
3186
3187 Multiple interfaces can now use the same interface configuration block.
3188 Example:
3189 Interface "if0" "if1" "if2"
3190 {
3191         .....
3192 }
3193
3194 Interface configurations now also support the "Weight" directive. When
3195 olsrd finds multiple links to a neighbor it will choose the link
3196 going via the interface with the lowest weight. Olsrd normally
3197 sets this weight dynamically based on interface characteristics,
3198 but if the user wishes to set a fixed weight in a interface(or
3199 a group of interfaces), this directive is now available.
3200
3201 Moreover, interface configurations now support the "LinkQualityMult"
3202 directive. It takes an IP address and a multiplier as arguments.
3203
3204 Example:
3205
3206 Interface "if0"
3207 {
3208   [...]
3209
3210   LinkQualityMult 192.168.0.1 0.7
3211   LinkQualityMult default 0.5
3212
3213   [...]
3214 }
3215
3216 The idea is to make certain links via the configured interface
3217 artificially worse or better than they really are. The first parameter
3218 specifies the IP address of a neighbour interface. The second
3219 parameter is the multiplier to be applied to the link to the specified
3220 neighbour interface.
3221
3222 After we have derived the link quality from the packet loss among the
3223 packets received from the specified neighbour interface, we multiply
3224 the link quality by the given multiplier. So, the multiplier changes
3225 the LQ value that we use when determining the ETX, which is 1 / (LQ *
3226 NLQ).
3227
3228 If "default" is given as the IP address then the multiplier applies to
3229 all links via the configured interface. Note, however, that olsrd only
3230 assigns one multiplier to each link. It does so in the following way.
3231
3232 * If there is a "LinkQualityMult" line that matches the IP address of
3233   the link's neighbour interface, then use the multiplier in this
3234   line.
3235
3236 * If there isn't any matching line, then look for a "default" line. If
3237   there is a "default" line, then use the multiplier in this "default"
3238   line.
3239
3240 * Otherwise use 1.0, i.e. do not modify the LQ value at all.
3241
3242 Hence, a line with an IP address has priority over a "default" line.
3243
3244 In the above example, the LQ value of the link between the local
3245 interface if0 and the neighbour interface 192.168.0.1 would be
3246 multiplied by 0.7. All other links between the local interface if0 and
3247 a neighbour interface would be multiplied by 0.5.
3248
3249 IPV6 SOCKETS
3250
3251 The socket option IPV6_V6ONLY is now set on IPv6 sockets in linux.
3252 This means that olsrd will no longer receive IPv4 traffic when
3253 running in IPv6 mode.
3254 This should enable users to actually run one olsrd instance using
3255 IPv6 and one using IPv4 at the same time :)
3256
3257 PLUGINS
3258
3259 The httpinfo, dyn_gw and dot_draw plugins now all include olsrd
3260 headerfiles directly. A plugin should define OLSR_PLUGIN before
3261 including olsrd headers. Doing things this way removed the
3262 redundant datatype definitions that has so often caused trouble
3263 when things has been updated in olsrd.
3264
3265 NETBSD SUPPORT
3266
3267 olsrd now also compiles on NetBSD systems. Use 'make OS=nbsd' to
3268 build. This port is not very well tested and feedback is greatly
3269 appreciated.
3270
3271 EXPERIMENTAL MULTI-INTERFACE CODE FOR FREEBSD
3272
3273 Experimental code using libnet can be compiled in allowing multiple
3274 interfaces to be used in FreeBSD.  You enable this by compiling using
3275 OS=fbsd-ll.  You must have libnet-devel installed for this to work
3276 (/usr/ports/net/libnet-devel).
3277
3278 OTHER UPDATES
3279
3280 - WLAN devices are now detected in FreeBSD
3281 - First specified interfaces IP is used as main address.
3282 - Broadcastflag is not checked on interface if fixed broadcast is
3283   set in config.
3284 - Removed Linux link layer code as this was not really in use.
3285 - Added -nofork command line option
3286
3287 BUGFIXES
3288
3289 - Link sensing now works according to announced vtime from
3290   neighbors. Previously links going symmetric->asymmetric
3291   were not necessarily detected until the holding time expired.
3292 - A bug in route addition/removal that could lead to routes
3293   using GWs being added before the actual route to the GW
3294   was set up, has been fixed.
3295 - A bug in the interface selection in route calculation has been
3296   fixed. New routes are no longer added prior to deleting old ones,
3297   since this caused trouble.
3298 - A bug in the IPv6 multicast address configuration has been fixed.
3299   This caused olsrd not to work with global IPv6 addresses.
3300 - A bug in the IPv6 prefix-from IPaddr function has been fixed. This
3301   bug caused HNA prefixes to always be calculated to 0.
3302 - If a 2-hop neighbor is also a 1-hop neighbor, a bug made olsrd
3303   prefer a bad direct link to a better link via an MPR.
3304 - If a link or interface lookup failed, olsrd crashed.
3305 - Fixed a crash in the LQ packet generation code based on a
3306   signed/unsigned integer comparison.
3307
3308
3309 0.4.8 ---------------------------------------------------------------------
3310
3311 LICENSE CHANGE
3312
3313 Olsrd is now distributed under a BSD style license. We believe olsrd will
3314 be better off using this license as it opens up for commercial players
3315 to use olsrd freely in their products. In the end this will lead to
3316 this kind of users doing serious testing and bug fixing of olsrd.
3317
3318 ETX-LIKE LINK QUALITY DETECTION
3319
3320 We can now determine the packet loss on a link by looking at the serial
3321 numbers of the OLSR messages received from a neighbor. This tells us how
3322 many packets get through from our neighbor to us. We use a new extended
3323 kind of HELLO messages (LQ_HELLO messages, LQ = link quality) to broadcast
3324 the link quality that we have determined on our end of the link to our
3325 neighbors. So do our neighbors, and we as well as they end up with an
3326 idea of how good the link is in both directions. From the LQ_HELLOs we
3327 also learn the link quality between our neighbors and our two-hop neigh-
3328 bors. In this way we can select those neighbors as MPRs that have the
3329 best links to our two-hop neighbors. To distribute the link quality
3330 throughout the network, we use a new extended version of TC messages
3331 (LQ_TC messages). They contain the qualities at both ends of each of our
3332 links. Nodes can then run Dijkstra's algorithm to find a path between
3333 themselves and other nodes that minimizes the packet loss.
3334
3335 If the newly introduced "LinkQualityLevel" is set to zero in the
3336 configuration file, link quality is not used and the daemon behaves as
3337 before, i.e. as specified by the OLSR RFC. If this parameter is set
3338 to 1, LQ_HELLOs and LQ_TCs are used instead of HELLOs and TCs, link
3339 quality is measured and MPRs are selected based on the link qualities.
3340 If this parameter is set to 2, the routing table is additionally
3341 calculated based on the link qualities.
3342
3343 Setting "LinkQualityLevel" to a non-zero value BREAKS COMPATIBILITY. You
3344 will then not be able to participate in RFC-conformant OLSR networks
3345 any longer. This is because we use LQ_HELLOs and LQ_TCs instead of HELLOs
3346 and TCs in this case.
3347
3348 It's best practice to set "LinkQualityLevel" to the same value on all
3349 nodes in a network.
3350
3351 When determining the quality of a link olsrd only considers a given
3352 number of most recent OLSR packets received from its neighbors. By
3353 default, olsrd looks at the 10 most recent OLSR packets. This can be
3354 changed via the "LinkQualityWinSize" configuration option. Values
3355 between 3 and 128 are legal.
3356
3357 NEW CONFIGFILE PARSER/FORMAT/SCHEME
3358
3359 A whole new config file syntax and parser is introduced with this
3360 release. The parser is generated using flex and bison and it is
3361 designed to be very modular. The parser can be compiled as either
3362 a standalone binary, a shared library or as part of olsrd. This way
3363 other applications can parse and generate olsrd configuration files
3364 only by linking to the dynamic library.
3365 In the new configfile options can be set pr. interface, plugin
3366 parameters can be set, more IPC options can be set...and more.
3367 The syntax is documented in the olsrd.conf(5) manual page found
3368 in the files/ directory.
3369 Olsrd internals now uses a single struct, as returned by the config
3370 parser, for all configuration in runtime. this means that updating
3371 values in this struct will dynamically update olsrd operation. It
3372 also means that all configuration is now kept in one place instead
3373 of spread all across the place.
3374
3375 FREEBSD AND MAC OSX PORT
3376
3377 This version offers an initial port of olsrd to FreeBSD and Mac OS
3378 X. Like the Windows port it currently does not support IPv6. As this
3379 is a very first try at supporting FreeBSD and Mac OS X, this port is
3380 probably not as reliable as the Linux version. We'd greatly appreciate
3381 feedback and bug reports. To compile you need GNU make. Then simply
3382 run "gmake OS=fbsd" to build the executable.
3383
3384 NEW MAKEFILE(S)
3385
3386 The makefiles used to build olsrd have been rewritten and now includes
3387 dependency file generation using makedep.
3388
3389 DEBUG OUTPUT
3390
3391 Tables are now only printed if changes occur, so there are no longer
3392 any periodical output when using a debuglevel >0. A "heartbeat" is
3393 now printed to STDOUT(if it is a terminal) in the form of a rotating
3394 line to show that olsrd is actually operating.
3395 Adding "ClearScreen yes" to the configuration file clears the screen
3396 each time before the debug output shows updated information. This
3397 makes the debug output easier to read in many cases. "ClearScreen no"
3398 is the default, if no "ClearScreen" directive is given in the
3399 configuration file.
3400
3401 PLUGIN INTERFACE
3402
3403 There are some changes in the plugin interface. It is now at
3404 version 2. Plugin specific parameters from the configfile
3405 using the PlParam option, will now be passed on to plugins.
3406 To receive such parameters a plugin must implement a function:
3407 int
3408 register_olsr_param(char *key, char *value)
3409 to which parameter pairs will be passed.
3410
3411 NO MORE THREADS
3412
3413 Olsrd no longer uses any thread library on its operation. Everything
3414 now happens in the main thread allowing for use of olsrd on platforms
3415 with no thread library.
3416
3417 ACPI SUPPORT IN WILLINGNESS CALCULATION(LINUX)
3418
3419 The willingness calculation for Linux, now also supports the more
3420 modern ACPI proc interface in addition to APM. This is not well
3421 tested and feedback is appreciated!
3422
3423 IPC OPTIONS
3424
3425 Various options regarding IPC connections can now be set in the
3426 configfile. The options are max connections, allowed unicast
3427 hosts and allowed net-ranges.
3428
3429 CODE REWRITES
3430
3431 Much of the message generation and net output code is rewritten.
3432 Sending of partial messages should now work 100%. Also TC, MID
3433 and HNA messages are now cached for a random amount of time
3434 before transmitted - this often leads to the situation where these
3435 messages are sent together with an HELLO message, which is highly
3436 desirable since it saves network resources.
3437 PLUGIN DEVELOPERS must note that the buffers and size variables
3438 used in net output is no longer directly accessible!
3439
3440 NET OUTPUT CODE REWRITTEN
3441
3442 Every interface now has one outputbuffer registered. This allows
3443 messages to be "cached" as explained above, so that multiple
3444 messages are stacked together.
3445 Also the outputbuffer and size are no longer accessible directly,
3446 an API is available to plugins(and olsr code).
3447
3448 OS DEPENDENT NETWORK INTERFACE
3449
3450 The OS dependent network functions are now defined in net_os.h
3451 instead of being mixed up with internal network functions
3452 in net.h.
3453
3454 BUGFIXES
3455
3456 A bug that caused the announced ANSN sequence number to never stop
3457 being increased when a change in the MPR selector set was detected
3458 has been fixed. Another TC related bug that caused timed out TC
3459 entries not to be deleted from the routing table in certain cases
3460 has also been fixed. These bugs could cause unstable routes.
3461 A bug that in many cases caused the wrong routes to be deleted
3462 when using IPv6 has been fixed.
3463
3464
3465 0.4.7 ---------------------------------------------------------------------
3466
3467 NATIVE WINDOWS GUI AND INSTALLER
3468
3469 We now have a native Windows GUI. The GTK+ version is no longer
3470 supported on Windows. The new native GUI is pretty compact as it does
3471 not require the GTK+ runtime DLLs. In addition to monitoring olsrds
3472 state the GUI offers an easy way for novice users to configure
3473 olsrd. It's pretty self-explanatory. Have a look at README-WIN32.txt
3474 for details. The Windows version now also comes with an installer
3475 based on the freely available Nullsoft Scriptable Install System
3476 (NSIS). Looks like the Windows port is becoming more and more
3477 Windows-ish. :-)
3478
3479 WIRELESS INTERFACE DETECTION ON WINDOWS
3480
3481 Like the Linux version the Windows port is now able to tell WLAN
3482 interfaces from wired interfaces. We can now, for example, set
3483 different HELLO intervals for WLAN interfaces and wired interfaces,
3484 respectively.
3485
3486 ROUTE UPDATES
3487
3488 The order of updates of calculated routes is swapped. Now new routes
3489 are added prior to deleting old ones. This could fix issues where
3490 in some very very few cases one could experiment loss of routes.
3491
3492 BUGFIXES
3493
3494 There were quite some bugs in IPv6 operation in 0.4.6. These are
3495 the bugs that were fixed:
3496 - HNA message parsing did not work.
3497 - Some IPv6 addresses were printed as IPv4 addresses in the
3498   debug output.
3499 - The '-dispin' option now works again.
3500 - A filedescriptor leak in the IPv6 interface detection caused
3501   olsrd to crash.
3502
3503
3504 0.4.6 ---------------------------------------------------------------------
3505
3506 WINDOWS PORT!
3507
3508 Read the README-WIN32.txt file!
3509
3510 DYNAMIC NETWORK INTERFACE UPDATES
3511
3512 Network interfaces can now be updated and removed/added at
3513 runtime. Olsrd will check all interfaces specified in the config
3514 file or on the command-line, every 5 seconds. If updates
3515 occur, olsrd will register this and update the necessary data.
3516 If interfaces are removed or added, olsrd will detect this
3517 and configure the interfaces. If an interface is removed
3518 olsrd will continue to check the interface, so if say, a PCMCIA
3519 card is removed and later on reinserted(and given the same name),
3520 olsrd will detect this and start running on it again.
3521
3522 Note that olsrd will now run even if no interfaces are detected.
3523
3524 ROUTE CALCULATION UPDATE
3525
3526 All 1 hop neighbor addresses that are not directly reachable trough
3527 a symmetric link in the link set will now be added with a GW in the
3528 routing table. this GW will be an interface address from a registered
3529 symmetric link to the neighbor.
3530
3531 MID UPDATE
3532
3533 Alias addresses are now registered in the link set processing
3534 if available. This is not to pretty(since the vtime has to
3535 be a mere guess) but it gives faster initial route updates.
3536 If a HELLO is received(at initial registration) from an IP
3537 that is not the same as the one set as main address in the
3538 received HELLO header, then the IP from which the HELLO was
3539 received will be registered as an alias of the main address
3540 set in the HELLO header. The default vtime is set to 15 secs.
3541
3542 CODE RESTRUCTURING
3543
3544 All OS dependent interface configuration code is now located in
3545 OS/ifnet.c(that would be linux/ifnet.c if using GNU/Linux).
3546 The functions are available trough the headerfile src/ifnet.h
3547
3548 CODE CLEANUPS
3549
3550 - Some timer issues fixed
3551 - Got rid of the global socket descriptors
3552 - Updated indexing of network interfaces
3553 - Introduced a global socket to use for ioctl calls(ioctl_s)
3554 - Removed upper limit for interfaces to use
3555 - Point-to-point interfaces are now allowed
3556 - The main select(2) loop now uses a timeout
3557 - A small bugfix in the select fd-set update code
3558 - Some bugfixes in the configuration file parsing
3559 - stdout/stderr are now set to not be buffered
3560 - A bugfix in the MID generation regarding seq. numbering
3561
3562 PLUGIN INTERFCAE
3563
3564 A new set of functions that are called whenever a change in the
3565 interface configuration(update, addition, removal) is made is
3566 introduced.
3567 These functions are added and removed very much like the ptf
3568 functions. Available trough the functions add_ifchgf and del_ifchgf.
3569
3570 OBS OBS OBS!!! PLUGIN DEVELOPERS READ THIS!!!!
3571
3572 The interface struct(declared in interfaces.h) has changed.
3573 Plugin developers must update plugins that uses the interface
3574 struct!
3575
3576 The headerfile olsr_plugin_io.h which contains the plugin interface
3577 commands now contains a revision list where all changes are
3578 stated.
3579
3580
3581 0.4.5 ---------------------------------------------------------------------
3582
3583 PLUGIN: SECURE OLSR
3584
3585 A plugin that generates and checks message signatures is added.
3586 Check lib/secure
3587
3588 PLUGIN: TOPOLOGY GRAPH
3589
3590 A plugin that generates output of the topology in the dot format
3591 is added. See lib/dot_draw
3592
3593 OPTIMIZATIONS
3594
3595 Some optimizations done that should cause fewer route recalculations.
3596
3597 BUGFIXES
3598
3599 Some bugs reported by Takafumi Tanaka fixed.
3600
3601 RESTORATION OF NETWORK SETTINGS
3602
3603 Network settings like disabling of ICMP redirects and spoof filter, are
3604 now restored at exit by olsrd.
3605
3606 RFC COMPLIANCE FIX
3607
3608 Nodes would in certain scenarios retransmit messages originating for
3609 themselves. This was a RFC incompliance. Reported by Ingmar Baumgart.
3610
3611 NON-WLAN TIMERS
3612
3613 No longer setting the HELLO interval of non-wlan interfaces as a multiplier
3614 of the wlan interval. The interval is set seperatly now.
3615 Due to this there are some updates in the configfile imperatives.
3616
3617 CODE CLEANUPS
3618
3619 Some new macros introduced for table insertion and removal and IP
3620 copying and comparison.
3621
3622 FRONT END BUGFIXES
3623
3624 IPv6 bugfixes in the GUI.
3625
3626
3627 0.4.4 ---------------------------------------------------------------------
3628
3629 ROUTE CALCULATION
3630
3631 Routes are no longer added via neighbors declaring a willingness
3632 of WILL_NEVER.
3633
3634 LINK SENSING AND ROUTE CALCULATION
3635
3636 Link sensing and route calculation has been updated to handle
3637 multiple links between hosts in a sane way.
3638
3639 IP SPOOF FILTERING
3640
3641 IP spoof filtering is disabled on the interfaces which olsrd runs.
3642 These settings are not restored!
3643
3644 ICMP REDIRECTS
3645
3646 ICMP redirect message generation is disabled on the interfaces
3647 which olsrd runs.
3648 These settings are not restored!
3649
3650 CONFIGFILE OPTIONS FOR MID AND HNA ADDED
3651
3652 Options to set the MID and HNA emission intervals and
3653 validity time in the configfile added.
3654
3655 IPv6 ADDRESS SCOPE
3656
3657 Option to set what IPv6 address type(scope) to use in the
3658 configfile added. It can be set to either global or site-local.
3659
3660 IPv6 MULTICAST
3661
3662 Options to set site-local and global multicast addresses
3663 in the configfile added.
3664
3665 EMISSION INTERVAL FUNCTION
3666
3667 Functions to set emission intervals at runtime added.
3668
3669 LINK LAYER NOTIFICATIONS
3670
3671 If started with the -llinfo switch olsrd will collect and display
3672 link-layer information on neighbors. This is no longer limited to
3673 one interface. But no action is taken based on this info - and
3674 there is a upper limit of 8 neighbors from which this info can
3675 be collected pr. interface. This limitation is inherited from the
3676 WLAN drivers and is not something imposed by the olsrd code!
3677
3678 IPv6 HNA MESSAGE FORMAT
3679
3680 IPv6 HNA messages now contains 128-bit netmask instead of prefix.
3681
3682 PLUGIN FUNCTIONS
3683
3684 Added "packet transform functions" which allow plugins to alter all
3685 outgoing OLSR traffic.
3686
3687 RESTRUCTURING
3688
3689 Moved most headers out of OS dependent directories. The tunneling
3690 and link-layer notification interface is not yet separated from
3691 the /linux directory.
3692
3693 MANUALPAGE
3694
3695 A manpage(olsrd(8)) describing olsrd has been created. It is installed
3696 when using 'make install'.
3697
3698
3699 0.4.3 ---------------------------------------------------------------------
3700
3701 PLUGIN SUPPORT
3702
3703 Olsrd now supports runtime-loadable plugins! A couple of example plugins
3704 are located in the lib/ directory. Read the README files in the various
3705 plugin directories for more info. A directive to load plugins have been
3706 added to the configfile as well.
3707 Documentation of the plugin interface can be fount at http://www.olsr.org.
3708
3709 The plugin interface is designed to be extendable. But it should _always_
3710 be backwards compatible with the interface used in this release!
3711
3712 LINK-LAYER NOTIFICATION
3713
3714 Some preliminary link-layer notification code has been added. Link quality
3715 can be written to stdout if olsrd is started with the -llinfo switch.
3716 No action is currently taken based on this info. And info will only
3717 be retrieved from the interface named "eth1".
3718 This code is not usable for users as of yet!
3719
3720 MPR UPDATES
3721
3722 Neighbors with willingness set to WILL_ALWAYS is now always added. The
3723 MPR selection is optimized as described in RFC3626 section 8.3.1
3724 point 5.
3725
3726 MPR BUGS
3727
3728 There was a couple of bugs in the MPR selection code. All fixed.
3729
3730 LINUX 2.6 BUG
3731
3732 Users could not run olsrd on multiple interfaces using the Linux 2.6 kernel
3733 series. This is now fixed.
3734
3735 MINOR BUGS
3736
3737 One small bug in link hysteresis initialization and one in HNA route
3738 deletion.
3739
3740 MESSAGE-SEQUENCENUMBER INCOMPLIANCE
3741
3742 Message-seqnos was implemented on a pr. messagetype and pr. interface
3743 basis. This is not RFC3626 compliant and has been updates. All messages
3744 and interfaces now uses a global seuencenumber.
3745
3746 RANDOM SEQUENCENUMBERS
3747
3748 Sequencenumbers are now initialized using a random value.
3749
3750 DAEMON MODE
3751
3752 Fixes for running olsrd in daemon mode(debug 0).
3753
3754 OPTIMIZATIONS
3755
3756 Optimizations based on profiling implemented.
3757
3758 SANITATION
3759
3760 Message size is checked for every message before passing it to the
3761 appropriate message parsing function. If the size is bigger than the
3762 remaining size of the olsr packet then the message is discarded.
3763
3764 GUI FRONT-END
3765
3766 Some minor modifications done to the gui.
3767
3768 INTERNAL CHANGES
3769
3770 Lots of changes in handling of registration and unregistration of
3771 scheduler, socketparser, parser and local hna set.
3772 Some restructuring and movement of functions.
3773
3774
3775 0.4.2 ---------------------------------------------------------------------
3776
3777 No public release
3778
3779 0.4.1 ---------------------------------------------------------------------
3780
3781 No public release
3782
3783 0.4.0 ---------------------------------------------------------------------
3784
3785 LINK HYSTERESIS
3786
3787 Link hysteresis as described in the RFC added.
3788
3789 TC REDUNDANCY
3790
3791 TC redundancy as described in the RFC added
3792
3793 MPR REDUNDANCY
3794
3795 MPR redundancy as described in the RFC added
3796
3797 SCHEDULER REWRITE
3798
3799 The scheduler has been rewritten to register scheduled
3800 events(function pointers) dynamically.
3801
3802 PARSER REWRITE
3803
3804 The parser has been rewritten to register parse functions
3805 on a pr. messagetype dynamically
3806
3807 MALLOC WRAPPER
3808
3809 A wrapper for the malloc(3) syscal has been introduced.
3810 olsr_malloc(size_t, const char *) should ALWAYS be used.
3811
3812 CODE RESTRUCTURING
3813
3814 Lots of restructuring in headerfiles.
3815 Linux spesific code moved to subdirectory linux/
3816 FreeBSD code to be put in freebsd/
3817 LOTS of code restructured due to the rexrite of the scheduler
3818 and parser.
3819
3820 MPR CALCULATION
3821
3822 Optimizing the MPR set as suggested in the RFC section
3823 8.3.1 point 5 added.
3824
3825 BUGFIXES
3826
3827 Some bugs in MPR selection fixed.
3828
3829
3830 0.3.8 ---------------------------------------------------------------------
3831
3832 CODE REWRITES
3833
3834 HNA code completely rewritten!
3835 The old code was really bad! Now it is much cleaner implemented and
3836 should work fine.
3837 One- and two-hop neighbor list structures rewritten. They now use
3838 the same hashed double-linked lists as the rest of the information
3839 sets use.
3840
3841 CODE RESTRUCTURING
3842
3843 Some code restructuring which resulted in the new files: timer.h,
3844 mantissa.c, mantissa.h, hashing.c, hashing.h, linux/net.c
3845 linux/net.h, linux/kernel_routes.c, linux/kernel_routes.h and some
3846 renamed files
3847
3848 BUG FIXES
3849
3850 The bug causing errormessages on exit is fixed.
3851 The bug that caused initial HNA routes in the GUI to display a hopcount
3852 of 0 fixed.
3853 IPv6 HNA netmasks were all added as /128. It's fixed now.
3854
3855 IPv6
3856
3857 Turns out sitelocal address had to be preferred to avoid IPv6 header
3858 messing up link-sensing. Bug fixed
3859
3860
3861 0.3.7 ---------------------------------------------------------------------
3862
3863 CODE REWRITES
3864
3865 The entire TC set and MPR selector set code rewritten. Hashing and
3866 double linked lists added to the MID code.
3867 Lots of HNA code has been rewritten as well.
3868
3869 HNA bugfix
3870
3871 When a node lost connectivity to a HNA GW all HNA entries to that gw
3872 was deleted. This has been fixed - and HNA entries only gets deleted
3873 on timeout now.
3874 Other HNA bugs have been fixed as well. But the whole HNA implementation
3875 needs a rewrite!
3876
3877 Holdingtime BUGfix
3878
3879 There was a bug that caused holdingtime not to be properly recalculated
3880 when using non-default emission intervals.
3881
3882 Forwarding and symmetric neighbors
3883
3884 Seems I had misread the RFC on what a 1-hop symmetric neighbor is.
3885 Now the link-set is checked when a check for a symmetric neighbor
3886 is done. Not the 1 hop neighbor set as it used to be. This way
3887 the hack when receiving MID messages could be removed.
3888
3889 IPv6
3890
3891 Global addresses are now preferred. Sitelocal addresses are only used
3892 if no global addresses are found. There have been problems where
3893 the address set in the IP header of IPv6 packets do not match the
3894 address chosen by OLSR.
3895
3896 GUI - 0.2.5
3897
3898 The GUI is finally updated! It can now handle piggybacked messages
3899 and link sensing HELLO message format.
3900
3901
3902 0.3.6 ---------------------------------------------------------------------
3903
3904 HNA support using IPv6
3905
3906 HNA now works using IPv6 as well! Just add the network address and
3907 prefix in the HNA6 section in the configfile. The IPv6 HNA packets differ
3908 some from the IPv4 as they don't send the netmask but the prefix.
3909
3910
3911 NEW FILENAME FOR THE BINARY AND CONFIG FILE
3912
3913 They are now called olsrd and olsrd.conf. I figured I'd use the olsrd
3914 name before somebody else started using it ;-)
3915
3916
3917 Config file
3918
3919 New options: DEBUG, HNA6 and IPC-CONNECT added to config file.
3920
3921
3922 Output
3923
3924 A printf-wrapper has been introduced - debug level output handling
3925 is much more uniform now.
3926 The daemon should run fine in detached mode now(DEBUG 0)
3927
3928 GUI front-end
3929
3930 The GUI front-end can now connect and disconnect at any time while the
3931 daemon is running, if started using the -ipc switch or with IPC set to
3932 'yes' in the configfile.
3933
3934
3935 BUGS
3936
3937 A small HNA bug fixed.
3938
3939
3940 0.3.5 ---------------------------------------------------------------------
3941
3942 Forwarding jitter
3943
3944 Forwarding jitter added. Messages are piggybacked if they arrive(and are to
3945 be forwarded) while there is data to be forwarded buffered.
3946 Added some bugfixes to support parsing of piggybacked messages as well.
3947
3948 Route calculation
3949
3950 Fixed route calculation so that 2 hop neighbors are added. This smooths
3951 changes from 1 hop to 2 hop neighbor out. The old way one had to wait for
3952 a TC before the 2 hop neighbors were added.
3953
3954 2 hop neighbor set
3955
3956 All neighbors received in HELLO messages are added to the two hop
3957 neighborhood. This helps smoothing out the 1-to-2 hop transition as well.
3958
3959 MID calculation
3960
3961 MID calculation had to be updated due to the registering of two hop neighbors
3962 that are already one hop neighbors. They should not be considered when calculating
3963 two hop coverage.
3964
3965 Optimizations
3966
3967 Deletion of possible one hop neighbors registered on non main-addresses when
3968 first registering MID info from a node removed. This can not occur due
3969 to the fact that registering of neighbor nodes are done on main addresses
3970 from link-sensing
3971 Option to not forward messages on wired links on which they arrived removed.
3972 This is no longer usable to any degree when adding support for piggybacking
3973 of forwarded messages is to be implemented.
3974
3975 Cleanups
3976
3977 Some unused parameters and commandline options were removed.
3978
3979
3980
3981 0.3.3 ---------------------------------------------------------------------
3982
3983 TC MESSAGEING
3984
3985 Added sending of empty TC messages if all MPR selectors are removed. Empty
3986 TC messages are sent for a TC_HOLD_TIME period as described in section
3987 9.3 in the RFC.
3988
3989 HNA
3990
3991 Fixed HNA route calculations for IPv6. I forgot to upgrade this in 0.3.2
3992
3993 OPTIONS
3994
3995 -hnaint and -midint command line optionas added to set the interval
3996 of HNA and MID generation.
3997
3998 FORWARDING
3999
4000 As an optimization messages have not been forwarded on the received interface
4001 if this is registered as a non-WLAN interface. This causes problems for
4002 people using Ethernet-to-WLAN adapters. This optimization is now turned
4003 off by default. It can be activated using the -nofwlan option.
4004
4005 BUGS
4006
4007 THERE ARE SOME NASTY BUGS IN 0.3.2!
4008 Fixed a bug that caused 2 hop neighbors not to time out.
4009 Fixed a bug that caused a 1 hop neighbor timeout not to recalculate
4010 the routing table.
4011 Fixed a small memleak in the MID set
4012 Fixed some smaller bugs.
4013
4014 IPv6 functioning is not well tested in this release.
4015
4016 0.3.2 ---------------------------------------------------------------------
4017
4018 HNA
4019
4020 Updated HNA to be RFC compliant. This means that all received HNA tuples
4021 are registered and only the subset of unique entries(net/netmask) with
4022 the smallest hopcount is inserted into the routing table.
4023
4024 Config file
4025
4026 User can specify configfile name using the -f switch.
4027
4028 Bugs
4029
4030 Fixed a link-sensing bug that caused problems when using MID nodes.
4031
4032 0.3.1 ---------------------------------------------------------------------
4033
4034 MPR calculation
4035
4036 MPR calculation is now based on the willingness announced by nodes.
4037
4038 Neighbor set
4039
4040 The neighbor set does not have timeouts on entries any more. Creation
4041 and deletion of neighbor entries is done from the link-set as suggested
4042 in the RFC.
4043
4044 Cleanups
4045
4046 Gotten rid of a lot of code that became more or less obsolete due to
4047 all the changes introduced in 0.3.0.
4048
4049 Bugs
4050
4051 Fixed a nasty bug concerning the sequence numbering of TC packets.
4052 Fixed some bugs regarding MPR calculation - and probably introduced
4053 a whole new species when implementing the willingness-based calculation ;-)
4054
4055
4056 0.3.0 ---------------------------------------------------------------------
4057
4058 Due to the extensive amount of updates this release is versioned 0.3.0
4059
4060 Duplicate table and forwarding
4061
4062 The duplicate table functionality is totally rewritten in 100% RFC
4063 compliance. The forward algorithm specified in the RFC is implemented
4064 this meant rewriting much of the packet processing code. The daemon
4065 also forwards unknown packettypes now.
4066
4067 Link sensing and neighbor processing
4068
4069 Link sensing and neighbor processing was done in the same operation in the
4070 old code. Link sensing is now a mechanism of its own which is 100% RFC
4071 compliant. Neighbor processing and HELLO generation has been partly
4072 rewritten to be RFC compliant. Neighbors are now registered as either
4073 SYN or NOT_SYM. The NOT_NEIGH, SYM_NEIGH and MPR_NEIGH values are only
4074 used when building HELLO messages. Links are in one of the following states:
4075 UNSPEC_LINK, ASYM_LINK or SYM_LINK.
4076 HELLO messages now advertise link status of neighbors on the interface
4077 the message is transmitted.
4078
4079 Willingness
4080
4081 A node now dynamically calculates willingness based on powersource and
4082 possibly battery power. If the node is AC powered it announces a willingness
4083 of 6. If batterypowered the willingness is calculated as:
4084 P / 26
4085 Where P is percentage of power left.
4086
4087 Configuration file
4088
4089 The daemon now tries to read its configuration from the file /etc/uolsrd.conf
4090 A "standard" configuration file is installed when doing 'make install'.
4091 This file should be edited to fit your needs.
4092 Command-line options can still be used to override the configuration form
4093 the file(ore if no config file is present).
4094 The -f switch can also be used to specify a configuration file.
4095
4096 Willingness
4097
4098 If AdvancedPowerManagemant(APM) is supported on your system the willingness
4099 of the node is dynamically calculated based upon the powerstatus of the node.
4100 MPR calculation based upon willingness is not done as of yet.
4101
4102 TC ANSN
4103
4104 A bugs in the TC processing fixed.
4105
4106 HNA
4107
4108 Some serious HNA bugs fixed. These bugs caused a node to always choos the
4109 gateway with the larges hopcout :) More seriously - a bug caused looping
4110 of HNA messages in certain scenarios.
4111
4112 Package sequence numbers
4113
4114 These were added. Not much use as of now - but they're there(as specified
4115 in the RFC).
4116
4117 Broadcast address
4118
4119 Users can now specify the broadcast address to use. Useful if one wishes to
4120 use the 255.255.255.255 broadcast.
4121
4122
4123
4124 0.2.5 ---------------------------------------------------------------------
4125
4126 Htime and Vtime
4127
4128 Htime and Vtime processing and handling added. Holding times used to be
4129 a static value for all nodes. Now every node can signal its vlidity time
4130 to others.
4131 To achieve this mantissa/exponent calculation functionality was added.
4132 Messages now include Vtime(and Htime in HELLO) values in mantissa/exponent
4133 format instead of just zero. These values are as stated above, used as holding
4134 time for nodes.
4135 the GUI should be upgraded as well...
4136
4137 Jitter
4138
4139 The use of jitter in message generation intervals vere fixed.
4140
4141
4142 0.2.4 ---------------------------------------------------------------------
4143
4144 Seqno bugs
4145
4146 Some bugs concerning sequence numbers in HELLO and MID message handling
4147 was fixed. Newly registered nodes in the neighbor and MID sets were
4148 initialized with a seqno of 0. When using a "wraparound" sequencenumber
4149 check(as defined in olsr_protocol.h) this can produce errors if a new
4150 node joins a network where existing nodes has seqnos >0x00FF.
4151
4152 IPv6 related bugs
4153
4154 Some checks and copying of node addresses where done using sizeof(u_olsr32_t)
4155 which is 32 bits. This caused only the 32 firs bits of IPv6 addresses to
4156 be copied and checked.