summaryrefslogtreecommitdiff
path: root/source3/smbd/process.c
AgeCommit message (Collapse)AuthorFilesLines
2009-07-17Move the initialization of smbd_server_conn from smbd/process,Jeremy Allison1-5/+0
after the accept and fork, to smbd_init_globals(), so it's done immediately on server startup. This is needed as some messages are sent to all active smbd processes (including the master listening daemon). If it gets a message that forces it to scan it's current connections (ie. conn_find()) then it discovers that sconn->smb1.tcons.Connections dereferences null (as sconn == NULL in the parent) and crashes. Yes, I could fix all cases where sconn is used and explicitly check for NULL but this fix is easier. It means that the smbd_event_context() is initialized in the master daemon and then re-initialized after fork, but that should be being done correctly in every fork call anyway. Without this change the previous fix 6a9e0039100b57f9626e87defec6720c476b9789 still panics in the reproducible test case for bug 6564, as this is one case where such a message (MSG_SMB_CONF_UPDATED) is sent to the parent. Metze please check. This change passes valgrind. Jeremy.
2009-07-14Revert this commit :Jeremy Allison1-56/+2
s3: Make smbd aware of permission change of usershare. Since usershare are relatively volatile and non-previledge users must disconnect from smbd and reconnect to it to make share permission in effect. For now. This is a feature request and I think we need to design it a little differently so as not to touch core change_to_user() code. Jeremy.
2009-07-15s3: Make smbd aware of permission change of usershare. Since usershare are ↵Bo Yang1-2/+56
relatively volatile and non-previledge users must disconnect from smbd and reconnect to it to make share permission in effect.
2009-06-22s3: forward MSG_DEBUG from smbd parent to all childrenAravind Srinivasan1-0/+9
Before 3.3, an smbcontrol debug message sent to the target "smbd" would actually be sent to all running processes including nmbd and winbindd. This behavior was changed in 3.3 so that the "smbd" target would only send a message to the process found in smbd.pid, while the "all" target would send a message to all processes. The ability to set the debug level of all processes within a single daemon, without specifying each pid is quite useful. This was implemented in winbindd in 065760ed. This patch does the same thing for smbd. Upon receiving a MSG_DEBUG the parent smbd will rebroadcast it to all of its children. The printing process has been added to the list of smbd child processes, and we now always track the number of smbd children regardless of the "max smbd processes" setting.
2009-06-03s3:smbd: move tcon specific globals to struct smbd_server_connectionStefan Metzmacher1-3/+7
metze
2009-06-03s3:smbd: move more session specific globals to struct smbd_server_connectionStefan Metzmacher1-1/+12
metze
2009-06-03s3:smbd: move some session specific globals to struct smbd_server_connectionStefan Metzmacher1-2/+7
metze
2009-06-03s3:smbd: move already_got_session to struct smbd_server_connectionStefan Metzmacher1-0/+2
metze
2009-06-03s3:smbd: move max_recv to struct smbd_server_connectionStefan Metzmacher1-1/+1
metze
2009-06-03s3:smbd: allow SMB2 only if we don't use security = shareStefan Metzmacher1-1/+2
metze
2009-05-26s3:smbd: move SMB1 specific stuff into a substructure of smbd_server_connectionStefan Metzmacher1-9/+9
metze
2009-05-20s3:smbd: add infrastructure for SMB2 supportStefan Metzmacher1-0/+12
This is disabled by default and activated by "max protocol = SMB2". metze
2009-05-08s3: Fix chained sesssetupAndX/tconn messagesTim Prouty1-0/+7
A sesssetupAndX chained with a tconn will not correctly set the TID in the response header. I'm seeing an XP client send this chained sesssetup/tconn when samba has security = share. Samba's current behavior is to return a TID of 0 in the smb header rather than the actual TID. This patch also updates the UID in the header as well.
2009-05-08s3:smbd: fix the fix for mapped IPv4 address handling in release_ip().Michael Adam1-2/+2
It was too late... Thanks Metze for noticing. Michael
2009-05-08s3: make release_ip() call (ctdb) cope with IPv4 mapped addressesMichael Adam1-1/+8
Michael
2009-04-12write_data already guarantees everything was writtenVolker Lendecke1-9/+6
2009-03-23s3:smbd: use new simplified snb_signing code in the serverStefan Metzmacher1-15/+35
We keep the seqnum/mid mapping in the smb_request structure. This also moves one global variable into the smbd_server_connection struct. metze
2009-03-23s3:smbd: if we allow trans2 on the IPC$ share, then we have to allow transs2 ↵Stefan Metzmacher1-1/+1
too. Otherwise we'll confuse the client signing engine, when we reply an error to each transs2. metze
2009-02-16make receive_smb_raw_talloc more readableTim Prouty1-4/+4
2009-02-13Noted by Vericode analysis. Correctly use chroot().Jeremy Allison1-1/+5
Jeremy.
2009-02-09S3: New module interface for SMB message statistics gatheringtodd stecher1-16/+45
This changelist allows for the addition of custom performance monitoring modules through smb.conf. Entrypoints in the main message processing code have been added to capture the command, subop, ioctl, identity and message size statistics.
2009-02-07Fix memleaks in chain_reply for async requestsVolker Lendecke1-0/+2
2009-01-31Remove the global variable "chain_size"Volker Lendecke1-2/+24
2009-01-27s3:smbd: make kernel oplocks event drivenStefan Metzmacher1-74/+0
And use signal events for Linux oplocks. metze
2009-01-27s3:smbd: remove pointless respond_to_all_remaining_local_messages() functionStefan Metzmacher1-25/+0
This the process_kernel_oplock() function never response to messages, it only generates messages to ourself. metze
2009-01-27s3:smbd: use signal events for SIGTERM, SIGHUP and SIGCHLDStefan Metzmacher1-14/+51
metze
2009-01-27s3:smbd: move all code that handles a client connection into smbd_process()Stefan Metzmacher1-6/+218
metze
2009-01-25Fix chain_reply for pipe readsVolker Lendecke1-1/+11
The caller might have over-allocated reply->outbuf. Deal with that. Sorry, Günther, for giving you so much pain ... Volker
2009-01-22s3:smbd: we don't need to call message_dispatch() anymore it's event ↵Stefan Metzmacher1-23/+2
triggered now metze
2009-01-22s3:smbd: restructure kernel oplocks codeStefan Metzmacher1-38/+6
This converts the irix oplocks code to use a fd event and removes the last special case for file descriptors for the main sys_select(). metze
2009-01-22s3: always call run_events() before and after sys_select()Stefan Metzmacher1-6/+4
And always setup the fd events. metze
2009-01-20"userdom_struct" does not need "full_name" anymore -- unusedVolker Lendecke1-2/+0
2009-01-20s3:smbd: call message_dispatch() before processing incoming PDUsStefan Metzmacher1-0/+6
This is a hack to fix races which happen with the RAW-RENAME and RAW-OPLOCK tests. We should try to remove it later. metze
2009-01-16remove the old chain_reply codeVolker Lendecke1-214/+4
2009-01-16Correctly calculate the offset for read&xVolker Lendecke1-0/+19
2009-01-16Add a new implementation of chain_replyVolker Lendecke1-0/+217
This the global variable "orig_inbuf" in the old chain_reply code. This global variable was one of the reasons why we had the silly restriction to not allow async requests within a request chain.
2009-01-10Fix a type-punned errorVolker Lendecke1-1/+1
2009-01-10Fix a C++ warningVolker Lendecke1-2/+2
2009-01-09s3:smbd: handle incoming smb requests via event handlersStefan Metzmacher1-108/+155
We use a fd event and receive incoming smb requests when the fd becomes readable. It's not completely nonblocking yet, but it should behave like the old code. We use timed events to trigger retries for deferred open calls. metze
2009-01-08s3:smbd: move all globals and static variables in globals.[ch]Stefan Metzmacher1-31/+1
The goal is to move all this variables into a big context structure. metze
2009-01-05s3:events: change event_add_timed() prototype to match samba4Stefan Metzmacher1-10/+17
metze
2009-01-04Fix bug #6009 - Setting "min receivefile size = 1" breaks writes.Jeremy Allison1-1/+1
Jeremy.
2008-12-31Replace "goto again" by "return NT_STATUS_RETRY" in receive_message_or_smbVolker Lendecke1-11/+13
This gives lower-level routines the chance to indicate a retry condition
2008-12-19Remove the direct inbuf reference from construct_reply_common()Volker Lendecke1-8/+11
2008-11-08Make "construct_reply_common" staticVolker Lendecke1-1/+3
2008-11-05Fix the buildVolker Lendecke1-1/+1
2008-11-04Make "inbuf" a talloc child of "smb_request" for normal smb requestsVolker Lendecke1-3/+2
This is necessary if we want to keep the whole smb_request for deferred ops. The explicit settings of req->inbuf will be removed once all those deferring operations are converted to store the whole request and not just the inbuf.
2008-11-04Add construct_reply_common_req wrapperVolker Lendecke1-0/+5
The goal is to remove the remaining direct calls to construct_reply_common.
2008-11-04Trigger (and fix) a bug in Samba3 making smbd an infinite data sourceVolker Lendecke1-0/+1
A deferred open directly followed by a ulogoffX makes smbd3 send an infinite stream of ERRinvuid replies :-(
2008-11-02Remove some inbuf references by adding "cmd" to smb_requestVolker Lendecke1-4/+3