|  | .TH ATTACH 9P | 
|  | .SH NAME | 
|  | attach, auth \- messages to establish a connection | 
|  | .SH SYNOPSIS | 
|  | .ta \w'\fLTauth 'u | 
|  | .IR size [4] | 
|  | .B Tauth | 
|  | .IR tag [2] | 
|  | .IR afid [4] | 
|  | .IR uname [ s ] | 
|  | .IR aname [ s ] | 
|  | .br | 
|  | .IR size [4] | 
|  | .B Rauth | 
|  | .IR tag [2] | 
|  | .IR aqid [13] | 
|  | .PP | 
|  | .IR size [4] | 
|  | .B Tattach | 
|  | .IR tag [2] | 
|  | .IR fid [4] | 
|  | .IR afid [4] | 
|  | .IR uname [ s ] | 
|  | .IR aname [ s ] | 
|  | .br | 
|  | .IR size [4] | 
|  | .B Rattach | 
|  | .IR tag [2] | 
|  | .IR qid [13] | 
|  | .SH DESCRIPTION | 
|  | .PP | 
|  | The | 
|  | .B attach | 
|  | message serves as a fresh introduction from a user on | 
|  | the client machine to the server. | 
|  | The message identifies the user | 
|  | .RI ( uname ) | 
|  | and may select | 
|  | the file tree to access | 
|  | .RI ( aname ). | 
|  | The | 
|  | .I afid | 
|  | argument specifies a fid previously established by an | 
|  | .B auth | 
|  | message, as described below. | 
|  | .PP | 
|  | As a result of the | 
|  | .B attach | 
|  | transaction, the client will have a connection to the root | 
|  | directory of the desired file tree, | 
|  | represented by | 
|  | .IR fid . | 
|  | An error is returned if | 
|  | .I fid | 
|  | is already in use. | 
|  | The server's idea of the root of the file tree is represented by the returned | 
|  | .IR qid . | 
|  | .PP | 
|  | If the client does not wish to authenticate the connection, or knows that | 
|  | authentication is not required, the | 
|  | .I afid | 
|  | field in the | 
|  | .B attach | 
|  | message should be set to | 
|  | .BR NOFID , | 
|  | defined as | 
|  | .B (u32int)~0 | 
|  | in | 
|  | .BR <fcall.h> . | 
|  | If the client does wish to authenticate, it must acquire and validate an | 
|  | .I afid | 
|  | using an | 
|  | .B auth | 
|  | message before doing the | 
|  | .BR attach . | 
|  | .PP | 
|  | The | 
|  | .B auth | 
|  | message contains | 
|  | .IR afid , | 
|  | a new fid to be established for authentication, and the | 
|  | .I uname | 
|  | and | 
|  | .I aname | 
|  | that will be those of the following | 
|  | .B attach | 
|  | message. | 
|  | If the server does not require authentication, it returns | 
|  | .B Rerror | 
|  | to the | 
|  | .B Tauth | 
|  | message. | 
|  | .PP | 
|  | If the server does require authentication, it returns | 
|  | .I aqid | 
|  | defining a file of type | 
|  | .B QTAUTH | 
|  | (see | 
|  | .IR intro (9P)) | 
|  | that may be read and written (using | 
|  | .B read | 
|  | and | 
|  | .B write | 
|  | messages in the usual way) to execute an authentication protocol. | 
|  | That protocol's definition is not part of 9P itself. | 
|  | .PP | 
|  | Once the protocol is complete, the same | 
|  | .I afid | 
|  | is presented in the | 
|  | .B attach | 
|  | message for the user, granting entry. | 
|  | The same validated | 
|  | .I afid | 
|  | may be used for multiple | 
|  | .B attach | 
|  | messages with the same | 
|  | .I uname | 
|  | and | 
|  | .IR aname . | 
|  | .SH ENTRY POINTS | 
|  | .I Fsmount | 
|  | and | 
|  | .I fsauth | 
|  | (see | 
|  | .IR 9pclient (3)) | 
|  | generate | 
|  | .B attach | 
|  | and | 
|  | .B auth | 
|  | transactions. | 
|  | .\" An | 
|  | .\" .B attach | 
|  | .\" transaction will be generated for kernel devices | 
|  | .\" (see | 
|  | .\" .IR intro (3)) | 
|  | .\" when a system call evaluates a file name | 
|  | .\" beginning with | 
|  | .\" .LR # . | 
|  | .\" .IR Pipe (2) | 
|  | .\" generates an attach on the kernel device | 
|  | .\" .IR pipe (3). | 
|  | .\" The | 
|  | .\" .I mount | 
|  | .\" system call | 
|  | .\" (see | 
|  | .\" .IR bind (2)) | 
|  | .\" generates an | 
|  | .\" .B attach | 
|  | .\" message to the remote file server. | 
|  | .\" When the kernel boots, an | 
|  | .\" .I attach | 
|  | .\" is made to the root device, | 
|  | .\" .IR root (3), | 
|  | .\" and then an | 
|  | .\" .B attach | 
|  | .\" is made to the requested file server machine. | 
|  | .\" .PP | 
|  | .\" An | 
|  | .\" .B auth | 
|  | .\" transaction is generated by the | 
|  | .\" .IR fauth (2) | 
|  | .\" system call or by the first | 
|  | .\" .B mount | 
|  | .\" system call on an uninitialized connection. | 
|  | .SH SEE ALSO | 
|  | .IR 9pclient (3), | 
|  | .IR version (9P), | 
|  | Plan 9's \fIauthsrv\fR(6) |