summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source3/smbd/globals.h4
-rw-r--r--source3/smbd/process.c22
-rw-r--r--source3/smbd/reply.c9
3 files changed, 15 insertions, 20 deletions
diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h
index 079976eefb..f78ce45827 100644
--- a/source3/smbd/globals.h
+++ b/source3/smbd/globals.h
@@ -113,8 +113,8 @@ struct smbd_smb2_request;
DATA_BLOB negprot_spnego(TALLOC_CTX *ctx, struct smbXsrv_connection *xconn);
-void smbd_lock_socket(struct smbd_server_connection *sconn);
-void smbd_unlock_socket(struct smbd_server_connection *sconn);
+void smbd_lock_socket(struct smbXsrv_connection *xconn);
+void smbd_unlock_socket(struct smbXsrv_connection *xconn);
NTSTATUS smbd_do_locking(struct smb_request *req,
files_struct *fsp,
diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index 780a67aee5..7148462d71 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -140,10 +140,8 @@ static bool smbd_lock_socket_internal(struct smbXsrv_connection *xconn)
return true;
}
-void smbd_lock_socket(struct smbd_server_connection *sconn)
+void smbd_lock_socket(struct smbXsrv_connection *xconn)
{
- struct smbXsrv_connection *xconn = sconn->conn;
-
if (!smbd_lock_socket_internal(xconn)) {
exit_server_cleanly("failed to lock socket");
}
@@ -200,10 +198,8 @@ static bool smbd_unlock_socket_internal(struct smbXsrv_connection *xconn)
return true;
}
-void smbd_unlock_socket(struct smbd_server_connection *sconn)
+void smbd_unlock_socket(struct smbXsrv_connection *xconn)
{
- struct smbXsrv_connection *xconn = sconn->conn;
-
if (!smbd_unlock_socket_internal(xconn)) {
exit_server_cleanly("failed to unlock socket");
}
@@ -232,7 +228,7 @@ bool srv_send_smb(struct smbd_server_connection *sconn, char *buffer,
return true;
}
- smbd_lock_socket(sconn);
+ smbd_lock_socket(xconn);
if (do_signing) {
/* Sign the outgoing packet if required. */
@@ -274,7 +270,7 @@ bool srv_send_smb(struct smbd_server_connection *sconn, char *buffer,
out:
SMB_PERFCOUNT_END(pcd);
- smbd_unlock_socket(sconn);
+ smbd_unlock_socket(xconn);
return (ret > 0);
}
@@ -2477,11 +2473,11 @@ static void smbd_server_connection_read_handler(
from_client = (xconn->transport.sock == fd);
if (async_echo && from_client) {
- smbd_lock_socket(sconn);
+ smbd_lock_socket(xconn);
if (!fd_is_readable(fd)) {
DEBUG(10,("the echo listener was faster\n"));
- smbd_unlock_socket(sconn);
+ smbd_unlock_socket(xconn);
return;
}
}
@@ -2496,7 +2492,7 @@ static void smbd_server_connection_read_handler(
!from_client /* trusted channel */);
if (async_echo && from_client) {
- smbd_unlock_socket(sconn);
+ smbd_unlock_socket(xconn);
}
if (NT_STATUS_EQUAL(status, NT_STATUS_RETRY)) {
@@ -2726,9 +2722,9 @@ static bool keepalive_fn(const struct timeval *now, void *private_data)
return false;
}
- smbd_lock_socket(sconn);
+ smbd_lock_socket(xconn);
ret = send_keepalive(xconn->transport.sock);
- smbd_unlock_socket(sconn);
+ smbd_unlock_socket(xconn);
if (!ret) {
int saved_errno = errno;
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index a92e3a7ad2..6c664149b1 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -3166,12 +3166,11 @@ ssize_t sendfile_short_send(struct smbXsrv_connection *xconn,
static void reply_readbraw_error(struct smbXsrv_connection *xconn)
{
- struct smbd_server_connection *sconn = xconn->sconn;
char header[4];
SIVAL(header,0,0);
- smbd_lock_socket(sconn);
+ smbd_lock_socket(xconn);
if (write_data(xconn->transport.sock,header,4) != 4) {
int saved_errno = errno;
/*
@@ -3186,7 +3185,7 @@ static void reply_readbraw_error(struct smbXsrv_connection *xconn)
fail_readraw();
}
- smbd_unlock_socket(sconn);
+ smbd_unlock_socket(xconn);
}
/****************************************************************************
@@ -4073,9 +4072,9 @@ void reply_read_and_X(struct smb_request *req)
/* NT_STATUS_RETRY - fall back to sync read. */
}
- smbd_lock_socket(req->sconn);
+ smbd_lock_socket(req->xconn);
send_file_readX(conn, req, fsp, startpos, smb_maxcnt);
- smbd_unlock_socket(req->sconn);
+ smbd_unlock_socket(req->xconn);
out:
END_PROFILE(SMBreadX);