Blame


1 056fe1ba 2003-11-23 devnull #include <u.h>
2 6ce75e8d 2007-04-21 devnull #ifdef PLAN9PORT
3 6fc7da3c 2006-10-19 devnull #include <sys/socket.h>
4 6ce75e8d 2007-04-21 devnull #endif
5 056fe1ba 2003-11-23 devnull #include <libc.h>
6 056fe1ba 2003-11-23 devnull #include <venti.h>
7 056fe1ba 2003-11-23 devnull #include "queue.h"
8 056fe1ba 2003-11-23 devnull
9 056fe1ba 2003-11-23 devnull void
10 056fe1ba 2003-11-23 devnull vthangup(VtConn *z)
11 056fe1ba 2003-11-23 devnull {
12 056fe1ba 2003-11-23 devnull qlock(&z->lk);
13 056fe1ba 2003-11-23 devnull z->state = VtStateClosed;
14 6ce75e8d 2007-04-21 devnull #ifdef PLAN9PORT
15 6ce75e8d 2007-04-21 devnull /* try to make the read in vtrecvproc fail */
16 6fc7da3c 2006-10-19 devnull shutdown(SHUT_WR, z->infd);
17 6fc7da3c 2006-10-19 devnull shutdown(SHUT_WR, z->outfd);
18 6ce75e8d 2007-04-21 devnull #endif
19 056fe1ba 2003-11-23 devnull if(z->infd >= 0)
20 056fe1ba 2003-11-23 devnull close(z->infd);
21 056fe1ba 2003-11-23 devnull if(z->outfd >= 0 && z->outfd != z->infd)
22 056fe1ba 2003-11-23 devnull close(z->outfd);
23 056fe1ba 2003-11-23 devnull z->infd = -1;
24 056fe1ba 2003-11-23 devnull z->outfd = -1;
25 056fe1ba 2003-11-23 devnull if(z->writeq)
26 056fe1ba 2003-11-23 devnull _vtqhangup(z->writeq);
27 056fe1ba 2003-11-23 devnull if(z->readq)
28 056fe1ba 2003-11-23 devnull _vtqhangup(z->readq);
29 056fe1ba 2003-11-23 devnull qunlock(&z->lk);
30 056fe1ba 2003-11-23 devnull }