X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=raw.c;h=0c5445ad432c28619033cc7cf13f7a0e1c639365;hb=9c3700a6d3d037bd823a65f5837264605891b2ea;hp=60fbbf65e2d74b74d80d6e438639a75b7c0d6d64;hpb=37cdfdcd51e03253501546f6b2fc86f90f073aaa;p=PuTTY.git diff --git a/raw.c b/raw.c index 60fbbf65..0c5445ad 100644 --- a/raw.c +++ b/raw.c @@ -25,7 +25,9 @@ typedef struct raw_backend_data { int closed_on_socket_error; int bufsize; void *frontend; - int sent_console_eof, sent_socket_eof; + int sent_console_eof, sent_socket_eof, session_started; + + Conf *conf; } *Raw; static void raw_size(void *handle, int width, int height); @@ -40,17 +42,8 @@ static void raw_log(Plug plug, int type, SockAddr addr, int port, const char *error_msg, int error_code) { Raw raw = (Raw) plug; - char addrbuf[256], *msg; - - sk_getaddr(addr, addrbuf, lenof(addrbuf)); - - if (type == 0) - msg = dupprintf("Connecting to %s port %d", addrbuf, port); - else - msg = dupprintf("Failed to connect to %s: %s", addrbuf, error_msg); - - logevent(raw->frontend, msg); - sfree(msg); + backend_socket_log(raw->frontend, type, addr, port, + error_msg, error_code, raw->conf, raw->session_started); } static void raw_check_close(Raw raw) @@ -106,6 +99,9 @@ static int raw_receive(Plug plug, int urgent, char *data, int len) { Raw raw = (Raw) plug; c_write(raw, data, len); + /* We count 'session start', for proxy logging purposes, as being + * when data is received from the network and printed. */ + raw->session_started = TRUE; return 1; } @@ -147,6 +143,8 @@ static const char *raw_init(void *frontend_handle, void **backend_handle, *backend_handle = raw; raw->sent_console_eof = raw->sent_socket_eof = FALSE; raw->bufsize = 0; + raw->session_started = FALSE; + raw->conf = conf_copy(conf); raw->frontend = frontend_handle; @@ -193,6 +191,7 @@ static void raw_free(void *handle) if (raw->s) sk_close(raw->s); + conf_free(raw->conf); sfree(raw); }