From: Stephen D. <sd...@us...> - 2005-06-13 06:14:36
|
Update of /cvsroot/naviserver/naviserver/nsd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18750/nsd Modified Files: adpparse.c compress.c listen.c sock.c tclimg.c tclmisc.c tclresp.c uuencode.c Log Message: * include/ns.h: * nsd/adpparse.c: * nsd/compress.c: * nsd/listen.c: * nsd/sock.c: * nsd/tclimg.c: * nsd/tclmisc.c: * nsd/tclresp.c: * nsd/uuencode.c: * nscp/nscp.c: * tests/tclresp.test: Fix some issues with mixing signed/unsigned data that gcc4 was complaining about and a couple of instances of uninitialised variables. Index: compress.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/compress.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** compress.c 10 Jun 2005 17:58:38 -0000 1.2 --- compress.c 13 Jun 2005 06:14:26 -0000 1.3 *************** *** 67,71 **** int ! Ns_CompressGzip(char *buf, int len, Tcl_DString *outPtr, int level) { uLongf glen; --- 67,71 ---- int ! Ns_CompressGzip(const char *buf, int len, Tcl_DString *outPtr, int level) { uLongf glen; *************** *** 89,93 **** skip = sizeof(header) - 2; glen -= skip; ! if (compress2(gbuf + skip, &glen, buf, (uLong) len, level) != Z_OK) { return NS_ERROR; } --- 89,93 ---- skip = sizeof(header) - 2; glen -= skip; ! if (compress2((Bytef *) gbuf + skip, &glen, (Bytef *) buf, (uLong) len, level) != Z_OK) { return NS_ERROR; } *************** *** 100,104 **** crc = crc32(0, Z_NULL, 0); ! crc = crc32(crc, buf, len); footer[0] = htonl(crc); footer[1] = htonl(len); --- 100,104 ---- crc = crc32(0, Z_NULL, 0); ! crc = crc32(crc, (Bytef *) buf, len); footer[0] = htonl(crc); footer[1] = htonl(len); *************** *** 136,140 **** */ int ! Ns_Compress(char *buf, int len, Tcl_DString *outPtr, int level) { return Ns_CompressGzip(buf, len, outPtr, level); --- 136,140 ---- */ int ! Ns_Compress(const char *buf, int len, Tcl_DString *outPtr, int level) { return Ns_CompressGzip(buf, len, outPtr, level); Index: tclmisc.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/tclmisc.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** tclmisc.c 12 Jun 2005 14:42:44 -0000 1.8 --- tclmisc.c 13 Jun 2005 06:14:26 -0000 1.9 *************** *** 393,398 **** NsTclHTUUDecodeObjCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj **objv) { ! int size; ! char *string, *decoded; if (objc != 2) { --- 393,399 ---- NsTclHTUUDecodeObjCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj **objv) { ! int size; ! char *string; ! unsigned char *decoded; if (objc != 2) { *************** *** 402,409 **** string = Tcl_GetStringFromObj(objv[1], &size); size += 3; ! decoded = ns_malloc((size_t)size); ! size = Ns_HtuuDecode(string, (unsigned char *) decoded, size); decoded[size] = '\0'; ! Tcl_SetObjResult(interp, Tcl_NewByteArrayObj(decoded,size)); ns_free(decoded); return TCL_OK; --- 403,410 ---- string = Tcl_GetStringFromObj(objv[1], &size); size += 3; ! decoded = ns_malloc(size); ! size = Ns_HtuuDecode(string, decoded, size); decoded[size] = '\0'; ! Tcl_SetObjResult(interp, Tcl_NewByteArrayObj(decoded, size)); ns_free(decoded); return TCL_OK; *************** *** 1052,1061 **** NsTclSHA1ObjCmd(ClientData arg, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ! SHA_CTX ctx; ! char digest[20]; ! char digestChars[41]; ! int i; ! char *str; ! int strLen; if (objc != 2) { --- 1053,1062 ---- NsTclSHA1ObjCmd(ClientData arg, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ! SHA_CTX ctx; ! unsigned char digest[20]; ! char digestChars[41]; ! int i; ! char *str; ! int strLen; if (objc != 2) { *************** *** 1066,1075 **** str = Tcl_GetStringFromObj(objv[1],&strLen); SHAInit(&ctx); ! SHAUpdate(&ctx, str, (unsigned int) strLen); SHAFinal(digest, &ctx); for (i = 0; i < 20; ++i) { ! digestChars[i * 2] = hexChars[(unsigned char)(digest[i]) >> 4]; ! digestChars[i * 2 + 1] = hexChars[(unsigned char)(digest[i]) & 0xF]; } digestChars[40] = '\0'; --- 1067,1076 ---- str = Tcl_GetStringFromObj(objv[1],&strLen); SHAInit(&ctx); ! SHAUpdate(&ctx, (unsigned char *) str, (unsigned int) strLen); SHAFinal(digest, &ctx); for (i = 0; i < 20; ++i) { ! digestChars[i * 2] = hexChars[digest[i] >> 4]; ! digestChars[i * 2 + 1] = hexChars[digest[i] & 0xF]; } digestChars[40] = '\0'; Index: listen.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/listen.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** listen.c 10 Jun 2005 17:58:39 -0000 1.2 --- listen.c 13 Jun 2005 06:14:26 -0000 1.3 *************** *** 222,226 **** { struct sockaddr_in sa; ! int len; Tcl_HashTable *tablePtr; Tcl_HashEntry *hPtr; --- 222,226 ---- { struct sockaddr_in sa; ! socklen_t len; Tcl_HashTable *tablePtr; Tcl_HashEntry *hPtr; Index: uuencode.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/uuencode.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** uuencode.c 10 Jun 2005 17:58:41 -0000 1.3 --- uuencode.c 13 Jun 2005 06:14:26 -0000 1.4 *************** *** 111,115 **** p = input; ! q = output; for (n = len / 3; n > 0; --n) { *q++ = ENC(p[0] >> 2); --- 111,115 ---- p = input; ! q = (unsigned char *) output; for (n = len / 3; n > 0; --n) { *q++ = ENC(p[0] >> 2); *************** *** 189,193 **** n = 0; ! p = input; q = output; while (*p) { --- 189,193 ---- n = 0; ! p = (unsigned char *) input; q = output; while (*p) { Index: tclimg.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/tclimg.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** tclimg.c 10 Jun 2005 17:58:40 -0000 1.2 --- tclimg.c 13 Jun 2005 06:14:26 -0000 1.3 *************** *** 180,184 **** NsTclJpegSizeObjCmd(ClientData arg, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ! int code, w, h; Tcl_Channel chan; --- 180,184 ---- NsTclJpegSizeObjCmd(ClientData arg, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ! int code, w = 0, h = 0; Tcl_Channel chan; Index: sock.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/sock.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** sock.c 10 Jun 2005 17:58:39 -0000 1.3 --- sock.c 13 Jun 2005 06:14:26 -0000 1.4 *************** *** 210,214 **** SOCKET sock; ! sock = accept(lsock, saPtr, lenPtr); if (sock != INVALID_SOCKET) { sock = SockSetup(sock); --- 210,214 ---- SOCKET sock; ! sock = accept(lsock, saPtr, (socklen_t *) lenPtr); if (sock != INVALID_SOCKET) { sock = SockSetup(sock); *************** *** 350,354 **** { SOCKET sock; ! int len, err; /* --- 350,355 ---- { SOCKET sock; ! int err; ! socklen_t len; /* *************** *** 359,370 **** sock = SockConnect(host, port, lhost, lport, 1); if (sock != INVALID_SOCKET) { ! len = sizeof(err); ! if (Ns_SockWait(sock, NS_SOCK_WRITE, timeout) == NS_OK ! && getsockopt(sock, SOL_SOCKET, SO_ERROR, (char *) &err, &len) == 0 ! && err == 0) { ! return sock; ! } ! ns_sockclose(sock); ! sock = INVALID_SOCKET; } return sock; --- 360,371 ---- sock = SockConnect(host, port, lhost, lport, 1); if (sock != INVALID_SOCKET) { ! len = sizeof(err); ! if (Ns_SockWait(sock, NS_SOCK_WRITE, timeout) == NS_OK ! && getsockopt(sock, SOL_SOCKET, SO_ERROR, (char *) &err, &len) == 0 ! && err == 0) { ! return sock; ! } ! ns_sockclose(sock); ! sock = INVALID_SOCKET; } return sock; Index: adpparse.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/adpparse.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** adpparse.c 10 Jun 2005 17:58:38 -0000 1.2 --- adpparse.c 13 Jun 2005 06:14:26 -0000 1.3 *************** *** 558,571 **** Tag *tagPtr = NULL; char *ss = NULL, *se = NULL, *s = NULL, *e = NULL; ! char *a = NULL, *as = NULL, *ae = NULL , *t = NULL; ! int level = 0, state, stream, streamdone; Tcl_DString tag; Tcl_HashEntry *hPtr = NULL; Tcl_DStringInit(&tag); - t = utf; - streamdone = 0; - state = 0; Ns_RWLockRdLock(&servPtr->adp.taglock); while ((s = strchr(utf, '<')) && (e = strchr(s, '>'))) { /* --- 558,569 ---- Tag *tagPtr = NULL; char *ss = NULL, *se = NULL, *s = NULL, *e = NULL; ! char *a = NULL, *as = NULL, *ae = NULL , *t = utf; ! int level = 0, state = 0, stream = 0, streamdone = 0; Tcl_DString tag; Tcl_HashEntry *hPtr = NULL; Tcl_DStringInit(&tag); Ns_RWLockRdLock(&servPtr->adp.taglock); + while ((s = strchr(utf, '<')) && (e = strchr(s, '>'))) { /* Index: tclresp.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/tclresp.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** tclresp.c 10 Jun 2005 17:58:40 -0000 1.7 --- tclresp.c 13 Jun 2005 06:14:26 -0000 1.8 *************** *** 161,165 **** * * Side effects: ! * String may be transcoded. Connection will be closed. * *---------------------------------------------------------------------- --- 161,166 ---- * * Side effects: ! * String may be transcoded if binary switch not given. Connection ! * will be closed. * *---------------------------------------------------------------------- *************** *** 170,205 **** { Ns_Conn *conn; ! unsigned char *data = 0, *type = 0; ! int result, param = 1, status = 0, len = 0, binary = 0; ! if (objc != 4 && objc != 5) { ! Tcl_WrongNumArgs(interp, 1, objv, "?-binary? status type string"); ! return TCL_ERROR; ! } ! if (objc == 5) { ! if(strcmp(Tcl_GetString(objv[param]),"-binary")) { ! Tcl_WrongNumArgs(interp, 1, objv, "?-binary? status type string"); ! return TCL_ERROR; ! } ! binary = 1; ! param++; ! } ! if (Tcl_GetIntFromObj(interp, objv[param], &status) != TCL_OK) { return TCL_ERROR; } - type = Tcl_GetString(objv[param+1]); - if (binary != 0) { - data = Tcl_GetByteArrayFromObj(objv[param+2], &len); - } else { - data = Tcl_GetStringFromObj(objv[param+2], &len); - } if (GetConn(arg, interp, &conn) != TCL_OK) { return TCL_ERROR; } ! if(binary != 0) { ! result = Ns_ConnReturnData(conn, status, data, len, type); } else { ! result = Ns_ConnReturnCharData(conn, status, data, len, type); } return Result(interp, result); } --- 171,202 ---- { Ns_Conn *conn; ! Tcl_Obj *dataObj; ! char *type, *data; ! int status, len, result, binary = NS_FALSE; ! Ns_ObjvSpec opts[] = { ! {"-binary", Ns_ObjvBool, &binary, (void *) NS_TRUE}, ! {NULL, NULL, NULL, NULL} ! }; ! Ns_ObjvSpec args[] = { ! {"status", Ns_ObjvInt, &status, NULL}, ! {"type", Ns_ObjvString, &type, NULL}, ! {"data", Ns_ObjvObj, &dataObj, NULL}, ! {NULL, NULL, NULL, NULL} ! }; ! if (Ns_ParseObjv(opts, args, interp, 1, objc, objv) != NS_OK) { return TCL_ERROR; } if (GetConn(arg, interp, &conn) != TCL_OK) { return TCL_ERROR; } ! if (binary) { ! data = (char *) Tcl_GetByteArrayFromObj(dataObj, &len); ! result = Ns_ConnReturnData(conn, status, data, len, type); } else { ! data = Tcl_GetStringFromObj(dataObj, &len); ! result = Ns_ConnReturnCharData(conn, status, data, len, type); } + return Result(interp, result); } |