]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/conn.c
Don't read SSL client data before DNS resolver is finished
[ngircd-alex.git] / src / ngircd / conn.c
index 3a430428adc9832b8f06f16ddbe4052737548a33..eeedb4411b7c9abfb60c7a48ce29afdc646c72a1 100644 (file)
@@ -139,7 +139,7 @@ static int
 my_sd_listen_fds(void)
 {
        const char *e;
-       long count;
+       int count;
 
        /* Check if LISTEN_PID exists; but we ignore the result, because
         * normally ngircd forks a child before checking this, and therefore
@@ -151,7 +151,7 @@ my_sd_listen_fds(void)
        e = getenv("LISTEN_FDS");
        if (!e || !*e)
                return -1;
-       count = atol(e);
+       count = atoi(e);
        unsetenv("LISTEN_FDS");
 
        return count;
@@ -367,13 +367,13 @@ cb_clientserver(int sock, short what)
 
 #ifdef SSL_SUPPORT
 /**
- * IO callback for established SSL-enabled client and server connections.
+ * IO callback for new SSL-enabled client and server connections.
  *
  * @param sock Socket descriptor.
  * @param what IO specification (IO_WANTREAD/IO_WANTWRITE/...).
  */
 static void
-cb_clientserver_ssl(int sock, short what)
+cb_clientserver_ssl(int sock, UNUSED short what)
 {
        CONN_ID idx = Socket2Index(sock);
 
@@ -390,14 +390,11 @@ cb_clientserver_ssl(int sock, short what)
        case 0:
                return; /* EAGAIN: callback will be invoked again by IO layer */
        default:
-               Conn_Close(idx, "SSL accept error, closing socket", "SSL accept error", false);
+               Conn_Close(idx,
+                          "SSL accept error, closing socket", "SSL accept error",
+                          false);
                return;
        }
-       if (what & IO_WANTREAD)
-               Read_Request(idx);
-
-       if (what & IO_WANTWRITE)
-               Handle_Write(idx);
 
        io_event_setcb(sock, cb_clientserver);  /* SSL handshake completed */
 }