diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h index 70148fb76ae..3b9882d2117 100644 --- a/source3/smbd/globals.h +++ b/source3/smbd/globals.h @@ -389,6 +389,8 @@ struct smbXsrv_connection { struct smbXsrv_open_table *open_table; }; +const char *smbXsrv_connection_dbg(const struct smbXsrv_connection *xconn); + NTSTATUS smbXsrv_version_global_init(const struct server_id *server_id); uint32_t smbXsrv_version_global_current(void); diff --git a/source3/smbd/process.c b/source3/smbd/process.c index 127bbb3e390..d1074e21d9f 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -3485,6 +3485,29 @@ static void smbd_tevent_trace_callback(enum tevent_trace_point point, } } +/** + * Create a debug string for the connection + * + * This is allocated to talloc_tos() or a string constant + * in certain corner cases. The returned string should + * hence not be free'd directly but only via the talloc stack. + */ +const char *smbXsrv_connection_dbg(const struct smbXsrv_connection *xconn) +{ + const char *ret; + + /* + * TODO: this can be improved later + * maybe including the client guid or more + */ + ret = tsocket_address_string(xconn->remote_address, talloc_tos()); + if (ret == NULL) { + return ""; + } + + return ret; +} + /**************************************************************************** Process commands from the client ****************************************************************************/