fixed ssl.c bug when ssl backend returns IO_BLOCKED but IO engine doesn't get informe... master
authorpk910 <philipp@zoelle1.de>
Sun, 24 Feb 2013 12:50:53 +0000 (13:50 +0100)
committerpk910 <philipp@zoelle1.de>
Sun, 24 Feb 2013 13:24:09 +0000 (14:24 +0100)
ircd/s_auth.c
ircd/send.c
ircd/ssl.c

index 71c86385db89e66b589a99c4abae9ecc37da5a65..3b1999b03b3bc7c6b7994f06c3297634da43359d 100644 (file)
@@ -155,7 +155,8 @@ typedef enum {
 
 /** Sends response \a r (from #ReportType) to client \a c. */
 #define sendheader(c, r) \
 
 /** Sends response \a r (from #ReportType) to client \a c. */
 #define sendheader(c, r) \
-   ssl_send(cli_fd(c), cli_socket(c).ssl, HeaderMessages[(r)].message, HeaderMessages[(r)].length)
+   sendrawto_one(c, "%s", HeaderMessages[(r)].message)
+   //ssl_send(cli_fd(c), cli_socket(c).ssl, HeaderMessages[(r)].message, HeaderMessages[(r)].length)
 
 /** Enumeration of IAuth connection flags. */
 enum IAuthFlag
 
 /** Enumeration of IAuth connection flags. */
 enum IAuthFlag
index ff8d1158b0f0b06e25fbdaae4c539c4b0d3c64a1..cdd5de8adc87bff3d9ba78cfc7237cb6f72c0da5 100644 (file)
@@ -191,7 +191,7 @@ void send_queued(struct Client *to)
       msgq_delete(&(cli_sendQ(to)), len);
       cli_lastsq(to) = MsgQLength(&(cli_sendQ(to))) / 1024;
       if (IsBlocked(to)) {
       msgq_delete(&(cli_sendQ(to)), len);
       cli_lastsq(to) = MsgQLength(&(cli_sendQ(to))) / 1024;
       if (IsBlocked(to)) {
-       update_write(to);
+        update_write(to);
         return;
       }
     }
         return;
       }
     }
@@ -201,6 +201,8 @@ void send_queued(struct Client *to)
         sprintf(tmp,"Write error: %s",(strerror(cli_error(to))) ? (strerror(cli_error(to))) : "Unknown error" );
         dead_link(to, tmp);
       }
         sprintf(tmp,"Write error: %s",(strerror(cli_error(to))) ? (strerror(cli_error(to))) : "Unknown error" );
         dead_link(to, tmp);
       }
+      if (IsBlocked(to))
+        update_write(to);
       return;
     }
   }
       return;
     }
   }
index 2af08520bb953b1f70ba36a1d4447ead3d08abeb..489c143f4b632f23d9f2626c03a6659c168ca757 100644 (file)
@@ -1022,6 +1022,7 @@ const char *ssl_cipherstr(ssl_session_t *ssl) {
     }
     IOResult ssl_be_send(signed int fd, ssl_be_session_t *ssl, const char *buf, unsigned int *count_out) {
         signed int res;
     }
     IOResult ssl_be_send(signed int fd, ssl_be_session_t *ssl, const char *buf, unsigned int *count_out) {
         signed int res;
+               ssl_msg(SSL_DEBUG, "SSL: gnutls ssl_be_send(): %s", buf);
         res = gnutls_record_send(*ssl, buf, *count_out);
         *count_out = 0;
         if(res == 0) {
         res = gnutls_record_send(*ssl, buf, *count_out);
         *count_out = 0;
         if(res == 0) {
@@ -1039,7 +1040,7 @@ const char *ssl_cipherstr(ssl_session_t *ssl) {
         }
         else {
             *count_out = res;
         }
         else {
             *count_out = res;
-                       ssl_msg(SSL_DEBUG, "SSL: gnutls ssl_be_send(): successful (IO_SUCCESS)");
+                       ssl_msg(SSL_DEBUG, "SSL: gnutls ssl_be_send(): successful (IO_SUCCESS) %d", res);
             return IO_SUCCESS;
         }
     }
             return IO_SUCCESS;
         }
     }