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
