cat /bin/service/tcp445
#!/bin/rc
exec /bin/ip/cifsd -t -d -f /sys/log/cifsd.debug

ps|grep cifsd
bootes 374 0:00 0:00 212K Pread cifsd
bootes 908 0:00 0:00 212K Pread cifsd
bootes 1391 0:00 0:00 212K Pread cifsd
none 2332 0:00 0:00 212K Pread cifsd
none 2527 0:00 0:00 212K Pread cifsd

tail -f /sys/log/cifsd.debug
started [2527]
[72] SMB_COM_NEGOTIATE
[0] PC NETWORK PROGRAM 1.0
[1] LANMAN1.0
[2] Windows for Workgroups 3.1a
[3] LM1.2X002
[4] LANMAN2.1
[5] NT LM 0.12
[6] SMB 2.002
[7] SMB 2.???
respond: err=0

[73] SMB_COM_SESSION_SETUP_ANX
bs=8000 cap=d4 user=KROK dom=KROK os= lanman=
auth successfull
[75] SMB_COM_TREE_CONNECT_ANDX
mapshare \\192.168.1.200\IPC$ -> IPC IPC$ /dev/null
[ff] SMB_COM_NO_ANDX_COMMAND
respond: err=0

[73] SMB_COM_SESSION_SETUP_ANX
bs=8000 cap=d4 user=KROK dom=KROK os= lanman=
[75] SMB_COM_TREE_CONNECT_ANDX
mapshare \\192.168.1.200\VAC -> A: vac /n/vac


13 ÁÐÒÅÌÑ 2011šÇ. 23:24 ÐÏÌØÚÏ×ÁÔÅÌØ <cinap_lenrek@gmx.de> ÎÁÐÉÓÁÌ:
check with ps that there are no broken cifsd processes for
bootes... if there are, run acid <pid> and type lstk() to get
a stacktrace...

if this is not the case... šlets enable more debugging to figure out
whats going on...

add -d -f /sys/log/cifsd.debug option to /bin/service/tcp445 command line.

create a world writable append only file in /sys/log

touch /sys/log/cifsd.debug
chmod a+wa /sys/log/cifsd.debug

--
cinap


---------- ðÅÒÅÓÙÌÁÅÍÏÅ ÓÏÏÂÝÅÎÉÅ ----------
From:šSergey Kornilovich <root81@gmail.com>
To:šcinap_lenrek@gmx.de
Date:šWed, 13 Apr 2011 23:13:22 +0400
Subject:šRe: [9fans] cifsd
You are right.
To test, I changed the file 9fs adding:

case vac
vacfs /lib/vac/1.vac
but
C: \> net use Y: \\192.168.1.200\vac
pause for 1 minute
System error 64 has occurred.

The specified network name is no longer available.
I run cifsd -t
/sys/log/cifsd
server Apr 13 22:43:45 (<nil>\<nil>) started [908]
server Apr 13 22:43:45 (<nil>\bootes) auth successfull
server Apr 13 22:43:45 (<nil>\bootes) mapshare \\192.168.1.200\IPC$ -> IPC IPC$ /dev/null
server Apr 13 22:43:45 (<nil>\bootes) mapshare \\192.168.1.200\VAC -> A: vac /n/vac


2011/4/13 <cinap_lenrek@gmx.de>
cifsd expetcts that the 9fs $foo command mounts the filesystem to
/n/$foo where $foo is derived from the smb share name by turning all
upper case characters to lower case.

so if 9fs vac.1 mounts to /n/1 instead of /n/vac.1 you will get a
empty directory in cifsd because it will look in /n/vac.1.

but this does not explain the error 64...

do you logon to the cifsd server with the right plan9 user name? šhave
you tried running the 9fs command as the same user?

do you see anything in /sys/log/cifsd?

--
cinap


---------- ðÅÒÅÓÙÌÁÅÍÏÅ ÓÏÏÂÝÅÎÉÅ ----------
From:šSergey Kornilovich <root81@gmail.com>
To:šFans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Date:šWed, 13 Apr 2011 13:54:34 +0400
Subject:šRe: [9fans] cifsd

Trying to connect the vac file through cifsd.
net use Y: \ \ 192.168.0.190 \ 1.vac (/ lib/vac/1.vac exist and "9fs 1.vac" command mount 1.vac in / n / 1)
But on the windows client receives:
C: \> net use Y: \ \ 192.168.0.190 \ 1.vac
pause for 1 minute
System error 64 has occurred.

The specified network name is no longer available.

Show you how to do it right?

P.S. Local connection works fine.
C: \> net use Y: \ \ 192.168.0.190 \ local
The command completed successfully.

2010/9/22 David Leimbach <leimy2k@gmail.com>


On Tue, Sep 21, 2010 at 5:35 PM, Akshat <akumar@mail.nanosouffle.net> wrote:
Just for the official record: cifsd works perfectly fine with Windows 7.

Cinap's approach to the problem of packet-based protocols is elegant, efficient, and through the invent of printf-alike functions, fits well with the Plan 9 programming suite/style.

Looks like a LinkedIn recommendation! šI would use this but I've been happily windows free for years now. šWindows 7 seems to be drawing people back in, but I'm not sure I want to make the leap yet. šDepends if Apple turns Mac OS X into the iOS developer platform only or not I suppose.

Dave
š

Well done.
ak

On Sep 20, 2010, at 20:34, cinap_lenrek@gmx.de wrote:

after doing some patching on aquarela, wrote a cifs/smb server
from scratch and got it down to 3350 lines of code.

it uses binary regular expressions to unpack and pack the
various nested sub-structures in the packets.

/n/sources/cinap_lenrek/cifsd.tgz
http://9hal.ath.cx/usr/cinap_lenrek/cifsd.tgz

features include:

run from listen(8) as none, so more secure.

uses syslog() for informational logging (auth/share
accesses/errors/warnings). šdebug tracing can be done with a separate
debug trace file.

open/read/write/close/rename/delete files and directories.

fixed auth so it doesnt fail half the time. the trick was to delay the
auth failure to the TREE_CONNECT_ANDX, otherwise windows
will try over and over again with wrong password and username
combinations.

moving files/directories works by returning a special error code to
instruct the client to do a recursive copy.

impements/pretends enougth IPC$/rap to get the local share listed.

not implemented:

oplocks
wildcard matching (will do (again))
netbios nameservice
named pipes/mailslots
setting file attributes
NT_TRANSACT / acls
anything i'v not seen while testing with w2k and wxp

i'm interested in feedback. expecially tests with vista or w7.

--
cinap