crossroads

Git mirror of https://crossroads.e-tunity.com/
git clone git://git.finwo.net/app/crossroads
Log | Files | Refs | LICENSE

close.cc (351B)


      1 #include "basesocket"
      2 
      3 void Basesocket::close() {
      4     if (_initialized && _fd > 0) {
      5 	debugmsg("Shutting down socket " << _fd << '\n');
      6 	if (config.fastclose()) {
      7 	    struct linger l;
      8 	    l.l_onoff = 1;
      9 	    l.l_linger = 2;
     10 	    setsockopt (_fd, SOL_SOCKET, SO_LINGER, &l, sizeof(l));
     11 	}
     12 	shutdown(_fd, SHUT_RDWR);
     13 	::close(_fd);
     14 	_fd = -1;
     15     }
     16 }