summaryrefslogtreecommitdiff
path: root/source3/smbd
AgeCommit message (Collapse)AuthorFilesLines
2011-01-07s3-printing: Initiate pcap reload from parent smbdDavid Disseldorp5-40/+65
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 Disseldorp3-7/+12
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>
2011-01-04s3-rpcecho: Only register rpcecho in the developer build.Andreas Schneider2-0/+4
Autobuild-User: Andreas Schneider <asn@samba.org> Autobuild-Date: Tue Jan 4 18:56:38 CET 2011 on sn-devel-104
2011-01-04s3-smbd: Call the rpc service shutdown functions.Andreas Schneider1-0/+34
2011-01-04s3-smbd: Call all the rpc services in the right order.Andreas Schneider1-5/+41
2010-12-29Fix bug #7892 - open_file_fchmod() leaves a stale lock.Jeremy Allison3-45/+10
Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Wed Dec 29 02:15:23 CET 2010 on sn-devel-104
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-12-21My algorithm for determining whan an incoming sequence number can be allowed ↵Jeremy Allison1-6/+7
is incorrect. (I based it on the text in MS-SMB2, silly me :-). Fix it so incoming sequence numbers can range over the entire allowable bitmap range. This fixes a repeatable disconnect against Win7. Jeremy.
2010-12-21Keep track of the sparse status of an open file handle. Allows bypass ofJeremy Allison3-1/+13
strict allocation on sparse files. Files opened as POSIX opens are always sparse. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Tue Dec 21 04:12:22 CET 2010 on sn-devel-104
2010-12-21Added call out to a Linux-compatible fallocate() when we need to extend a fileJeremy Allison1-1/+12
allocation extent without changing end-of-file size. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Tue Dec 21 02:41:24 CET 2010 on sn-devel-104
2010-12-20CREATE in a compound CREATE/NOTIFY sequence was being passed through ↵Ken Harris1-17/+17
set_operation_credits() twice (ultimately perhaps because of bug 7331 involving this compound sequence and the need to be ready for any incoming CANCEL of the NOTIFY). This had the server thinking it had granted more credit than it actually had, which lead to zero-credits being granted in interim NOTIFY responses. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Mon Dec 20 20:59:55 CET 2010 on sn-devel-104
2010-12-20From metze's work on sparse attributes. FILE_ATTRIBUTE_SPARSE is valid on ↵Jeremy Allison1-1/+2
get but not on set. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Mon Dec 20 20:11:22 CET 2010 on sn-devel-104
2010-12-19s3: Reply correctly to FSCTL_IS_VOLUME_DIRTYVolker Lendecke1-0/+9
2010-12-19s3: Fix some nonempty blank linesVolker Lendecke1-22/+22
2010-12-19s3: re-add some debugs to check_reduced_nameVolker Lendecke1-0/+2
2010-12-19s3: Fix some typosVolker Lendecke2-4/+4
2010-12-18Rename vfs operation posix_fallocate to just fallocate and add the ↵Jeremy Allison1-9/+12
vfs_fallocate_mode parameter. It turns out we need the fallocate operations to be able to both allocate and extend filesize, and to allocate and not extend filesize, and posix_fallocate can only do the former. So by defining the vfs op as posix_fallocate we lose the opportunity to use any underlying syscalls (like Linux fallocate) that can do the latter as well. We don't currently use the non-extending filesize call, but now I've changed the vfs op definition we can in the future. For the moment simply map the fallocate op onto posix_fallocate for the VFS_FALLOCATE_EXTEND_SIZE case and return ENOSYS for the VFS_FALLOCATE_KEEP_SIZE case. Jeremy. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Sat Dec 18 08:59:27 CET 2010 on sn-devel-104
2010-12-17Move checks inside file_set_sparse() to allow it to be called from anywhere.Jeremy Allison2-19/+21
Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Fri Dec 17 21:56:38 CET 2010 on sn-devel-104
2010-12-17file_set_sparse needs to be a handle based call.Jeremy Allison2-11/+9
2010-12-17s3:smbd: implement FSCTL_SET_SPARSE more correctlyBjörn Jacke1-5/+43
this is a port of a patch from metze for 3.3: We don't do the "strict allocation" when the sparse bit isn't set, but that shouldn't matter. We now allow windows applications to set and unset the sparse bit. Note that in order to implement this 100% like described in [MS-FSA], we'd have to change our data model and support the sparse flag per stream.
2010-12-17s3:smbd: add file_set_sparse() functionBjörn Jacke1-0/+49
this is based on a patch for 3.3 from metze
2010-12-17s3: remove set_sparse_flagBjörn Jacke1-15/+1
we need to determine sparseness from the sparse flag we store not from the allocation size on the POSIX filesystem. This is how Windows works - in the first place sparseness is a file flag, not the allocation state of the file Signed-off-by: Stefan Metzmacher <metze@samba.org>
2010-12-17s3: add FILE_ATTRIBUTE_SPARSE to get_stat_dos_flagsBjörn Jacke1-0/+2
2010-12-16Fix old bug in openX code, exposed when "strict allocate" is set to true.Jeremy Allison1-5/+9
We need to return the file size here, not the allocation size, but we were not updating the stat struct after the vfs_set_filesize() call. Ensure we always use fresh data in openX replies. Jeremy. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Thu Dec 16 02:37:58 CET 2010 on sn-devel-104
2010-12-15Implement "use sendfile = yes" for SMB2. (cherry picked from commit ↵Jeremy Allison3-3/+159
95cb7adcd03a1abbd0af395b6c96dd8e0eebd3d1) Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Wed Dec 15 02:24:08 CET 2010 on sn-devel-104
2010-12-15Change interface of schedule_smb2_aio_read() to allocate the return DATA_BLOB.Jeremy Allison2-9/+25
Change smb2_read code to allocate return DATA_BLOB just before the read. Preparing for SMB2 sendfile change which will not need to allocate return buffer. Jeremy
2010-12-14Ensure we use vfs_fsp_stat(), not VFS_STAT directly, and store into ↵Jeremy Allison1-19/+20
fsp->fsp_name->st instead of a SMB_STRUCT_STAT on the stack. Jeremy. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Tue Dec 14 05:05:50 CET 2010 on sn-devel-104
2010-12-14Change crediting so that the credits are returned on the interim async response.Jeremy Allison1-4/+7
Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Tue Dec 14 01:09:05 CET 2010 on sn-devel-104
2010-12-13As we handle missing sendfile() inside lib/sendfile.c, remove the ↵Jeremy Allison1-7/+0
WITH_SENDFILE ifdefs. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Mon Dec 13 23:47:07 CET 2010 on sn-devel-104
2010-12-13We need to start off with smb2.credits_granted == 0. That wayJeremy Allison1-2/+3
when processing the faked up SMB2 NegProt from the SMB1 packet we always allocate one credit on reply. Jeremy.
2010-12-13Remove extra unused credit arg. to smbd_smb2_request_setup_out()Jeremy Allison1-3/+3
2010-12-10Add a SMB2 crediting algorithm, by default the same as Windows. Defaults to ↵Jeremy Allison2-24/+136
128 credits. Jeremy.
2010-12-10s3-smbd Don't send SPNEGO principal (rfc4178 hint) by defaultAndrew Bartlett1-0/+3
This patch, based on the suggestion by Goldberg, Neil R. <ngoldber@mitre.org> turns off the sending of the principal in the negprot by default, matching Windows 2008 behaviour. This slowly works us back from this hack, which from an RFC perspective was never the right thing to do in the first place, but we traditionally follow windows behaviour. It also discourages client implmentations from relying on it, as if they do they are more open to man-in-the-middle attacks. Andrew Bartlett
2010-12-03Merge the two conflicting allocation codes into one function, ↵Jeremy Allison1-34/+45
vfs_slow_fallocate() and use that from both the truncate and fill_sparse functions. Jeremy.
2010-12-02Move posix_fallocate into the VFS where it belongs.Jeremy Allison1-2/+11
Jeremy.
2010-12-02Fix bug #7835 - vfs_fill_sparse() doesn't use posix_fallocate when strict ↵Jeremy Allison1-2/+30
allocate is on Tries posix_fallocate() and then falls back to old code. Jeremy.
2010-12-01Fix a typo - should be '&&' not '&' when checking for privileges.Jeremy Allison1-1/+1
Jeremy.
2010-12-02s3:smbd: remove some commented out legacy codeMichael Adam1-5/+0
Autobuild-User: Michael Adam <obnox@samba.org> Autobuild-Date: Thu Dec 2 01:18:19 CET 2010 on sn-devel-104
2010-11-29Fix bug discovered with "encryped passwords = no".Jeremy Allison1-8/+1
message_push_string() and message_push_blob() both update the bcc value, so we don't need the old code that tries to do it manually. Jeremy. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Mon Nov 29 22:24:01 CET 2010 on sn-devel-104
2010-11-24Add in fsp->access_mask checks. Not required (underlying system does this)Jeremy Allison2-2/+42
but makes logic cleaner. Pointed out by Metze. Jeremy. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Wed Nov 24 01:47:13 CET 2010 on sn-devel-104
2010-11-20Move the uglyness of #ifdef REALPATH_TAKES_NULL into the vfs_defaultJeremy Allison2-52/+11
module, change the signature of VFS_REALPATH to always return a malloc'ed string. Needed to make some privileges work I plan on doing shortly easier to code. Jeremy. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Sat Nov 20 02:15:50 CET 2010 on sn-devel-104
2010-11-14Move error reporting of messaging context creation fail intoJeremy Allison1-1/+5
the daemons themselves. Allows client utilities to silently fail to create a messaging context due to access denied on the messaging tdb (which I need for the following patch). Jeremy.
2010-11-12s3: Rename GIT_COMMIT_{TIME,DATE} to COMMIT_{TIME,DATE}.Jelmer Vernooij1-2/+2
This avoids some special casing in the waf code.
2010-11-10Fix bug 7781 - Samba transforms ShareName to lowercase (sharename) when ↵Jeremy Allison4-45/+92
adding new share via MMC Change the find_service() interface to not depend on fstring, and create a useable talloc-based interface. Jeremy.
2010-11-10Remove fstring from map_username. Create a more sane interface than the ↵Jeremy Allison4-11/+25
called-parameter-is-modified. Jeremy.
2010-11-05s3: Allow disabling of mdns registrationsVolker Lendecke1-1/+1
Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Fri Nov 5 11:24:41 UTC 2010 on sn-devel-104
2010-11-04s3: Remove an unused prototypeVolker Lendecke1-17/+0
Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Thu Nov 4 17:44:09 UTC 2010 on sn-devel-104
2010-11-03s3: Align nttrans replies the same way Windows does itVolker Lendecke1-1/+1
If you look at traces of "smbcacls" reading a secdesc from Samba and from W2k3 shows this difference in the querysecdesc nttrans reply. This patch is necessary to enable viewing previous versions via the shadow copy modules from Windows 2008. The other client versions seem not to care, but W2k8 does. Signed-off-by: Michael Adam <obnox@samba.org> Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Wed Nov 3 17:04:28 UTC 2010 on sn-devel-104
2010-11-02s3-debug Move 'load_case_tables()' before lp_set_cmdline() and popt callsAndrew Bartlett1-2/+2
The problem here is that we cannot run lp_set_cmdline() (directly or indirectly via the popt helpers) until load_case_tables() has been run. However, load_case_tables does not have auto-initialisation, so we must init it once, and once only. Andrew Bartlett
2010-11-02s3-debug Impove setup_logging() to specify logging to stderrAndrew Bartlett1-1/+5
This change improves the setup_logging() API so that callers which wish to set up logging to stderr can simply ask for it, rather than directly modify the dbf global variable. Andrew Bartlett