Provided by: libixp-dev_0.6~20121202+hg148-2build1_amd64 bug


       Ixp9Srv, Ixp9Req, ixp_serve9conn


       #include <ixp.h>

       typedef struct Ixp9Srv Ixp9Srv;
       struct Ixp9Srv {
               void* aux;
               void (*attach)(Ixp9Req*);
               void (*clunk)(Ixp9Req*);
               void (*create)(Ixp9Req*);
               void (*flush)(Ixp9Req*);
               void (*open)(Ixp9Req*);
               void (*read)(Ixp9Req*);
               void (*remove)(Ixp9Req*);
               void (*stat)(Ixp9Req*);
               void (*walk)(Ixp9Req*);
               void (*write)(Ixp9Req*);
               void (*wstat)(Ixp9Req*);
               void (*freefid)(IxpFid*);

       typedef struct Ixp9Req Ixp9Req;
       struct Ixp9Req {
               Ixp9Srv*        srv;
               IxpFid*         fid;    /* Fid structure corresponding to IxpFHdr.fid */
               IxpFid*         newfid; /* Corresponds to IxpFTWStat.newfid */
               Ixp9Req*        oldreq; /* For TFlush requests, the original request. */
               IxpFcall        ifcall; /* The incoming request fcall. */
               IxpFcall        ofcall; /* The response fcall, to be filled by handler. */
               void*           aux;    /* Arbitrary pointer, to be used by handlers. */

               /* Private members */

       void ixp_serve9conn(IxpConn *c);


       The  ixp_serve9conn  handles  incoming 9P connections. It is ordinarily passed as the read
       member to ixp_listen(3) with an Ixp9Srv structure passed as the aux member.  The  handlers
       defined  in  the  Ixp9Srv structure are called whenever a matching Fcall type is received.
       The handlers are expected to call ixp_respond(3) at some point, whether before they return
       or  at some undefined point in the future. Whenever a client disconnects, libixp generates
       whatever flush and clunk events are required to leave the connection in a clean state  and
       waits for all responses before freeing the connections associated data structures.

       Whenever  a  file  is  closed and an IxpFid(3) is about to be freed, the freefid member is
       called to perform any necessary cleanup and to free any associated resources.


       ixp_listen(3), ixp_respond(3), ixp_printfcall(3), IxpFcall(3), IxpFid(3)