#
The Protocol Used Between the Director and the Storage Daemon

Before sending commands to the File daemon, the Director opens a Message channel with the Storage daemon, identifies itself and presents its password. If the password check is OK, the Storage daemon accepts the Director. The Director then passes the Storage daemon, the JobId to be run as well as the File daemon authorization (append, read all, or read for a specific session). The Storage daemon will then pass back to the Director a enabling key for this JobId that must be presented by the File daemon when opening the job. Until this process is complete, the Storage daemon is not available for use by File daemons.

    SD: listens
    DR: makes connection
    DR: Hello <Director-name> calling <password>
    SD: 3000 OK Hello
    DR: JobId=nnn Allow=(append, read) Session=(*, SessionId)
                        (Session not implemented yet)
    SD: 3000 OK Job Authorization=<password>
    DR: use device=<device-name> media_type=<media-type>
            pool_name=<pool-name> pool_type=<pool_type>
    SD: 3000 OK use device

For the Director to be authorized, the <Director-name> and the <password> must match the values in one of the Storage daemon's Director resources (there may be several Directors that can access a single Storage daemon).