diff options
Diffstat (limited to 'net/tcl-scotty/patches/patch-tnm_generic_tnmHttp.c')
-rw-r--r-- | net/tcl-scotty/patches/patch-tnm_generic_tnmHttp.c | 327 |
1 files changed, 327 insertions, 0 deletions
diff --git a/net/tcl-scotty/patches/patch-tnm_generic_tnmHttp.c b/net/tcl-scotty/patches/patch-tnm_generic_tnmHttp.c new file mode 100644 index 00000000000..d2567899fce --- /dev/null +++ b/net/tcl-scotty/patches/patch-tnm_generic_tnmHttp.c @@ -0,0 +1,327 @@ +$NetBSD: patch-tnm_generic_tnmHttp.c,v 1.1 2014/03/05 13:52:29 he Exp $ + +Constify. + +--- tnm/generic/tnmHttp.c.orig 1999-04-06 11:13:31.000000000 +0200 ++++ tnm/generic/tnmHttp.c 2014-03-04 18:01:45.000000000 +0100 +@@ -169,20 +169,21 @@ + */ + + static char* +-Base64Encode _ANSI_ARGS_((char *string)); ++Base64Encode _ANSI_ARGS_((const char *string)); + + static char* +-Base64Decode _ANSI_ARGS_((char *string)); ++Base64Decode _ANSI_ARGS_((const char *string)); + + static int +-HttpGetPort _ANSI_ARGS_((char *name)); ++HttpGetPort _ANSI_ARGS_((const char *name)); + + static HttpUrl* +-HttpSplitUrl _ANSI_ARGS_((char *str)); ++HttpSplitUrl _ANSI_ARGS_((const char *str)); + + static void + HttpRequestLine _ANSI_ARGS_((Tcl_Channel channel, +- char *method, char *path)); ++ const char *method, ++ const char *path)); + static void + HttpStatusLine _ANSI_ARGS_((Tcl_Channel channel, int code)); + +@@ -213,7 +214,7 @@ + HttpEvalCallback _ANSI_ARGS_((Tcl_Interp *interp, char *callback, + char *addr, char *url)); + static Tcl_Channel +-HttpOpen _ANSI_ARGS_((char *fileName, char **contentType, ++HttpOpen _ANSI_ARGS_((const char *fileName, char **contentType, + char **contentEncoding, + int *contentLength)); + static void +@@ -228,31 +229,31 @@ + Tcl_Channel dst)); + static int + HttpProxy _ANSI_ARGS_((Tcl_Interp *interp, +- int argc, char **argv)); ++ int argc, const char **argv)); + static int + HttpHead _ANSI_ARGS_((Tcl_Interp *interp, +- int argc, char **argv)); ++ int argc, const char **argv)); + static int + HttpGet _ANSI_ARGS_((Tcl_Interp *interp, +- int argc, char **argv)); ++ int argc, const char **argv)); + static int + HttpPost _ANSI_ARGS_((Tcl_Interp *interp, +- int argc, char **argv)); ++ int argc, const char **argv)); + static int + HttpPut _ANSI_ARGS_((Tcl_Interp *interp, +- int argc, char **argv)); ++ int argc, const char **argv)); + static int + HttpDelete _ANSI_ARGS_((Tcl_Interp *interp, +- int argc, char **argv)); ++ int argc, const char **argv)); + static int + HttpServer _ANSI_ARGS_((Tcl_Interp *interp, +- int argc, char **argv)); ++ int argc, const char **argv)); + static int + HttpBind _ANSI_ARGS_((Tcl_Interp *interp, +- int argc, char **argv)); ++ int argc, const char **argv)); + static int + HttpMime _ANSI_ARGS_((Tcl_Interp *interp, +- int argc, char **argv)); ++ int argc, const char **argv)); + /* + * The following defines are used to implement base64 en/decoding. + * See RFC 1521 for a description of base64 en/decoding. +@@ -294,7 +295,7 @@ + + static char * + Base64Encode(in) +- char *in; ++ const char *in; + { + static char *ret = NULL; + static int size = 0; +@@ -374,7 +375,7 @@ + + static char * + Base64Decode(in) +- char *in; ++ const char *in; + { + static char *ret = NULL; + static int size = 0; +@@ -448,7 +449,7 @@ + + static int + HttpGetPort(name) +- char *name; ++ const char *name; + { + struct sockaddr_in addr; + +@@ -479,7 +480,7 @@ + + static HttpUrl* + HttpSplitUrl(str) +- char *str; ++ const char *str; + { + static HttpUrl url = { 0, 0, 0, 0 }; + char *hbuf; +@@ -595,8 +596,8 @@ + static void + HttpRequestLine(channel, method, path) + Tcl_Channel channel; +- char *method; +- char *path; ++ const char *method; ++ const char *path; + { + Tcl_Write(channel, method, strlen(method)); + Tcl_Write(channel, " ", 1); +@@ -973,7 +974,7 @@ + Tcl_DStringFree(&tclCmd); + + if (code == TCL_ERROR) { +- char *errorMsg = ckstrdup(interp->result); ++ char *errorMsg = ckstrdup(Tcl_GetStringResult(interp)); + Tcl_AddErrorInfo(interp, "\n (http callback)"); + Tcl_BackgroundError(interp); + Tcl_SetResult(interp, errorMsg, TCL_DYNAMIC); +@@ -1005,14 +1006,14 @@ + + static Tcl_Channel + HttpOpen(fileName, contentType, contentEncoding, contentLength) +- char *fileName; ++ const char *fileName; + char **contentType; + char **contentEncoding; + int *contentLength; + { + Tcl_Channel channel; + struct stat st; +- char *dot = NULL; ++ char *dot = NULL, *fn; + int n; + + channel = Tcl_OpenFileChannel(NULL, fileName, "r", 0644); +@@ -1033,21 +1034,22 @@ + * x-compress and x-gzip encoding. This is a quick hack. + */ + +- for (n = strlen(fileName) - 1; n >= 0; n--) { +- if (fileName[n] == '.' && *contentEncoding == NULL) { +- if (strcmp(fileName+n, ".gz") == 0) { ++ fn = ckstrdup(fileName); ++ for (n = strlen(fn) - 1; n >= 0; n--) { ++ if (fn[n] == '.' && *contentEncoding == NULL) { ++ if (strcmp(fn+n, ".gz") == 0) { + *contentEncoding = "x-gzip"; +- dot = fileName + n; ++ dot = fn + n; + *dot = '\0'; +- } else if (strcmp(fileName+n, ".Z") == 0) { ++ } else if (strcmp(fn+n, ".Z") == 0) { + *contentEncoding = "x-compress"; +- dot = fileName + n; ++ dot = fn + n; + *dot = '\0'; + } + } +- if (fileName[n] == '.') { ++ if (fn[n] == '.') { + Tcl_HashEntry *entryPtr; +- entryPtr = Tcl_FindHashEntry(&mimeTypeTable, fileName+n+1); ++ entryPtr = Tcl_FindHashEntry(&mimeTypeTable, fn+n+1); + if (entryPtr) { + *contentType = (char *) Tcl_GetHashValue(entryPtr); + } +@@ -1061,6 +1063,7 @@ + if (! *contentType) { + *contentType = "text/plain"; + } ++ ckfree(fn); + + return channel; + } +@@ -1165,7 +1168,7 @@ + if (rc == TCL_OK) { + char *contentType, *contentEncoding; + int contentLength; +- Tcl_Channel obj = HttpOpen(interp->result, &contentType, ++ Tcl_Channel obj = HttpOpen(Tcl_GetStringResult(interp), &contentType, + &contentEncoding, &contentLength); + if (obj) { + HttpStatusLine(channel, HTTP_OK); +@@ -1179,7 +1182,7 @@ + HttpSendError(channel, HTTP_INTERNAL); + } + } else { +- int code = TnmGetTableKey(httpStatusTable, interp->result); ++ int code = TnmGetTableKey(httpStatusTable, Tcl_GetStringResult(interp)); + HttpSendError(channel, (code < 0) ? HTTP_INTERNAL : code); + } + +@@ -1362,7 +1365,7 @@ + HttpProxy(interp, argc, argv) + Tcl_Interp *interp; + int argc; +- char **argv; ++ const char **argv; + { + if (argc < 2 && argc > 3) { + Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], +@@ -1419,7 +1422,7 @@ + HttpHead(interp, argc, argv) + Tcl_Interp *interp; + int argc; +- char **argv; ++ const char **argv; + { + Tcl_Channel src; + HttpUrl *url; +@@ -1469,7 +1472,7 @@ + HttpGet(interp, argc, argv) + Tcl_Interp *interp; + int argc; +- char **argv; ++ const char **argv; + { + Tcl_Channel src, dst; + HttpUrl *url; +@@ -1530,7 +1533,7 @@ + HttpPost(interp, argc, argv) + Tcl_Interp *interp; + int argc; +- char **argv; ++ const char **argv; + { + Tcl_Channel src, dst, obj; + HttpUrl *url; +@@ -1603,7 +1606,7 @@ + HttpPut(interp, argc, argv) + Tcl_Interp *interp; + int argc; +- char **argv; ++ const char **argv; + { + Tcl_Channel src, obj; + HttpUrl *url; +@@ -1665,7 +1668,7 @@ + HttpDelete(interp, argc, argv) + Tcl_Interp *interp; + int argc; +- char **argv; ++ const char **argv; + { + Tcl_Channel src; + HttpUrl *url; +@@ -1717,10 +1720,11 @@ + HttpServer(interp, argc, argv) + Tcl_Interp *interp; + int argc; +- char **argv; ++ const char **argv; + { + static int port = -1; + static Tcl_Channel channel; ++ char res[20]; + + if (argc < 2 && argc > 3) { + Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], +@@ -1730,7 +1734,8 @@ + + if (argc == 2) { + if (port > 0) { +- sprintf(interp->result, "%d", port); ++ sprintf(res, "%d", port); ++ Tcl_SetResult(interp, res, TCL_VOLATILE); + } + return TCL_OK; + } +@@ -1762,7 +1767,8 @@ + return TCL_ERROR; + } + +- sprintf(interp->result, "%d", port); ++ sprintf(res, "%d", port); ++ Tcl_SetResult(interp, res, TCL_VOLATILE); + return TCL_OK; + } + +@@ -1788,7 +1794,7 @@ + HttpBind(interp, argc, argv) + Tcl_Interp *interp; + int argc; +- char **argv; ++ const char **argv; + { + int eventType = 0; + HttpBinding *bindPtr; +@@ -1878,7 +1884,7 @@ + HttpMime(interp, argc, argv) + Tcl_Interp *interp; + int argc; +- char **argv; ++ const char **argv; + { + Tcl_HashTable *tablePtr = &mimeTypeTable; + Tcl_HashEntry *entryPtr; +@@ -1934,7 +1940,7 @@ + ClientData clientData; + Tcl_Interp *interp; + int argc; +- char **argv; ++ const char **argv; + { + static int initialized = 0; + char c; |