Build #1,934

FreeRangeRouting Protocol Suite

Build: #1934 was successful Changes by Donald Sharp

Build result summary


119 minutes
cfef27e56ef3246a261ee0bf2810a46c08eebf8f cfef27e56ef3246a261ee0bf2810a46c08eebf8f
Total tests
Successful since
#1925 ()


Code commits

Author Commit Message Commit date
Donald Sharp Donald Sharp cfef27e56ef3246a261ee0bf2810a46c08eebf8f cfef27e56ef3246a261ee0bf2810a46c08eebf8f Merge pull request #3622 from mjstapp/fix_cpp_compile
libs, daemons: changes to permit c++ compilation
Renato Westphal Renato Westphal c139972c0ffcabe73cafc3d20f257163fa81ddd0 m c139972c0ffcabe73cafc3d20f257163fa81ddd0 lib: rename enum to avoid conflict
Two different definitions of "enum filter_type" exist in libfrr:
one in lib/filter.h and other in lib/command_match.h. Rename one
of them to resolve a conflict that happens when both headers are
included by the same file.

Signed-off-by: Renato Westphal <>
Renato Westphal Renato Westphal 5e2444690bd0d2003e7d283f890b33e11ddd371f m 5e2444690bd0d2003e7d283f890b33e11ddd371f lib: add extern "C" {} blocks to all libfrr headers
These are necessary to use functions defined in these headers from C++.

Signed-off-by: David Lamparter <>
Signed-off-by: Renato Westphal <>
Renato Westphal Renato Westphal 343cd13e17062eb024f45b44036d930988bd0299 m 343cd13e17062eb024f45b44036d930988bd0299 lib: add macro that performs explicit static casts when using a C++ compiler
C++ doesn't support implicit casts from void pointers like C
does. And the libfrr headers have some bits of code that rely on
implicit casts in order to work. To solve this problem, add a new
"static_cast" macro that performs explicit static casts when a C++
compiler is being used, or do nothing otherwise.

NOTE: since macros are only evaluated when they are used, there
might be other macros from libfrr that will need to use "static_cast"
as well. If a header is successfully compiled using a C++ compiler,
there's no guarantee that its macros are compatible with C++. We'll
only know about such macros when they are used by C++ code, then
we'll need to adapt them one by one in the future.

Signed-off-by: Renato Westphal <>
Renato Westphal Renato Westphal 7f04943d6b860f5e74a8fc652a106c3a2046a0ce m 7f04943d6b860f5e74a8fc652a106c3a2046a0ce lib: a few more trivial changes for C++ compatibility
* command_graph.h: stop using "new" as a parameter name as that's a
  reserved C++ keyword.

* module.h: avoid using C99 designated initializers since C++ doesn't
  support them. This change hurts code readability quite considerably,
  so we should try to find a better solution later.

* pw.h: remove unneeded empty structure to silence a C++ warning.

Signed-off-by: Renato Westphal <>