summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2009-05-01 02:17:23 +0200
committerGünther Deschner <gd@samba.org>2009-05-04 12:12:14 +0200
commitfe839b65a7b4e8d5e085287b7d33ee1f970fe7c2 (patch)
treee8053c1bb26cc9ffa854726258985f0c24bf3302
parent9271dc5f7eb3e18021e27f334837d28b921db8e5 (diff)
downloadsamba-fe839b65a7b4e8d5e085287b7d33ee1f970fe7c2.tar.gz
samba-fe839b65a7b4e8d5e085287b7d33ee1f970fe7c2.tar.bz2
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
-rw-r--r--source3/smbd/msdfs.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c
index 4d692cd2d2..7bd32e8280 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