From: Vlad S. <ser...@us...> - 2005-08-10 04:47:50
|
Update of /cvsroot/naviserver/modules/nssys In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16802 Modified Files: tclsys.c Log Message: Index: tclsys.c =================================================================== RCS file: /cvsroot/naviserver/modules/nssys/tclsys.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** tclsys.c 7 Aug 2005 22:15:09 -0000 1.5 --- tclsys.c 8 Aug 2005 18:56:59 -0000 1.6 *************** *** 1816,1845 **** char *address = 0, *port = 0, *data = 0; int sock, len, timeout = 5, retries = 1, noreply = 0; ! ! if(objc < 3) { ! Tcl_WrongNumArgs(interp,1,objv," ?-timeout N -retries N ?-noreply 1|0? address port data"); ! return TCL_ERROR; ! } ! for(i = 1;i < objc-1;i += 2) { ! if(!strcmp(Tcl_GetString(objv[i]),"-timeout")) { ! timeout = atoi(Tcl_GetString(objv[i+1])); ! continue; ! } ! if(!strcmp(Tcl_GetString(objv[i]),"-retries")) { ! retries = atoi(Tcl_GetString(objv[i+1])); ! continue; ! } ! if(!strcmp(Tcl_GetString(objv[i]),"-noreply")) { ! noreply = atoi(Tcl_GetString(objv[i+1])); ! continue; ! } ! break; } ! if(i < objc) address = Tcl_GetString(objv[i++]); ! if(i < objc) port = Tcl_GetString(objv[i++]); ! if(i < objc) data = Tcl_GetStringFromObj(objv[i++],&len); ! if(!address || !port || !data) { ! Tcl_AppendResult(interp, "invalid address ", address, 0); ! return TCL_ERROR; } sa.sin_family = AF_INET; --- 1816,1841 ---- char *address = 0, *port = 0, *data = 0; int sock, len, timeout = 5, retries = 1, noreply = 0; ! ! if (objc < 5) { ! Tcl_WrongNumArgs(interp, 1, objv, "ipaddr port data ?-timeout N? ?-retries N? ?-noreply 1|0?"); ! return TCL_ERROR; } ! address = Tcl_GetString(objv[2]); ! port = Tcl_GetString(objv[3]); ! data = Tcl_GetStringFromObj(objv[4],&len); ! for (i = 5; i < objc-1; i += 2) { ! if (!strcmp(Tcl_GetString(objv[i]),"-timeout")) { ! timeout = atoi(Tcl_GetString(objv[i+1])); ! continue; ! } ! if (!strcmp(Tcl_GetString(objv[i]),"-retries")) { ! retries = atoi(Tcl_GetString(objv[i+1])); ! continue; ! } ! if (!strcmp(Tcl_GetString(objv[i]),"-noreply")) { ! noreply = atoi(Tcl_GetString(objv[i+1])); ! continue; ! } ! break; } sa.sin_family = AF_INET; *************** *** 1857,1860 **** --- 1853,1857 ---- if (sendto(sock, data, len, 0,(struct sockaddr*)&sa, sizeof(sa)) < 0) { Tcl_AppendResult(interp, "sendto error: ", address, ":", port, " ", strerror(errno), 0); + close(sock); return TCL_ERROR; } |