Commit 53943a00 authored by Martin Mareš's avatar Martin Mareš

Defined format specifier `%M' which behaves as `%m', but takes the

error code as an argument.

Use it in socket hooks where we really shouldn't rely on errno containing
the right value or even existing.
parent 85368cd4
......@@ -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)
......
......@@ -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:
......
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment