summaryrefslogtreecommitdiff
path: root/source4/smb_server/smb_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/smb_server/smb_server.c')
-rw-r--r--source4/smb_server/smb_server.c88
1 files changed, 44 insertions, 44 deletions
diff --git a/source4/smb_server/smb_server.c b/source4/smb_server/smb_server.c
index b32cf5b7af..16d1d774c0 100644
--- a/source4/smb_server/smb_server.c
+++ b/source4/smb_server/smb_server.c
@@ -29,7 +29,7 @@ BOOL req_send_oplock_break(struct smbsrv_tcon *tcon, uint16_t fnum, uint8_t leve
{
struct smbsrv_request *req;
- req = init_smb_request(tcon->smb_ctx);
+ req = init_smb_request(tcon->smb_conn);
req_setup_reply(req, 8, 0);
@@ -57,20 +57,20 @@ BOOL req_send_oplock_break(struct smbsrv_tcon *tcon, uint16_t fnum, uint8_t leve
/****************************************************************************
receive a SMB request from the wire, forming a request_context from the result
****************************************************************************/
-static struct smbsrv_request *receive_smb_request(struct smbsrv_context *smb_ctx)
+static struct smbsrv_request *receive_smb_request(struct smbsrv_connection *smb_conn)
{
ssize_t len, len2;
char header[4];
struct smbsrv_request *req;
- len = read_data(smb_ctx->socket.fd, header, 4);
+ len = read_data(smb_conn->socket.fd, header, 4);
if (len != 4) {
return NULL;
}
len = smb_len(header);
- req = init_smb_request(smb_ctx);
+ req = init_smb_request(smb_conn);
GetTimeOfDay(&req->request_time);
req->chained_fnum = -1;
@@ -81,7 +81,7 @@ static struct smbsrv_request *receive_smb_request(struct smbsrv_context *smb_ctx
/* fill in the already received header */
memcpy(req->in.buffer, header, 4);
- len2 = read_data(smb_ctx->socket.fd, req->in.buffer + NBT_HDR_SIZE, len);
+ len2 = read_data(smb_conn->socket.fd, req->in.buffer + NBT_HDR_SIZE, len);
if (len2 != len) {
return NULL;
}
@@ -122,7 +122,7 @@ static void setup_user_context(struct smbsrv_request *req)
user_ctx = talloc(req->mem_ctx, sizeof(*user_ctx));
user_ctx->vuid = SVAL(req->in.hdr, HDR_UID);
- user_ctx->vuser = get_valid_user_struct(req->smb_ctx, user_ctx->vuid);
+ user_ctx->vuser = get_valid_user_struct(req->smb_conn, user_ctx->vuid);
req->user_ctx = user_ctx;
}
@@ -437,7 +437,7 @@ static void switch_message(int type, struct smbsrv_request *req)
{
int flags;
uint16_t session_tag;
- struct smbsrv_context *smb_ctx = req->smb_ctx;
+ struct smbsrv_connection *smb_conn = req->smb_conn;
type &= 0xff;
@@ -456,7 +456,7 @@ static void switch_message(int type, struct smbsrv_request *req)
UID_FIELD_INVALID :
SVAL(req->in.hdr,HDR_UID);
- req->tcon = conn_find(smb_ctx, SVAL(req->in.hdr,HDR_TID));
+ req->tcon = conn_find(smb_conn, SVAL(req->in.hdr,HDR_TID));
/* setup the user context for this request */
setup_user_context(req);
@@ -467,7 +467,7 @@ static void switch_message(int type, struct smbsrv_request *req)
if (req->user_ctx) {
req->user_ctx->vuid = session_tag;
}
- DEBUG(3,("switch message %s (task_id %d)\n",smb_fn_name(type), smb_ctx->model_ops->get_id(req)));
+ DEBUG(3,("switch message %s (task_id %d)\n",smb_fn_name(type), smb_conn->model_ops->get_id(req)));
/* does this protocol need to be run as root? */
if (!(flags & AS_USER)) {
@@ -562,19 +562,19 @@ static void construct_reply(struct smbsrv_request *req)
if (memcmp(req->in.hdr,"\377SMB",4) != 0) {
DEBUG(2,("Non-SMB packet of length %d. Terminating connection\n",
req->in.size));
- exit_server(req->smb_ctx, "Non-SMB packet");
+ exit_server(req->smb_conn, "Non-SMB packet");
return;
}
if (NBT_HDR_SIZE + MIN_SMB_SIZE + 2*req->in.wct > req->in.size) {
DEBUG(2,("Invalid SMB word count %d\n", req->in.wct));
- exit_server(req->smb_ctx, "Invalid SMB packet");
+ exit_server(req->smb_conn, "Invalid SMB packet");
return;
}
if (NBT_HDR_SIZE + MIN_SMB_SIZE + 2*req->in.wct + req->in.data_size > req->in.size) {
DEBUG(2,("Invalid SMB buffer length count %d\n", req->in.data_size));
- exit_server(req->smb_ctx, "Invalid SMB packet");
+ exit_server(req->smb_conn, "Invalid SMB packet");
return;
}
@@ -667,22 +667,22 @@ error:
/*
close the socket and shutdown a server_context
*/
-void server_terminate(struct smbsrv_context *smb_ctx)
+void server_terminate(struct smbsrv_connection *smb_conn)
{
- close(smb_ctx->socket.fd);
- event_remove_fd_all(smb_ctx->events, smb_ctx->socket.fd);
+ close(smb_conn->socket.fd);
+ event_remove_fd_all(smb_conn->events, smb_conn->socket.fd);
- conn_close_all(smb_ctx);
+ conn_close_all(smb_conn);
- talloc_destroy(smb_ctx->mem_ctx);
+ talloc_destroy(smb_conn->mem_ctx);
}
/*
called on a fatal error that should cause this server to terminate
*/
-void exit_server(struct smbsrv_context *smb_ctx, const char *reason)
+void exit_server(struct smbsrv_connection *smb_conn, const char *reason)
{
- smb_ctx->model_ops->terminate_connection(smb_ctx, reason);
+ smb_conn->model_ops->terminate_connection(smb_conn, reason);
}
/*
@@ -783,11 +783,11 @@ void smbd_read_handler(struct event_context *ev, struct fd_event *fde,
time_t t, uint16_t flags)
{
struct smbsrv_request *req;
- struct smbsrv_context *smb_ctx = fde->private;
+ struct smbsrv_connection *smb_conn = fde->private;
- req = receive_smb_request(smb_ctx);
+ req = receive_smb_request(smb_conn);
if (!req) {
- smb_ctx->model_ops->terminate_connection(smb_ctx, "receive error");
+ smb_conn->model_ops->terminate_connection(smb_conn, "receive error");
return;
}
@@ -804,13 +804,13 @@ void smbd_read_handler(struct event_context *ev, struct fd_event *fde,
new messages from clients are still processed while they are
performing long operations
*/
-void smbd_process_async(struct smbsrv_context *smb_ctx)
+void smbd_process_async(struct smbsrv_connection *smb_conn)
{
struct smbsrv_request *req;
- req = receive_smb_request(smb_ctx);
+ req = receive_smb_request(smb_conn);
if (!req) {
- smb_ctx->model_ops->terminate_connection(smb_ctx, "receive error");
+ smb_conn->model_ops->terminate_connection(smb_conn, "receive error");
return;
}
@@ -825,7 +825,7 @@ void smbd_process_async(struct smbsrv_context *smb_ctx)
void init_smbsession(struct event_context *ev, struct model_ops *model_ops, int fd,
void (*read_handler)(struct event_context *, struct fd_event *, time_t, uint16_t))
{
- struct smbsrv_context *smb_ctx;
+ struct smbsrv_connection *smb_conn;
TALLOC_CTX *mem_ctx;
struct fd_event fde;
char *socket_addr;
@@ -835,48 +835,48 @@ void init_smbsession(struct event_context *ev, struct model_ops *model_ops, int
mem_ctx = talloc_init("server_context");
- smb_ctx = talloc_p(mem_ctx, struct smbsrv_context);
- if (!smb_ctx) return;
+ smb_conn = talloc_p(mem_ctx, struct smbsrv_connection);
+ if (!smb_conn) return;
- ZERO_STRUCTP(smb_ctx);
+ ZERO_STRUCTP(smb_conn);
- smb_ctx->mem_ctx = mem_ctx;
- smb_ctx->socket.fd = fd;
- smb_ctx->pid = getpid();
+ smb_conn->mem_ctx = mem_ctx;
+ smb_conn->socket.fd = fd;
+ smb_conn->pid = getpid();
- sub_set_context(&smb_ctx->substitute);
+ sub_set_context(&smb_conn->substitute);
/* set an initial client name based on its IP address. This will be replaced with
the netbios name later if it gives us one */
- socket_addr = get_socket_addr(smb_ctx->mem_ctx, fd);
+ socket_addr = get_socket_addr(smb_conn->mem_ctx, fd);
sub_set_remote_machine(socket_addr);
- smb_ctx->socket.client_addr = socket_addr;
+ smb_conn->socket.client_addr = socket_addr;
/* now initialise a few default values associated with this smb socket */
- smb_ctx->negotiate.max_send = 0xFFFF;
+ smb_conn->negotiate.max_send = 0xFFFF;
/* this is the size that w2k uses, and it appears to be important for
good performance */
- smb_ctx->negotiate.max_recv = lp_max_xmit();
+ smb_conn->negotiate.max_recv = lp_max_xmit();
- smb_ctx->negotiate.zone_offset = get_time_zone(time(NULL));
+ smb_conn->negotiate.zone_offset = get_time_zone(time(NULL));
- smb_ctx->users.next_vuid = VUID_OFFSET;
+ smb_conn->users.next_vuid = VUID_OFFSET;
- smb_ctx->events = ev;
- smb_ctx->model_ops = model_ops;
+ smb_conn->events = ev;
+ smb_conn->model_ops = model_ops;
- conn_init(smb_ctx);
+ conn_init(smb_conn);
/* setup a event handler for this socket. We are initially
only interested in reading from the socket */
fde.fd = fd;
fde.handler = read_handler;
- fde.private = smb_ctx;
+ fde.private = smb_conn;
fde.flags = EVENT_FD_READ;
event_add_fd(ev, &fde);
/* setup the DCERPC server subsystem */
- dcesrv_init_context(&smb_ctx->dcesrv);
+ dcesrv_init_context(&smb_conn->dcesrv);
}