summaryrefslogtreecommitdiff
path: root/source3
AgeCommit message (Collapse)AuthorFilesLines
2011-08-12s3:smb2_server: make sure we prefer responses over requests on the client socketStefan Metzmacher1-12/+52
metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Fri Aug 12 16:46:43 CEST 2011 on sn-devel-104
2011-08-12s3:libsmb: keep the request order in cli_smb_req_unset_pending()Stefan Metzmacher1-1/+3
metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Fri Aug 12 12:36:03 CEST 2011 on sn-devel-104
2011-08-12s3:libsmb: use tevent_req_defer_callback() unless there's only one request ↵Stefan Metzmacher1-4/+41
in cli_smb_received() Callers of tevent_req_done() (or similar functions) have to return directly. Otherwise the callback could invalidate the current stack state, which is likely to trigger segfaults. If there was only one pending request and we just got the response for that one, we can use tevent_req_done() directly. Otherwise there're more pending requests and we need to call cli_state_receive_next() or we got the response for chained requests. Both means that we have to use tevent_req_defer_callback(). metze
2011-08-12s3:libsmb: make use of cli_state_receive_next() in cli_smb_received()Stefan Metzmacher1-17/+2
metze
2011-08-12s3:libsmb: notify all request about failures in cli_smb_req_set_pending()Stefan Metzmacher1-0/+7
It's up to the caller to notify the current request, but we have to notify all other pending requests if we're not able to read the next response from the server. metze
2011-08-12s3:libsmb: split out cli_state_receive_next() from cli_smb_req_set_pending()Stefan Metzmacher1-2/+25
metze
2011-08-12s3:libsmb: use talloc_stackframe() in cli_smb_received()Stefan Metzmacher1-8/+12
metze
2011-08-12s3:libsmb: call cli_smb_req_unset_pending() before tevent_req_done() also ↵Stefan Metzmacher1-0/+1
for chained requests metze
2011-08-12s3:libsmb: reset the destructor in cli_smb_req_unset_pending()Stefan Metzmacher1-1/+2
metze
2011-08-12s3:libsmb: add cli_state_notify_pending() and use itStefan Metzmacher1-25/+45
If we got a problem on the connection we need to notify every pending request. But we need to make use of tevent_req_defer_callback() before tevent_req_nterror(), otherwise the callback, triggered by tevent_req_nterror(), could invalidate the state of current caller, which will likely cause segfaults. metze
2011-08-12s3:selftest: run smbtorture3 CHAIN1/CHAIN2 testsStefan Metzmacher2-2/+1
metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Fri Aug 12 09:37:04 CEST 2011 on sn-devel-104
2011-08-11s3-messaging: Do not register to classes we are not going to use.Simo Sorce3-5/+4
Signed-off-by: Andreas Schneider <asn@samba.org> Autobuild-User: Andreas Schneider <asn@cryptomilk.org> Autobuild-Date: Thu Aug 11 17:09:30 CEST 2011 on sn-devel-104
2011-08-11s3-messaging: Change classification of MSG_SMB_CONF_UPDATED.Simo Sorce2-2/+4
smbd is not the only daemon interested in smb.conf changes. Move this message to the GENERAL class so that all interested partied (nmbd, winbindd, spoolssd, etc..) can receive this notification. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-11s3-messaging: Fix messaging classes.Simo Sorce5-12/+19
This has been broken since ff0ac5b0 (May 2007). Basically all messages were belonging to the General class except for CTDB messages. This fixed the message_send_all() function to correctly compute the class, and fixes registrations to include all they need to cope with the fact not all messages are of calss general (registrations rotted a bit because as long as FLAG_MSG_GENERAL was defined the process woould receive all messages). Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-11s3-messaging: Remove obsolete class.Simo Sorce5-19/+2
The FLAG_MSG_PRINT_NOTIFY class is actually obsolete and never used, as the only message belonging to it is not used either. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-11s3:build(autoconf): fix bug #8369: remove irritating "." targets when recent ↵Michael Adam3-9/+19
system libs exist Autobuild-User: Michael Adam <obnox@samba.org> Autobuild-Date: Thu Aug 11 13:26:27 CEST 2011 on sn-devel-104
2011-08-10s3: Adapt msg_idmap.c to Samba coding conventionsVolker Lendecke1-5/+5
2011-08-10s3: Fix some nonempty blank linesVolker Lendecke1-1/+1
2011-08-10s3: Fix some typos -- Simo, please checkVolker Lendecke1-7/+7
2011-08-10s3-spoolss: Fix prototypes warnings.Andreas Schneider1-1/+4
Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-printing: Do not try to force reload.Simo Sorce2-3/+7
Be more correct in load printers at startup. If async process have already started we do not need to force a reload, but we just need to load the printers. If other process have not finished initializing it makes no sense to try to force them as they are masking SIGHUP unitl init is done anyway. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-spoolss: do not call pcap_cache_reload() directlySimo Sorce1-5/+17
The background queue process is repsonsible for that. Just reload printers if necessary or wait for a message from bq to do that. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-printing: Add child handler to bq processSimo Sorce1-4/+32
The cups backend forks a child to do asynchronous work. We need a sigchld handler in bq to properly wait for the chilod to finish and reap it, otherwise it hangs the forever as a zombie process. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-spoolss: Fix printers related messagingSimo Sorce1-4/+34
Children were not properly receiving messages to reload printers when the background queue process was dispatching them. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-prefork: Fix use of child id.Simo Sorce2-12/+11
Children Ids must start at 1 as 0 represent the father. Also fix callbacks that restart logs to use a procedd global variable that holds the Id so that they work correctly both fot the parent process and the children. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-printing: make sure to block SIGHUP ...Simo Sorce2-4/+39
... until we are ready to handle it. Also make us ready as early as possible in spoolssd. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-spoolss: Use a global variable for the poolSimo Sorce1-60/+31
This allows for setting up signal handlers earlier which is needed for the following patch. It also simplify the code in a few places. After all we never have more than pool active at any time during spoolssd life span. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-printing: Allow bq process to have own logfileSimo Sorce3-26/+55
Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-spoolssd: Use the child_id to open log filesSimo Sorce1-15/+43
This way each child has its own log file and avoid mixing all logs form all children in the same parent log file. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-prefork: Pass the child a child_idSimo Sorce3-2/+4
Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-printing: Force pcap reload when all readySimo Sorce4-5/+18
This way we are sure the cache is primed properly and messages can be sent to processes if necessary as all messaging has been set up. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-prefork: Return tsocket_address for client and serverSimo Sorce3-32/+68
Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-prefork: Pass messaging context around tooSimo Sorce3-20/+59
Pair-Programmed-With: Andreas Schneider <asn@samba.org> Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-prefork: Set up a SIGCHLD handler by defaultSimo Sorce3-52/+94
We need to properly handle preforked children so it is better to just do that automatically. If the parent needs/wants to intercept SIGCHLD events it can set a callback that will be called by the prefork code once the internal cleanup function that checks all prefork children has been executed. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3:spoolssd Start spoolssd from printing_subsystem_initSimo Sorce4-41/+70
Use a child for the background updater process Forward printer update messages from spoolss to background update process. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-printing: Rework how the background process is startedSimo Sorce6-21/+42
Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-prefork: Provide a cleanup functionSimo Sorce3-28/+25
This way the parent doesn't need to know how to handle dead children and keeps all of that within the prefork abstraction. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-prefork: Inline Doxygen DocumentationSimo Sorce1-0/+160
Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-prefork: better timing out semanticsSimo Sorce1-4/+14
If this child has no clients, let the lock functions block for 1 second, and then immediately reschedule the operation. This means we catch the lock as soon as possible on a free child. If, instead, we are already serving a client, we want to be non blocking, so we timeout immediately on getting the lock, and then we sleep a 1/10th of a second. This means that a busy child will be slightly slower on picking up the lock, but we won't block the existing client from communicating with us as we immediately react to activity on the already opened file handler. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-prefork: add support for multiple listning file descriptorsSimo Sorce3-95/+84
Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-spoolssd: propagate SIGHUP to childrenSimo Sorce1-11/+34
Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-prefork: provide way to send a signal to all childrenSimo Sorce2-0/+15
Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-spoolssd: expand children pool when necessarySimo Sorce1-7/+34
Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-prefork: provide means to expand the pool sizeSimo Sorce2-0/+33
Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-spoolssd: Use parametric option for prefork parametersSimo Sorce1-12/+48
example: spoolssd:prefork = 10:100:5 will configure spoolssd to start with a minimum of 10 preforked children, a max set to 100 children and spawns/retires 5 children at a time when ramping up/scaling down. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-spoolss: make listening asynchronousSimo Sorce1-26/+60
This also allows to make each children serve more than one client at the same time if necessary. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-spoolssd: Use the prefork framework in spoolssdSimo Sorce1-3/+425
This should make it more scalable and able to handle easily multiple clients at the same time. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-rpc_server: add termination functionSimo Sorce2-3/+23
This way we can act when a client disconnects. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-rpc: Expose some internal functionsSimo Sorce2-33/+44
This will allow to hook the prefork socket handlers to the rpc service. Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-10s3-prefork: add way to manage number of clients per childSimo Sorce2-3/+38
The allowed_clients var is a parent managed variable that tell children how many clients they are allowed to handle at the same time. This way children can overcommit but within parent controlled limits. Signed-off-by: Andreas Schneider <asn@samba.org>