commit 751958434792122e9363b54e499a30b2d83b8536 Author: David Goulet dgoulet@torproject.org Date: Tue Apr 4 08:35:31 2017 -0400
hs: Expose hs_service.c functions for unit tests
In order to avoid src/or/hs_service.o to contain no symbols and thus making clang throw a warning, the functions are now exposed not just to unit tests.
Signed-off-by: David Goulet dgoulet@torproject.org --- changes/bug21825 | 6 ++++++ src/or/hs_service.c | 12 +++--------- src/or/hs_service.h | 15 +++++---------- 3 files changed, 14 insertions(+), 19 deletions(-)
diff --git a/changes/bug21825 b/changes/bug21825 new file mode 100644 index 0000000..8f14b32 --- /dev/null +++ b/changes/bug21825 @@ -0,0 +1,6 @@ + o Minor bugfix (compilation): + - Functions in hs_service.c was only compiled for unit test making the + created object (.o) contain no symbols in src/or/libor.a resulting in a + compilation warning from clang. We now expose those functions for the + unit tests. This will be changed in 0.3.2 release. Fixes bug 21825.; + bugfix on tor-0.3.0.1-alpha. diff --git a/src/or/hs_service.c b/src/or/hs_service.c index 7b12b63..8687403 100644 --- a/src/or/hs_service.c +++ b/src/or/hs_service.c @@ -6,8 +6,6 @@ * \brief Implement next generation hidden service functionality **/
-#define HS_SERVICE_PRIVATE - #include "or.h" #include "relay.h" #include "rendservice.h" @@ -22,14 +20,12 @@
/* XXX We don't currently use these functions, apart from generating unittest data. When we start implementing the service-side support for prop224 we - should revisit these functions and use them. For now we mark them as - unittest-only code: */ -#ifdef TOR_UNIT_TESTS + should revisit these functions and use them. */
/** Given an ESTABLISH_INTRO <b>cell</b>, encode it and place its payload in * <b>buf_out</b> which has size <b>buf_out_len</b>. Return the number of * bytes written, or a negative integer if there was an error. */ -STATIC ssize_t +ssize_t get_establish_intro_payload(uint8_t *buf_out, size_t buf_out_len, const hs_cell_establish_intro_t *cell) { @@ -59,7 +55,7 @@ set_cell_extensions(hs_cell_establish_intro_t *cell) * return an ESTABLISH_INTRO cell. Return NULL if something went wrong. The * returned cell is allocated on the heap and it's the responsibility of the * caller to free it. */ -STATIC hs_cell_establish_intro_t * +hs_cell_establish_intro_t * generate_establish_intro_cell(const uint8_t *circuit_key_material, size_t circuit_key_material_len) { @@ -174,5 +170,3 @@ generate_establish_intro_cell(const uint8_t *circuit_key_material, return NULL; }
-#endif /* TOR_UNIT_TESTS */ - diff --git a/src/or/hs_service.h b/src/or/hs_service.h index 994521f..5d2d8dc 100644 --- a/src/or/hs_service.h +++ b/src/or/hs_service.h @@ -12,21 +12,16 @@ #include "or.h" #include "hs/cell_establish_intro.h"
-#ifdef HS_SERVICE_PRIVATE +/* These functions are only used by unit tests and we need to expose them else + * hs_service.o ends up with no symbols in libor.a which makes clang throw a + * warning at compile time. See #21825. */
-#ifdef TOR_UNIT_TESTS - -STATIC hs_cell_establish_intro_t * +hs_cell_establish_intro_t * generate_establish_intro_cell(const uint8_t *circuit_key_material, size_t circuit_key_material_len); - -STATIC ssize_t +ssize_t get_establish_intro_payload(uint8_t *buf, size_t buf_len, const hs_cell_establish_intro_t *cell);
-#endif /* TOR_UNIT_TESTS */ - -#endif /* HS_SERVICE_PRIVATE */ - #endif /* TOR_HS_SERVICE_H */