X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=network.h;h=d58635b6246b0162f52acaf0f6f92524ee309fcd;hb=510f49e405e71ba5c97875e7a019364e1ef5fac9;hp=7dc497827a26b7e1dcd469cd14f23d3491a6d252;hpb=9e20c81bc9c945565dd182854eeffa03b63f830a;p=PuTTY.git diff --git a/network.h b/network.h index 7dc49782..d58635b6 100644 --- a/network.h +++ b/network.h @@ -58,6 +58,11 @@ struct plug_function_table { * fatal error - we may well have other candidate addresses * to fall back to. When it _is_ fatal, the closing() * function will be called. + * - type==2 means that error_msg contains a line of generic + * logging information about setting up the connection. This + * will typically be a wodge of standard-error output from a + * proxy command, so the receiver should probably prefix it to + * indicate this. */ int (*closing) (Plug p, const char *error_msg, int error_code, int calling_back); @@ -100,7 +105,8 @@ Socket new_connection(SockAddr addr, const char *hostname, Socket new_listener(const char *srcaddr, int port, Plug plug, int local_host_only, Conf *conf, int addressfamily); SockAddr name_lookup(const char *host, int port, char **canonicalname, - Conf *conf, int addressfamily); + Conf *conf, int addressfamily, void *frontend_for_logging, + const char *lookup_reason_for_logging); int proxy_for_destination (SockAddr addr, const char *hostname, int port, Conf *conf); @@ -211,40 +217,22 @@ char *get_hostname(void); */ Socket new_error_socket(const char *errmsg, Plug plug); -/********** SSL stuff **********/ +/* ---------------------------------------------------------------------- + * Functions defined outside the network code, which have to be + * declared in this header file rather than the main putty.h because + * they use types defined here. + */ /* - * This section is subject to change, but you get the general idea - * of what it will eventually look like. + * Exports from be_misc.c. */ - -typedef struct certificate *Certificate; -typedef struct our_certificate *Our_Certificate; - /* to be defined somewhere else, somehow */ - -typedef struct ssl_client_socket_function_table **SSL_Client_Socket; -typedef struct ssl_client_plug_function_table **SSL_Client_Plug; - -struct ssl_client_socket_function_table { - struct socket_function_table base; - void (*renegotiate) (SSL_Client_Socket s); - /* renegotiate the cipher spec */ -}; - -struct ssl_client_plug_function_table { - struct plug_function_table base; - int (*refuse_cert) (SSL_Client_Plug p, Certificate cert[]); - /* do we accept this certificate chain? If not, why not? */ - /* cert[0] is the server's certificate, cert[] is NULL-terminated */ - /* the last certificate may or may not be the root certificate */ - Our_Certificate(*client_cert) (SSL_Client_Plug p); - /* the server wants us to identify ourselves */ - /* may return NULL if we want anonymity */ -}; - -SSL_Client_Socket sk_ssl_client_over(Socket s, /* pre-existing (tcp) connection */ - SSL_Client_Plug p); - -#define sk_renegotiate(s) (((*s)->renegotiate) (s)) +void backend_socket_log(void *frontend, int type, SockAddr addr, int port, + const char *error_msg, int error_code, Conf *conf, + int session_started); +#ifndef BUFCHAIN_TYPEDEF +typedef struct bufchain_tag bufchain; /* rest of declaration in misc.c */ +#define BUFCHAIN_TYPEDEF +#endif +void log_proxy_stderr(Plug plug, bufchain *buf, const void *vdata, int len); #endif