From ccb1837a1481ed3d9048f2e4d0d5d6309f14d17d Mon Sep 17 00:00:00 2001 From: brain Date: Fri, 14 Jul 2006 11:43:17 +0000 Subject: Fix dns socket leak found in stable git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4383 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/users.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/users.cpp') diff --git a/src/users.cpp b/src/users.cpp index f455bb825..4918c417b 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -202,7 +202,9 @@ userrec::userrec() invites.clear(); chans.resize(MAXCHANS); memset(modes,0,sizeof(modes)); - +#ifndef THREADED_DNS + dns_fd = -1; +#endif for (unsigned int n = 0; n < MAXCHANS; n++) { ucrec* x = new ucrec(); @@ -219,6 +221,11 @@ userrec::~userrec() ucrec* x = (ucrec*)*n; DELETE(x); } + if (dns_fd > -1) + { + shutdown(dns_fd, 2); + close(dns_fd); + } } /* XXX - minor point, other *Host functions return a char *, this one creates it. Might be nice to be consistant? */ -- cgit v1.2.3