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