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
e = getenv("LISTEN_FDS");
if (!e || !*e)
return -1;
- count = atol(e);
+ count = atoi(e);
unsetenv("LISTEN_FDS");
return count;
#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);
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 */
}
/* Look for non-empty read buffers ... */
for (i = 0; i < Pool_Size; i++) {
if ((My_Connections[i].sock > NONE)
- && (array_bytes(&My_Connections[i].rbuf) > 0)
- && (My_Connections[i].delaytime <= t)) {
+ && (array_bytes(&My_Connections[i].rbuf) > 0)) {
/* ... and try to handle the received data */
bytes_processed = Handle_Buffer(i);
/* if we processed data, and there might be
return Conn_OPTION_ISSET(&My_Connections[Idx], CONN_SSL);
}
+
+GLOBAL char *
+Conn_GetCertFp(CONN_ID Idx)
+{
+ if (Idx < 0)
+ return NULL;
+ assert(Idx < (int) array_length(&My_ConnArray, sizeof(CONNECTION)));
+ return ConnSSL_GetCertFp(&My_Connections[Idx]);
+}
+
+
+GLOBAL bool
+Conn_SetCertFp(CONN_ID Idx, const char *fingerprint)
+{
+ if (Idx < 0)
+ return false;
+ assert(Idx < (int) array_length(&My_ConnArray, sizeof(CONNECTION)));
+ return ConnSSL_SetCertFp(&My_Connections[Idx], fingerprint);
+}
+#else
+GLOBAL bool
+Conn_UsesSSL(UNUSED CONN_ID Idx)
+{
+ return false;
+}
+
+
+GLOBAL char *
+Conn_GetCertFp(UNUSED CONN_ID Idx)
+{
+ return NULL;
+}
+
+
+GLOBAL bool
+Conn_SetCertFp(UNUSED CONN_ID Idx, UNUSED const char *fingerprint)
+{
+ return true;
+}
#endif