HCConn *ssl_conn = data;
struct ssl_data *ssl = ssl_conn->layer;
int r;
- if (event != HC_EVENT_READ)
- return;
- if (ssl->handshaking)
+ switch (event)
{
- ssl_server_handshake (ssl);
- return;
+ case HC_EVENT_READ:
+ if (ssl->handshaking)
+ {
+ ssl_server_handshake (ssl);
+ return;
+ }
+ while ((r = hc_conn_read (ssl->lowconn, buffer, sizeof (buffer))) > 0)
+ g_string_append_len (ssl->buffer, buffer, r);
+ if (ssl_conn->func && !ssl->handshaking)
+ ssl_conn->func (ssl_conn, event, ssl_conn->data);
+ break;
+ case HC_EVENT_CLOSE:
+ if (ssl_conn->func)
+ ssl_conn->func (ssl_conn, event, ssl_conn->data);
}
- while ((r = hc_conn_read (ssl->lowconn, buffer, sizeof (buffer))) > 0)
- g_string_append_len (ssl->buffer, buffer, r);
- if (ssl_conn->func && !ssl->handshaking)
- ssl_conn->func (ssl_conn, event, ssl_conn->data);
- return;
}
void