While looking for something else I noticed this error.
The holdtime is written into the buffer with ibuf_add_n16() so the htons()
call is done in the ibuf add call. So there is no need for the htons()
when assigning holdtime.
--
:wq Claudio
Index: session.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/session.c,v
retrieving revision 1.451
diff -u -p -u -5 -r1.451 session.c
--- session.c 19 Oct 2023 07:02:45 -0000 1.451
+++ session.c 27 Oct 2023 09:24:20 -0000
@@ -1570,13 +1570,13 @@ session_open(struct peer *p)
bgp_fsm(p, EVNT_CON_FATAL);
return;
}
if (p->conf.holdtime)
- holdtime = htons(p->conf.holdtime);
+ holdtime = p->conf.holdtime;
else
- holdtime = htons(conf->holdtime);
+ holdtime = conf->holdtime;
errs += ibuf_add_n8(buf->buf, 4);
errs += ibuf_add_n16(buf->buf, p->conf.local_short_as);
errs += ibuf_add_n16(buf->buf, holdtime);
/* is already in network byte order */