summaryrefslogtreecommitdiff
path: root/source3/smbd/process.c
AgeCommit message (Collapse)AuthorFilesLines
2011-05-31s3-globals Remove smbd_event_context() (use server_event_context())Andrew Bartlett1-13/+13
This has been a wrapper around server_event_context() for some time now, and removing this from dummmysmbd.c assists with library dependencies. Andrew Bartlett
2011-05-20s3:smbd remove unused codeChristian Ambach1-11/+0
in the early CTDB days, the RELEASE_IP message was defined and some code was added to react on such a message to make smbd exit if the IP address it was using for the server socket is removed by CTDB. Later, it was discovered that we need to stop smbd immediately and logic was added to ctdb_conn to call release_ip() without going through the messaging system. So this code is not used and can be removed Autobuild-User: Christian Ambach <ambi@samba.org> Autobuild-Date: Fri May 20 16:18:24 CEST 2011 on sn-devel-104
2011-05-20s3: Fork the echo handler only after SMB1 negprot is doneVolker Lendecke1-7/+2
This enables activating the echo responder also if SMB2 is enabled, albeit it will only be used for SMB1 at this moment. Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Fri May 20 15:06:03 CEST 2011 on sn-devel-104
2011-05-19Fix Bug 8152 - smbd crash in release_ip()Christian Ambach1-0/+3
release_ip() needs the private_data, but it was never saved away to feed it into release_ip() later Autobuild-User: Christian Ambach <ambi@samba.org> Autobuild-Date: Thu May 19 21:21:14 CEST 2011 on sn-devel-104
2011-05-17s3: conn->sconn in smbd_server_connection_read/write_handlerVolker Lendecke1-9/+10
"struct smbd_server_connection" is called sconn elsewhere, avoid confusion Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Tue May 17 19:00:20 CEST 2011 on sn-devel-104
2011-05-06s3-libsmb: move protos to libsmb/proto.hGünther Deschner1-0/+1
Guenther
2011-05-05Fix many const compiler warnings.Jeremy Allison1-16/+16
2011-05-03s3: Handle EINTR from sys_poll correctlyVolker Lendecke1-1/+4
Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Tue May 3 18:06:48 CEST 2011 on sn-devel-104
2011-05-02s3-proto: move remaining spoolss protos to own header file.Günther Deschner1-0/+1
Guenther
2011-04-29s3-tsocket: only include ../lib/tsocket/tsocket.h where needed.Günther Deschner1-0/+1
Guenther
2011-04-14s3: Fix smbd with the async echo responderVolker Lendecke1-10/+13
We need to read from the echo socket, pass the socket to read from down to the read routines Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Thu Apr 14 15:34:36 CEST 2011 on sn-devel-104
2011-04-14s3: Fix a typoVolker Lendecke1-1/+1
Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Thu Apr 14 11:55:56 CEST 2011 on sn-devel-104
2011-04-14s3: only include smb profiling where needed.Günther Deschner1-0/+1
Guenther Autobuild-User: Günther Deschner <gd@samba.org> Autobuild-Date: Thu Apr 14 01:31:39 CEST 2011 on sn-devel-104
2011-03-30s3-messages: make ndr_messaging.h part of messages.h.Günther Deschner1-1/+0
Guenther
2011-03-30s3-messages: only include messages.h where needed.Günther Deschner1-0/+1
Guenther
2011-03-30s3-auth: smbd needs auth.hGünther Deschner1-0/+1
Guenther
2011-03-30s3: include smbd/smbd.h where needed.Günther Deschner1-0/+1
Guenther
2011-03-30s3-passdb: use passdb headers where needed.Günther Deschner1-0/+1
Guenther
2011-03-30s3-includes: only include system/filesys.h when needed.Günther Deschner1-0/+1
Guenther
2011-02-28s3: Eliminate sys_select from fd_is_readableVolker Lendecke1-10/+4
2011-02-28s3: Use poll in smbdVolker Lendecke1-20/+15
2011-02-22s3-printing: fix pcacp prototypes and includes.Günther Deschner1-0/+1
Guenther
2011-02-22s3-auth Rename auth_serversupplied_info varaiables: server_info -> session_infoAndrew Bartlett1-3/+3
These variables, of type struct auth_serversupplied_info were poorly named when added into 2001, and in good consistant practice, this has extended all over the codebase in the years since. The structure is also not ideal for it's current purpose. Originally intended to convey the results of the authentication modules, it really describes all the essential attributes of a session. This rename will reduce the volume of a future patch to replaced these with a struct auth_session_info, with auth_serversupplied_info confined to the lower levels of the auth subsystem, and then eliminated. (The new structure will be the output of create_local_token(), and the change in struct definition will ensure that this is always run, populating local groups and privileges). Andrew Bartlett Signed-off-by: Stefan Metzmacher <metze@samba.org>
2011-02-11s3: Avoid a select call per smbVolker Lendecke1-1/+1
Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Fri Feb 11 12:13:54 CET 2011 on sn-devel-104
2011-02-06s3: Fix some nonempty blank linesVolker Lendecke1-3/+3
2011-01-31s3:smbd: let smbd_server_connection_loop_once() check for select errorsStefan Metzmacher1-0/+4
metze
2011-01-31Revert "s3: Fix starving the echo responder"Stefan Metzmacher1-17/+0
This reverts commit d5cf6482ed0cd9a11448ca04944b2e01200a7c89. I'll add a more generic fix for this problem. metze
2011-01-31Revert "s3:events: Call all ready fd event handlers on each iteration of the ↵Stefan Metzmacher1-18/+21
main loop" This reverts commit 455fccf86b6544cd17a2571c63a88f8aebff3f74. I'll add a more generic fix for this problem. metze
2011-01-26Allow "security = share" with SMB2. We already handle this in smb2/smb2_server.cJeremy Allison1-1/+0
Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Wed Jan 26 20:37:29 CET 2011 on sn-devel-104
2011-01-14s3: Fix bug 7917: Yet another bug in chain_replyVolker Lendecke1-2/+2
Found by Michael Hanscho <samba@micha.priv.at> with a WinCE client. Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Fri Jan 14 17:42:05 CET 2011 on sn-devel-104
2011-01-07s3-printing: Initiate pcap reload from parent smbdDavid Disseldorp1-36/+9
Since commit 7022554, smbds share a printcap cache (printer_list.tdb), therefore ordering of events between smbd processes is important when updating printcap cache information. Consider the following two process example: 1) smbd1 receives HUP or printcap cache time expiry 2) smbd1 checks whether pcap needs refresh, it does 3) smbd1 marks pcap as refreshed 4) smbd1 forks child1 to obtain cups printer info 5) smbd2 receives HUP or printcap cache time expiry 6) smbd2 checks whether pcap needs refresh, it does not (due to step 3) 7) smbd2 reloads printer shares prior to child1 completion (stale pcap) 8) child1 completion, pcap cache (printer_list.tdb) is updated by smbd1 9) smbd1 reloads printer shares based on new pcap information In this case both smbd1 and smbd2 are reliant on the pcap update performed on child1 completion. The prior commit "reload shares after pcap cache fill" ensures that smbd1 only reloads printer shares following pcap update, however smbd2 continues to present shares based on stale pcap data. This commit addresses the above problem by driving pcap cache and printer share updates from the parent smbd process. 1) smbd0 (parent) receives a HUP or printcap cache time expiry 2) smbd0 forks child0 to obtain cups printer info 3) child0 completion, pcap cache (printer_list.tdb) is updated by smbd0 4) smbd0 reloads printer shares 5) smbd0 notifies child smbds of pcap update via message_send_all() 6) child smbds read fresh pcap data and reload printer shares This architecture has the additional advantage that only a single process (the parent smbd) requests printer information from the printcap backend. Use time_mono in housekeeping functions As suggested by Björn Jacke.
2011-01-07s3-printing: reload shares after pcap cache fillDavid Disseldorp1-1/+2
Since commit eada8f8a, updates to the cups pcap cache are performed asynchronously - cups_cache_reload() forks a child process to request cups printer information and notify the parent smbd on completion. Currently printer shares are reloaded immediately following the call to cups_cache_reload(), this occurs prior to smbd receiving new cups pcap information from the child process. Such behaviour can result in stale print shares as outlined in bug 7836. This fix ensures print shares are only reloaded after new pcap data has been received. Pair-Programmed-With: Lars Müller <lars@samba.org>
2010-12-23All calls to event_add_to_select_args() call GetTimeOfDay() andJeremy Allison1-7/+2
pass this in as the &now parameter. Push this call inside of event_add_to_select_args() to the correct point so it doesn't get called unless needed. Jeremy. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Thu Dec 23 01:08:11 CET 2010 on sn-devel-104
2010-10-20s3: Add some DEBUGVolker Lendecke1-0/+2
Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Wed Oct 20 11:58:20 UTC 2010 on sn-devel-104
2010-10-20s3: Cope with EINTR in smbd_[un]lock_socketVolker Lendecke1-2/+10
2010-10-19Add deadtime detection for SMB2. Correctly update lastused timestamp across ↵Jeremy Allison1-13/+1
all active tcons. Should fix dfree cache not updating bug.
2010-10-14s3: Remove smbd_server_conn from construct_replyVolker Lendecke1-4/+6
Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Thu Oct 14 12:35:07 UTC 2010 on sn-devel-104
2010-10-14s3: Lift smbd_server_conn from receive_smb_tallocVolker Lendecke1-10/+9
2010-10-14s3: Lift smbd_server_conn from receive_smb_raw_tallocVolker Lendecke1-8/+10
2010-10-14s3: Lift smbd_server_conn from receive_smb_raw_talloc_partial_readVolker Lendecke1-10/+10
2010-10-14s3: Remove some explicit smbd_server_conn refs in process_smb()Volker Lendecke1-2/+2
2010-10-14s3: Rename "conn" to the more used "sconn" in process_smb()Volker Lendecke1-7/+7
2010-10-07s3: Fix the async echo responder for netbios keepalivesVolker Lendecke1-10/+23
This fixes a crash in the echo responder when the client started to send the NetBIOS-Level 0x85-style keepalive packets. We did not correctly check the packet length, so the code writing the signing seqnum overwrote memory after the malloc'ed area for the 4 byte keepalive packet. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Thu Oct 7 19:47:35 UTC 2010 on sn-devel-104
2010-10-06s3: Make the write end of the echo responder pipe non-blockingVolker Lendecke1-0/+1
Without this, we can get a writable pipe end, but the writev call on the pipe will block. Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Wed Oct 6 13:57:30 UTC 2010 on sn-devel-104
2010-10-01s3:events: Call all ready fd event handlers on each iteration of the main loopSteven Danneman1-19/+16
Previously, only one fd handler was being called per main message loop in all smbd child processes. In the case where multiple fds are available for reading the fd corresponding to the event closest to the beginning of the event list would be run. Obviously this is arbitrary and could cause unfairness. Usually, the first event fd is the network socket, meaning heavy load of client requests can starve out other fd events such as oplock or notify upcalls from the kernel. In this patch, I have changed the behavior of run_events() to unset any fd that it has already called a handler function, as well as decrement the number of fds that were returned from select(). This allows the caller of run_events() to iterate it, until all available fds have been handled. I then changed the main loop in smbd child processes to iterate run_events(). This way, all available fds are handled on each wake of select, while still checking for timed or signalled events between each handler function call. I also added an explicit check for EINTR from select(), which previously was masked by the fact that run_events() would handle any signal event before the return code was checked. This required a signature change to run_events() but all other callers should have no change in their behavior. I also fixed a bug in run_events() where it could be called with a selrtn value of -1, doing unecessary looping through the fd_event list when no fds were available. Also, remove the temporary echo handler hack, as all fds should be treated fairly now.
2010-10-01samba: share select wrappers.Günther Deschner1-0/+1
Guenther
2010-09-28s3: Attempt to fix bug 7518Volker Lendecke1-6/+6
If select returns -1, we can't rely on the fd sets. The current code might loop endlessly because when putting an invalid fd (the closed socket?) on the read set, a select implementation might choose not to touch it but directly return with EINVAL. Thus run_events will see the socket readable, which leads to a "return true", and thus a NT_STATUS_RETRY -> same game again. We should never get into this situation, but to me the logfiles given in bug 7518 do not reveal enough information to understand how this can happen.
2010-09-28s3: Increase the debuglevel for connection termination msgsVolker Lendecke1-2/+2
2010-09-28s3: Remove two calls to procid_self()Volker Lendecke1-2/+4
2010-09-28s3: Remove "server_fd" global variableVolker Lendecke1-7/+4