From: leslie Date: Sat, 25 Sep 2010 20:49:54 +0000 (+0200) Subject: added jwc's network deadlock patch X-Git-Tag: upstream/620~66 X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=23d1d2b1f10a3272220fc8eff2846fca38b522e1;p=sasc-ng.git added jwc's network deadlock patch --- diff --git a/network.c b/network.c index f8ccaf1..9299d80 100644 --- a/network.c +++ b/network.c @@ -192,7 +192,7 @@ bool cNetSocket::Connect(const char *Hostname, int Port, int timeout) } else PRINTF(L_GEN_ERROR,"socket: connect failed: %s",*StrError(errno)); - if(connected) { Activity(); nw.Up(this); Unlock(); return true; } + if(connected) { Activity(); Unlock(); nw.Up(this); return true; } } Unlock(); Disconnect(); @@ -216,7 +216,7 @@ bool cNetSocket::Bind(const char *Hostname, int Port) do { r=bind(sd,(struct sockaddr *)&socketAddr,sizeof(socketAddr)); } while(r<0 && errno==EINTR); if(r==0) { connected=true; - Activity(); nw.Up(this); Unlock(); + Activity(); Unlock(); nw.Up(this); return true; } else PRINTF(L_GEN_ERROR,"socket: bind failed: %s",*StrError(errno)); @@ -228,8 +228,8 @@ bool cNetSocket::Bind(const char *Hostname, int Port) void cNetSocket::Disconnect(void) { - cMutexLock lock(this); nw.Down(this); + cMutexLock lock(this); if(sd>=0) { close(sd); sd=-1; } quietlog=connected=false; }