AQUARELA(8)                                           AQUARELA(8)

     NAME
          aquarela - CIFS server

     SYNOPSIS
          aquarela [ -np ] [ -d debug ] [ -u N ] [ -w workgroup ]

     DESCRIPTION
          Aquarela provides CIFS (once known as SMB) access to Plan 9
          file servers.  It announces and subsequently listens on
          tcp!*!445 for connections to the file hierarchies called
          `shares' by CIFS.  Users are authenticated with their APOP
          secret (see auth(8)). Each session is managed by a process
          running as the authenticated user.  Two persistent processes
          handle listening, session setup, and housekeeping.

          An aquarela CIFS share corresponds to a directory under /n.
          A client request for a specific share, say, share, causes
          aquarela to attempt a 9fs (in srv(4)) connection to the file
          server share.  If connection succeeds, a file hierarchy
          rooted at /n/share is presented to the client.  The client
          request fails otherwise.  Requests for the protocol equiva-
          lent of / are satisfied with a directory containing only the
          default share, local.

          The options are:

          -n   Enable limited NETBIOS service.  Aquarela will register
               with the `master browser' for workgroup and listen on
               tcp!*!139 and udp!*!13[7-9] for NETBIOS name resolution
               and session requests.  This works in tandem with a com-
               plete NETBIOS master name server, like that provided by
               Unix nmbd(8).  NETBIOS is not required for CIFS file
               service.
          -u N Send Unicode.  For N, 1 enables, 0 disables Unicoding
               of file names and metadata.  There is no code page sup-
               port, so aquarela emits UTF if N is 0.
          -w workgroup
               Set workgroup (or `primary domain') of server.  Default
               PLAN9.

     EXAMPLE
          To start CIFS service on system plan9:

               % aquarela -u 1 &

          To then make the dump filesystem available as drive Y: on a
          Windows machine:

               C:\>net use Y: \\plan9.example.com\dump

     AQUARELA(8)                                           AQUARELA(8)

     FILES
          /n/local           Default CIFS share
          /sys/log/aquarela  Log file

     SOURCE
          /sys/src/cmd/aquarela

     SEE ALSO
          auth(8), srv(4), utf(6)

     DIAGNOSTICS
          Log messages are appended to /sys/log/aquarela if it exists.
          The -p option prints them on standard output as well.  The
          -d option adds verbose output about debug to the log mes-
          sages, where debug is one of:

          allcmds       All CIFS requests and responses.
          tids          Connections and disconnections per-share.
          sids          Creation and deletion of search ids.
          fids          Creation and deletion of file ids.
          rap2          RAP calls.
          find          Transaction2 find commands.
          query         Transaction2 query commands.
          sharedfiles   All files opened.
          poolparanoia  Draconian error checking in memory allocator.
          sessions      Connections and disconnections on server.
          rep           Regular expression conversions.
          locks         Locking activity.
          any-smb-name  Debug only SMB_ requests or transaction2 sub-
                        requests (e.g., SMB_COM_SESSION_SETUP_ANDX or
                        SMB_TRANS2_FIND_FIRST2) matching symbolic name
                        any-smb-name.
          0xnn          Debug only messages with hexadecimal id 0xnn.

     BUGS
          The first connection attempt to a share sometimes fails
          erroneously - try again.  The share disk space reported by
          some clients is inaccurate.  Some clients can't rename
          directories.  Write attempts without sufficient permissions
          fail (correctly), but appear on client to temporarily suc-
          ceed.

          This program should probably be named cifsserver.