#
The Protocol Used Between the Director and the File Daemon

A typical conversation might look like the following:

    FD: listens
    DR: makes connection
    DR: Hello <Director-name> calling <password>
    FD: 2000 OK Hello
    DR: JobId=nnn Authorization=<password>
    FD: 2000 OK Job
    DR: storage address = <Storage daemon address> port = <port-number>
              name = <DeviceName> mediatype = <MediaType>
    FD: 2000 OK storage
    DR: include
    DR: <directory1>
    DR: <directory2>
        ...
    DR: Null packet
    FD: 2000 OK include
    DR: exclude
    DR: <directory1>
    DR: <directory2>
        ...
    DR: Null packet
    FD: 2000 OK exclude
    DR: full
    FD: 2000 OK full
    DR: save
    FD: 2000 OK save
    FD: Attribute record for each file as sent to the
        Storage daemon (described above).
    FD: Null packet
    FD: <append close responses from Storage daemon>
        e.g.
        3000 OK Volumes = <number of volumes>
        3001 Volume = <volume-id> <start file> <start block>
             <end file> <end block> <volume session-id>
        3002 Volume data = <date/time of last write> <Number bytes written>
             <number errors>
        ... additional Volume / Volume data pairs for volumes 2 .. n
    FD: Null packet
    FD: close socket