Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

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