diff options
author | Günther Deschner <gd@samba.org> | 2009-05-01 02:17:23 +0200 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2009-05-04 12:12:14 +0200 |
commit | fe839b65a7b4e8d5e085287b7d33ee1f970fe7c2 (patch) | |
tree | e8053c1bb26cc9ffa854726258985f0c24bf3302 /source3/smbd/msdfs.c | |
parent | 9271dc5f7eb3e18021e27f334837d28b921db8e5 (diff) | |
download | samba-fe839b65a7b4e8d5e085287b7d33ee1f970fe7c2.tar.gz samba-fe839b65a7b4e8d5e085287b7d33ee1f970fe7c2.tar.xz samba-fe839b65a7b4e8d5e085287b7d33ee1f970fe7c2.zip |
s3-printing: Fix driver upload for Xerox 4110 PS printer driver.
We need to allow to set filesystem capabilities from the default vfs in
create_conn_struct() in order to find mixed-case filenames. Thanks Volker!
This one was hard to find, so a little longer explanation:
When a Windows client tries to upload e.g. the Xerox 4110 PS driver, the client
first uploads the driver files to the [print$] share. Some of them (in this case
the Windows Postscript drivers) are with uppercase filenames while some of them
(like the PPD file) are in lowercase. After the driver upload the client issues
the spoolss_AddPrinterDriverEx() call with level 6. There the client tries to
add the PPD file with an uppercase filename (while having stored it in lowercase
on the server). The internal spoolss add driver functions then could not find the
appropriate filename while trying to move them to the version subdirectory (in
this case W32X86/3) and fails then entire spoolss_AddPrinterDriverEx() call.
With this fix, the convert_unix_name() name finds the correct file and
the spoolss_AddPrinterDriverEx() succeeds.
Guenther
Diffstat (limited to 'source3/smbd/msdfs.c')
-rw-r--r-- | source3/smbd/msdfs.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c index 4d692cd2d2b..7bd32e82800 100644 --- a/source3/smbd/msdfs.c +++ b/source3/smbd/msdfs.c @@ -272,6 +272,8 @@ NTSTATUS create_conn_struct(TALLOC_CTX *ctx, return status; } + conn->fs_capabilities = SMB_VFS_FS_CAPABILITIES(conn); + /* * Windows seems to insist on doing trans2getdfsreferral() calls on * the IPC$ share as the anonymous user. If we try to chdir as that |