gint sock_peek(SockInfo *sock, gchar *buf, gint len) { g_return_val_if_fail(sock != NULL, -1); #if USE_SSL if (sock->ssl) return ssl_peek(sock->ssl, buf, len); #endif return fd_recv(sock->sock, buf, len, MSG_PEEK); }
int Sys_peek(int sockfd, char* buffer, int nbytes) { if (g_enableSSL) { return ssl_peek(sockfd, buffer, nbytes); } else { return recv(sockfd, buffer, nbytes, MSG_PEEK); } }
gint ssl_gets(SSL *ssl, gchar *buf, gint len) { gchar *newline, *bp = buf; gint n; if (--len < 1) return -1; do { if ((n = ssl_peek(ssl, bp, len)) <= 0) return -1; if ((newline = memchr(bp, '\n', n)) != NULL) n = newline - bp + 1; if ((n = ssl_read(ssl, bp, n)) < 0) return -1; bp += n; len -= n; } while (!newline && len); *bp = '\0'; return bp - buf; }
static int ssl_peek_adapter(struct vsf_session* p_sess, char* p_buf, unsigned int len) { return ssl_peek(p_sess, p_sess->p_control_ssl, p_buf, len); }