summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/s_apps.h2
-rw-r--r--apps/s_cb.c2
-rw-r--r--crypto/bio/bio.h5
-rw-r--r--crypto/bio/bss_conn.c5
-rw-r--r--ssl/bio_ssl.c4
-rw-r--r--ssl/s23_clnt.c4
-rw-r--r--ssl/s23_srvr.c2
-rw-r--r--ssl/s2_clnt.c2
-rw-r--r--ssl/s2_srvr.c2
-rw-r--r--ssl/s3_clnt.c2
-rw-r--r--ssl/s3_pkt.c4
-rw-r--r--ssl/s3_srvr.c2
-rw-r--r--ssl/ssl.h17
-rw-r--r--ssl/ssl_lib.c9
-rw-r--r--ssl/ssl_stat.c8
15 files changed, 38 insertions, 32 deletions
diff --git a/apps/s_apps.h b/apps/s_apps.h
index 38301b3e81..ff18a72fe0 100644
--- a/apps/s_apps.h
+++ b/apps/s_apps.h
@@ -155,6 +155,6 @@ long MS_CALLBACK bio_dump_cb(BIO *bio, int cmd, const char *argp,
int argi, long argl, long ret);
#ifdef HEADER_SSL_H
-void MS_CALLBACK apps_ssl_info_callback(SSL *s, int where, int ret);
+void MS_CALLBACK apps_ssl_info_callback(const SSL *s, int where, int ret);
void MS_CALLBACK msg_cb(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg);
#endif
diff --git a/apps/s_cb.c b/apps/s_cb.c
index ace2682f9b..ca5b24548c 100644
--- a/apps/s_cb.c
+++ b/apps/s_cb.c
@@ -253,7 +253,7 @@ long MS_CALLBACK bio_dump_cb(BIO *bio, int cmd, const char *argp, int argi,
return(ret);
}
-void MS_CALLBACK apps_ssl_info_callback(SSL *s, int where, int ret)
+void MS_CALLBACK apps_ssl_info_callback(const SSL *s, int where, int ret)
{
char *str;
int w;
diff --git a/crypto/bio/bio.h b/crypto/bio/bio.h
index 379cd58324..c687e8c28c 100644
--- a/crypto/bio/bio.h
+++ b/crypto/bio/bio.h
@@ -467,8 +467,9 @@ int BIO_read_filename(BIO *b,const char *name);
size_t BIO_ctrl_pending(BIO *b);
size_t BIO_ctrl_wpending(BIO *b);
#define BIO_flush(b) (int)BIO_ctrl(b,BIO_CTRL_FLUSH,0,NULL)
-#define BIO_get_info_callback(b,cbp) (int)BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0,(bio_info_cb **)(cbp))
-#define BIO_set_info_callback(b,cb) (int)BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,(bio_info_cb *)(cb))
+#define BIO_get_info_callback(b,cbp) (int)BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0, \
+ cbp)
+#define BIO_set_info_callback(b,cb) (int)BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,cb)
/* For the BIO_f_buffer() type */
#define BIO_buffer_get_num_lines(b) BIO_ctrl(b,BIO_CTRL_GET,0,NULL)
diff --git a/crypto/bio/bss_conn.c b/crypto/bio/bss_conn.c
index c41ba3cc41..177e566f7a 100644
--- a/crypto/bio/bss_conn.c
+++ b/crypto/bio/bss_conn.c
@@ -95,7 +95,7 @@ typedef struct bio_connect_st
/* called when the connection is initially made
* callback(BIO,state,ret); The callback should return
* 'ret'. state is for compatibility with the ssl info_callback */
- int (*info_callback)();
+ int (*info_callback)(const BIO *bio,int state,int ret);
} BIO_CONNECT;
static int conn_write(BIO *h, const char *buf, int num);
@@ -574,7 +574,8 @@ static long conn_ctrl(BIO *b, int cmd, long num, void *ptr)
if (data->param_hostname)
BIO_set_conn_hostname(dbio,data->param_hostname);
BIO_set_nbio(dbio,data->nbio);
- (void)BIO_set_info_callback(dbio,data->info_callback);
+ /* FIXME: the cast of the function seems unlikely to be a good idea */
+ (void)BIO_set_info_callback(dbio,(bio_info_cb *)data->info_callback);
}
break;
case BIO_CTRL_SET_CALLBACK:
diff --git a/ssl/bio_ssl.c b/ssl/bio_ssl.c
index 9141ec0d7b..467e149947 100644
--- a/ssl/bio_ssl.c
+++ b/ssl/bio_ssl.c
@@ -486,7 +486,9 @@ static long ssl_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)
{
case BIO_CTRL_SET_CALLBACK:
{
- SSL_set_info_callback(ssl,fp);
+ /* FIXME: setting this via a completely different prototype
+ seems like a crap idea */
+ SSL_set_info_callback(ssl,(void (*)(const SSL *,int,int))fp);
}
break;
default:
diff --git a/ssl/s23_clnt.c b/ssl/s23_clnt.c
index d74245384a..b2be8340fb 100644
--- a/ssl/s23_clnt.c
+++ b/ssl/s23_clnt.c
@@ -100,7 +100,7 @@ int ssl23_connect(SSL *s)
{
BUF_MEM *buf;
unsigned long Time=time(NULL);
- void (*cb)()=NULL;
+ void (*cb)(const SSL *ssl,int type,int val)=NULL;
int ret= -1;
int new_state,state;
@@ -440,7 +440,7 @@ static int ssl23_get_server_hello(SSL *s)
(p[3] == 0) &&
(p[4] == 2))
{
- void (*cb)()=NULL;
+ void (*cb)(const SSL *ssl,int type,int val)=NULL;
int j;
/* An alert */
diff --git a/ssl/s23_srvr.c b/ssl/s23_srvr.c
index bcf8e51c5d..6170861705 100644
--- a/ssl/s23_srvr.c
+++ b/ssl/s23_srvr.c
@@ -152,7 +152,7 @@ int ssl23_accept(SSL *s)
{
BUF_MEM *buf;
unsigned long Time=time(NULL);
- void (*cb)()=NULL;
+ void (*cb)(const SSL *ssl,int type,int val)=NULL;
int ret= -1;
int new_state,state;
diff --git a/ssl/s2_clnt.c b/ssl/s2_clnt.c
index 868a975dc9..4cb1184161 100644
--- a/ssl/s2_clnt.c
+++ b/ssl/s2_clnt.c
@@ -158,7 +158,7 @@ int ssl2_connect(SSL *s)
unsigned long l=time(NULL);
BUF_MEM *buf=NULL;
int ret= -1;
- void (*cb)()=NULL;
+ void (*cb)(const SSL *ssl,int type,int val)=NULL;
int new_state,state;
RAND_add(&l,sizeof(l),0);
diff --git a/ssl/s2_srvr.c b/ssl/s2_srvr.c
index 582420bcff..56da65195e 100644
--- a/ssl/s2_srvr.c
+++ b/ssl/s2_srvr.c
@@ -159,7 +159,7 @@ int ssl2_accept(SSL *s)
BUF_MEM *buf=NULL;
int ret= -1;
long num1;
- void (*cb)()=NULL;
+ void (*cb)(const SSL *ssl,int type,int val)=NULL;
int new_state,state;
RAND_add(&l,sizeof(l),0);
diff --git a/ssl/s3_clnt.c b/ssl/s3_clnt.c
index c3be69b928..27bc16eb6b 100644
--- a/ssl/s3_clnt.c
+++ b/ssl/s3_clnt.c
@@ -106,7 +106,7 @@ int ssl3_connect(SSL *s)
BUF_MEM *buf;
unsigned long Time=time(NULL),l;
long num1;
- void (*cb)()=NULL;
+ void (*cb)(const SSL *ssl,int type,int val)=NULL;
int ret= -1;
int new_state,state,skip=0;;
diff --git a/ssl/s3_pkt.c b/ssl/s3_pkt.c
index ec4b665939..616698f70a 100644
--- a/ssl/s3_pkt.c
+++ b/ssl/s3_pkt.c
@@ -730,7 +730,7 @@ int ssl3_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek)
int al,i,j,ret;
unsigned int n;
SSL3_RECORD *rr;
- void (*cb)()=NULL;
+ void (*cb)(const SSL *ssl,int type2,int val)=NULL;
if (s->s3->rbuf.buf == NULL) /* Not initialized yet */
if (!ssl3_setup_buffers(s))
@@ -1207,7 +1207,7 @@ void ssl3_send_alert(SSL *s, int level, int desc)
int ssl3_dispatch_alert(SSL *s)
{
int i,j;
- void (*cb)()=NULL;
+ void (*cb)(const SSL *ssl,int type,int val)=NULL;
s->s3->alert_dispatch=0;
i=do_ssl3_write(s,SSL3_RT_ALERT,&s->s3->send_alert[0],2);
diff --git a/ssl/s3_srvr.c b/ssl/s3_srvr.c
index 72a73cd9d0..3ef6eeeb71 100644
--- a/ssl/s3_srvr.c
+++ b/ssl/s3_srvr.c
@@ -164,7 +164,7 @@ int ssl3_accept(SSL *s)
{
BUF_MEM *buf;
unsigned long l,Time=time(NULL);
- void (*cb)()=NULL;
+ void (*cb)(const SSL *ssl,int type,int val)=NULL;
long num1;
int ret= -1;
int new_state,state,skip=0;
diff --git a/ssl/ssl.h b/ssl/ssl.h
index 6fa5b1f250..2f55322ab8 100644
--- a/ssl/ssl.h
+++ b/ssl/ssl.h
@@ -578,7 +578,7 @@ struct ssl_ctx_st
/* Default values used when no per-SSL value is defined follow */
- void (*info_callback)(); /* used if SSL's info_callback is NULL */
+ void (*info_callback)(const SSL *ssl,int type,int val); /* used if SSL's info_callback is NULL */
/* what we put in client cert requests */
STACK_OF(X509_NAME) *client_CA;
@@ -794,7 +794,7 @@ struct ssl_st
int verify_depth;
int (*verify_callback)(int ok,X509_STORE_CTX *ctx); /* fail if callback returns 0 */
- void (*info_callback)(); /* optional informational callback */
+ void (*info_callback)(const SSL *ssl,int type,int val); /* optional informational callback */
int error; /* error bytes to be written */
int error_code; /* actual code */
@@ -1135,10 +1135,10 @@ int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs,
#endif
void SSL_load_error_strings(void );
-const char *SSL_state_string(SSL *s);
-const char *SSL_rstate_string(SSL *s);
-const char *SSL_state_string_long(SSL *s);
-const char *SSL_rstate_string_long(SSL *s);
+const char *SSL_state_string(const SSL *s);
+const char *SSL_rstate_string(const SSL *s);
+const char *SSL_state_string_long(const SSL *s);
+const char *SSL_rstate_string_long(const SSL *s);
long SSL_SESSION_get_time(SSL_SESSION *s);
long SSL_SESSION_set_time(SSL_SESSION *s, long t);
long SSL_SESSION_get_timeout(SSL_SESSION *s);
@@ -1289,8 +1289,9 @@ int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,
SSL_SESSION *SSL_get_session(SSL *ssl);
SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */
SSL_CTX *SSL_get_SSL_CTX(SSL *ssl);
-void SSL_set_info_callback(SSL *ssl,void (*cb)());
-void (*SSL_get_info_callback(SSL *ssl))();
+void SSL_set_info_callback(SSL *ssl,
+ void (*cb)(const SSL *ssl,int type,int val));
+void (*SSL_get_info_callback(SSL *ssl))(const SSL *ssl,int type,int val);
int SSL_state(SSL *ssl);
void SSL_set_verify_result(SSL *ssl,long v);
diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c
index 72821a1fce..2bd30d91f0 100644
--- a/ssl/ssl_lib.c
+++ b/ssl/ssl_lib.c
@@ -1313,7 +1313,7 @@ SSL_CTX *SSL_CTX_new(SSL_METHOD *meth)
ret->key_arg=NULL;
ret->s2->conn_id=NULL; */
- ret->info_callback=0;
+ ret->info_callback=NULL;
ret->app_verify_callback=0;
ret->app_verify_arg=NULL;
@@ -2136,14 +2136,15 @@ int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,
}
#endif
-void SSL_set_info_callback(SSL *ssl,void (*cb)())
+void SSL_set_info_callback(SSL *ssl,
+ void (*cb)(const SSL *ssl,int type,int val))
{
ssl->info_callback=cb;
}
-void (*SSL_get_info_callback(SSL *ssl))(void)
+void (*SSL_get_info_callback(SSL *ssl))(const SSL *ssl,int type,int val)
{
- return((void (*)())ssl->info_callback);
+ return ssl->info_callback;
}
int SSL_state(SSL *ssl)
diff --git a/ssl/ssl_stat.c b/ssl/ssl_stat.c
index 963a502678..b16d253081 100644
--- a/ssl/ssl_stat.c
+++ b/ssl/ssl_stat.c
@@ -59,7 +59,7 @@
#include <stdio.h>
#include "ssl_locl.h"
-const char *SSL_state_string_long(SSL *s)
+const char *SSL_state_string_long(const SSL *s)
{
const char *str;
@@ -199,7 +199,7 @@ default: str="unknown state"; break;
return(str);
}
-const char *SSL_rstate_string_long(SSL *s)
+const char *SSL_rstate_string_long(const SSL *s)
{
const char *str;
@@ -213,7 +213,7 @@ const char *SSL_rstate_string_long(SSL *s)
return(str);
}
-const char *SSL_state_string(SSL *s)
+const char *SSL_state_string(const SSL *s)
{
const char *str;
@@ -487,7 +487,7 @@ const char *SSL_alert_desc_string_long(int value)
return(str);
}
-const char *SSL_rstate_string(SSL *s)
+const char *SSL_rstate_string(const SSL *s)
{
const char *str;