mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-03-28 09:17:07 -05:00
Pass the calling Socket to plug_log.
This enables plug_log to run query methods on the socket in order to find out useful information to log. I don't expect it's sensible to do anything else with it.
This commit is contained in:
parent
23b15dbc77
commit
c1d9da67a2
15
network.h
15
network.h
@ -91,7 +91,7 @@ struct PlugVtable {
|
||||
* all Plugs must implement this method, even if only to ignore
|
||||
* the logged events.
|
||||
*/
|
||||
void (*log)(Plug *p, PlugLogType type, SockAddr *addr, int port,
|
||||
void (*log)(Plug *p, Socket *s, PlugLogType type, SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code);
|
||||
|
||||
/*
|
||||
@ -245,8 +245,9 @@ static inline void sk_write_eof(Socket *s)
|
||||
{ s->vt->write_eof(s); }
|
||||
|
||||
static inline void plug_log(
|
||||
Plug *p, int type, SockAddr *addr, int port, const char *msg, int code)
|
||||
{ p->vt->log(p, type, addr, port, msg, code); }
|
||||
Plug *p, Socket *s, int type, SockAddr *addr, int port,
|
||||
const char *msg, int code)
|
||||
{ p->vt->log(p, s, type, addr, port, msg, code); }
|
||||
static inline void plug_closing(Plug *p, PlugCloseType type, const char *msg)
|
||||
{ p->vt->closing(p, type, msg); }
|
||||
static inline void plug_closing_normal(Plug *p)
|
||||
@ -379,7 +380,7 @@ extern Plug *const nullplug;
|
||||
* In particular, nullplug_log is useful to Plugs that don't need to
|
||||
* worry about logging.
|
||||
*/
|
||||
void nullplug_log(Plug *plug, PlugLogType type, SockAddr *addr,
|
||||
void nullplug_log(Plug *plug, Socket *s, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *err_msg, int err_code);
|
||||
void nullplug_closing(Plug *plug, PlugCloseType type, const char *error_msg);
|
||||
void nullplug_receive(Plug *plug, int urgent, const char *data, size_t len);
|
||||
@ -391,7 +392,7 @@ void nullplug_sent(Plug *plug, size_t bufsize);
|
||||
* they use types defined here.
|
||||
*/
|
||||
|
||||
void backend_socket_log(Seat *seat, LogContext *logctx,
|
||||
void backend_socket_log(Seat *seat, LogContext *logctx, Socket *sock,
|
||||
PlugLogType type, SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code, Conf *conf,
|
||||
bool session_started);
|
||||
@ -403,8 +404,8 @@ typedef struct ProxyStderrBuf {
|
||||
} ProxyStderrBuf;
|
||||
void psb_init(ProxyStderrBuf *psb);
|
||||
void psb_set_prefix(ProxyStderrBuf *psb, const char *prefix);
|
||||
void log_proxy_stderr(
|
||||
Plug *plug, ProxyStderrBuf *psb, const void *vdata, size_t len);
|
||||
void log_proxy_stderr(Plug *plug, Socket *sock, ProxyStderrBuf *psb,
|
||||
const void *vdata, size_t len);
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
* The DeferredSocketOpener trait. This is a thing that some Socket
|
||||
|
@ -36,12 +36,13 @@ static void c_write(Raw *raw, const void *buf, size_t len)
|
||||
sk_set_frozen(raw->s, backlog > RAW_MAX_BACKLOG);
|
||||
}
|
||||
|
||||
static void raw_log(Plug *plug, PlugLogType type, SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code)
|
||||
static void raw_log(Plug *plug, Socket *s, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *error_msg, int error_code)
|
||||
{
|
||||
Raw *raw = container_of(plug, Raw, plug);
|
||||
backend_socket_log(raw->seat, raw->logctx, type, addr, port, error_msg,
|
||||
error_code, raw->conf, raw->socket_connected);
|
||||
backend_socket_log(raw->seat, raw->logctx, s, type, addr, port,
|
||||
error_msg, error_code, raw->conf,
|
||||
raw->socket_connected);
|
||||
if (type == PLUGLOG_CONNECT_SUCCESS) {
|
||||
raw->socket_connected = true;
|
||||
if (raw->ldisc)
|
||||
|
@ -45,11 +45,11 @@ static void c_write(Rlogin *rlogin, const void *buf, size_t len)
|
||||
sk_set_frozen(rlogin->s, backlog > RLOGIN_MAX_BACKLOG);
|
||||
}
|
||||
|
||||
static void rlogin_log(Plug *plug, PlugLogType type, SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code)
|
||||
static void rlogin_log(Plug *plug, Socket *s, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *error_msg, int error_code)
|
||||
{
|
||||
Rlogin *rlogin = container_of(plug, Rlogin, plug);
|
||||
backend_socket_log(rlogin->seat, rlogin->logctx, type, addr, port,
|
||||
backend_socket_log(rlogin->seat, rlogin->logctx, s, type, addr, port,
|
||||
error_msg, error_code,
|
||||
rlogin->conf, rlogin->socket_connected);
|
||||
if (type == PLUGLOG_CONNECT_SUCCESS) {
|
||||
|
@ -559,11 +559,11 @@ static void do_supdup_read(Supdup *supdup, const char *buf, size_t len)
|
||||
strbuf_free(outbuf);
|
||||
}
|
||||
|
||||
static void supdup_log(Plug *plug, PlugLogType type, SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code)
|
||||
static void supdup_log(Plug *plug, Socket *s, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *error_msg, int error_code)
|
||||
{
|
||||
Supdup *supdup = container_of(plug, Supdup, plug);
|
||||
backend_socket_log(supdup->seat, supdup->logctx, type, addr, port,
|
||||
backend_socket_log(supdup->seat, supdup->logctx, s, type, addr, port,
|
||||
error_msg, error_code,
|
||||
supdup->conf, supdup->socket_connected);
|
||||
if (type == PLUGLOG_CONNECT_SUCCESS) {
|
||||
|
@ -604,11 +604,11 @@ static void do_telnet_read(Telnet *telnet, const char *buf, size_t len)
|
||||
strbuf_free(outbuf);
|
||||
}
|
||||
|
||||
static void telnet_log(Plug *plug, PlugLogType type, SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code)
|
||||
static void telnet_log(Plug *plug, Socket *s, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *error_msg, int error_code)
|
||||
{
|
||||
Telnet *telnet = container_of(plug, Telnet, plug);
|
||||
backend_socket_log(telnet->seat, telnet->logctx, type, addr, port,
|
||||
backend_socket_log(telnet->seat, telnet->logctx, s, type, addr, port,
|
||||
error_msg, error_code, telnet->conf,
|
||||
telnet->socket_connected);
|
||||
if (type == PLUGLOG_CONNECT_SUCCESS) {
|
||||
|
@ -209,7 +209,8 @@ static void local_proxy_opener_coroutine(void *vctx)
|
||||
put_datapl(logmsg, PTRLEN_LITERAL("Starting local proxy command: "));
|
||||
put_c_string_literal(logmsg, ptrlen_from_asciz(censored_cmd));
|
||||
|
||||
plug_log(lp->plug, PLUGLOG_PROXY_MSG, NULL, 0, logmsg->s, 0);
|
||||
plug_log(lp->plug, lp->socket, PLUGLOG_PROXY_MSG, NULL, 0,
|
||||
logmsg->s, 0);
|
||||
strbuf_free(logmsg);
|
||||
sfree(censored_cmd);
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ static void proxy_activate(ProxySocket *ps)
|
||||
|
||||
proxy_negotiator_cleanup(ps);
|
||||
|
||||
plug_log(ps->plug, PLUGLOG_CONNECT_SUCCESS, NULL, 0, NULL, 0);
|
||||
plug_log(ps->plug, &ps->sock, PLUGLOG_CONNECT_SUCCESS, NULL, 0, NULL, 0);
|
||||
|
||||
/* we want to ignore new receive events until we have sent
|
||||
* all of our buffered receive data.
|
||||
@ -189,12 +189,13 @@ static const char *sk_proxy_socket_error (Socket *s)
|
||||
|
||||
/* basic proxy plug functions */
|
||||
|
||||
static void plug_proxy_log(Plug *plug, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *error_msg, int error_code)
|
||||
static void plug_proxy_log(Plug *plug, Socket *s, PlugLogType type,
|
||||
SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code)
|
||||
{
|
||||
ProxySocket *ps = container_of(plug, ProxySocket, plugimpl);
|
||||
|
||||
plug_log(ps->plug, type, addr, port, error_msg, error_code);
|
||||
plug_log(ps->plug, &ps->sock, type, addr, port, error_msg, error_code);
|
||||
}
|
||||
|
||||
static void plug_proxy_closing(Plug *p, PlugCloseType type,
|
||||
@ -597,7 +598,7 @@ Socket *new_connection(SockAddr *addr, const char *hostname,
|
||||
conf_get_str(conf, CONF_proxy_host),
|
||||
conf_get_int(conf, CONF_proxy_port),
|
||||
hostname, port);
|
||||
plug_log(plug, PLUGLOG_PROXY_MSG, NULL, 0, logmsg, 0);
|
||||
plug_log(plug, &ps->sock, PLUGLOG_PROXY_MSG, NULL, 0, logmsg, 0);
|
||||
sfree(logmsg);
|
||||
}
|
||||
|
||||
@ -605,7 +606,7 @@ Socket *new_connection(SockAddr *addr, const char *hostname,
|
||||
char *logmsg = dns_log_msg(conf_get_str(conf, CONF_proxy_host),
|
||||
conf_get_int(conf, CONF_addressfamily),
|
||||
"proxy");
|
||||
plug_log(plug, PLUGLOG_PROXY_MSG, NULL, 0, logmsg, 0);
|
||||
plug_log(plug, &ps->sock, PLUGLOG_PROXY_MSG, NULL, 0, logmsg, 0);
|
||||
sfree(logmsg);
|
||||
}
|
||||
|
||||
@ -626,7 +627,7 @@ Socket *new_connection(SockAddr *addr, const char *hostname,
|
||||
logmsg = dupprintf("Connecting to %s proxy at %s port %d",
|
||||
vt->type, addrbuf,
|
||||
conf_get_int(conf, CONF_proxy_port));
|
||||
plug_log(plug, PLUGLOG_PROXY_MSG, NULL, 0, logmsg, 0);
|
||||
plug_log(plug, &ps->sock, PLUGLOG_PROXY_MSG, NULL, 0, logmsg, 0);
|
||||
sfree(logmsg);
|
||||
}
|
||||
|
||||
|
@ -142,8 +142,8 @@ static const SocketVtable SshProxy_sock_vt = {
|
||||
static void sshproxy_eventlog(LogPolicy *lp, const char *event)
|
||||
{
|
||||
SshProxy *sp = container_of(lp, SshProxy, logpolicy);
|
||||
log_proxy_stderr(sp->plug, &sp->psb, event, strlen(event));
|
||||
log_proxy_stderr(sp->plug, &sp->psb, "\n", 1);
|
||||
log_proxy_stderr(sp->plug, &sp->sock, &sp->psb, event, strlen(event));
|
||||
log_proxy_stderr(sp->plug, &sp->sock, &sp->psb, "\n", 1);
|
||||
}
|
||||
|
||||
static int sshproxy_askappend(LogPolicy *lp, Filename *filename,
|
||||
@ -248,7 +248,8 @@ static void sshproxy_notify_session_started(Seat *seat)
|
||||
interactor_return_seat(sp->clientitr);
|
||||
sp->conn_established = true;
|
||||
|
||||
plug_log(sp->plug, PLUGLOG_CONNECT_SUCCESS, sp->addr, sp->port, NULL, 0);
|
||||
plug_log(sp->plug, &sp->sock, PLUGLOG_CONNECT_SUCCESS, sp->addr, sp->port,
|
||||
NULL, 0);
|
||||
}
|
||||
|
||||
static size_t sshproxy_output(Seat *seat, SeatOutputType type,
|
||||
@ -261,7 +262,7 @@ static size_t sshproxy_output(Seat *seat, SeatOutputType type,
|
||||
try_send_ssh_to_socket(sp);
|
||||
break;
|
||||
case SEAT_OUTPUT_STDERR:
|
||||
log_proxy_stderr(sp->plug, &sp->psb, data, len);
|
||||
log_proxy_stderr(sp->plug, &sp->sock, &sp->psb, data, len);
|
||||
break;
|
||||
}
|
||||
return bufchain_size(&sp->ssh_to_socket);
|
||||
@ -322,8 +323,8 @@ static void sshproxy_send_close(SshProxy *sp)
|
||||
interactor_return_seat(sp->clientitr);
|
||||
|
||||
if (!sp->conn_established)
|
||||
plug_log(sp->plug, PLUGLOG_CONNECT_FAILED, sp->addr, sp->port,
|
||||
sp->errmsg, 0);
|
||||
plug_log(sp->plug, &sp->sock, PLUGLOG_CONNECT_FAILED, sp->addr,
|
||||
sp->port, sp->errmsg, 0);
|
||||
|
||||
if (sp->errmsg)
|
||||
plug_closing_error(sp->plug, sp->errmsg);
|
||||
|
@ -339,7 +339,8 @@ static void proxy_telnet_process_queue(ProxyNegotiator *pn)
|
||||
put_datapl(logmsg, PTRLEN_LITERAL("Sending Telnet proxy command: "));
|
||||
put_c_string_literal(logmsg, ptrlen_from_asciz(censored_cmd));
|
||||
|
||||
plug_log(pn->ps->plug, PLUGLOG_PROXY_MSG, NULL, 0, logmsg->s, 0);
|
||||
plug_log(pn->ps->plug, &pn->ps->sock, PLUGLOG_PROXY_MSG, NULL, 0,
|
||||
logmsg->s, 0);
|
||||
strbuf_free(logmsg);
|
||||
sfree(censored_cmd);
|
||||
}
|
||||
|
10
psocks.c
10
psocks.c
@ -93,8 +93,9 @@ static const SshChannelVtable psocks_scvt = {
|
||||
/* all the rest are NULL */
|
||||
};
|
||||
|
||||
static void psocks_plug_log(Plug *p, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *error_msg, int error_code);
|
||||
static void psocks_plug_log(Plug *p, Socket *s, PlugLogType type,
|
||||
SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code);
|
||||
static void psocks_plug_closing(Plug *p, PlugCloseType, const char *error_msg);
|
||||
static void psocks_plug_receive(Plug *p, int urgent,
|
||||
const char *data, size_t len);
|
||||
@ -320,8 +321,9 @@ static void psocks_sc_unthrottle(SshChannel *sc, size_t bufsize)
|
||||
sk_set_frozen(conn->socket, false);
|
||||
}
|
||||
|
||||
static void psocks_plug_log(Plug *plug, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *error_msg, int error_code)
|
||||
static void psocks_plug_log(Plug *plug, Socket *s, PlugLogType type,
|
||||
SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code)
|
||||
{
|
||||
psocks_connection *conn = container_of(plug, psocks_connection, plug);
|
||||
char addrbuf[256];
|
||||
|
@ -96,13 +96,15 @@ static void free_portlistener_state(struct PortListener *pl)
|
||||
sfree(pl);
|
||||
}
|
||||
|
||||
static void pfd_log(Plug *plug, PlugLogType type, SockAddr *addr, int port,
|
||||
static void pfd_log(Plug *plug, Socket *s, PlugLogType type,
|
||||
SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code)
|
||||
{
|
||||
/* we have to dump these since we have no interface to logging.c */
|
||||
}
|
||||
|
||||
static void pfl_log(Plug *plug, PlugLogType type, SockAddr *addr, int port,
|
||||
static void pfl_log(Plug *plug, Socket *s, PlugLogType type,
|
||||
SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code)
|
||||
{
|
||||
/* we have to dump these since we have no interface to logging.c */
|
||||
|
@ -138,8 +138,9 @@ static const SeatVtable server_seat_vt = {
|
||||
.get_cursor_position = nullseat_get_cursor_position,
|
||||
};
|
||||
|
||||
static void server_socket_log(Plug *plug, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *error_msg, int error_code)
|
||||
static void server_socket_log(Plug *plug, Socket *s, PlugLogType type,
|
||||
SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code)
|
||||
{
|
||||
/* server *srv = container_of(plug, server, plug); */
|
||||
/* FIXME */
|
||||
|
@ -371,8 +371,8 @@ bool sesschan_run_subsystem(Channel *chan, ptrlen subsys)
|
||||
return false;
|
||||
}
|
||||
|
||||
static void fwd_log(Plug *plug, PlugLogType type, SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code)
|
||||
static void fwd_log(Plug *plug, Socket *s, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *error_msg, int error_code)
|
||||
{ /* don't expect any weirdnesses from a listening socket */ }
|
||||
static void fwd_closing(Plug *plug, PlugCloseType type, const char *error_msg)
|
||||
{ /* not here, either */ }
|
||||
|
@ -600,8 +600,9 @@ void ssh_sw_abort_deferred(Ssh *ssh, const char *fmt, ...)
|
||||
}
|
||||
}
|
||||
|
||||
static void ssh_socket_log(Plug *plug, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *error_msg, int error_code)
|
||||
static void ssh_socket_log(Plug *plug, Socket *s, PlugLogType type,
|
||||
SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code)
|
||||
{
|
||||
Ssh *ssh = container_of(plug, Ssh, plug);
|
||||
|
||||
@ -615,7 +616,7 @@ static void ssh_socket_log(Plug *plug, PlugLogType type, SockAddr *addr,
|
||||
*/
|
||||
|
||||
if (!ssh->attempting_connshare)
|
||||
backend_socket_log(ssh->seat, ssh->logctx, type, addr, port,
|
||||
backend_socket_log(ssh->seat, ssh->logctx, s, type, addr, port,
|
||||
error_msg, error_code, ssh->conf,
|
||||
ssh->session_started);
|
||||
}
|
||||
|
@ -318,8 +318,9 @@ static bool ssh2_userauth_signflags(struct ssh2_userauth_state *s,
|
||||
return true;
|
||||
}
|
||||
|
||||
static void authplugin_plug_log(Plug *plug, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *err_msg, int err_code)
|
||||
static void authplugin_plug_log(Plug *plug, Socket *sock, PlugLogType type,
|
||||
SockAddr *addr, int port,
|
||||
const char *err_msg, int err_code)
|
||||
{
|
||||
struct ssh2_userauth_state *s = container_of(
|
||||
plug, struct ssh2_userauth_state, authplugin_plug);
|
||||
|
@ -277,8 +277,8 @@ static char *x11_verify(unsigned long peer_ip, int peer_port,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void x11_log(Plug *p, PlugLogType type, SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code)
|
||||
static void x11_log(Plug *p, Socket *s, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *error_msg, int error_code)
|
||||
{
|
||||
/* We have no interface to the logging module here, so we drop these. */
|
||||
}
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
#include "putty.h"
|
||||
|
||||
void nullplug_log(Plug *plug, PlugLogType type, SockAddr *addr,
|
||||
void nullplug_log(Plug *plug, Socket *s, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *err_msg, int err_code)
|
||||
{
|
||||
}
|
||||
|
@ -306,7 +306,7 @@ static void fdsocket_select_result_input_error(int fd, int event)
|
||||
|
||||
retd = read(fd, buf, sizeof(buf));
|
||||
if (retd > 0) {
|
||||
log_proxy_stderr(fds->plug, &fds->psb, buf, retd);
|
||||
log_proxy_stderr(fds->plug, &fds->sock, &fds->psb, buf, retd);
|
||||
} else {
|
||||
del234(fdsocket_by_inerrfd, fds);
|
||||
uxsel_del(fds->inerrfd);
|
||||
@ -334,8 +334,8 @@ static const SocketVtable FdSocket_sockvt = {
|
||||
static void fdsocket_connect_success_callback(void *ctx)
|
||||
{
|
||||
FdSocket *fds = (FdSocket *)ctx;
|
||||
plug_log(fds->plug, PLUGLOG_CONNECT_SUCCESS, fds->addr, fds->port,
|
||||
NULL, 0);
|
||||
plug_log(fds->plug, &fds->sock, PLUGLOG_CONNECT_SUCCESS,
|
||||
fds->addr, fds->port, NULL, 0);
|
||||
}
|
||||
|
||||
void setup_fd_socket(Socket *s, int infd, int outfd, int inerrfd)
|
||||
|
@ -566,7 +566,7 @@ static int try_connect(NetSocket *sock)
|
||||
{
|
||||
SockAddr thisaddr = sk_extractaddr_tmp(
|
||||
sock->addr, &sock->step);
|
||||
plug_log(sock->plug, PLUGLOG_CONNECT_TRYING,
|
||||
plug_log(sock->plug, &sock->sock, PLUGLOG_CONNECT_TRYING,
|
||||
&thisaddr, sock->port, NULL, 0);
|
||||
}
|
||||
|
||||
@ -725,7 +725,7 @@ static int try_connect(NetSocket *sock)
|
||||
sock->writable = true;
|
||||
|
||||
SockAddr thisaddr = sk_extractaddr_tmp(sock->addr, &sock->step);
|
||||
plug_log(sock->plug, PLUGLOG_CONNECT_SUCCESS,
|
||||
plug_log(sock->plug, &sock->sock, PLUGLOG_CONNECT_SUCCESS,
|
||||
&thisaddr, sock->port, NULL, 0);
|
||||
}
|
||||
|
||||
@ -741,7 +741,7 @@ static int try_connect(NetSocket *sock)
|
||||
if (err) {
|
||||
SockAddr thisaddr = sk_extractaddr_tmp(
|
||||
sock->addr, &sock->step);
|
||||
plug_log(sock->plug, PLUGLOG_CONNECT_FAILED,
|
||||
plug_log(sock->plug, &sock->sock, PLUGLOG_CONNECT_FAILED,
|
||||
&thisaddr, sock->port, strerror(err), err);
|
||||
}
|
||||
return err;
|
||||
@ -1425,7 +1425,7 @@ static void net_select_result(int fd, int event)
|
||||
assert(s->addr);
|
||||
|
||||
thisaddr = sk_extractaddr_tmp(s->addr, &s->step);
|
||||
plug_log(s->plug, PLUGLOG_CONNECT_FAILED,
|
||||
plug_log(s->plug, &s->sock, PLUGLOG_CONNECT_FAILED,
|
||||
&thisaddr, s->port, errmsg, err);
|
||||
|
||||
while (err && s->addr && sk_nextaddr(s->addr, &s->step)) {
|
||||
@ -1442,7 +1442,7 @@ static void net_select_result(int fd, int event)
|
||||
* The connection attempt succeeded.
|
||||
*/
|
||||
SockAddr thisaddr = sk_extractaddr_tmp(s->addr, &s->step);
|
||||
plug_log(s->plug, PLUGLOG_CONNECT_SUCCESS,
|
||||
plug_log(s->plug, &s->sock, PLUGLOG_CONNECT_SUCCESS,
|
||||
&thisaddr, s->port, NULL, 0);
|
||||
}
|
||||
}
|
||||
|
@ -243,8 +243,8 @@ static bool time_to_die = false;
|
||||
* except that x11_closing has to signal back to the main loop that
|
||||
* it's time to terminate.
|
||||
*/
|
||||
static void x11_log(Plug *p, PlugLogType type, SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code) {}
|
||||
static void x11_log(Plug *p, Socket *s, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *error_msg, int error_code) {}
|
||||
static void x11_receive(Plug *plug, int urgent, const char *data, size_t len) {}
|
||||
static void x11_sent(Plug *plug, size_t bufsize) {}
|
||||
static void x11_closing(Plug *plug, PlugCloseType type, const char *error_msg)
|
||||
|
@ -265,8 +265,8 @@ static Plug *server_conn_plug(
|
||||
&inst->logpolicy, &unix_live_sftpserver_vt);
|
||||
}
|
||||
|
||||
static void server_log(Plug *plug, PlugLogType type, SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code)
|
||||
static void server_log(Plug *plug, Socket *s, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *error_msg, int error_code)
|
||||
{
|
||||
log_to_stderr(-1, error_msg);
|
||||
}
|
||||
|
@ -478,8 +478,8 @@ static Plug *server_conn_plug(
|
||||
&inst->ap, &inst->logpolicy, &unix_live_sftpserver_vt);
|
||||
}
|
||||
|
||||
static void server_log(Plug *plug, PlugLogType type, SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code)
|
||||
static void server_log(Plug *plug, Socket *s, PlugLogType type, SockAddr *addr,
|
||||
int port, const char *error_msg, int error_code)
|
||||
{
|
||||
log_to_stderr((unsigned)-1, error_msg);
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include "putty.h"
|
||||
#include "network.h"
|
||||
|
||||
void backend_socket_log(Seat *seat, LogContext *logctx,
|
||||
void backend_socket_log(Seat *seat, LogContext *logctx, Socket *sock,
|
||||
PlugLogType type, SockAddr *addr, int port,
|
||||
const char *error_msg, int error_code, Conf *conf,
|
||||
bool session_started)
|
||||
|
@ -15,7 +15,7 @@ void psb_set_prefix(ProxyStderrBuf *psb, const char *prefix)
|
||||
psb->prefix = prefix;
|
||||
}
|
||||
|
||||
void log_proxy_stderr(Plug *plug, ProxyStderrBuf *psb,
|
||||
void log_proxy_stderr(Plug *plug, Socket *sock, ProxyStderrBuf *psb,
|
||||
const void *vdata, size_t len)
|
||||
{
|
||||
const char *data = (const char *)vdata;
|
||||
@ -65,7 +65,7 @@ void log_proxy_stderr(Plug *plug, ProxyStderrBuf *psb,
|
||||
endpos--;
|
||||
char *msg = dupprintf(
|
||||
"%s: %.*s", psb->prefix, (int)(endpos - pos), psb->buf + pos);
|
||||
plug_log(plug, PLUGLOG_PROXY_MSG, NULL, 0, msg, 0);
|
||||
plug_log(plug, sock, PLUGLOG_PROXY_MSG, NULL, 0, msg, 0);
|
||||
sfree(msg);
|
||||
|
||||
pos = nlpos - psb->buf + 1;
|
||||
@ -81,7 +81,7 @@ void log_proxy_stderr(Plug *plug, ProxyStderrBuf *psb,
|
||||
char *msg = dupprintf(
|
||||
"%s (partial line): %.*s", psb->prefix, (int)psb->size,
|
||||
psb->buf);
|
||||
plug_log(plug, PLUGLOG_PROXY_MSG, NULL, 0, msg, 0);
|
||||
plug_log(plug, sock, PLUGLOG_PROXY_MSG, NULL, 0, msg, 0);
|
||||
sfree(msg);
|
||||
|
||||
pos = psb->size = 0;
|
||||
|
@ -107,7 +107,7 @@ static size_t handle_stderr(
|
||||
HandleSocket *hs = (HandleSocket *)handle_get_privdata(h);
|
||||
|
||||
if (!err && len > 0)
|
||||
log_proxy_stderr(hs->plug, &hs->psb, data, len);
|
||||
log_proxy_stderr(hs->plug, &hs->sock, &hs->psb, data, len);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -354,7 +354,8 @@ static const SocketVtable HandleSocket_sockvt = {
|
||||
static void sk_handle_connect_success_callback(void *ctx)
|
||||
{
|
||||
HandleSocket *hs = (HandleSocket *)ctx;
|
||||
plug_log(hs->plug, PLUGLOG_CONNECT_SUCCESS, hs->addr, hs->port, NULL, 0);
|
||||
plug_log(hs->plug, &hs->sock, PLUGLOG_CONNECT_SUCCESS, hs->addr, hs->port,
|
||||
NULL, 0);
|
||||
}
|
||||
|
||||
Socket *make_handle_socket(HANDLE send_H, HANDLE recv_H, HANDLE stderr_H,
|
||||
|
@ -176,7 +176,7 @@ static void named_pipe_accept_loop(NamedPipeServerSocket *ps,
|
||||
|
||||
errmsg = dupprintf("Error while listening to named pipe: %s",
|
||||
win_strerror(error));
|
||||
plug_log(ps->plug, 1, sk_namedpipe_addr(ps->pipename), 0,
|
||||
plug_log(ps->plug, &ps->sock, 1, sk_namedpipe_addr(ps->pipename), 0,
|
||||
errmsg, error);
|
||||
sfree(errmsg);
|
||||
break;
|
||||
|
@ -904,7 +904,7 @@ static DWORD try_connect(NetSocket *sock)
|
||||
{
|
||||
SockAddr thisaddr = sk_extractaddr_tmp(
|
||||
sock->addr, &sock->step);
|
||||
plug_log(sock->plug, PLUGLOG_CONNECT_TRYING,
|
||||
plug_log(sock->plug, &sock->sock, PLUGLOG_CONNECT_TRYING,
|
||||
&thisaddr, sock->port, NULL, 0);
|
||||
}
|
||||
|
||||
@ -1065,7 +1065,7 @@ static DWORD try_connect(NetSocket *sock)
|
||||
*/
|
||||
sock->writable = true;
|
||||
SockAddr thisaddr = sk_extractaddr_tmp(sock->addr, &sock->step);
|
||||
plug_log(sock->plug, PLUGLOG_CONNECT_SUCCESS,
|
||||
plug_log(sock->plug, &sock->sock, PLUGLOG_CONNECT_SUCCESS,
|
||||
&thisaddr, sock->port, NULL, 0);
|
||||
}
|
||||
|
||||
@ -1081,7 +1081,7 @@ static DWORD try_connect(NetSocket *sock)
|
||||
if (err) {
|
||||
SockAddr thisaddr = sk_extractaddr_tmp(
|
||||
sock->addr, &sock->step);
|
||||
plug_log(sock->plug, PLUGLOG_CONNECT_FAILED,
|
||||
plug_log(sock->plug, &sock->sock, PLUGLOG_CONNECT_FAILED,
|
||||
&thisaddr, sock->port, sock->error, err);
|
||||
}
|
||||
return err;
|
||||
@ -1578,8 +1578,8 @@ void select_result(WPARAM wParam, LPARAM lParam)
|
||||
if (s->addr) {
|
||||
SockAddr thisaddr = sk_extractaddr_tmp(
|
||||
s->addr, &s->step);
|
||||
plug_log(s->plug, PLUGLOG_CONNECT_FAILED, &thisaddr, s->port,
|
||||
winsock_error_string(err), err);
|
||||
plug_log(s->plug, &s->sock, PLUGLOG_CONNECT_FAILED, &thisaddr,
|
||||
s->port, winsock_error_string(err), err);
|
||||
while (err && s->addr && sk_nextaddr(s->addr, &s->step)) {
|
||||
err = try_connect(s);
|
||||
}
|
||||
@ -1604,7 +1604,7 @@ void select_result(WPARAM wParam, LPARAM lParam)
|
||||
if (s->addr) {
|
||||
SockAddr thisaddr = sk_extractaddr_tmp(
|
||||
s->addr, &s->step);
|
||||
plug_log(s->plug, PLUGLOG_CONNECT_SUCCESS,
|
||||
plug_log(s->plug, &s->sock, PLUGLOG_CONNECT_SUCCESS,
|
||||
&thisaddr, s->port, NULL, 0);
|
||||
|
||||
sk_addr_free(s->addr);
|
||||
|
Loading…
x
Reference in New Issue
Block a user