Prototype info function.
authorBen Laurie <ben@openssl.org>
Sat, 12 Jan 2002 15:56:13 +0000 (15:56 +0000)
committerBen Laurie <ben@openssl.org>
Sat, 12 Jan 2002 15:56:13 +0000 (15:56 +0000)
15 files changed:
apps/s_apps.h
apps/s_cb.c
crypto/bio/bio.h
crypto/bio/bss_conn.c
ssl/bio_ssl.c
ssl/s23_clnt.c
ssl/s23_srvr.c
ssl/s2_clnt.c
ssl/s2_srvr.c
ssl/s3_clnt.c
ssl/s3_pkt.c
ssl/s3_srvr.c
ssl/ssl.h
ssl/ssl_lib.c
ssl/ssl_stat.c

index 38301b3..ff18a72 100644 (file)
@@ -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
index ace2682..ca5b245 100644 (file)
@@ -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;
index 379cd58..c687e8c 100644 (file)
@@ -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)
index c41ba3c..177e566 100644 (file)
@@ -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:
index 9141ec0..467e149 100644 (file)
@@ -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:
index d742453..b2be834 100644 (file)
@@ -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 */
index bcf8e51..6170861 100644 (file)
@@ -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;
 
index 868a975..4cb1184 100644 (file)
@@ -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);
index 582420b..56da651 100644 (file)
@@ -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);
index c3be69b..27bc16e 100644 (file)
@@ -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;;
 
index ec4b665..616698f 100644 (file)
@@ -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);
index 72a73cd..3ef6eee 100644 (file)
@@ -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;
index 6fa5b1f..2f55322 100644 (file)
--- 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);
index 72821a1..2bd30d9 100644 (file)
@@ -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)
index 963a502..b16d253 100644 (file)
@@ -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;