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 }