Commit 5451e0d9 authored by Bodo Möller's avatar Bodo Möller
Browse files

add ssl23_peek

parent 4ea38555
Loading
Loading
Loading
Loading
+24 −14
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@
static int ssl23_num_ciphers(void );
static SSL_CIPHER *ssl23_get_cipher(unsigned int u);
static int ssl23_read(SSL *s, void *buf, int len);
static int ssl23_peek(SSL *s, void *buf, int len);
static int ssl23_write(SSL *s, const void *buf, int len);
static long ssl23_default_timeout(void );
static int ssl23_put_cipher_by_char(const SSL_CIPHER *c, unsigned char *p);
@@ -77,7 +78,7 @@ static SSL_METHOD SSLv23_data= {
	ssl_undefined_function,
	ssl_undefined_function,
	ssl23_read,
	(int (*)(struct ssl_st *, char *, int))ssl_undefined_function,
	ssl23_peek,
	ssl23_write,
	ssl_undefined_function,
	ssl_undefined_function,
@@ -169,13 +170,6 @@ static int ssl23_read(SSL *s, void *buf, int len)
	{
	int n;

#if 0
	if (s->shutdown & SSL_RECEIVED_SHUTDOWN)
		{
		s->rwstate=SSL_NOTHING;
		return(0);
		}
#endif
	clear_sys_error();
	if (SSL_in_init(s) && (!s->in_handshake))
		{
@@ -195,17 +189,33 @@ static int ssl23_read(SSL *s, void *buf, int len)
		}
	}

static int ssl23_write(SSL *s, const void *buf, int len)
static int ssl23_peek(SSL *s, void *buf, int len)
	{
	int n;

#if 0
	if (s->shutdown & SSL_SENT_SHUTDOWN)
	clear_sys_error();
	if (SSL_in_init(s) && (!s->in_handshake))
		{
		s->rwstate=SSL_NOTHING;
		return(0);
		n=s->handshake_func(s);
		if (n < 0) return(n);
		if (n == 0)
			{
			SSLerr(SSL_F_SSL23_PEEK,SSL_R_SSL_HANDSHAKE_FAILURE);
			return(-1);
			}
#endif
		return(SSL_peek(s,buf,len));
		}
	else
		{
		ssl_undefined_function(s);
		return(-1);
		}
	}

static int ssl23_write(SSL *s, const void *buf, int len)
	{
	int n;

	clear_sys_error();
	if (SSL_in_init(s) && (!s->in_handshake))
		{
+2 −1
Original line number Diff line number Diff line
@@ -1250,6 +1250,7 @@ int SSL_COMP_add_compression_method(int id,char *cm);
/* The following lines are auto generated by the script mkerr.pl. Any changes
 * made after this point may be overwritten when the script is next run.
 */
void ERR_load_SSL_strings(void);

/* Error codes for the SSL functions. */

@@ -1274,6 +1275,7 @@ int SSL_COMP_add_compression_method(int id,char *cm);
#define SSL_F_SSL23_CONNECT				 117
#define SSL_F_SSL23_GET_CLIENT_HELLO			 118
#define SSL_F_SSL23_GET_SERVER_HELLO			 119
#define SSL_F_SSL23_PEEK				 237
#define SSL_F_SSL23_READ				 120
#define SSL_F_SSL23_WRITE				 121
#define SSL_F_SSL2_ACCEPT				 122
@@ -1612,4 +1614,3 @@ int SSL_COMP_add_compression_method(int id,char *cm);
}
#endif
#endif
+1 −0
Original line number Diff line number Diff line
@@ -86,6 +86,7 @@ static ERR_STRING_DATA SSL_str_functs[]=
{ERR_PACK(0,SSL_F_SSL23_CONNECT,0),	"SSL23_CONNECT"},
{ERR_PACK(0,SSL_F_SSL23_GET_CLIENT_HELLO,0),	"SSL23_GET_CLIENT_HELLO"},
{ERR_PACK(0,SSL_F_SSL23_GET_SERVER_HELLO,0),	"SSL23_GET_SERVER_HELLO"},
{ERR_PACK(0,SSL_F_SSL23_PEEK,0),	"SSL23_PEEK"},
{ERR_PACK(0,SSL_F_SSL23_READ,0),	"SSL23_READ"},
{ERR_PACK(0,SSL_F_SSL23_WRITE,0),	"SSL23_WRITE"},
{ERR_PACK(0,SSL_F_SSL2_ACCEPT,0),	"SSL2_ACCEPT"},
+6 −0
Original line number Diff line number Diff line
@@ -784,6 +784,12 @@ int SSL_read(SSL *s,char *buf,int num)

int SSL_peek(SSL *s,char *buf,int num)
	{
	if (s->handshake_func == 0)
		{
		SSLerr(SSL_F_SSL_READ, SSL_R_UNINITIALIZED);
		return -1;
		}

	if (s->shutdown & SSL_RECEIVED_SHUTDOWN)
		{
		return(0);