-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
2164 lines (1687 loc) · 84.3 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
0.6.5.1 -------------------------------------------------------------------
Ferry Huberts (1):
release: use olsrd-version prefix for files in the tarballs
Henning Rogge (2):
Update version after release of v0.6.5
Release v0.6.5.1
0.6.5 -------------------------------------------------------------------
Aaron Kaplan (1):
chose the proper #define in order to take the right #include
Alessandro (4):
mDNS: Implemented Host Filtering for ipv4 and ipv6, writing in the config
file which hosts to ignore. The mDNS packets from the ignored hosts
will be ignored and not propagated in the network
mDNS: Updated README file for mDNS plugin
mDNS: Reworked logic of router Election. The election is now handled on
interface basis, because the router could have one interface where it
needs to be master and another interface where it needs to be
disabled. There was a logical bug in the earlier implementation.
mDNS: BUGFIX, mDNS plugin, hello message of router election not sent if
debug = 0
Alessandro Gnagni (3):
mDNS: Fixing loops for mDNS packets when mDNS plugin is misconfigured
mDNS: review of Alessandro Gnagni patch, inserted a config value to
enable or disable TTL check and change, default is enabled.
mDNS: Implemented router election mechansim to have only 1 active mDNS
OLSR router in 1 LAN
Andreas Tonnesen (1):
x86_64 patch from Bernd
Bernd Petrovitsch (1):
* added -Wbad-function-cast
Ferry Huberts (219):
gateway: clarify header with extra comments and ordering
gateway: reorder functions to reflect order in header
gateway: formatting
gateway: remove 'unused' v{4,6}gw_choosen_external
gateway: add asserts to validate gw_handler
gateway: clear gw_handler during cleanup
gateway: add init and cleanup hooks for gateway plugins
gateway: rename hooks
gateway: add comments to struct olsr_gw_handler function prototypes
gateway: inline olsr_find_gateway_entry function
gateway: inline olsr_trigger_inetgw_selection function
gateway: rename a function
gateway: simplify a condition
gateway: push an if condition into its nested if's
gateway: merge 2 code blocks
gateway: the gateway to set must be in the gateway tree
gateway: the gateway to set must either be an IPv4 or IPv6 gateway or
both
gateway: prevent 2 NULL dereferences
gateway: merge 2 code blocks
pud: force pending buffer out if not enough space for our message
pud: include nmealib v1.0.3
http_info: pud satellites in use are now green, not in use are red
ifdef: fix some include ifdefs
update comments on all ifdefs
olsrd_plugin: remove #if 1
gateway: rename 2 variables
remove most '#if 0' blocks
gateway: merge the olsr_get_ipv{4,6}_inet_gateway functions
mdns: fix compilation warnings
mdns: fix a compilation warning / copy-paste error
bsd: fixup comment
improve VERBOSE handling
common: fix varargs cleanup
pud: fix resource leak
pud: fix socket error
pud: fix socket error
pud: fix position file stat/use race
pud: fix getBestUplinkGateway
pud: nmealib: fix copy/paste error
pud: nmealib: fix buffer overrun
pud: nmealib: fix buffer overrun
pud: nmealib: fix invalid format string conversion
add a COVERITY instructions text file
pud: nmealib: fix invalid format string conversion
pud: nmealib: fix invalid format string conversion
pud: fix closing fd
pud: fix checking of downlink message IP version
sgwdynspeed: fix resource leak and file stat/use race
bmf: explicitly cast fgetc result into a char
bmf: do not close an 'error' socket return value
bmf: do not dereference NULL pointer
httpinfo: do not close an 'error' socket return value
httpdinfo: fix resource leak
secure: can only work for IPv4, so assert on it
secure: do not hard-code a sizeof()
secure: decrease a (stack allocated) buffer size
secure: use sizeof() of the fields being copied
secure: decrease a (stack allocated) buffer size
secure: initialise rrmsg correctly
secure: can only work for IPv4, so assert on it
secure: do not hard-code a sizeof()
secure: decrease a (stack allocated) buffer size
secure: use sizeof() of the fields being copied
secure: decrease a (stack allocated) buffer size
secure: initialise crmsg correctly
secure: can only work for IPv4, so assert on it
secure: do not hard-code a sizeof()
secure: decrease a (stack allocated) buffer size
secure: initialise cmsg correctly
nameservice: fix a resource leak
nameservice: fix wrong size argument
nameservice: check return value of fcntl
nameservice: do not close an fd that is not open
nameservice: remove some dead code
jsoninfo: fix a resource leak
jsoninfo: make sure that uuid is null-terminated
jsoninfo: remove some dead code
jsoninfo: remove pointless compare
mdns: suppress a Coverity warning
mdns: remove some dead code
mdns: do not close an fd that is not open
mdns: do not close an fd that is not open
mdns: check return value of inet_pton
mdns: check return value of sendto
p2pd: do not close an fd that is not open
p2pd: do not close an fd that is not open
p2pd: remove some dead code
bmf: do not close an fd that is not open
pud: remove some dead code
quagga: explicitly ignore return value of fcntl
tas: fix a memory leak
txtinfo: remove some dead code
main: fix an Out-of-bounds access
cfgparser: fix some memory leaks
cfgparser: fix a copy/paste error and resulting memory leak
cfgparser: fix dereference before assert
linux: apm: fix retry opening of apm proc file
olsr_switch: fix a memory leak
lq: make sure that info_head != NULL
lq: make sure last_ip != NULL
android: fix type punning warning
pud: fix alignment warning
gateway: initialise the handler before setting up the tunnel
gateway: cleanup: free the allocated memory cookie
gateway: ensure cleanup uses the reverse order of init
gateway: minor simplification in olsr_delete_gateway_entry
gateway: allow immediate removal of a gateway entry
gateway: split olsr_delete_gateway_entry
gateway: walk the gateway tree to properly cleanup
linux: sanitise ACPI battery data
defs: fix strscpy null pointer dereference
tas: lua: official source code for 5.0.2
tas: lua: run gnu-indent.sh script
cleanup, 1. step (to get some local changes away):
* added -Wcast-qual: this killed lots of unnecessary type-casts
Fix sytax errs and line break quirks for gnu-indent
ARM alignment warnings fixed
Patch ALIGN_NOWARN_ARM macro for better priority handling.
use the POSIX standard '__linux__' macro instead of 'linux'
tas: lua: run gnu-indent.sh script
tas: lua: sync up to official source code with fixes
Merge branch 'lua-official-502'
cookie: an array already is a pointer
cookie: add an assert
Revert "httpdinfo: fix resource leak"
httpinfo: add a comment about why the client socket is not closed
gateway: minor optimisation
gateway: improve cleanup
gateway: rename gw_mem_cookie to gateway_entry_mem_cookie
gateway: add a define for the tunnel name
gateway: stub out olsr_print_gateway_entries on #ifdef NODEBUG
duplicate_set: stub out olsr_print_duplicate_table on #ifdef NODEBUG
link_set: stub out olsr_print_link_set on #ifdef NODEBUG
mpr_set: stub out olsr_print_mpr_set on #ifdef NODEBUG
routing_table: stub out olsr_print_routing_table on #ifdef NODEBUG
tc_set: stub out olsr_print_tc_table on #ifdef NODEBUG
two_hop_neighbor_table: stub out olsr_print_two_hop_neighbor_table on
#ifdef NODEBUG
hna_set: stub out olsr_print_hna_set on #ifndef NODEBUG
hna_set: stub out olsr_print_hna_set on #ifdef NODEBUG and fix
neighbor_table: stub out olsr_print_neighbor_table on #ifndef NODEBUG
neighbor_table: stub out olsr_print_neighbor_table on #ifdef NODEBUG and
fix
use INET_ADDRSTRLEN and INET6_ADDRSTRLEN instead of magic constants
gateway: only remove a tunnel when there is one
gateway: rename a variable
gateway: minor improvement in NULL comparisons
hna_set: olsr_ip_prefix_to_string outputs a wider string
gateway: refactor olsr_set_inet_gateway
Merge tag 'v0.6.4'
win32: use #ifdef _WIN32
Makefile: fixup some forgotten make command prefixes
Makefile: add gui target
Makefile: always pass VERBOSE to the make command
gui: linux: minor Makefile fixup
gui: linux: clean and install are phony targets
gui: linux: add VERBOSE handling
gui: linux: fix some 'may be used uninitialized' compiler warnings
gui: linux: use toplevel make options
gui: linux: fix some 'noreturn' compiler warnings
gui: linux: fix some 'discards const qualifier' compiler warnings
gui: linux: fix some 'old-style function definition' compiler warnings
gui: linux: fix 'too few arguments to function ipc_connect' compiler
warning
gui: linux: fix a 'mixed declarations and code' compiler warning
gui: linux: fix some 'unused parameter' compiler warnings
Revert "gui: linux: fix some 'may be used uninitialized' compiler
warnings"
gui: linux: fix some 'may be used uninitialized' compiler warnings
gui: linux: fix some 'shadow' compiler warnings
gui: linux: fix inccorrect sizeof()
gui: linux: fix string buffer overflow
gui: linux: fix string buffer overflow
gui: linux: fix the string buffer overflow better
gateway: simplify stopping the cleanup timer
tas: remove plugin
main: do not seed the random number generator with the process id
win32: remove unused getpid() function
hna_set: explicitly cast to (time_t *) in calls to localtime()
neighbor_table: explicitly cast to (time_t *) in calls to localtime()
main: improve random number generator seed
bmf: do the minimum length check earlier
changelog: update to current state
print_packet: fix wrong use of sizeof()
main: remove -dispin and -dispout command line options
main: add release script
Update version after release of v0.6.4
Changelog: remove 0.6.5 preliminary changelog
Merge branch 'release-0.6.4'
bmf: check minimumLength against buffer size
sgwdynspeed: put plugin config in olsrd.conf.sample
pud: put plugin config in olsrd.conf.sample
cookie: raise the number of cookies
pud: enable dynamic polling of the position file
gateway: only check smart gateway configuration on linux
linux: put #ifdef __linux__ around code
doc: add doxygen documentation generation
doc: fix common documentation tags
doc: fix linux specific documentation tags
doc: fix unix specific documentation tags
doc: fix bsd specific documentation tags
doc: fix win32 specific documentation tags
doc: do not generate documentation for gui code
release: move the stringTrim function up a bit
release: make gitIsGitDirectory do the correct thing
release: fix usage of literal dot in regular expressions
release: move into the base directory earlier
release: convert some code into checkIsOlsrdGitCheckout function
release: convert some code into checkGitSigningKeyIsConfigured function
release: convert some code into getPrevRelTag function
release: the script can now also create a release branch
Merge branch 'release-0.6.4' into mmmm
Branch v0.6.5
pud: change java include path to generic java include path
pud: java make target is dependent on library make target
doc: clean up the latex directory if empty
Revert "linux: name is required to be non-null in
olsr_os_cleanup_iptunnel"
gateway: fix a revert problem
android: fix the path of the tunnel node in the /dev tree
gateway: fix stable count dampening in gw_default_timer
gateway: always select a new gateway when threshold != 0
main: add -pidfile command line option
main: fix pidfile compilation on windows
Frank de Brabander (4):
New feature: support for Linux NL802.11 wireless link information in cost
calculation.
Merge branch with new lq plugin for NL80211 support
Incorporate fix by Ferry Hubert for float to double promotion
Fix optional compilation of the nl80211 lq plugin
Hans-Christoph Steiner (9):
use the POSIX standard '__linux__' macro instead of 'linux'
use the Microsoft standard '_WIN32' macro instead of the self-defined
'WIN32'
olsrd-adhoc-setup: use static BSSID by default to assoc. with the right
mesh
olsrd-adhoc-setup: configure NetworkManager to be nice when adhoc is
manually setup
fix misspelling: 'adress' --> 'address'
fixed misspelling: usefull -> useful
add gcc hardening flags to linux-gtk GUI
android: update to use gcc 4.6, available starting with NDK r8
android: gcc 4.6 comes with NDK r8b and is not in NDK r8
Henning Rogge (29):
Pud: Do not use the variable name strlen.
Fix buffer overflow in mdns plugin
Add -Werror=format-security
Add VERBOSE flag to makefile to display full gcc commands
Fix slightly insulting error message.
Moved regex library to a makefile of its own to solve the issues with
compiler warnings.
fix control flow if kill() command fails to end program
fix wrong sizeof() parameter
Convert allocated memory into temporary variable
Protect against stupid data from ACPI
Close socket if bind() fails.
Merge branch 'master' of http://olsr.org/git/olsrd
Use strscpy instead of strncpy.
Check inet_pton return value
Close file descriptor if error happens
Fix scanf() format vulnerabilities
Fix command line parsing macro
Fail in IPC initializationis always fatal.
fail of non-blocking netlink socket is not fatal
Declare olsr_exit() as noreturn
Interface will always be found.
no hostroute possible in this if() branch
reset link timer if not set
Remove dead codepath
Cleanup error handling in ipc_init()
Remove unnecessary asserts
Make sure calculated header length does not skip over buffer
Fix multicast join for IPv6
Release v0.6.5
Saverio Proto (12):
mDNS: Skeleton code for new host filter feature in mDNS plugin
mDNS: Upgrading the container_of.h that was backported from src/common in
master
mDNS: Fix most of the warnings from the compiler
mDNS: Update checksum field of the IPv4 Header after altering TTL
mDNS: trivial debug print fix and code readibility improvement
mDNS: Change version of mdns plugin to 1.0.1 after GSoC 2012 work by
Alessandro Gnagni
mDNS: init ListOfFilteredHosts in the proper place and not at every
received packet
mDNS: trivial, removed TODO from code for something that was implemented
mDNS: better debug support for filtered hosts feature
mDNS: Fixed typo in README
Revert "mDNS: init ListOfFilteredHosts in the proper place and not at
every received packet"
Merge remote-tracking branch 'origin/mDNS-plugin-GSoC-2012'
0.6.4 --------------------------------------------------------------------
Bugfix and plugin release 0.6.4
- Update of Smartgateway system
- small updates to several plugins
- lots of updates for PUD plugin
0.6.3 --------------------------------------------------------------------
Bugfix and plugin release 0.6.3
- PUD plugin (position update plugin)
- JSONinfo plugin
- sgwdynspeed plugin (select dynamic smart gateway based on gw speed)
- Update on Quagga plugin (for new Quagga)
- Fixes for Androids
- Some fixes for GTK and Win32 gui
- Lots of core fixes to support new compiler warnings
0.6.2 --------------------------------------------------------------------
Bugfix release for 0.6.1
- Compatibility for Linux kernel 3.x
- Lots of small fixes
- reworked makefile output
- updates for some plugins
- repair for Smartgateway feature
Read GIT changelog at http://olsr.org/git to see a complete history.
0.6.1 --------------------------------------------------------------------
Bugfix release for 0.6.0
Markus Kittenberger <[email protected]>
- Major bugfix for the neighbor table when a neighbor gets a new main IP.
- add /interface command to txtinfo, allow multiple commands per request
Henning Rogge <[email protected]>
- wait up to four seconds for aquiring the OLSRd lock. This helps to
shutdown OLSRd with a script and restart it at once (kill <pid> is
asynchrone, and kill -w is not available in busybox)
- add md5 has of all source/headers into version string
Mitar<[email protected]>
- lot's of small changes for Android. Slowly Android gets a fully
supported platform for OLSRd.
and a lot more small bugfixes. Read GIT changelog at http://olsr.org/git
to see a complete history.
0.6.0 --------------------------------------------------------------------
Change in version number system. No more -rcX for release candidates and
-rX for bugfix releases. In future bugfix releases or updates of plugins
will increase the third digit of the version string while feature releases
will increase the first and/or the second one.
Markus Kittenberger <[email protected]>
Henning Rogge <[email protected]>
- added NIIT kernel module support for sending IPv4 traffic over
IPv6 mesh networks. See README-Olsr-Extensions for more information.
- added SmartGateway support. OLSRd can now automatically build
IPIP tunnels towards the gateway to prevent gateway flapping.
See README-Olsr-Extensions for more information.
- complete rewrite of linux netlink routing code. New code should be
more understandable and easier to debug/improve.
Teco Boots <[email protected]>
- new dyngw plugin. More flexible and more features.
- new p2pd plugin (generalized mdns plugin)
Vasilis Tsiligiannis <[email protected]>
- new version of quagga plugin (with IPv6 support !)
Sven-Ola Tuecke <[email protected]>
- fixes for improved uClibc support
- fixes for better linux kernel 2.4 support
Saverio Proto <[email protected]>
- new mdns plugin. (backport from master branch)
Eric Tromps <[email protected]>
- new version of bmf plugin. NO pthreads are necessary anymore
and a lot more small bugfixes. Read GIT changelog at http://olsr.org/git
to see a complete history.
0.5.6-r8 ---------------------------------------------------------------------
Alina Friedrichsen <[email protected]>
- patch for using deticated output socket for OLSR packages. This allows
to set the src-ip of OLSR packages, which is useful for interfaces
with multiple IPs
Bruce Ford <[email protected]>
- fixes for compiling olsrd for win32
Henning Rogge <[email protected]>
- fix for memoryleak during MID processing
- patch series for "network logoff" of OLSRd, other nodes now get
notified if an OLSR node switch down to remove it from their database.
- cleanup of naming conventions for settings src/dst-ips of OLSR-packets
for ipv4/6. See example config files.
- patch to ignore HNA4 for IPv6 and HNA6 for IPv4
Markus Kittenberger <[email protected]>
- patch series for MID handling cleanup
- compiletime switch for txtinfo to always allow localhost access
- add "InterfaceDefaults" section to config files to allow setting values
which are shared by all interfaces but can be overwritten in specific
config file settings
- patch series to allow OLSRd handle multiple config files
(multiple "-f <cfgfile>" options)
0.5.6 ---------------------------------------------------------------------
PATCHES and BUGFIXES from Henning Rogge <[email protected]>
- Bugfix for fragmented TC sequence numbers
- eliminate second timer for edge garbage collection (aka border code).
- fix SPF bug
- fix for jitter calculation
- refactor linkset code
- add netsimpcap, a network simulation device
- parser refactoring
- fix for possible overflow in fpm plugin
- prevent Originator-IP from changing during runtime
- fix several compiler warnings
- fix hanging TC entry from lost onehop neighbor
- fix drop package with same seqno in etx_ff
- fix segfault in parsing HNA package with bad netmask
- fix avl_comparator for route_paths
- fix alignment problem in packet buffers
- fix: segfault in neighbor/neighbor-2 table
- fix: lqmult default parsing
- HACK: MinTCVTime parameter hack for Berlin FF network...
feel free to ask on the mailing list.
- add Watchdog plugin
- add explicit runtime lock for OLSR.
- remove lq-hysteresis for tc on the receiver side.
- enhance protection against malformed packages to prevent
OLSR parsing uninitialized data. Thank you Markus and Keks for the LONG
debugging session
- block tc-redundancy 0/1, it doesn't work with the current dijkstra code
- convert httpinfo/txtinfo/dotdraw to nonblocking and autobuf to
prevent blocking outgoing connections
- fix some bugs with lq-mult
- fix bug in duplicate set sequencenumber handling
- add Debian/KFreeBSD support (Thanks to Holger Levsen and friends for help)
- fix segfault in 'interface lost' monitor
- add LQ hysteresis to etx-ff metric
PATCH from Markus Kittenberger <[email protected]>:
- txtinfo plugin: add more http options
- allow configuration of OLSR UDP port
- allow configuration of proto Tag for Routes (RtProto)
- add fallback policy rule (priority 65536) if RtTable is used,
to ensure that routes can be added to this table
- resolve many error conditions while adding routes to the linux kernel
(Warning this will also delete any conflicting routes made by other routing daemons or admins)
- interface modes mesh (default) and ether (no retransmit of olsr-messages back into a broadcastdomain)
- fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
- fix several compiler warnings
- fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
- create policy rule later during startup
- send MID also with one interface, if its ip different from originator-id
- linux rtnetlink code cleanup
- workaround: generate routes to single hop neighbours on the fly when inserting routes via them
(active only with fib_metric=flat)
- testing: insert routes with source-ip set to originator ip
- testing: syslog numbering (e.g. useful to detect lost syslog messages when using remote-syslog)
- testing: custom library path (default /usr/testlib)
Testing features must be activated in olsr_cfg.h before compiling olsrd.
This features are used to run a test network in Vienna parallel to the existing
OLSR network.
- more RT-Netlink cleanups and fixes
- backport of timejump patch from TIP
- Add detection for vanishing interfaces to Linux netlink code
- fix incorret route sorting on new neighbours. use only delete and add/change avl tree,
instead of 3 trees
- learn neighbours interface alias address from received hellos
PATCHES from Hannes Gredler <[email protected]>:
- add small valgrind howto
- remove the per tc_edge timer
- add some basic infrastructure for cookies
cookies are used to track usage of timer and memory resources
- add a lightweight memory manager to reduce malloc() churn.
- eliminate data field from avl_node and list_node and
replace this via inline recasts
- add indentation dotfile for future code cleanup
- refactor the timer implementation, get rid of timeout functions
all manipulations done in constant time.
- use calloc rather than malloc for lazy callers
- log RIB add/del transactions only if there is an actual route change
- fix to to always insert a HNA Net when receiving a HNA refresh
- fix delete all routes if the last IP address is gone
- reduce TC vtime jitter from 25% down to 5%
PATCHES and BUGFIXES from Sven-Ola Tuecke <[email protected]>:
- add a fixed-point math implementation, which saves
a great deal of CPU on embedded devices
- fix for Link quality dijkstra limit
- nameservice plugin supports mac addresses
- fix fork/restart code
- fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
- fix several compiler warnings
- fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
- add makefile support for google android
- fix default olsrd.conf examples
PATCHES and BUGFIXES from Aaron Kaplan <[email protected]>:
- fix openbsd warnings / compile errors about sprintf strcpy
- fix string overflow in dyn_gw plugin
- fix string overflow in pgraph plugin
- fix openbsd/osx coompile errors
BUGFIX by Peter Tarjan <[email protected]>:
- Do not remember LQ information UNSPEC_LINK neighbors in Hellos.
- ignore UNSPEC link for linktype if there is an ASYM/LOST/SYM Link in the
same Hello message
- ignore UNSPEC_LINKS during MPR lookup
- broken MID route handling: we also check the data structures for routing,
even if a MID entry exists.
BUGFIX by John Hay <[email protected]>:
- FIX: IPv6 MTU in BSD
- Another BSD ipv6 Patch by John Hay
- fixes for 64 Bit FreeBSD
- fixes for NetBSD
BUGFIX from Erik Tromp <[email protected]>:
- update in bmf due to new flags field in tc_edge_entry
PATCH from Clemens Hopfer <[email protected]>:
- dot_draw plugin: close the connection after graph output.
PATCH from Joe Gio <[email protected]>:
- track if AC power is connected/disconnected
PATCH from Hagen Paul Pfeifer <[email protected]>:
- import jenkins hash for good hash calculations
PATCH from Andres Ambrois <[email protected]>:
- nameservice plugin: add parameters for SIGHUPing other daemons, or calling scripts
BUGFIX by Benny Tops <[email protected]>:
- fix wrong order of drop_tc checkt in olsr_input_tc
Felix (OpenWRT NBD):
- fix bison problem for OpenWRT
Sebastian Harl:
- add LISTEN parameter for httpinfo/txtinfo/dotdraw
0.5.5 ---------------------------------------------------------------------
BUGFIX from Andreas Jacobs <[email protected]>:
- calculate correct sleeptime
BUGFIX from Dario Borriello <[email protected]>:
- do not update LQ if not configured
BUGFIX from Jo-Philipp Wich <[email protected]:
- fix olsr_ip_to_string() buffer quirk
- fix txtinfo format quirks in HNA table
- name-service plugin - write MID entries to hosts file
- avoid infinite loop in the message parser
PATCH by John Hay <[email protected]>:
- compile clean on FreeBSD
- bugfix: do not account for IP headers when building MID6 messages
PATCHES from Henning Rogge <[email protected]>:
- join LQ and non-LQ Hello execution paths
PATCHES from otti <[email protected]>:
- rttable-default: configures a new policy routing table for the default route
BUGFIXES and PATCHES by Sven-Ola Tuecke <[email protected]>:
- Windows Vista: add interface metric to SPF computed metric
- lqtc-seqno: Optimize check for old seqno numbers in LQTC messages
- lqnatthresh: maintain an advantage for the current (NAT) inet gw
- fisheye-startup: Changed to MAX_TTL for the first 32 LQTCs
- Added and removed files necessary for win32 compile
- Fix for hg: do not remove anything in .hg with 'make uberclean'
- 104-olsrd-verysmallfix
- 105-fix-lq-buffer-quirks
- 106-fix-seqnocheck
- 110-bmf-v152
- 121-olsrd-fib-metric-approx
- 133-fix-lqneigh
- 136-optimize-invalidip-check
- 138-optimize-message-generation
BUGFIX from Lorenz Shori <[email protected]>:
- Mac OSX compile fixes
BUGFIXES and PATCHES by Hannes Gredler <[email protected]>
- fix not deleted tc entry.
- avoid setting routes with an invalid/impossible netmask.
- refactoring of TC parsing to kill another pile of malloc()/free()s
saving (again) code and especially run.time performance.
- RIB Refactoring, Part 2:
- avoid the periodical rib-tree insertion
- add a FOR_ALL_HNA_RT_ENTRIES() macro for the snmp folks
(or any parties who want to walk HNA entries).
- add an olsr_cnf option 'flat_fib_metrics' which defaults to TRUE.
- fix broken prefix insertion (regression of the RIB refactoring)
- squelsh compiler warnings on Mac OSX
PATCH by John Hay <[email protected]>:
- also printout our own HNAs in the dotdraw plugin.
PATCH by Patrick McCarty <[email protected]>:
- fixed compile errors in the BSD port
PATCHES by Sven-Ola Tuecke <[email protected]>:
- 102-olsrd-cvs-fixes.patch: use different buffers in the same printf()
- 103-olsrd-rt-exportroute-cleanup.patch: avoid a malloc()ed list of functions
- 132-save-the-fish.patch: really save the fish and avoid to forward invalid
messages from older olsrd versions
- 135-georss-map-for-nameservice.patch: fixes and extensions for the namesaervice plugin
- 138-olsrd-fixdotdraw.patch: fix the dot_draw plugin
(all to be found on http://download-master.berlin.freifunk.net/sven-ola/nylon/packages/olsrd/files/)
- Replaced "which" with a /bin/sh script snippet
PATCHES and CLEANUPS by Bernd Petrovitsch <[email protected]>
- Jens Nachtigall <[email protected]> suggested (and reminded) to use
olsrd.conf.default.lq as the default installed one.
It makes much more sense as - to the best of my(bernd's) knowledge - all
larger networks uses the LQ extensions. And new customers should better
be pushed in that direction.
- with the help of Patrick McCarty <[email protected]>, we got olsr to build
on OpenBSD again:
* OpenBSD'd `sed` is pretty conservative and doesn't understand 's|re|sub|'.
So we fall back to the old 's/re/sub/' and quote all '/' and '.' correctly
(which was the main reason to use '|').
And while I'm at it: Remove the useless $(CCACHE) from the $(CC) for
dependency generation and beautify (read: "$(strip)") $(CPPFLAGS).
* OpenBSD needs an explicit "#include <sys/types.h>" before
"#include <netinet/in.h>".
- fixed lib/secure/src/md5.h: This was broken as it had
"typedef unsigned long int UINT4;". "unsigned long int" is 8 bytes on x86_64.
We are using now the standardized types from <inttypes.h>.
- fixed warnings and improved lib/secure/src/md5.c:
* we are using memcpy() and memset() instead of the open-coded loops as
suggested
* const'ified
* added function prototypes for static functions
* moved static functions to the top so that their declaration is before
their use to allow gcc to inline if only used once.
It remains ugly - God knows why there are that so many useless
type-casts.
- Some minor and trivial cleanup: Added two functions to calculate the ETX
value from a struct tc_edge_entry and a struct link_entry, respectively.
And use them everywhere.
- added http://meshcube.org/nylon/utils/olsr-topology-view.pl into
lib/httpinfo/misc as suggested by Jens Nachtigall <[email protected]>
- Killed "struct olsrd_config *cnf" in src/cfgparser/olsrd_conf.h and replaced
it's usage with "olsr_cnf" from src/defs.h.
Serious cleanup: olsrd_get_default_cnf() does no longer initialize the global
"cnf" variable" but uses a local one which is returned as before. And
olsrd_parse_cnf() does no longer return the global variable it is working on.
- Merged "struct hna4_entry" and "struct hna6_entry" into
"struct local_hna_entry" (as "struct hna_entry" is a different thing)
Both have almost the same data (IP address + netmask/prefix) so we use
the quite new "struct olsr_ip_prefix" to store it.
Also merged the "hna4" and "hna6" pointer in "struct olsr_config" -
look at the global "olsr_cnf->ip_version".
- added a olsr_ip_prefix_to_string() function
- .h file cleanup: def.h does not longer include net_olsr.h because it
doesn't needs it.
- more type safety: the macros COPY_IP() and COMP_IP are gone and replaced
with "=" or similar "normal" C operations. There are also now the inline
functions ip4cmp() and ip4equal() to work on "struct in_addr", ip6cmp()
and ip6equal() to work on "struct in6_addr" and ipcmp() and ip6equal()
to work on "union olsr_ip_addr".
Most (or even more precise: almost all) uses of COPY_IP() and COMP_IP()
are in "if (olsr_cnf->ip_version) { ... } else { ... }" anyway to
there is no reson to copy an IPv4 address effectively with
"memcpy(&dst, &src, 4)" or compare with memcmp(&a, &b, 4)" wher the
always "4" is stored in a variable inhibiting compiler optimization.
There is also the deprecated function genipcopy() mimicking the old
typeless COPY_IP() macro for the last few places where a cleanup is
needed anyways.
There also lots of old macros left over (commented out of course) until
we are confident that everything works. And then I will kill them too.
- Fixed the misleading definition of "v4" in "struct olsr_ip_addr" fom
"olsr_u32_t" (in network-byteorder!) to "struct in_addr". Lots of
temporary variables to call inet_ntoa()/inet_ptoa() vanished .....
- We have now ip4_to_string(), ip6_to_string() and olsr_ip_to_string()
to print a "struct in_addr", "struct in6_addr" and "union olsr_ip_addr"
into a string buffer.
- cleanup: olsr_ip_to_string() and similar non-reentrant functions now must
get a target buffer. To ease that, there is the "struct ipaddr_str"
which is large enough for all of them (read: for an IPv6 address). This
also removes the cyclic buffer there.
All of these function return a "const char *" which can be directly used
for printf(3) and friends.
- const'ified more functions
- converted the source to UTF-8.
- "struct sig_msg" uses an olsr_u8_t for a byte array (and not "char")
- force the few inline function to always be inlined.
- #ifdef the body of the olsr_print_hna_set() and olsr_print_neighbor_table()
if nothing is done
- declare "int_addr", "int_netmask" and "int_broadaddr" in "struct interface"
as "struct sockaddr_in" since it is that what we actually want there (and
it is similar to the IPv6 code).
- updated the olsrd.conf.default.lq-fisheye to the Debian-deliverd version
after recent discussions [email protected]
- use "inline_avl_comp_ipv4()" in "avl_comp_ipv4()"
- clean up the routes on more signals. Basically we want to do this on all
signals which terminate the program.
- killed a superflous global buffer in src/main.c
- made inline functions from avl_walk_{first,last,next,prev} and created
"const" versions of it. inline_avl_comp_ipv4() is now also an inline function
(and not a macro)
- created a typedef's for various function pointers - much easier to read.
- cleanup: compare tree->comp (adn other pointers)) to NULL (and not 0)
- killed superflous "return"s at the end of void functions
- const'ified more parameters in many more functions in the .h and
.c files
- init-functions with constant or ignored return values are "void"
- created a typedef fro the callback in "struct export_route_entry"
and using it!
- moved the initialization of the {add,chg,del}_kernel_list variables
into process_routes.c. So they are now "static" there.
- olsr_export_{add,del}_route{,6} are now static in process_routes.c
since they are not used elsewhere.
- olsr_addroute_add_function() and olsr_deldroute_add_function() were
almost identical - made one function out of it.
Same for olsr_addroute_del_function() and olsr_deldroute_del_function().
- fixed the sort order in avl_comp_ipv4_prefix(): We compare now the IPv4
values in host byte order (and not network byte order). So the route
list in the e.g. httpinfo plugin is now nicely sorted.
- fixed and improved the `gcc-warnings` script:
* support older gcc's (as on Debian/Sarge) as they have slightly different
error messages
* removed superflous lines
* replaced the call of `sed` with shell built-in features fixing syntax
errors on Debian/Sarge
* set all locale-relevant variables to "C" (just to be sure)
- consolidated ip{4,6,}{cmp,equal}: all are nwo inline functions using only
the minimal necessary operations. Thanks to Hannes Gredler
<[email protected]> and Sven-Ola Tuecke <[email protected]> for pointing
that out and suggesting the `inline`, respectively.
use ip{4,}cmp in lq_avl.[ch] to resue the code. inline_avl_comp_ipv4
is superflous now (and replaced by ip4cmp) and use the global MIN and MAX
macro instead of AVLMIN and AVLMAX
- killed netmasks from the IPv4 part of the code and use the prefixlen there
(similar to thte IPv6 part). Manymore details on
http://lists.olsr.org/pipermail/olsr-dev/2007-November/001464.html
- removed the superflous "open_ipc" field from the "struct olsrd_config" as
it contains only the equivalent of "olsr_cnf->debug_level > 1".
- inspired by Sven-Ola Tuecke: avoid a bash'ism (i.e. "OPTS="${OPTS//$opt}") in
gcc-warnings and ld-warnings. But we do not replace it with `sed` (since it
costs a fork(2) and an exec(3)) but also with shell code which doesn't use
any external program.
- added configuration file support for "flat fib metrics".
0.5.4 ---------------------------------------------------------------------
QUAGGA by Immo 'FaUl' Wehrenberg <[email protected]>
- updated to svn version 33
BMF PLUGIN by Erik Tromp <[email protected]>
- updated to 1.5.1
- updated to latest plugin interfaces changes and killed warnings (by Bernd
Petrovitsch <[email protected]>)
PATCH by Hannes Gredler <[email protected]> which rewrites the route handling.
To quote him:
---- snip ----
change list:
- get rid of separate routing tables for HNA and per-node routes, everything is
now unified in an AVL routing tree (&routingtree)
- introduce walking macros (OLSR_FOR_ALL_RT_ENTRIES()) that hide the internal
structure of the RIB for making life of the plugin authors easier.
- get rid of different SPF implementations for LQ and non-LQ code paths. a
non-LQ edge is simply substituted with a cost of 1.0
- get rid of host masks - a new data type olsr_prefix is introduced which is
basically an ip address plus a prefix length.
do not install the metric in the kernel FIB - for the kernel its pointless
if the route gets installed with a metric of N or M.
we do not need to update the kernel FIB if we have hop count only changes
(for example if there is a reroute action further downstream)
the only things which triggers a kernel FIB route update is a next hop
change (a next hop is neighboring gateway router plus an interface).
all OLSR routes are installed with a metric of 2
- separate between rt_entry and rt_path - the former is a route installed in the
kernel with an next hop. the latter is a candidate for best path selection
after SPF calculation has been done. in the rt_entry we keep a pointer to the
best_path and also to the next hop that was installed in the kernel FIB.
we always keep all originator of a route, if a route originator goes away we
can easy recompute the best path for the route.
the next hop in the rt_entry gets only updated upon a successful route_add
call - that way we always remember what next hop to delete.
stray routes should be history now.
- tweak the linked list toolkit to operate on circular lists.
- get rid of malloc calls for building the kernel update list. the list node is
now embedded in the rt_entry.
- introduce three queues (add/chg/del) for kernel updates.
- for neighbor route dependency tracking the neighbor routes are queued first or
last (depending on which queue you work on)
- rework all the plugins which directly manipulate rt entries.
- rework the plugins that read from the routing table (most notably nameserver,
httpinfo and quagga plugin)
- lots of comments that explains the intentions and purpose of this code-piece.
non RT related stuff:
- use a list rather than a tree for storing the post-SPF results, which further
improves the raw-SPF runtime.
- add display of SPF runtime (masked behind #ifdef SPF_PROFILING)
- http://gredler.at/download/olsrd/neighbor_routes3.diff: This updates the own
IP address (read: the main address) after changes (e.g. on
`ifup wlan0; sleep 1; ifdown wlan0`) and kills the
olsr_fill_routing_table_with_neighbors() function.
---- snip ----
And Sven-Ola Tuecke <[email protected]> fixed an instability issue on interface
up/down operations (see 102-olsrd-rt-refactoring-fixes.patch below) and a missing
initialization.
PATCH by Hannes Gredler <[email protected]> which "consolidates
the link-state database and the spf-calculation in order
to calculate routes more efficiently".
To quote him (more):
---- snip ----
- use the link-state (tc) database for SPF calculations rather than
replicating the notion of vertices and edges for a SPF run.
this heavily reduces malloc() calls and shrinks the total CPU
load of the route calculation path between 60%-80%.
---- snip ----
PATCHES by Sven-Ola Tuecke <[email protected]> to be found on from
http://download-master.berlin.freifunk.net/sven-ola/nylon/packages/olsrd/files/
- 102-olsrd-rt-refactoring-fixes.patch
Because you changed a lot of basics: It's time to handle a general
flaw in the routing system. Plase take a look at chk_if_changed(). This
will free() any "struct interface" pointer without warning at any time.
This is why it's possile to SEGV olsrd with a simple "ifdown xxx".
The patch replaces the (maybe) invalid pointer with an index reference
"iif_index". You can always ask the OS for a name. Please note, that I do
not have a working BSD toolchain, so I've placed an #error in the IPv6
BSD-part where the author/porter has started to hack something funny.
- 110-olsrd-double-wlancard-neigh-hack.patch:
This is a hack for Nodes having to wifi cards with the same channel,
bssid, IP-Range etc. If two nodes can see each other by means of two
possible links (here: two wifi cards with equal config), a bug is triggered
with the Neigh-is-SYM detections. This small little hack prevents this.
- 112-olsrd-nameservice-fixemptyname.patch:
This is an addon to my lat/lon stuff which will prevent olsrd from
running (oops?) if no hostname is given and the nameservice plugin
is loaded.
- 113-olsrd-dyngwplain-pluginvers5.patch:
This updates the dyngwplain plugin to the new Plugin Iface
- 140-olsrd-arprefreshed.patch:
This is a new one. Opens a packet socket and listen to UDP(698), extract
the sender MAC and refreshes the ARP cache whith that. Should speedup
especially in cases, if you initially try to use a longer routing path which
normally triggers a "ARP-Lookup-Chain".
- 106-olsrd-nameserviceparams.patch:
This patch converts more plugins to the new interface version.
- 104-olsrd-policy-routing.patch
Reworked this one to discard GPL helper functions. Also checked IPv6 and
re-included the IPC hookup. The patch adds a "RtTable [number]" for
/etc/olsrd.conf which is simply the Linux
policy routing table to use. Defaults to 254 (== main).
This patch was modified/clenaed up by <[email protected]> to use "#if"
instead of "#ifdef" as it's more robust against typos.
- 110-olsrd-fixpacketprint.patch, 112-olsrd-nameservice-fixemptyname.patch,
113-olsrd-txtinfo-fixhttpget.patch, 114-olsrd-timeoutlimit.patch,
115-olsrd-nameserviceparamfix.patch and
116-olsrd-fix-pluginparam-addons.patch fixing the compilation warning
on 64bit and lots of other improvements.
- "Save the fish" patch: Avoid forwarding of packets with too low TTL. This
kills lots of packet forwarding storms.
NB: The oneliner was applied by hand by BP and formatted to look (in BPs O)
more readable.
PATCH by Arnd Hannemann <[email protected]>
olsr_makefile_make_use_of_exename.patch
- This patch makes sure that the EXENAME variable of Makefile.inc is used
in Makefile.
PATCHES by John Hay <[email protected]>
- update to new FreeBSD WLAN API
- do not require /bin/bash, use /bin/sh
- Fixed alignment so that olsrd runs on FreeBSD/arm
- allow more interface in an IPv6 subnet on FreeBSD
- use PREFIX and DESTDIR as all the other Makefile.$OS also for FreeBSD
- make txtinfo plugin work with IPv6
PATCH by Andreas Jacobs <[email protected]>
- fix the loss link quality calculation for "windows size % 4 != 0"
PATCH by Acinonyx <[email protected]>
- Bug fix: include $(TOPDIR)/Makefile.inc at the begin in the Quagga plugin
PATCH by David Cornejo <[email protected]>
- fixed an "+=" of an uninitialized variable (detected with/by the
scan.coverty.com).
BUG reported by Aaron Kaplan <[email protected]>
- BSD-xargs doesn't know "-r".
PATCHES and CLEANUPS by Bernd Petrovitsch <[email protected]>
- Made a function from the ME_TO_DOUBLE() macro (in src/mantissa.h).
This saves code throughout the code even on i386 and will even more
on architectures without floating point units and "-msoft-float".
- And the mathemathics in src/mantissa.h is reformulated to minimize
floating point operations to save CPU power - especially on embedded
devices.
- I rewrote the half of src/lq_packet.[ch] which deals with incoming
packets. This was triggered with performance output of gcc produced
by Sven-Ola Tuecke at CCCamp07.
This kills *lots* of (more than) superflous malloc()s and the same
number of (free()s). And it also kills some code and copying around of
data.
- Make it compile without warning with flex-2.5.33 (to be found on Fedora 7
and Gentoo in Sep-2007) again.
- converted the dyn_gw plugin to plugin interface version 5 (which leaves
the quagga plugion as the last with the old one).
- paving the way to activate -Wshadow, much more to do
- const-ify parameters here and there
- use NULL for pointers (and not "0")
- Killed "extern" declarations in (not generated) .c files
- Based on a patch by Gianni Costanzi <[email protected]> (so credits
and thanks have to go there):
added OS_CFLAG_PTHREAD Makefile variable since gcc (on Linux) requests this
in the manual page.
Changes/additions:
- I added definitions to all OS-specific Makefile.$OS with the value similar
to the value in OS_LIB_PTHREAD (either empty or "-pthread").
- The variable is added to CPPFLAGS (and not CFLAGS) since CPPFLAGS is used