From 79ae828819193dd9ed5e060f78a88752e30bd1c3 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Wed, 22 Sep 2004 23:50:28 +0000 Subject: r2542: I really don't like the 'substitute' code, and I particularly don't like it in the mainline code (outside the smb.conf magic). We will need to have a more useful 'helper' routine for this, but for now we at least get a reliable IP address. Also remove the unused 'socket' structure in the smb server - it seems to have been replaced by the socket library. Andrew Bartlett (This used to be commit d8fd19a2020da6cce691c0db2b00f42e31d672cc) --- source4/smb_server/sesssetup.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'source4/smb_server/sesssetup.c') diff --git a/source4/smb_server/sesssetup.c b/source4/smb_server/sesssetup.c index 88777d9673..f9b2eee1b2 100644 --- a/source4/smb_server/sesssetup.c +++ b/source4/smb_server/sesssetup.c @@ -45,14 +45,23 @@ static NTSTATUS sesssetup_old(struct smbsrv_request *req, union smb_sesssetup *s struct auth_serversupplied_info *server_info = NULL; struct auth_session_info *session_info; + TALLOC_CTX *mem_ctx = talloc_init("NT1 session setup"); + char *remote_machine; + if (!mem_ctx) { + return NT_STATUS_NO_MEMORY; + } + if (!req->smb_conn->negotiate.done_sesssetup) { req->smb_conn->negotiate.max_send = sess->old.in.bufsize; } - + + remote_machine = socket_get_peer_addr(req->smb_conn->connection->socket, mem_ctx); status = make_user_info_for_reply_enc(&user_info, sess->old.in.user, sess->old.in.domain, + remote_machine, sess->old.in.password, data_blob(NULL, 0)); + talloc_free(mem_ctx); if (!NT_STATUS_IS_OK(status)) { return NT_STATUS_ACCESS_DENIED; } @@ -122,10 +131,18 @@ static NTSTATUS sesssetup_nt1(struct smbsrv_request *req, union smb_sesssetup *s free_auth_context(&auth_context); } else { + TALLOC_CTX *mem_ctx = talloc_init("NT1 session setup"); + char *remote_machine; + if (!mem_ctx) { + return NT_STATUS_NO_MEMORY; + } + remote_machine = socket_get_peer_addr(req->smb_conn->connection->socket, mem_ctx); status = make_user_info_for_reply_enc(&user_info, sess->nt1.in.user, sess->nt1.in.domain, + remote_machine, sess->nt1.in.password1, sess->nt1.in.password2); + talloc_free(mem_ctx); if (!NT_STATUS_IS_OK(status)) { return NT_STATUS_ACCESS_DENIED; } -- cgit