BUILD: peers: fix build warning with gcc 4.2.1
Building on OpenBSD 6.7 with gcc-4.2.1 yields the following warnings
which suggest that the initialization is not taken as expected but
that the container member is reset with each initialization:
src/peers.c: In function 'peer_send_updatemsg':
src/peers.c:1000: warning: initialized field overwritten
src/peers.c:1000: warning: (near initialization for 'p.updt')
src/peers.c:1001: warning: initialized field overwritten
src/peers.c:1001: warning: (near initialization for 'p.updt')
src/peers.c:1002: warning: initialized field overwritten
src/peers.c:1002: warning: (near initialization for 'p.updt')
src/peers.c:1003: warning: initialized field overwritten
src/peers.c:1003: warning: (near initialization for 'p.updt')
src/peers.c:1004: warning: initialized field overwritten
src/peers.c:1004: warning: (near initialization for 'p.updt')
Fixing this is trivial, we just have to initialize one level at
a time.
diff --git a/src/peers.c b/src/peers.c
index f16ba8e..47582e4 100644
--- a/src/peers.c
+++ b/src/peers.c
@@ -995,12 +995,14 @@
unsigned int updateid, int use_identifier, int use_timed)
{
struct peer_prep_params p = {
- .updt.stksess = ts,
- .updt.shared_table = st,
- .updt.updateid = updateid,
- .updt.use_identifier = use_identifier,
- .updt.use_timed = use_timed,
- .updt.peer = appctx->ctx.peers.ptr,
+ .updt = {
+ .stksess = ts,
+ .shared_table = st,
+ .updateid = updateid,
+ .use_identifier = use_identifier,
+ .use_timed = use_timed,
+ .peer = appctx->ctx.peers.ptr,
+ },
};
return peer_send_msg(appctx, peer_prepare_updatemsg, &p);