summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/err.c1
-rw-r--r--lib/include/radsec/radsec.h1
-rw-r--r--lib/tcp.c1
3 files changed, 3 insertions, 0 deletions
diff --git a/lib/err.c b/lib/err.c
index eecebb1..4a90019 100644
--- a/lib/err.c
+++ b/lib/err.c
@@ -32,6 +32,7 @@ static const char *_errtxt[] = {
"invalid argument", /* 17 RSE_INVAL */
"I/O timeout", /* 18 RSE_TIMEOUT_IO */
"timeout", /* 19 RSE_TIMEOUT */
+ "peer disconnected", /* 20 RSE_DISCO */
};
#define ERRTXT_SIZE (sizeof(_errtxt) / sizeof(*_errtxt))
diff --git a/lib/include/radsec/radsec.h b/lib/include/radsec/radsec.h
index f620fed..971fc17 100644
--- a/lib/include/radsec/radsec.h
+++ b/lib/include/radsec/radsec.h
@@ -26,6 +26,7 @@ enum rs_error_code {
RSE_INVAL = 17, /* Invalid argument. */
RSE_TIMEOUT_IO = 18, /* I/O timeout. */
RSE_TIMEOUT = 19, /* High level timeout. */
+ RSE_DISCO = 20,
};
enum rs_conn_type {
diff --git a/lib/tcp.c b/lib/tcp.c
index c315143..063e9b2 100644
--- a/lib/tcp.c
+++ b/lib/tcp.c
@@ -209,6 +209,7 @@ tcp_event_cb (struct bufferevent *bev, short events, void *user_data)
if (sockerr == 0) /* FIXME: True that errno == 0 means closed? */
{
event_on_disconnect (conn);
+ rs_err_conn_push_fl (pkt->conn, RSE_DISCO, __FILE__, __LINE__, NULL);
}
else
{