Example code: Don't create rs_error on failing context creation.
[radsecproxy.git] / lib / conn.c
index ee5e771..fa63727 100644 (file)
@@ -6,6 +6,8 @@
 #endif
 
 #include <string.h>
+#include <stdlib.h>
+#include <errno.h>
 #include <assert.h>
 #include <event2/event.h>
 #include <event2/bufferevent.h>
@@ -269,7 +271,10 @@ rs_conn_receive_packet (struct rs_connection *conn,
       || (req_msg
          && packet_verify_response (pkt->conn, pkt, req_msg) != RSE_OK))
     {
-      assert (rs_err_conn_peek_code (pkt->conn));
+      if (rs_err_conn_peek_code (pkt->conn) == RSE_OK)
+        /* No packet and no error on the stack _should_ mean that the
+           server hung up on us.  */
+        rs_err_conn_push (pkt->conn, RSE_DISCO, "no response");
       return rs_err_conn_peek_code (conn);
     }