-
-#ifdef USE_GNUTLS
-static gboolean ssl_sock_prepare(GSource *source, gint *timeout)
-{
- *timeout = 1;
- return FALSE;
-}
-
-static gboolean ssl_sock_check(GSource *source)
-{
- SockInfo *sock = ((SockSource *)source)->sock;
- struct timeval timeout = {0, 0};
- fd_set fds;
- GIOCondition condition = 0;
-
- if (!sock || !sock->sock)
- return FALSE;
-
- condition = sock->condition;
-
- if ((condition & G_IO_IN) == G_IO_IN &&
- gnutls_record_check_pending(sock->ssl) != 0)
- return TRUE;
-
- FD_ZERO(&fds);
- FD_SET(sock->sock, &fds);
-
- select(sock->sock + 1,
- (condition & G_IO_IN) ? &fds : NULL,
- (condition & G_IO_OUT) ? &fds : NULL,
- NULL, &timeout);
-
- return FD_ISSET(sock->sock, &fds) != 0;
-}
-
-static gboolean ssl_sock_dispatch(GSource *source, GSourceFunc callback,
- gpointer user_data)
-{
- SockInfo *sock = ((SockSource *)source)->sock;
-
- if (!sock || !sock->callback || !sock->data)
- return FALSE;
-
- return sock->callback(sock, sock->condition, sock->data);
-}
-#endif
-