From: Zoran V. <vas...@us...> - 2005-05-21 14:17:13
|
Update of /cvsroot/naviserver/naviserver/nsd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24628 Modified Files: driver.c Log Message: Fixed coredump in NsStartDrivers() which happened if the driver does not have bindaddr set (i.e. it is NULL). Index: driver.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/driver.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** driver.c 20 May 2005 20:53:54 -0000 1.6 --- driver.c 21 May 2005 14:17:05 -0000 1.7 *************** *** 434,458 **** drvPtr = firstDrvPtr; while (drvPtr != NULL) { ! if (drvPtr->bindaddr[0] == '/') { drvPtr->opts |= NS_DRIVER_UNIX; } if (drvPtr->opts & NS_DRIVER_UDP) { drvPtr->sock = Ns_SockListenUdp(drvPtr->bindaddr, drvPtr->port); ! } else ! if (drvPtr->opts & NS_DRIVER_UNIX) { drvPtr->sock = Ns_SockListenUnix(drvPtr->bindaddr); } else { ! drvPtr->sock = Ns_SockListenEx(drvPtr->bindaddr, drvPtr->port, drvPtr->backlog); } ! if (drvPtr->sock == INVALID_SOCKET) { ! Ns_Log(Error, "%s: failed to listen on %s:%d: %s", ! drvPtr->name, drvPtr->address, drvPtr->port, ! ns_sockstrerror(ns_sockerrno)); ! } else { Ns_SockSetNonBlocking(drvPtr->sock); Ns_Log(Notice, "%s: listening on %s:%d", ! drvPtr->name, drvPtr->address, drvPtr->port); ! } ! drvPtr = drvPtr->nextPtr; } --- 434,458 ---- drvPtr = firstDrvPtr; while (drvPtr != NULL) { ! if (drvPtr->bindaddr && drvPtr->bindaddr[0] == '/') { drvPtr->opts |= NS_DRIVER_UNIX; } if (drvPtr->opts & NS_DRIVER_UDP) { drvPtr->sock = Ns_SockListenUdp(drvPtr->bindaddr, drvPtr->port); ! } else if (drvPtr->opts & NS_DRIVER_UNIX) { drvPtr->sock = Ns_SockListenUnix(drvPtr->bindaddr); } else { ! drvPtr->sock = Ns_SockListenEx(drvPtr->bindaddr, drvPtr->port, ! drvPtr->backlog); } ! if (drvPtr->sock == INVALID_SOCKET) { ! Ns_Log(Error, "%s: failed to listen on %s:%d: %s", ! drvPtr->name, drvPtr->address, drvPtr->port, ! ns_sockstrerror(ns_sockerrno)); ! } else { Ns_SockSetNonBlocking(drvPtr->sock); Ns_Log(Notice, "%s: listening on %s:%d", ! drvPtr->name, drvPtr->address, drvPtr->port); ! } ! drvPtr = drvPtr->nextPtr; } |