qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] handling samba shares in slirp networking


From: Michael Tokarev
Subject: [Qemu-devel] handling samba shares in slirp networking
Date: Tue, 17 Jul 2012 22:50:46 +0400
User-agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.4) Gecko/20120510 Icedove/10.0.4

Hello.

We're getting more and more various bugreports and questions
about -net user,smb=xxx - about usage of "private" smbd to
share a given directory.

In short: it does not quite work.  Due to alot of various
reasons, most things being wrong/insufficient smb.conf
generated by slirp code.

Looking at the code, I'd say it should be much easier to
do it the other way: to run a script with two parameters --
directory to export, and a share name for the said directory.
This script will create a temporary config/runtime dir,
like qemu slirp code does now, create necessary smb.conf
in there, and run smbd with appropriate options (including,
for example, -l (logdir) and -F (stay in foreground)).

When smbd finishes, the script will remove that temp dir
and exit.

This way, it will be possible to customize the script easily,
to compensate for samba being changed over time, or it even
can check smbd version and generate different configs.

This way, it will also be possible to run custom smbd binary,
or add a debug option, or whatnot.

I propose a new -net user parameter, smbscript=, defaulting
to $libdir/smbscript.

Also, current code has at least 3 more defects.

First, it uses home-grown implementation of socketpair()
function, which should be used instead.

Second, the code does not watch for smbd dying (it
should be possible to do if smbd does not daemonize).

And 3rd, when smbd process we just spawned dies, slirp
code happily redirects samba-related network packets
to HOST smbd.  This is completely wrong.

I can implement at least the main part, but I wanted to
discuss it first.

Comments?

Thanks,

/mjt



reply via email to

[Prev in Thread] Current Thread [Next in Thread]