slirp/smb: Move ncalrpc directory to tmp

The smbd forked by qemu still uses the default ncalrpc directory
in /var/run/samba. This may lead to problems, if /var/run/samba
does not exist (for example if /var/run is a tmpfs and the host
smbd was not started).

This leads to the following error message from samba
and an unworkable smbd:
	Failed to create pipe directory /var/run/samba/ncalrpc - No such file or directory

Fix this by pointing smbd to /tmp/qemu-smb.%d.%d/ncalrpc as ncalrpc directory.
Smbd will create the actual ncalrpc subdirectory on its own.

Signed-off-by: Michael Buesch <m@bues.ch>
Cc: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(Applying this to -trivial because it _is_ rather trivial
 and because Jan does not reply for months)
This commit is contained in:
Michael Buesch 2014-04-27 14:54:12 +04:00 committed by Michael Tokarev
parent 7a30842186
commit b87b8a8b32

View File

@ -527,6 +527,7 @@ static int slirp_smb(SlirpState* s, const char *exported_dir,
"pid directory=%s\n" "pid directory=%s\n"
"lock directory=%s\n" "lock directory=%s\n"
"state directory=%s\n" "state directory=%s\n"
"ncalrpc dir=%s/ncalrpc\n"
"log file=%s/log.smbd\n" "log file=%s/log.smbd\n"
"smb passwd file=%s/smbpasswd\n" "smb passwd file=%s/smbpasswd\n"
"security = user\n" "security = user\n"
@ -542,6 +543,7 @@ static int slirp_smb(SlirpState* s, const char *exported_dir,
s->smb_dir, s->smb_dir,
s->smb_dir, s->smb_dir,
s->smb_dir, s->smb_dir,
s->smb_dir,
exported_dir, exported_dir,
passwd->pw_name passwd->pw_name
); );