summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/printf.c3
-rw-r--r--proto/bgp/bgp.c5
-rw-r--r--proto/rip/rip.c2
3 files changed, 8 insertions, 2 deletions
diff --git a/lib/printf.c b/lib/printf.c
index 64fcf728..a668aeaf 100644
--- a/lib/printf.c
+++ b/lib/printf.c
@@ -198,6 +198,9 @@ int bvsnprintf(char *buf, int size, const char *fmt, va_list args)
case 'm':
s = strerror(errno);
goto str;
+ case 'M':
+ s = strerror(va_arg(args, int));
+ goto str;
case 's':
s = va_arg(args, char *);
if (!s)
diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c
index 4a68f04b..41081f26 100644
--- a/proto/bgp/bgp.c
+++ b/proto/bgp/bgp.c
@@ -158,7 +158,10 @@ bgp_sock_err(sock *sk, int err)
struct bgp_conn *conn = sk->data;
struct bgp_proto *p = conn->bgp;
- BGP_TRACE(D_EVENTS, "Connection closed (socket error %d)", err);
+ if (err)
+ BGP_TRACE(D_EVENTS, "Connection lost (%M)", err);
+ else
+ BGP_TRACE(D_EVENTS, "Connection closed");
switch (conn->state)
{
case BS_CONNECT:
diff --git a/proto/rip/rip.c b/proto/rip/rip.c
index 2826de7f..f9a44835 100644
--- a/proto/rip/rip.c
+++ b/proto/rip/rip.c
@@ -75,7 +75,7 @@ rip_tx_err( sock *s, int err )
{
struct rip_connection *c = s->data;
struct proto *p = c->proto;
- log( L_ERR "Unexpected error at rip transmit: %m" );
+ log( L_ERR "Unexpected error at rip transmit: %M", err );
}
static int