You can subscribe to this list here.
2005 |
Jan
|
Feb
(32) |
Mar
(56) |
Apr
(92) |
May
(39) |
Jun
(226) |
Jul
(98) |
Aug
(66) |
Sep
|
Oct
(153) |
Nov
(43) |
Dec
(42) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(97) |
Feb
(141) |
Mar
(147) |
Apr
(80) |
May
(51) |
Jun
(93) |
Jul
(88) |
Aug
(50) |
Sep
(179) |
Oct
(48) |
Nov
(82) |
Dec
(71) |
2007 |
Jan
(42) |
Feb
(46) |
Mar
(123) |
Apr
(21) |
May
(139) |
Jun
(59) |
Jul
(34) |
Aug
(57) |
Sep
(47) |
Oct
(137) |
Nov
(49) |
Dec
(12) |
2008 |
Jan
(10) |
Feb
(8) |
Mar
(63) |
Apr
(17) |
May
(34) |
Jun
(38) |
Jul
(16) |
Aug
(62) |
Sep
(9) |
Oct
(121) |
Nov
(38) |
Dec
(4) |
2009 |
Jan
|
Feb
(11) |
Mar
(9) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
(4) |
Apr
(10) |
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
(1) |
Feb
(1) |
Mar
(3) |
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
(2) |
Oct
(1) |
Nov
|
Dec
(12) |
2012 |
Jan
(26) |
Feb
(1) |
Mar
(15) |
Apr
(1) |
May
(1) |
Jun
(7) |
Jul
(2) |
Aug
|
Sep
(1) |
Oct
(52) |
Nov
(8) |
Dec
(25) |
2013 |
Jan
(35) |
Feb
(14) |
Mar
(10) |
Apr
(10) |
May
(29) |
Jun
(16) |
Jul
(5) |
Aug
(8) |
Sep
(8) |
Oct
(6) |
Nov
(1) |
Dec
(3) |
2014 |
Jan
(16) |
Feb
(13) |
Mar
(5) |
Apr
(9) |
May
(21) |
Jun
(6) |
Jul
(5) |
Aug
(2) |
Sep
(59) |
Oct
(115) |
Nov
(122) |
Dec
(45) |
2015 |
Jan
(31) |
Feb
(32) |
Mar
(19) |
Apr
(25) |
May
(3) |
Jun
(4) |
Jul
(18) |
Aug
(3) |
Sep
(23) |
Oct
(11) |
Nov
(17) |
Dec
(12) |
2016 |
Jan
(20) |
Feb
(27) |
Mar
(20) |
Apr
(40) |
May
(35) |
Jun
(48) |
Jul
(44) |
Aug
(51) |
Sep
(18) |
Oct
(42) |
Nov
(39) |
Dec
(29) |
2017 |
Jan
(37) |
Feb
(34) |
Mar
(20) |
Apr
(37) |
May
(10) |
Jun
(2) |
Jul
(14) |
Aug
(15) |
Sep
(25) |
Oct
(29) |
Nov
(15) |
Dec
(29) |
2018 |
Jan
(5) |
Feb
(15) |
Mar
(6) |
Apr
(20) |
May
(39) |
Jun
(39) |
Jul
(17) |
Aug
(20) |
Sep
(10) |
Oct
(17) |
Nov
(20) |
Dec
(8) |
2019 |
Jan
(28) |
Feb
(21) |
Mar
(13) |
Apr
(44) |
May
(44) |
Jun
(28) |
Jul
(51) |
Aug
(30) |
Sep
(7) |
Oct
(20) |
Nov
(8) |
Dec
(21) |
2020 |
Jan
(27) |
Feb
(5) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Stephen D. <sd...@us...> - 2005-10-02 22:23:22
|
Update of /cvsroot/naviserver/naviserver/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17412/include Modified Files: ns.h Log Message: Untabify, reformat, add CONST declarations and GNUC attributes. Index: ns.h =================================================================== RCS file: /cvsroot/naviserver/naviserver/include/ns.h,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** ns.h 19 Aug 2005 07:50:43 -0000 1.49 --- ns.h 2 Oct 2005 22:23:09 -0000 1.50 *************** *** 432,439 **** typedef struct Ns_TclCallback { ! void *cbProc; ! char *server; ! char *script; ! char *scriptarg; } Ns_TclCallback; --- 432,439 ---- typedef struct Ns_TclCallback { ! void *cbProc; ! CONST char *server; ! char *script; ! char *scriptarg; } Ns_TclCallback; *************** *** 522,526 **** typedef void (Ns_TraceProc) (void *arg, Ns_Conn *conn); typedef int (Ns_FilterProc) (void *arg, Ns_Conn *conn, int why); ! typedef int (Ns_UrlToFileProc) (Ns_DString *dsPtr, char *server, char *url); typedef char *(Ns_ServerRootProc) (Ns_DString *dest, CONST char *host, void *arg); typedef char *(Ns_ConnLocationProc) (Ns_Conn *conn, Ns_DString *dest, void *arg); --- 522,526 ---- typedef void (Ns_TraceProc) (void *arg, Ns_Conn *conn); typedef int (Ns_FilterProc) (void *arg, Ns_Conn *conn, int why); ! typedef int (Ns_UrlToFileProc) (Ns_DString *dsPtr, CONST char *server, CONST char *url); typedef char *(Ns_ServerRootProc) (Ns_DString *dest, CONST char *host, void *arg); typedef char *(Ns_ConnLocationProc) (Ns_Conn *conn, Ns_DString *dest, void *arg); *************** *** 542,546 **** */ ! NS_EXTERN int Ns_AdpRegisterParser(char *extension, Ns_AdpParserProc *proc); /* --- 542,547 ---- */ ! NS_EXTERN int ! Ns_AdpRegisterParser(char *extension, Ns_AdpParserProc *proc); /* *************** *** 548,552 **** */ ! NS_EXTERN int Ns_AdpRequest(Ns_Conn *conn, char *file); /* --- 549,555 ---- */ ! NS_EXTERN int ! Ns_AdpRequest(Ns_Conn *conn, CONST char *file) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); /* *************** *** 683,706 **** */ - NS_EXTERN int Ns_ConnClose(Ns_Conn *conn); - NS_EXTERN int Ns_ConnInit(Ns_Conn *connPtr); - NS_EXTERN int Ns_ConnRead(Ns_Conn *conn, void *vbuf, int toread); - NS_EXTERN int Ns_ConnWrite(Ns_Conn *conn, void *buf, int towrite); NS_EXTERN int Ns_ConnContentFd(Ns_Conn *conn); - NS_EXTERN int Ns_ConnReadLine(Ns_Conn *conn, Ns_DString *dsPtr, int *nreadPtr); - NS_EXTERN int Ns_WriteConn(Ns_Conn *conn, char *buf, int len); - NS_EXTERN int Ns_WriteCharConn(Ns_Conn *conn, char *buf, int len); - NS_EXTERN int Ns_ConnPuts(Ns_Conn *conn, char *string); - NS_EXTERN int Ns_ConnSend(Ns_Conn *conn, struct iovec *bufs, int nbufs); - NS_EXTERN int Ns_ConnSendDString(Ns_Conn *conn, Ns_DString *dsPtr); - NS_EXTERN int Ns_ConnSendChannel(Ns_Conn *conn, Tcl_Channel chan, int nsend); - NS_EXTERN int Ns_ConnSendFp(Ns_Conn *conn, FILE *fp, int nsend); - NS_EXTERN int Ns_ConnSendFd(Ns_Conn *conn, int fd, int nsend); - NS_EXTERN int Ns_ConnCopyToDString(Ns_Conn *conn, size_t ncopy, - Ns_DString *dsPtr); - NS_EXTERN int Ns_ConnCopyToChannel(Ns_Conn *conn, size_t ncopy, Tcl_Channel chan); - NS_EXTERN int Ns_ConnCopyToFile(Ns_Conn *conn, size_t ncopy, FILE *fp); - NS_EXTERN int Ns_ConnCopyToFd(Ns_Conn *conn, size_t ncopy, int fd); - NS_EXTERN int Ns_ConnFlushContent(Ns_Conn *conn); NS_EXTERN void Ns_ConnSetEncoding(Ns_Conn *conn, Tcl_Encoding encoding); NS_EXTERN Tcl_Encoding Ns_ConnGetEncoding(Ns_Conn *conn); --- 686,690 ---- *************** *** 708,713 **** NS_EXTERN Tcl_Encoding Ns_ConnGetUrlEncoding(Ns_Conn *conn); NS_EXTERN int Ns_ConnModifiedSince(Ns_Conn *conn, time_t inTime); - NS_EXTERN char *Ns_ConnGets(char *outBuffer, size_t inSize, Ns_Conn *conn); - NS_EXTERN int Ns_ConnReadHeaders(Ns_Conn *conn, Ns_Set *set, int *nreadPtr); NS_EXTERN int Ns_ParseHeader(Ns_Set *set, char *header, Ns_HeaderCaseDisposition disp); NS_EXTERN Ns_Set *Ns_ConnGetQuery(Ns_Conn *conn); --- 692,695 ---- *************** *** 746,749 **** --- 728,815 ---- /* + * connio.c: + */ + + NS_EXTERN int + Ns_ConnInit(Ns_Conn *connPtr) + NS_GNUC_DEPRECATED; + + NS_EXTERN int + Ns_ConnClose(Ns_Conn *conn) + NS_GNUC_NONNULL(1); + + NS_EXTERN int + Ns_ConnSend(Ns_Conn *conn, struct iovec *bufs, int nbufs) + NS_GNUC_NONNULL(1); + + NS_EXTERN int + Ns_ConnWrite(Ns_Conn *conn, CONST void *buf, int towrite) + NS_GNUC_NONNULL(1); + + NS_EXTERN int + Ns_WriteConn(Ns_Conn *conn, CONST char *buf, int len) + NS_GNUC_NONNULL(1); + + NS_EXTERN int + Ns_WriteCharConn(Ns_Conn *conn, CONST char *buf, int len) + NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); + + NS_EXTERN int + Ns_ConnPuts(Ns_Conn *conn, CONST char *string) + NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); + + NS_EXTERN int + Ns_ConnSendDString(Ns_Conn *conn, Ns_DString *dsPtr) + NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); + + NS_EXTERN int + Ns_ConnSendChannel(Ns_Conn *conn, Tcl_Channel chan, int nsend) + NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); + + NS_EXTERN int + Ns_ConnSendFp(Ns_Conn *conn, FILE *fp, int nsend) + NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); + + NS_EXTERN int + Ns_ConnSendFd(Ns_Conn *conn, int fd, int nsend) + NS_GNUC_NONNULL(1); + + NS_EXTERN int + Ns_ConnFlushContent(Ns_Conn *conn) + NS_GNUC_NONNULL(1); + + NS_EXTERN char * + Ns_ConnGets(char *outBuffer, size_t inSize, Ns_Conn *conn) + NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(3); + + NS_EXTERN int + Ns_ConnRead(Ns_Conn *conn, void *vbuf, int toread) + NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); + + NS_EXTERN int + Ns_ConnReadLine(Ns_Conn *conn, Ns_DString *dsPtr, int *nreadPtr) + NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); + + NS_EXTERN int + Ns_ConnReadHeaders(Ns_Conn *conn, Ns_Set *set, int *nreadPtr) + NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); + + NS_EXTERN int + Ns_ConnCopyToDString(Ns_Conn *conn, size_t ncopy, Ns_DString *dsPtr) + NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(3); + + NS_EXTERN int + Ns_ConnCopyToChannel(Ns_Conn *conn, size_t ncopy, Tcl_Channel chan) + NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(3); + + NS_EXTERN int + Ns_ConnCopyToFile(Ns_Conn *conn, size_t ncopy, FILE *fp) + NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(3); + + NS_EXTERN int + Ns_ConnCopyToFd(Ns_Conn *conn, size_t ncopy, int fd) + NS_GNUC_NONNULL(1); + + /* * cookies.c: */ *************** *** 835,843 **** */ ! NS_EXTERN char *Ns_PageRoot(char *server) NS_GNUC_DEPRECATED; ! NS_EXTERN void Ns_SetUrlToFileProc(char *server, Ns_UrlToFileProc *procPtr); ! NS_EXTERN int Ns_UrlToFile(Ns_DString *dsPtr, char *server, char *url); ! NS_EXTERN int Ns_UrlIsFile(char *server, char *url); ! NS_EXTERN int Ns_UrlIsDir(char *server, char *url); /* --- 901,923 ---- */ ! NS_EXTERN int ! Ns_ConnReturnFile(Ns_Conn *conn, int status, CONST char *type, ! CONST char *file); ! ! NS_EXTERN CONST char * ! Ns_PageRoot(CONST char *server) ! NS_GNUC_DEPRECATED; ! ! NS_EXTERN void ! Ns_SetUrlToFileProc(CONST char *server, Ns_UrlToFileProc *procPtr); ! ! NS_EXTERN int ! Ns_UrlToFile(Ns_DString *dsPtr, CONST char *server, CONST char *url); ! ! NS_EXTERN int ! Ns_UrlIsFile(CONST char *server, CONST char *url); ! ! NS_EXTERN int ! Ns_UrlIsDir(CONST char *server, CONST char *url); /* *************** *** 1011,1018 **** NS_EXTERN char * ! Ns_LogTime(char *timeBuf); NS_EXTERN char * ! Ns_LogTime2(char *timeBuf, int gmt); NS_EXTERN void --- 1091,1100 ---- NS_EXTERN char * ! Ns_LogTime(char *timeBuf) ! NS_GNUC_NONNULL(1); NS_EXTERN char * ! Ns_LogTime2(char *timeBuf, int gmt) ! NS_GNUC_NONNULL(1);; NS_EXTERN void *************** *** 1026,1032 **** */ ! NS_EXTERN int Ns_RollFile(CONST char *file, int max); ! NS_EXTERN int Ns_PurgeFiles(CONST char *file, int max); ! NS_EXTERN int Ns_RollFileByDate(CONST char *file, int max); /* --- 1108,1122 ---- */ ! NS_EXTERN int ! Ns_RollFile(CONST char *file, int max) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_PurgeFiles(CONST char *file, int max) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_RollFileByDate(CONST char *file, int max) ! NS_GNUC_NONNULL(1); /* *************** *** 1062,1066 **** */ ! NS_EXTERN char *Ns_GetMimeType(char *file); /* --- 1152,1158 ---- */ ! NS_EXTERN char * ! Ns_GetMimeType(CONST char *file) ! NS_GNUC_NONNULL(1); /* *************** *** 1068,1075 **** */ ! NS_EXTERN Tcl_Encoding Ns_GetEncoding(char *name); ! NS_EXTERN Tcl_Encoding Ns_GetFileEncoding(char *file); ! NS_EXTERN Tcl_Encoding Ns_GetTypeEncoding(char *type); ! NS_EXTERN Tcl_Encoding Ns_GetCharsetEncoding(char *charset); /* --- 1160,1178 ---- */ ! NS_EXTERN Tcl_Encoding ! Ns_GetEncoding(CONST char *name) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN Tcl_Encoding ! Ns_GetFileEncoding(CONST char *file) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN Tcl_Encoding ! Ns_GetTypeEncoding(CONST char *type) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN Tcl_Encoding ! Ns_GetCharsetEncoding(CONST char *charset) ! NS_GNUC_NONNULL(1); /* *************** *** 1105,1119 **** */ ! NS_EXTERN void Ns_RegisterRequest(char *server, char *method, char *url, ! Ns_OpProc *procPtr, Ns_Callback *deleteProcPtr, ! void *arg, int flags); ! NS_EXTERN void Ns_GetRequest(char *server, char *method, char *url, ! Ns_OpProc **procPtrPtr, ! Ns_Callback **deleteProcPtrPtr, void **argPtr, ! int *flagsPtr); ! NS_EXTERN void Ns_UnRegisterRequest(char *server, char *method, char *url, ! int inherit); ! NS_EXTERN int Ns_ConnRunRequest(Ns_Conn *conn); ! NS_EXTERN int Ns_ConnRedirect(Ns_Conn *conn, char *url); /* --- 1208,1237 ---- */ ! NS_EXTERN void ! Ns_RegisterRequest(CONST char *server, CONST char *method, CONST char *url, ! Ns_OpProc *proc, Ns_Callback *delete, void *arg, int flags) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2) NS_GNUC_NONNULL(3) ! NS_GNUC_NONNULL(4); ! ! NS_EXTERN void ! Ns_GetRequest(CONST char *server, CONST char *method, CONST char *url, ! Ns_OpProc **procPtr, Ns_Callback **deletePtr, void **argPtr, ! int *flagsPtr) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2) NS_GNUC_NONNULL(3) ! NS_GNUC_NONNULL(4) NS_GNUC_NONNULL(5) NS_GNUC_NONNULL(6) ! NS_GNUC_NONNULL(7); ! ! NS_EXTERN void ! Ns_UnRegisterRequest(CONST char *server, CONST char *method, CONST char *url, ! int inherit) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2) NS_GNUC_NONNULL(3); ! ! NS_EXTERN int ! Ns_ConnRunRequest(Ns_Conn *conn) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_ConnRedirect(Ns_Conn *conn, CONST char *url) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); /* *************** *** 1158,1164 **** NS_EXTERN void Ns_FreeRequest(Ns_Request *request); ! NS_EXTERN Ns_Request *Ns_ParseRequest(char *line); NS_EXTERN char *Ns_SkipUrl(Ns_Request *request, int n); ! NS_EXTERN void Ns_SetRequestUrl(Ns_Request *request, char *url); /* --- 1276,1282 ---- NS_EXTERN void Ns_FreeRequest(Ns_Request *request); ! NS_EXTERN Ns_Request *Ns_ParseRequest(CONST char *line); NS_EXTERN char *Ns_SkipUrl(Ns_Request *request, int n); ! NS_EXTERN void Ns_SetRequestUrl(Ns_Request *request, CONST char *url); /* *************** *** 1166,1211 **** */ ! NS_EXTERN void Ns_RegisterReturn(int status, char *url); ! NS_EXTERN void Ns_ConnConstructHeaders(Ns_Conn *conn, Ns_DString *dsPtr); ! NS_EXTERN void Ns_ConnQueueHeaders(Ns_Conn *conn, int status); ! NS_EXTERN int Ns_ConnFlushHeaders(Ns_Conn *conn, int status); ! NS_EXTERN void Ns_ConnSetHeaders(Ns_Conn *conn, char *field, char *value); ! NS_EXTERN void Ns_ConnCondSetHeaders(Ns_Conn *conn, char *field, char *value); ! NS_EXTERN void Ns_ConnReplaceHeaders(Ns_Conn *conn, Ns_Set *newheaders); ! NS_EXTERN void Ns_ConnSetRequiredHeaders(Ns_Conn *conn, char *type, int length); ! NS_EXTERN void Ns_ConnSetTypeHeader(Ns_Conn *conn, char *type); ! NS_EXTERN void Ns_ConnSetLengthHeader(Ns_Conn *conn, int length); ! NS_EXTERN void Ns_ConnSetLastModifiedHeader(Ns_Conn *conn, time_t *mtime); ! NS_EXTERN void Ns_ConnSetExpiresHeader(Ns_Conn *conn, char *expires); ! NS_EXTERN void Ns_ConnPrintfHeaders(Ns_Conn *conn, char *field, char *fmt, ...) NS_GNUC_PRINTF(3, 4); ! NS_EXTERN int Ns_ConnResetReturn(Ns_Conn *conn) NS_GNUC_DEPRECATED; ! NS_EXTERN int Ns_ConnReturnAdminNotice(Ns_Conn *conn, int status, char *title, ! char *notice); ! NS_EXTERN int Ns_ConnReturnNotice(Ns_Conn *conn, int status, char *title, ! char *notice); ! NS_EXTERN int Ns_ConnReturnData(Ns_Conn *conn, int status, char *data, int len, ! char *type); ! NS_EXTERN int Ns_ConnReturnCharData(Ns_Conn *conn, int status, char *data, int len, ! char *type); ! NS_EXTERN int Ns_ConnReturnHtml(Ns_Conn *conn, int status, char *html, int len); ! NS_EXTERN int Ns_ConnReturnOk(Ns_Conn *conn); ! NS_EXTERN int Ns_ConnReturnNoResponse(Ns_Conn *conn); ! NS_EXTERN int Ns_ConnReturnRedirect(Ns_Conn *conn, char *url); ! NS_EXTERN int Ns_ConnReturnBadRequest(Ns_Conn *conn, char *reason); ! NS_EXTERN int Ns_ConnReturnUnauthorized(Ns_Conn *conn); ! NS_EXTERN int Ns_ConnReturnForbidden(Ns_Conn *conn); ! NS_EXTERN int Ns_ConnReturnNotFound(Ns_Conn *conn); ! NS_EXTERN int Ns_ConnReturnNotModified(Ns_Conn *conn); ! NS_EXTERN int Ns_ConnReturnNotImplemented(Ns_Conn *conn); ! NS_EXTERN int Ns_ConnReturnInternalError(Ns_Conn *conn); ! NS_EXTERN int Ns_ConnReturnStatus(Ns_Conn *conn, int status); ! NS_EXTERN int Ns_ConnReturnOpenChannel(Ns_Conn *conn, int status, char *type, ! Tcl_Channel chan, int len); ! NS_EXTERN int Ns_ConnReturnOpenFile(Ns_Conn *conn, int status, char *type, ! FILE *fp, int len); ! NS_EXTERN int Ns_ConnReturnOpenFd(Ns_Conn *conn, int status, char *type, int fd, ! int len); ! NS_EXTERN int Ns_ConnReturnFile(Ns_Conn *conn, int status, char *type, ! char *filename); /* --- 1284,1423 ---- */ ! NS_EXTERN void ! Ns_RegisterReturn(int status, CONST char *url); ! ! NS_EXTERN void ! Ns_ConnConstructHeaders(Ns_Conn *conn, Ns_DString *dsPtr) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); ! ! NS_EXTERN void ! Ns_ConnQueueHeaders(Ns_Conn *conn, int status) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_ConnFlushHeaders(Ns_Conn *conn, int status) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN void ! Ns_ConnSetHeaders(Ns_Conn *conn, CONST char *field, CONST char *value) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2) NS_GNUC_NONNULL(3); ! ! NS_EXTERN void ! Ns_ConnCondSetHeaders(Ns_Conn *conn, CONST char *field, CONST char *value) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2) NS_GNUC_NONNULL(3); ! ! NS_EXTERN void ! Ns_ConnReplaceHeaders(Ns_Conn *conn, Ns_Set *newheaders) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); ! ! NS_EXTERN void ! Ns_ConnPrintfHeaders(Ns_Conn *conn, CONST char *field, CONST char *fmt, ...) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2) NS_GNUC_PRINTF(3, 4); ! ! NS_EXTERN void ! Ns_ConnSetRequiredHeaders(Ns_Conn *conn, CONST char *type, int length) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN void ! Ns_ConnSetTypeHeader(Ns_Conn *conn, CONST char *type) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); ! ! NS_EXTERN void ! Ns_ConnSetLengthHeader(Ns_Conn *conn, int length) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN void ! Ns_ConnSetLastModifiedHeader(Ns_Conn *conn, time_t *mtime) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN void ! Ns_ConnSetExpiresHeader(Ns_Conn *conn, CONST char *expires) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); ! ! NS_EXTERN int ! Ns_ConnResetReturn(Ns_Conn *conn) ! NS_GNUC_DEPRECATED; ! ! NS_EXTERN int ! Ns_ConnReturnAdminNotice(Ns_Conn *conn, int status, CONST char *title, ! CONST char *notice) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(3) NS_GNUC_NONNULL(4); ! ! NS_EXTERN int ! Ns_ConnReturnNotice(Ns_Conn *conn, int status, CONST char *title, ! CONST char *notice) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(3) NS_GNUC_NONNULL(4); ! ! NS_EXTERN int ! Ns_ConnReturnData(Ns_Conn *conn, int status, CONST char *data, int len, ! CONST char *type) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(3); ! ! NS_EXTERN int ! Ns_ConnReturnCharData(Ns_Conn *conn, int status, CONST char *data, int len, ! CONST char *type) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(3); ! ! NS_EXTERN int ! Ns_ConnReturnHtml(Ns_Conn *conn, int status, CONST char *html, int len) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(3); ! ! NS_EXTERN int ! Ns_ConnReturnOk(Ns_Conn *conn) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_ConnReturnNoResponse(Ns_Conn *conn) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_ConnReturnRedirect(Ns_Conn *conn, CONST char *url) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_ConnReturnBadRequest(Ns_Conn *conn, CONST char *reason) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_ConnReturnUnauthorized(Ns_Conn *conn) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_ConnReturnForbidden(Ns_Conn *conn) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_ConnReturnNotFound(Ns_Conn *conn) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_ConnReturnNotModified(Ns_Conn *conn) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_ConnReturnNotImplemented(Ns_Conn *conn) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_ConnReturnInternalError(Ns_Conn *conn) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_ConnReturnStatus(Ns_Conn *conn, int status) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_ConnReturnOpenChannel(Ns_Conn *conn, int status, CONST char *type, ! Tcl_Channel chan, int len) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(4); ! ! NS_EXTERN int ! Ns_ConnReturnOpenFile(Ns_Conn *conn, int status, CONST char *type, ! FILE *fp, int len) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(4); ! ! NS_EXTERN int ! Ns_ConnReturnOpenFd(Ns_Conn *conn, int status, CONST char *type, int fd, int len) ! NS_GNUC_NONNULL(1); /* *************** *** 1331,1346 **** */ ! NS_EXTERN char *Ns_StrTrim(char *string); ! NS_EXTERN char *Ns_StrTrimLeft(char *string); ! NS_EXTERN char *Ns_StrTrimRight(char *string); ! NS_EXTERN char *Ns_StrToLower(char *string) NS_GNUC_NONNULL(1); ! NS_EXTERN char *Ns_StrToUpper(char *string) NS_GNUC_NONNULL(1); ! NS_EXTERN int Ns_StrToInt(CONST char *string, int *intPtr) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); ! NS_EXTERN char *Ns_Match(char *a, char *b); ! NS_EXTERN char *Ns_NextWord(char *line) NS_GNUC_NONNULL(1); ! NS_EXTERN char *Ns_StrNStr(char *pattern, char *expression) NS_GNUC_NONNULL(1); ! NS_EXTERN char *Ns_StrCaseFind(char *s1, char *s2) NS_GNUC_NONNULL(1); ! NS_EXTERN int Ns_StrIsHost(CONST char *string) NS_GNUC_NONNULL(1); /* --- 1543,1585 ---- */ ! NS_EXTERN char * ! Ns_StrTrim(char *string); ! ! NS_EXTERN char * ! Ns_StrTrimLeft(char *string); ! ! NS_EXTERN char * ! Ns_StrTrimRight(char *string); ! ! NS_EXTERN char * ! Ns_StrToLower(char *string) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN char * ! Ns_StrToUpper(char *string) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_StrToInt(CONST char *string, int *intPtr) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); ! ! NS_EXTERN CONST char * ! Ns_Match(CONST char *a, CONST char *b); ! ! NS_EXTERN CONST char * ! Ns_NextWord(CONST char *line) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN CONST char * ! Ns_StrNStr(CONST char *pattern, CONST char *expression) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN CONST char * ! Ns_StrCaseFind(CONST char *s1, CONST char *s2) ! NS_GNUC_NONNULL(1); ! ! NS_EXTERN int ! Ns_StrIsHost(CONST char *string) ! NS_GNUC_NONNULL(1); /* *************** *** 1465,1477 **** NS_EXTERN CONST char * Ns_TclLogErrorInfo(Tcl_Interp *interp, CONST char *info) ! NS_GNUC_NONNULL(1); NS_EXTERN CONST char * Ns_TclLogError(Tcl_Interp *interp) ! NS_GNUC_NONNULL(1); NS_EXTERN CONST char * Ns_TclLogErrorRequest(Tcl_Interp *interp, Ns_Conn *conn) ! NS_GNUC_NONNULL(1) NS_GNUC_DEPRECATED; /* --- 1704,1716 ---- NS_EXTERN CONST char * Ns_TclLogErrorInfo(Tcl_Interp *interp, CONST char *info) ! NS_GNUC_NONNULL(1); NS_EXTERN CONST char * Ns_TclLogError(Tcl_Interp *interp) ! NS_GNUC_NONNULL(1); NS_EXTERN CONST char * Ns_TclLogErrorRequest(Tcl_Interp *interp, Ns_Conn *conn) ! NS_GNUC_NONNULL(1) NS_GNUC_DEPRECATED; /* *************** *** 1479,1483 **** */ ! NS_EXTERN int Ns_TclRequest(Ns_Conn *conn, char *proc); /* --- 1718,1724 ---- */ ! NS_EXTERN int ! Ns_TclRequest(Ns_Conn *conn, CONST char *proc) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); /* *************** *** 1505,1512 **** */ ! NS_EXTERN char *Ns_RelativeUrl(char *url, char *location); ! NS_EXTERN int Ns_ParseUrl(char *url, char **pprotocol, char **phost, char **pport, ! char **ppath, char **ptail); ! NS_EXTERN int Ns_AbsoluteUrl(Ns_DString *pds, char *url, char *baseurl); /* --- 1746,1761 ---- */ ! NS_EXTERN CONST char * ! Ns_RelativeUrl(CONST char *url, CONST char *location); ! ! NS_EXTERN int ! Ns_ParseUrl(char *url, char **pprotocol, char **phost, char **pport, ! char **ppath, char **ptail) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2) NS_GNUC_NONNULL(3) NS_GNUC_NONNULL(4) ! NS_GNUC_NONNULL(5) NS_GNUC_NONNULL(6); ! ! NS_EXTERN int ! Ns_AbsoluteUrl(Ns_DString *pds, CONST char *url, CONST char *baseurl) ! NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2) NS_GNUC_NONNULL(3); /* *************** *** 1540,1558 **** NS_EXTERN int Ns_UrlSpecificAlloc(void); ! NS_EXTERN void Ns_UrlSpecificSet(char *handle, char *method, char *url, int id, ! void *data, int flags, ! void (*deletefunc) (void *)); ! NS_EXTERN void *Ns_UrlSpecificGet(char *handle, char *method, char *url, int id); ! NS_EXTERN void *Ns_UrlSpecificGetFast(char *handle, char *method, char *url, ! int id); ! NS_EXTERN void *Ns_UrlSpecificGetExact(char *handle, char *method, char *url, ! int id, int flags); ! NS_EXTERN void *Ns_UrlSpecificDestroy(char *handle, char *method, char *url, ! int id, int flags); ! NS_EXTERN int Ns_ServerSpecificAlloc(void); ! NS_EXTERN void Ns_ServerSpecificSet(char *handle, int id, void *data, int flags, ! void (*deletefunc) (void *)); ! NS_EXTERN void *Ns_ServerSpecificGet(char *handle, int id); ! NS_EXTERN void *Ns_ServerSpecificDestroy(char *handle, int id, int flags); /* --- 1789,1823 ---- NS_EXTERN int Ns_UrlSpecificAlloc(void); ! ! NS_EXTERN void ! Ns_UrlSpecificSet(CONST char *server, CONST char *method, CONST char *url, int id, ! void *data, int flags, void (*deletefunc)(void *)); ! ! NS_EXTERN void * ! Ns_UrlSpecificGet(CONST char *server, CONST char *method, CONST char *url, int id); ! ! NS_EXTERN void * ! Ns_UrlSpecificGetFast(CONST char *server, CONST char *method, CONST char *url, int id); ! ! NS_EXTERN void * ! Ns_UrlSpecificGetExact(CONST char *server, CONST char *method, CONST char *url, ! int id, int flags); ! ! NS_EXTERN void * ! Ns_UrlSpecificDestroy(CONST char *server, CONST char *method, CONST char *url, ! int id, int flags); ! ! NS_EXTERN int ! Ns_ServerSpecificAlloc(void); ! ! NS_EXTERN void ! Ns_ServerSpecificSet(CONST char *handle, int id, void *data, int flags, ! void (*deletefunc)(void *)); ! ! NS_EXTERN void * ! Ns_ServerSpecificGet(CONST char *handle, int id); ! ! NS_EXTERN void * ! Ns_ServerSpecificDestroy(CONST char *handle, int id, int flags); /* *************** *** 1583,1587 **** */ ! NS_EXTERN void Ns_ConnClearQuery(Ns_Conn *conn); /* --- 1848,1854 ---- */ ! NS_EXTERN void ! Ns_ConnClearQuery(Ns_Conn *conn) ! NS_GNUC_NONNULL(1); /* |
From: Stephen D. <sd...@us...> - 2005-10-02 22:23:21
|
Update of /cvsroot/naviserver/naviserver/nsd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17412/nsd Modified Files: nsd.h adpeval.c adprequest.c connio.c encoding.c fastpath.c form.c mimetypes.c op.c request.c return.c rollfile.c str.c tclrequest.c unix.c nswin32.c url.c urlspace.c Log Message: Untabify, reformat, add CONST declarations and GNUC attributes. Index: encoding.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/encoding.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** encoding.c 10 Jun 2005 17:58:38 -0000 1.2 --- encoding.c 2 Oct 2005 22:23:09 -0000 1.3 *************** *** 31,35 **** * encoding.c -- * ! * Defines standard default charset to encoding mappings. */ --- 31,35 ---- * encoding.c -- * ! * Defines standard default charset to encoding mappings. */ [...1155 lines suppressed...] { ! Conn *connPtr; ! if ( ((connPtr = (Conn *)Ns_GetConn()) != NULL) && ! (connPtr->servPtr != NULL) ) { return connPtr->servPtr->encoding.hackContentTypeP; - } else { - return nsconf.encoding.hackContentTypeP; } } --- 781,789 ---- GetDefaultHackContentTypeP(void) { ! Conn *connPtr = (Conn *) Ns_GetConn(); ! if (connPtr != NULL && connPtr->servPtr != NULL) { return connPtr->servPtr->encoding.hackContentTypeP; } + return nsconf.encoding.hackContentTypeP; } Index: unix.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/unix.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** unix.c 2 Aug 2005 03:51:23 -0000 1.10 --- unix.c 2 Oct 2005 22:23:10 -0000 1.11 *************** *** 242,246 **** int ! NsMemMap(char *path, int size, int mode, FileMap *mapPtr) { /* --- 242,246 ---- int ! NsMemMap(CONST char *path, int size, int mode, FileMap *mapPtr) { /* Index: connio.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/connio.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** connio.c 12 Jul 2005 07:31:39 -0000 1.8 --- connio.c 2 Oct 2005 22:23:09 -0000 1.9 *************** *** 46,52 **** static int ConnSend(Ns_Conn *conn, int nsend, Tcl_Channel chan, ! FILE *fp, int fd); static int ConnCopy(Ns_Conn *conn, size_t ncopy, Tcl_Channel chan, ! FILE *fp, int fd); --- 46,52 ---- static int ConnSend(Ns_Conn *conn, int nsend, Tcl_Channel chan, [...1162 lines suppressed...] { ! int toread, nread, status; ! char buf[IOBUFSZ]; /* --- 835,840 ---- ConnSend(Ns_Conn *conn, int nsend, Tcl_Channel chan, FILE *fp, int fd) { ! int toread, nread, status; ! char buf[IOBUFSZ]; /* *************** *** 829,832 **** --- 842,846 ---- * headers) get flushed. */ + if (nsend == 0) { Ns_WriteConn(conn, NULL, 0); Index: urlspace.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/urlspace.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** urlspace.c 2 Oct 2005 05:27:44 -0000 1.5 --- urlspace.c 2 Oct 2005 22:23:10 -0000 1.6 *************** *** 141,145 **** static void IndexNodeDestroy(Ns_Index *indexPtr); static int CmpBranches(Branch **leftPtrPtr, Branch **rightPtrPtr); ! static int CmpKeyWithBranch(char *key, Branch **branchPtrPtr); static void BranchDestroy(Branch *branchPtr); --- 141,145 ---- static void IndexNodeDestroy(Ns_Index *indexPtr); static int CmpBranches(Branch **leftPtrPtr, Branch **rightPtrPtr); ! static int CmpKeyWithBranch(CONST char *key, Branch **branchPtrPtr); static void BranchDestroy(Branch *branchPtr); *************** *** 148,152 **** */ ! static void MkSeq(Ns_DString *dsPtr, char *server, char *method, char *url); #ifdef DEBUG static void indentspace(int n); --- 148,153 ---- */ ! static void MkSeq(Ns_DString *dsPtr, CONST char *server, CONST char *method, ! CONST char *url); #ifdef DEBUG static void indentspace(int n); *************** *** 162,166 **** static void TrieInit(Trie *triePtr); static void TrieAdd(Trie *triePtr, char *seq, int id, void *data, int flags, ! void (*deletefunc) (void *)); static void TrieTrunc(Trie *triePtr, int id); static void TrieDestroy(Trie *triePtr); --- 163,167 ---- static void TrieInit(Trie *triePtr); static void TrieAdd(Trie *triePtr, char *seq, int id, void *data, int flags, ! void (*deletefunc)(void *)); static void TrieTrunc(Trie *triePtr, int id); static void TrieDestroy(Trie *triePtr); *************** *** 176,184 **** #ifndef __URLSPACE_OPTIMIZE__ static int CmpChannels(Channel **leftPtrPtr, Channel **rightPtrPtr); ! static int CmpKeyWithChannel(char *key, Channel **channelPtrPtr); #endif static int CmpChannelsAsStrings(Channel **leftPtrPtr, Channel **rightPtrPtr); ! static int CmpKeyWithChannelAsStrings(char *key, Channel **channelPtrPtr); /* --- 177,185 ---- #ifndef __URLSPACE_OPTIMIZE__ static int CmpChannels(Channel **leftPtrPtr, Channel **rightPtrPtr); ! static int CmpKeyWithChannel(CONST char *key, Channel **channelPtrPtr); #endif static int CmpChannelsAsStrings(Channel **leftPtrPtr, Channel **rightPtrPtr); ! static int CmpKeyWithChannelAsStrings(CONST char *key, Channel **channelPtrPtr); /* *************** *** 188,196 **** static void JunctionInit(Junction *juncPtr); static void JunctionAdd(Junction *juncPtr, char *seq, int id, void *data, ! int flags, void (*deletefunc) (void *)); static void JunctionBranchTrunc(Junction *juncPtr, char *seq, int id); static void *JunctionFind(Junction *juncPtr, char *seq, int id, int fast); static void *JunctionFindExact(Junction *juncPtr, char *seq, int id, int flags, ! int fast); static void *JunctionDelete(Junction *juncPtr, char *seq, int id, int flags); --- 189,197 ---- static void JunctionInit(Junction *juncPtr); static void JunctionAdd(Junction *juncPtr, char *seq, int id, void *data, ! int flags, void (*deletefunc)(void *)); static void JunctionBranchTrunc(Junction *juncPtr, char *seq, int id); static void *JunctionFind(Junction *juncPtr, char *seq, int id, int fast); static void *JunctionFindExact(Junction *juncPtr, char *seq, int id, int flags, ! int fast); static void *JunctionDelete(Junction *juncPtr, char *seq, int id, int flags); *************** *** 277,282 **** void ! Ns_UrlSpecificSet(char *server, char *method, char *url, int id, void *data, ! int flags, void (*deletefunc) (void *)) { Ns_DString ds; --- 278,283 ---- void ! Ns_UrlSpecificSet(CONST char *server, CONST char *method, CONST char *url, int id, ! void *data, int flags, void (*deletefunc) (void *)) { Ns_DString ds; *************** *** 309,313 **** void * ! Ns_UrlSpecificGet(char *server, char *method, char *url, int id) { Ns_DString ds; --- 310,315 ---- void * ! Ns_UrlSpecificGet(CONST char *server, CONST char *method, CONST char *url, ! int id) { Ns_DString ds; *************** *** 343,347 **** void * ! Ns_UrlSpecificGetFast(char *server, char *method, char *url, int id) { Ns_DString ds; --- 345,350 ---- void * ! Ns_UrlSpecificGetFast(CONST char *server, CONST char *method, CONST char *url, ! int id) { Ns_DString ds; *************** *** 376,381 **** void * ! Ns_UrlSpecificGetExact(char *server, char *method, char *url, int id, ! int flags) { Ns_DString ds; --- 379,384 ---- void * ! Ns_UrlSpecificGetExact(CONST char *server, CONST char *method, CONST char *url, ! int id, int flags) { Ns_DString ds; *************** *** 413,417 **** void * ! Ns_UrlSpecificDestroy(char *server, char *method, char *url, int id, int flags) { Ns_DString ds; --- 416,421 ---- void * ! Ns_UrlSpecificDestroy(CONST char *server, CONST char *method, CONST char *url, ! int id, int flags) { Ns_DString ds; *************** *** 475,479 **** void ! Ns_ServerSpecificSet(char *handle, int id, void *data, int flags, void (*deletefunc) (void *)) { --- 479,483 ---- void ! Ns_ServerSpecificSet(CONST char *handle, int id, void *data, int flags, void (*deletefunc) (void *)) { *************** *** 499,503 **** void * ! Ns_ServerSpecificGet(char *handle, int id) { return Ns_UrlSpecificGet(handle, NULL, NULL, id); --- 503,507 ---- void * ! Ns_ServerSpecificGet(CONST char *handle, int id) { return Ns_UrlSpecificGet(handle, NULL, NULL, id); *************** *** 523,527 **** void * ! Ns_ServerSpecificDestroy(char *handle, int id, int flags) { return Ns_UrlSpecificDestroy(handle, NULL, NULL, id, flags); --- 527,531 ---- void * ! Ns_ServerSpecificDestroy(CONST char *handle, int id, int flags) { return Ns_UrlSpecificDestroy(handle, NULL, NULL, id, flags); *************** *** 716,720 **** static int ! CmpKeyWithBranch(char *key, Branch **branchPtrPtr) { return strcmp(key, (*branchPtrPtr)->word); --- 720,724 ---- static int ! CmpKeyWithBranch(CONST char *key, Branch **branchPtrPtr) { return strcmp(key, (*branchPtrPtr)->word); *************** *** 1299,1303 **** static int ! CmpKeyWithChannel(char *key, Channel **channelPtrPtr) { int lcontainsr, rcontainsl; --- 1303,1307 ---- static int ! CmpKeyWithChannel(CONST char *key, Channel **channelPtrPtr) { int lcontainsr, rcontainsl; *************** *** 1357,1361 **** static int ! CmpKeyWithChannelAsStrings(char *key, Channel **channelPtrPtr) { return strcmp(key, (*channelPtrPtr)->filter); --- 1361,1365 ---- static int ! CmpKeyWithChannelAsStrings(CONST char *key, Channel **channelPtrPtr) { return strcmp(key, (*channelPtrPtr)->filter); *************** *** 1466,1470 **** static void JunctionAdd(Junction *juncPtr, char *seq, int id, void *data, int flags, ! void (*deletefunc) (void *)) { Channel *channelPtr; --- 1470,1474 ---- static void JunctionAdd(Junction *juncPtr, char *seq, int id, void *data, int flags, ! void (*deletefunc)(void *)) { Channel *channelPtr; *************** *** 1786,1790 **** * * Side effects: ! * The node will be deleted if NS_OP_NODELETE isn't set in flags * *---------------------------------------------------------------------- --- 1790,1795 ---- * * Side effects: ! * The node will be deleted if NS_OP_NODELETE isn't set in flags. ! * Seq will be modified. * *---------------------------------------------------------------------- *************** *** 1866,1873 **** static void ! MkSeq(Ns_DString *dsPtr, char *server, char *method, char *url) { ! char *p; ! int done, l; if ((method != NULL) && (url != NULL)) { --- 1871,1878 ---- static void ! MkSeq(Ns_DString *dsPtr, CONST char *server, CONST char *method, CONST char *url) { ! CONST char *p; ! int done, l; if ((method != NULL) && (url != NULL)) { *************** *** 2060,2066 **** static void ! PrintSeq(char *seq) { ! char *p; for (p = seq; *p != '\0'; p += strlen(p) + 1) { --- 2065,2071 ---- static void ! PrintSeq(CONST char *seq) { ! CONST char *p; for (p = seq; *p != '\0'; p += strlen(p) + 1) { *************** *** 2092,2096 **** static void ! WalkTrie(Trie *triePtr, int id, char *server, Ns_ArgProc func, Tcl_DString *dsPtr, char **stack, char *filter) { Branch *branch; --- 2097,2102 ---- static void ! WalkTrie(Trie *triePtr, int id, CONST char *server, Ns_ArgProc func, ! Tcl_DString *dsPtr, char **stack, CONST char *filter) { Branch *branch; *************** *** 2157,2161 **** void ! NsUrlSpecificWalk(int id, char *server, Ns_ArgProc func, Tcl_DString *dsPtr) { int i; --- 2163,2167 ---- void ! NsUrlSpecificWalk(int id, CONST char *server, Ns_ArgProc func, Tcl_DString *dsPtr) { int i; Index: mimetypes.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/mimetypes.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** mimetypes.c 10 Jun 2005 17:58:39 -0000 1.3 --- mimetypes.c 2 Oct 2005 22:23:10 -0000 1.4 *************** *** 32,36 **** * mimetypes.c -- * ! * Defines standard default mime types. */ --- 32,36 ---- * mimetypes.c -- * ! * Defines standard default mime types. */ *************** *** 45,50 **** */ ! static void AddType(char *ext, char *type); ! static char *LowerDString(Ns_DString *dsPtr, char *ext); /* --- 45,50 ---- */ ! static void AddType(CONST char *ext, CONST char *type); ! static char *LowerDString(Ns_DString *dsPtr, CONST char *ext); /* *************** *** 61,66 **** static struct exttype { ! char *ext; ! char *type; } typetab[] = { /* --- 61,66 ---- static struct exttype { ! CONST char *ext; ! CONST char *type; } typetab[] = { /* *************** *** 232,243 **** * Ns_GetMimeType -- * ! * Guess the mime type based on filename extension. Case is ! * ignored. * * Results: ! * A mime type. * * Side effects: ! * None. * *---------------------------------------------------------------------- --- 232,243 ---- * Ns_GetMimeType -- * ! * Guess the mime type based on filename extension. Case is ! * ignored. * * Results: ! * A mime type. * * Side effects: ! * None. * *---------------------------------------------------------------------- *************** *** 245,271 **** char * ! Ns_GetMimeType(char *file) { ! char *start, *ext; Ns_DString ds; ! Tcl_HashEntry *hePtr; start = strrchr(file, '/'); if (start == NULL) { ! start = file; } - ext = strrchr(start, '.'); if (ext == NULL) { ! return noextType; } - Ns_DStringInit(&ds); ext = LowerDString(&ds, ext); ! hePtr = Tcl_FindHashEntry(&types, ext); ! if (hePtr == NULL) { ! return defaultType; } ! return Tcl_GetHashValue(hePtr); } --- 245,271 ---- char * ! Ns_GetMimeType(CONST char *file) { ! CONST char *start, *ext; Ns_DString ds; ! Tcl_HashEntry *hPtr; start = strrchr(file, '/'); if (start == NULL) { ! start = file; } ext = strrchr(start, '.'); if (ext == NULL) { ! return noextType; } Ns_DStringInit(&ds); ext = LowerDString(&ds, ext); ! hPtr = Tcl_FindHashEntry(&types, ext); ! Ns_DStringFree(&ds); ! if (hPtr != NULL) { ! return Tcl_GetHashValue(hPtr); } ! ! return defaultType; } *************** *** 276,286 **** * NsInitMimeTypes -- * ! * Add compiled-in default mime types. * * Results: ! * None. * * Side effects: ! * None. * *---------------------------------------------------------------------- --- 276,286 ---- * NsInitMimeTypes -- * ! * Add compiled-in default mime types. * * Results: ! * None. * * Side effects: ! * None. * *---------------------------------------------------------------------- *************** *** 290,294 **** NsInitMimeTypes(void) { ! int i; /* --- 290,294 ---- NsInitMimeTypes(void) { ! int i; /* *************** *** 313,323 **** * NsUpdateMimeTypes -- * ! * Add configured mime types. * * Results: ! * None. * * Side effects: ! * None. * *---------------------------------------------------------------------- --- 313,323 ---- * NsUpdateMimeTypes -- * ! * Add configured mime types. * * Results: ! * None. * * Side effects: ! * None. * *---------------------------------------------------------------------- *************** *** 332,346 **** set = Ns_ConfigGetSection("ns/mimetypes"); if (set == NULL) { ! return; } defaultType = Ns_SetIGet(set, "default"); if (defaultType == NULL) { ! defaultType = TYPE_DEFAULT; } noextType = Ns_SetIGet(set, "noextension"); if (noextType == NULL) { ! noextType = defaultType; } --- 332,346 ---- set = Ns_ConfigGetSection("ns/mimetypes"); if (set == NULL) { ! return; } defaultType = Ns_SetIGet(set, "default"); if (defaultType == NULL) { ! defaultType = TYPE_DEFAULT; } noextType = Ns_SetIGet(set, "noextension"); if (noextType == NULL) { ! noextType = defaultType; } *************** *** 356,366 **** * NsTclGuessTypeObjCmd -- * ! * Implements ns_guesstype. * * Results: ! * Tcl result. * * Side effects: ! * See docs. * *---------------------------------------------------------------------- --- 356,366 ---- * NsTclGuessTypeObjCmd -- * ! * Implements ns_guesstype. * * Results: ! * Tcl result. * * Side effects: ! * See docs. * *---------------------------------------------------------------------- *************** *** 370,374 **** NsTclGuessTypeObjCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ! char *type; if (objc != 2) { --- 370,374 ---- NsTclGuessTypeObjCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ! CONST char *type; if (objc != 2) { *************** *** 377,382 **** } type = Ns_GetMimeType(Tcl_GetString(objv[1])); ! Tcl_SetResult(interp, type, TCL_VOLATILE); ! return TCL_OK; } --- 377,382 ---- } type = Ns_GetMimeType(Tcl_GetString(objv[1])); ! Tcl_SetStringObj(Tcl_GetObjResult(interp), type, -1); ! return TCL_OK; } *************** *** 388,398 **** * AddType -- * ! * Add a mime type to the global hash table. * * Results: ! * None. * * Side effects: ! * None. * *---------------------------------------------------------------------- --- 388,398 ---- * AddType -- * ! * Add a mime type to the global hash table. * * Results: ! * None. * * Side effects: ! * None. * *---------------------------------------------------------------------- *************** *** 400,404 **** static void ! AddType(char *ext, char *type) { Ns_DString ds; --- 400,404 ---- static void ! AddType(CONST char *ext, CONST char *type) { Ns_DString ds; *************** *** 422,433 **** * LowerDString -- * ! * Append a string to the dstring, converting all alphabetic ! * characeters to lowercase. * * Results: ! * dsPtr->string * * Side effects: ! * Appends to dstring. * *---------------------------------------------------------------------- --- 422,433 ---- * LowerDString -- * ! * Append a string to the dstring, converting all alphabetic ! * characeters to lowercase. * * Results: ! * dsPtr->string * * Side effects: ! * Appends to dstring. * *---------------------------------------------------------------------- *************** *** 435,447 **** static char * ! LowerDString(Ns_DString *dsPtr, char *ext) { Ns_DStringAppend(dsPtr, ext); ! ext = dsPtr->string; ! while (*ext != '\0') { ! if (isupper(UCHAR(*ext))) { ! *ext = tolower(UCHAR(*ext)); } ! ++ext; } --- 435,449 ---- static char * ! LowerDString(Ns_DString *dsPtr, CONST char *ext) { + char *p; + Ns_DStringAppend(dsPtr, ext); ! p = dsPtr->string; ! while (*p != '\0') { ! if (isupper(UCHAR(*p))) { ! *p = tolower(UCHAR(*p)); } ! ++p; } Index: request.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/request.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** request.c 10 Jun 2005 17:58:39 -0000 1.3 --- request.c 2 Oct 2005 22:23:10 -0000 1.4 *************** *** 97,104 **** Ns_Request * ! Ns_ParseRequest(char *line) { ! char *url; ! char *p; Ns_DString ds; Ns_Request *request; --- 97,103 ---- Ns_Request * ! Ns_ParseRequest(CONST char *line) { ! char *url, *l, *p; Ns_DString ds; Ns_Request *request; *************** *** 115,120 **** } Ns_DStringAppend(&ds, line); ! line = Ns_StrTrim(ds.string); ! if (*line == '\0') { goto done; } --- 114,119 ---- } Ns_DStringAppend(&ds, line); ! l = Ns_StrTrim(ds.string); ! if (*l == '\0') { goto done; } *************** *** 124,128 **** */ ! request->line = ns_strdup(line); /* --- 123,127 ---- */ ! request->line = ns_strdup(l); /* *************** *** 130,134 **** */ ! url = line; while (*url != '\0' && !isspace(UCHAR(*url))) { ++url; --- 129,133 ---- */ ! url = l; while (*url != '\0' && !isspace(UCHAR(*url))) { ++url; *************** *** 144,148 **** goto done; } ! request->method = ns_strdup(line); --- 143,147 ---- goto done; } ! request->method = ns_strdup(l); *************** *** 195,199 **** */ ! *p++ = '\0'; request->protocol = ns_strdup(url); url = p; --- 194,198 ---- */ ! *p++ = '\0'; request->protocol = ns_strdup(url); url = p; *************** *** 280,284 **** void ! Ns_SetRequestUrl(Ns_Request * request, char *url) { Ns_DString ds; --- 279,283 ---- void ! Ns_SetRequestUrl(Ns_Request * request, CONST char *url) { Ns_DString ds; Index: rollfile.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/rollfile.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** rollfile.c 10 Jun 2005 20:53:13 -0000 1.3 --- rollfile.c 2 Oct 2005 22:23:10 -0000 1.4 *************** *** 31,35 **** * rollfile.c -- * ! * Routines to roll files. */ --- 31,35 ---- * rollfile.c -- * ! * Routines to roll files. */ *************** *** 39,43 **** typedef struct File { ! time_t mtime; char name[4]; } File; --- 39,43 ---- typedef struct File { ! time_t mtime; char name[4]; } File; *************** *** 59,76 **** * Ns_RollFile -- * ! * Roll the log file. When the log is rolled, it gets renamed to ! * filename.xyz, where 000 <= xyz <= 999. Older files have ! * higher numbers. * * Results: ! * NS_OK/NS_ERROR * * Side effects: ! * If there were files: filename.000, filename.001, filename.002, ! * the names would end up thusly: ! * filename.002 => filename.003 ! * filename.001 => filename.002 ! * filename.000 => filename.001 ! * with nothing left named filename.000. * *---------------------------------------------------------------------- --- 59,76 ---- * Ns_RollFile -- * ! * Roll the log file. When the log is rolled, it gets renamed to ! * filename.xyz, where 000 <= xyz <= 999. Older files have ! * higher numbers. * * Results: ! * NS_OK/NS_ERROR * * Side effects: ! * If there were files: filename.000, filename.001, filename.002, ! * the names would end up thusly: ! * filename.002 => filename.003 ! * filename.001 => filename.002 ! * filename.000 => filename.001 ! * with nothing left named filename.000. * *---------------------------------------------------------------------- *************** *** 86,91 **** if (max < 0 || max > 999) { Ns_Log(Error, "rollfile: invalid max parameter '%d'; " ! "must be > 0 and < 999", max); ! return NS_ERROR; } --- 86,91 ---- if (max < 0 || max > 999) { Ns_Log(Error, "rollfile: invalid max parameter '%d'; " ! "must be > 0 and < 999", max); ! return NS_ERROR; } *************** *** 94,126 **** err = Exists(first); if (err > 0) { ! next = ns_strdup(first); ! num = 0; ! do { dot = strrchr(next, '.') + 1; sprintf(dot, "%03d", num++); ! } while ((err = Exists(next)) == 1 && num < max); ! num--; ! if (err == 1) { ! err = Unlink(next); ! } ! while (err == 0 && num-- > 0) { dot = strrchr(first, '.') + 1; sprintf(dot, "%03d", num); dot = strrchr(next, '.') + 1; sprintf(dot, "%03d", num + 1); ! err = Rename(first, next); ! } ! ns_free(next); } if (err == 0) { ! err = Exists(file); ! if (err > 0) { ! err = Rename(file, first); ! } } ns_free(first); ! if (err != 0) { ! return NS_ERROR; } return NS_OK; --- 94,126 ---- err = Exists(first); if (err > 0) { ! next = ns_strdup(first); ! num = 0; ! do { dot = strrchr(next, '.') + 1; sprintf(dot, "%03d", num++); ! } while ((err = Exists(next)) == 1 && num < max); ! num--; ! if (err == 1) { ! err = Unlink(next); ! } ! while (err == 0 && num-- > 0) { dot = strrchr(first, '.') + 1; sprintf(dot, "%03d", num); dot = strrchr(next, '.') + 1; sprintf(dot, "%03d", num + 1); ! err = Rename(first, next); ! } ! ns_free(next); } if (err == 0) { ! err = Exists(file); ! if (err > 0) { ! err = Rename(file, first); ! } } ns_free(first); ! if (err != 0) { ! return NS_ERROR; } return NS_OK; *************** *** 133,146 **** * Ns_PurgeFiles, Ns_RollFileByDate -- * ! * Purge files by date, keeping max files. The file parameter is ! * used a basename to select files to purge. Ns_RollFileByDate ! * is a poorly named wrapper for historical reasons (rolling ! * implies rotating filenames). * * Results: ! * NS_OK/NS_ERROR * * Side effects: ! * May remove (many) files. * *---------------------------------------------------------------------- --- 133,146 ---- * Ns_PurgeFiles, Ns_RollFileByDate -- * ! * Purge files by date, keeping max files. The file parameter is ! * used a basename to select files to purge. Ns_RollFileByDate ! * is a poorly named wrapper for historical reasons (rolling ! * implies rotating filenames). * * Results: ! * NS_OK/NS_ERROR * * Side effects: ! * May remove (many) files. * *---------------------------------------------------------------------- *************** *** 162,170 **** int tlen, i, nfiles, status; Ns_DString dir, list; ! status = NS_ERROR; Ns_DStringInit(&dir); Ns_DStringInit(&list); ! /* * Determine the directory component. --- 162,170 ---- int tlen, i, nfiles, status; Ns_DString dir, list; ! status = NS_ERROR; Ns_DStringInit(&dir); Ns_DStringInit(&list); ! /* * Determine the directory component. *************** *** 174,180 **** slash = strrchr (dir.string, '/'); if (slash == NULL || slash[1] == '\0') { ! Ns_Log (Error, "rollfile: failed to purge files: invalid path '%s'", ! file); ! goto err; } *slash = '\0'; --- 174,180 ---- slash = strrchr (dir.string, '/'); if (slash == NULL || slash[1] == '\0') { ! Ns_Log (Error, "rollfile: failed to purge files: invalid path '%s'", ! file); ! goto err; } *slash = '\0'; *************** *** 184,199 **** dp = opendir(dir.string); if (dp == NULL) { ! Ns_Log(Error, "rollfile: failed to purge files:opendir(%s) failed: '%s'", ! dir.string, strerror(errno)); ! goto err; } while ((ent = ns_readdir(dp)) != NULL) { ! if (strncmp(tail, ent->d_name, (size_t)tlen) != 0) { ! continue; ! } ! if (!AppendFile(&list, dir.string, ent->d_name)) { ! closedir(dp); ! goto err; ! } } closedir(dp); --- 184,199 ---- dp = opendir(dir.string); if (dp == NULL) { ! Ns_Log(Error, "rollfile: failed to purge files:opendir(%s) failed: '%s'", ! dir.string, strerror(errno)); ! goto err; } while ((ent = ns_readdir(dp)) != NULL) { ! if (strncmp(tail, ent->d_name, (size_t)tlen) != 0) { ! continue; ! } ! if (!AppendFile(&list, dir.string, ent->d_name)) { ! closedir(dp); ! goto err; ! } } closedir(dp); *************** *** 201,211 **** nfiles = list.length / sizeof(File *); if (nfiles >= max) { ! files = (File **) list.string; ! qsort(files, (size_t)nfiles, sizeof(File *), CmpFile); ! for (i = max; i < nfiles; ++i) { ! if (Unlink(files[i]->name) != 0) { ! goto err; ! } ! } } status = NS_OK; --- 201,211 ---- nfiles = list.length / sizeof(File *); if (nfiles >= max) { ! files = (File **) list.string; ! qsort(files, (size_t)nfiles, sizeof(File *), CmpFile); ! for (i = max; i < nfiles; ++i) { ! if (Unlink(files[i]->name) != 0) { ! goto err; ! } ! } } status = NS_OK; *************** *** 214,224 **** nfiles = list.length / sizeof(File *); if (nfiles > 0) { ! files = (File **) list.string; ! for (i = 0; i < nfiles; ++i) { ! ns_free(files[i]); ! } } Ns_DStringFree(&list); Ns_DStringFree(&dir); return status; } --- 214,225 ---- nfiles = list.length / sizeof(File *); if (nfiles > 0) { ! files = (File **) list.string; ! for (i = 0; i < nfiles; ++i) { ! ns_free(files[i]); ! } } Ns_DStringFree(&list); Ns_DStringFree(&dir); + return status; } *************** *** 230,240 **** * AppendFile -- * ! * Append a file entry with mtime to the list kept in the dstring. * * Results: ! * 1 if file added, 0 otherwise. * * Side effects: ! * Allocates memory for entry. * *---------------------------------------------------------------------- --- 231,241 ---- * AppendFile -- * ! * Append a file entry with mtime to the list kept in the dstring. * * Results: ! * 1 if file added, 0 otherwise. * * Side effects: ! * Allocates memory for entry. * *---------------------------------------------------------------------- *************** *** 246,260 **** File *fPtr; struct stat st; ! fPtr = ns_malloc(sizeof(File) + strlen(dir) + strlen(tail)); sprintf(fPtr->name, "%s/%s", dir, tail); if (stat(fPtr->name, &st) != 0) { ! Ns_Log(Error, "rollfile: failed to append to file '%s': '%s'", ! fPtr->name, strerror(errno)); ! ns_free(fPtr); ! return 0; } fPtr->mtime = st.st_mtime; Ns_DStringNAppend(dsPtr, (char *) &fPtr, sizeof(File *)); return 1; } --- 247,262 ---- File *fPtr; struct stat st; ! fPtr = ns_malloc(sizeof(File) + strlen(dir) + strlen(tail)); sprintf(fPtr->name, "%s/%s", dir, tail); if (stat(fPtr->name, &st) != 0) { ! Ns_Log(Error, "rollfile: failed to append to file '%s': '%s'", ! fPtr->name, strerror(errno)); ! ns_free(fPtr); ! return 0; } fPtr->mtime = st.st_mtime; Ns_DStringNAppend(dsPtr, (char *) &fPtr, sizeof(File *)); + return 1; } *************** *** 266,276 **** * CmpFile -- * ! * qsort() callback to select oldest file. * * Results: ! * Stadard qsort() result. * * Side effects: ! * None. * *---------------------------------------------------------------------- --- 268,278 ---- * CmpFile -- * ! * qsort() callback to select oldest file. * * Results: ! * Stadard qsort() result. * * Side effects: ! * None. * *---------------------------------------------------------------------- *************** *** 284,290 **** if (f1Ptr->mtime < f2Ptr->mtime) { ! return 1; } else if (f1Ptr->mtime > f2Ptr->mtime) { ! return -1; } return 0; --- 286,292 ---- if (f1Ptr->mtime < f2Ptr->mtime) { ! return 1; } else if (f1Ptr->mtime > f2Ptr->mtime) { ! return -1; } return 0; *************** *** 297,307 **** * Unlink, Rename, Exists -- * ! * Simple wrappers used by Ns_RollFile and Ns_PurgeFiles. * * Results: ! * System call result (except Exists). * * Side effects: ! * May modify filesystem. * *---------------------------------------------------------------------- --- 299,309 ---- * Unlink, Rename, Exists -- * ! * Simple wrappers used by Ns_RollFile and Ns_PurgeFiles. * * Results: ! * System call result (except Exists). * * Side effects: ! * May modify filesystem. * *---------------------------------------------------------------------- *************** *** 312,320 **** { int err; ! err = unlink(file); if (err != 0) { Ns_Log(Error, "rollfile: failed to delete file '%s': '%s'", ! file, strerror(errno)); } return err; --- 314,322 ---- { int err; ! err = unlink(file); if (err != 0) { Ns_Log(Error, "rollfile: failed to delete file '%s': '%s'", ! file, strerror(errno)); } return err; *************** *** 328,333 **** err = rename(from, to); if (err != 0) { ! Ns_Log(Error, "rollfile: failed to rename file '%s' to '%s': '%s'", ! from, to, strerror(errno)); } return err; --- 330,335 ---- err = rename(from, to); if (err != 0) { ! Ns_Log(Error, "rollfile: failed to rename file '%s' to '%s': '%s'", ! from, to, strerror(errno)); } return err; *************** *** 340,350 **** if (access(file, F_OK) == 0) { ! exists = 1; } else if (errno == ENOENT) { ! exists = 0; } else { ! Ns_Log(Error, "rollfile: failed to determine if file '%s' exists: '%s'", ! file, strerror(errno)); ! exists = -1; } return exists; --- 342,352 ---- if (access(file, F_OK) == 0) { ! exists = 1; } else if (errno == ENOENT) { ! exists = 0; } else { ! Ns_Log(Error, "rollfile: failed to determine if file '%s' exists: '%s'", ! file, strerror(errno)); ! exists = -1; } return exists; Index: nswin32.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/nswin32.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** nswin32.c 27 Jun 2005 17:46:58 -0000 1.8 --- nswin32.c 2 Oct 2005 22:23:10 -0000 1.9 *************** *** 455,459 **** int ! NsMemMap(char *path, int size, int mode, FileMap *mapPtr) { HANDLE hndl, mobj; --- 455,459 ---- int ! NsMemMap(CONST char *path, int size, int mode, FileMap *mapPtr) { HANDLE hndl, mobj; Index: url.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/url.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** url.c 10 Jun 2005 17:58:41 -0000 1.2 --- url.c 2 Oct 2005 22:23:10 -0000 1.3 *************** *** 32,36 **** * url.c -- * ! * Parse URLs. */ --- 32,36 ---- * url.c -- * ! * Parse URLs. */ *************** *** 45,67 **** * Ns_RelativeUrl -- * ! * If the url passed in is for this server, then the initial ! * part of the URL is stripped off. e.g., on a server whose ! * location is http://www.foo.com, Ns_RelativeUrl of ! * "http://www.foo.com/hello" will return "/hello". * * Results: ! * A pointer to the beginning of the relative url in the ! * passed-in url, or NULL if error. * * Side effects: ! * Will set errno on error. * *---------------------------------------------------------------------- */ ! char * ! Ns_RelativeUrl(char *url, char *location) { ! char *v; if (url == NULL || location == NULL) { --- 45,67 ---- * Ns_RelativeUrl -- * ! * If the url passed in is for this server, then the initial ! * part of the URL is stripped off. e.g., on a server whose ! * location is http://www.foo.com, Ns_RelativeUrl of ! * "http://www.foo.com/hello" will return "/hello". * * Results: ! * A pointer to the beginning of the relative url in the ! * passed-in url, or NULL if error. * * Side effects: ! * Will set errno on error. * *---------------------------------------------------------------------- */ ! CONST char * ! Ns_RelativeUrl(CONST char *url, CONST char *location) { ! CONST char *v; if (url == NULL || location == NULL) { *************** *** 77,81 **** * v="/a/b", or NULL if there's a mismatch. */ ! v = Ns_Match(location, url); if (v != NULL) { --- 77,81 ---- * v="/a/b", or NULL if there's a mismatch. */ ! v = Ns_Match(location, url); if (v != NULL) { *************** *** 94,106 **** * Ns_ParseUrl -- * ! * Parse a URL into its component parts * * Results: ! * NS_OK or NS_ERROR * * Side effects: ! * Pointers to the protocol, host, port, path, and "tail" (last ! * path element) will be set by reference in the passed-in pointers. ! * The passed-in url will be modified. * *---------------------------------------------------------------------- --- 94,106 ---- * Ns_ParseUrl -- * ! * Parse a URL into its component parts * * Results: ! * NS_OK or NS_ERROR * * Side effects: ! * Pointers to the protocol, host, port, path, and "tail" (last ! * path element) will be set by reference in the passed-in pointers. ! * The passed-in url will be modified. * *---------------------------------------------------------------------- *************** *** 109,115 **** int Ns_ParseUrl(char *url, char **pprotocol, char **phost, ! char **pport, char **ppath, char **ptail) { ! char *end; *pprotocol = NULL; --- 109,115 ---- int Ns_ParseUrl(char *url, char **pprotocol, char **phost, ! char **pport, char **ppath, char **ptail) { ! char *end; *pprotocol = NULL; *************** *** 128,180 **** end = strchr(url, ':'); if (end != NULL) { ! /* ! * There is a protocol specified. Clear out the colon. ! * Set pprotocol to the start of the protocol, and url to ! * the first character after the colon. ! * ! * http\0//www.foo.com:8000/baz/blah/spoo.html ! * ^ ^ ^ ! * | | +-- url ! * | +-- end ! * +-------- *pprotocol ! */ ! *end = '\0'; *pprotocol = url; url = end + 1; ! if ((*url == '/') && ! (*(url + 1) == '/')) { - /* - * There are two slashes, which means a host is specified. - * Advance url past that and set *phost. - * - * http\0//www.foo.com:8000/baz/blah/spoo.html - * ^ ^ ^ - * | | +-- url, *phost - * | +-- end - * +-------- *pprotocol - */ - url = url + 2; *phost = url; ! /* ! * Look for a port number, which is optional. ! */ ! end = strchr(url, ':'); if (end != NULL) { ! /* ! * A port was specified. Clear the colon and ! * set *pport to the first digit. ! * ! * http\0//www.foo.com\08000/baz/blah/spoo.html ! * ^ ^ ^ ^ ! * | +-- *phost | +------ url, *pport ! * +----- *pprotocol +--- end ! */ ! *end = '\0'; url = end + 1; --- 128,181 ---- end = strchr(url, ':'); if (end != NULL) { ! ! /* ! * There is a protocol specified. Clear out the colon. ! * Set pprotocol to the start of the protocol, and url to ! * the first character after the colon. ! * ! * http\0//www.foo.com:8000/baz/blah/spoo.html ! * ^ ^ ^ ! * | | +-- url ! * | +-- end ! * +-------- *pprotocol ! */ ! *end = '\0'; *pprotocol = url; url = end + 1; ! if (url[0] == '/' && url[1] == '/') { ! ! /* ! * There are two slashes, which means a host is specified. ! * Advance url past that and set *phost. ! * ! * http\0//www.foo.com:8000/baz/blah/spoo.html ! * ^ ^ ^ ! * | | +-- url, *phost ! * | +-- end ! * +-------- *pprotocol ! */ url = url + 2; *phost = url; ! /* ! * Look for a port number, which is optional. ! */ ! end = strchr(url, ':'); if (end != NULL) { ! ! /* ! * A port was specified. Clear the colon and ! * set *pport to the first digit. ! * ! * http\0//www.foo.com\08000/baz/blah/spoo.html ! * ^ ^ ^ ^ ! * | +-- *phost | +------ url, *pport ! * +----- *pprotocol +--- end ! */ ! *end = '\0'; url = end + 1; *************** *** 182,202 **** } ! /* ! * Move up to the slash which starts the path/tail. ! * Clear out the dividing slash. ! * ! * http\0//www.foo.com\08000\0baz/blah/spoo.html ! * ^ ^ ^ ^ ^ ! * | | | | +-- url ! * | +-- *phost | +-- end ! * +----- *pprotocol +-- *pport ! */ ! end = strchr(url, '/'); if (end == NULL) { ! /* ! * No path or tail specified. Return. ! */ ! *ppath = ""; *ptail = ""; --- 183,204 ---- } ! /* ! * Move up to the slash which starts the path/tail. ! * Clear out the dividing slash. ! * ! * http\0//www.foo.com\08000\0baz/blah/spoo.html ! * ^ ^ ^ ^ ^ ! * | | | | +-- url ! * | +-- *phost | +-- end ! * +----- *pprotocol +-- *pport ! */ ! end = strchr(url, '/'); if (end == NULL) { ! ! /* ! * No path or tail specified. Return. ! */ ! *ppath = ""; *ptail = ""; *************** *** 204,237 **** } *end = '\0'; ! url = end + 1; } else { ! /* ! * The URL must have been an odd one without a hostname. ! * Move the URL up past the dividing slash. ! * ! * http\0/baz/blah/spoo.html ! * ^ ^ ^ ! * | | +-- url ! * | +-- end ! * +-------- *pprotocol ! */ ! url++; } ! /* ! * Set the path to URL and advance to the last slash. ! * Set ptail to the character after that, or if there is none, ! * it becomes path and path becomes an empty string. ! * ! * http\0//www.foo.com\08000\0baz/blah/spoo.html ! * ^ ^ ^ ^ ^ ^^ ! * | | | | | |+-- *ptail ! * | | | | | +-- end ! * | | | | +-- *ppath ! * | +-- *phost | +-- end ! * +----- *pprotocol +-- *pport ! */ ! *ppath = url; end = strrchr(url, '/'); --- 206,240 ---- } *end = '\0'; ! url = end + 1; } else { ! ! /* ! * The URL must have been an odd one without a hostname. ! * Move the URL up past the dividing slash. ! * ! * http\0/baz/blah/spoo.html ! * ^ ^ ^ ! * | | +-- url ! * | +-- end ! * +-------- *pprotocol ! */ ! url++; } ! /* ! * Set the path to URL and advance to the last slash. ! * Set ptail to the character after that, or if there is none, ! * it becomes path and path becomes an empty string. ! * ! * http\0//www.foo.com\08000\0baz/blah/spoo.html ! * ^ ^ ^ ^ ^ ^^ ! * | | | | | |+-- *ptail ! * | | | | | +-- end ! * | | | | +-- *ppath ! * | +-- *phost | +-- end ! * +----- *pprotocol +-- *pport ! */ ! *ppath = url; end = strrchr(url, '/'); *************** *** 244,262 **** } } else { ! /* ! * This URL does not have a colon. If it begins with a slash, then ! * separate the tail from the path, otherwise it's all tail. ! */ ! if (*url == '/') { url++; *ppath = url; ! /* ! * Find the last slash on the right and everything after that ! * becomes tail; if there are no slashes then it's all tail ! * and path is an empty string. ! */ ! end = strrchr(url, '/'); if (end == NULL) { --- 247,266 ---- } } else { ! ! /* ! * This URL does not have a colon. If it begins with a slash, then ! * separate the tail from the path, otherwise it's all tail. ! */ ! if (*url == '/') { url++; *ppath = url; ! /* ! * Find the last slash on the right and everything after that ! * becomes tail; if there are no slashes then it's all tail ! * and path is an empty string. ! */ ! end = strrchr(url, '/'); if (end == NULL) { *************** *** 269,276 **** } else { ! /* ! * Just set the tail, there are no slashes. ! */ ! *ptail = url; } --- 273,280 ---- } else { ! /* ! * Just set the tail, there are no slashes. ! */ ! *ptail = url; } *************** *** 285,296 **** * Ns_AbsoluteUrl -- * ! * Construct an URL based on baseurl but with as many parts of ! * the incomplete url as possible. * * Results: ! * NS_OK or NS_ERROR. * * Side effects: ! * None. * *---------------------------------------------------------------------- --- 289,300 ---- * Ns_AbsoluteUrl -- * ! * Construct an URL based on baseurl but with as many parts of ! * the incomplete url as possible. * * Results: ! * NS_OK or NS_ERROR. * * Side effects: ! * None. * *---------------------------------------------------------------------- *************** *** 298,306 **** int ! Ns_AbsoluteUrl(Ns_DString *dsPtr, char *url, char *base) { ! char *protocol, *host, *port, *path, *tail, *baseprotocol, ! *basehost, *baseport, *basepath, *basetail; ! int status = NS_OK; /* --- 302,311 ---- int ! Ns_AbsoluteUrl(Ns_DString *dsPtr, CONST char *url, CONST char *base) { ! Ns_DString urlDs, baseDs; ! char *proto, *host, *port, *path, *tail; ! char *bproto, *bhost, *bport, *bpath, *btail; ! int status = NS_OK; /* *************** *** 308,330 **** */ ! url = ns_strdup(url); ! base = ns_strdup(base); ! Ns_ParseUrl(url, &protocol, &host, &port, &path, &tail); ! Ns_ParseUrl(base, &baseprotocol, &basehost, &baseport, &basepath, &basetail); ! if (baseprotocol == NULL || basehost == NULL || basepath == NULL) { status = NS_ERROR; goto done; } ! if (protocol == NULL) { ! protocol = baseprotocol; } if (host == NULL) { ! host = basehost; ! port = baseport; } if (path == NULL) { ! path = basepath; } ! Ns_DStringVarAppend(dsPtr, protocol, "://", host, NULL); if (port != NULL) { Ns_DStringVarAppend(dsPtr, ":", port, NULL); --- 313,339 ---- */ ! Ns_DStringInit(&urlDs); ! Ns_DStringAppend(&urlDs, url); ! Ns_ParseUrl(urlDs.string, &proto, &host, &port, &path, &tail); ! ! Ns_DStringInit(&baseDs); ! Ns_DStringAppend(&baseDs, base); ! Ns_ParseUrl(baseDs.string, &bproto, &bhost, &bport, &bpath, &btail); ! ! if (bproto == NULL || bhost == NULL || bpath == NULL) { status = NS_ERROR; goto done; } ! if (proto == NULL) { ! proto = bproto; } if (host == NULL) { ! host = bhost; ! port = bport; } if (path == NULL) { ! path = bpath; } ! Ns_DStringVarAppend(dsPtr, proto, "://", host, NULL); if (port != NULL) { Ns_DStringVarAppend(dsPtr, ":", port, NULL); *************** *** 336,341 **** } done: ! ns_free(url); ! ns_free(base); return status; } --- 345,351 ---- } done: ! Ns_DStringFree(&urlDs); ! Ns_DStringFree(&baseDs); ! return status; } Index: op.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/op.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** op.c 2 Oct 2005 05:27:44 -0000 1.4 --- op.c 2 Oct 2005 22:23:10 -0000 1.5 *************** *** 110,115 **** void ! Ns_RegisterRequest(char *server, char *method, char *url, Ns_OpProc *proc, ! Ns_Callback *delete, void *arg, int flags) { Req *reqPtr; --- 110,115 ---- void ! Ns_RegisterRequest(CONST char *server, CONST char *method, CONST char *url, ! Ns_OpProc *proc, Ns_Callback *delete, void *arg, int flags) { Req *reqPtr; *************** *** 145,150 **** void ! Ns_GetRequest(char *server, char *method, char *url, Ns_OpProc **procPtr, ! Ns_Callback **deletePtr, void **argPtr, int *flagsPtr) { Req *reqPtr; --- 145,150 ---- void ! Ns_GetRequest(CONST char *server, CONST char *method, CONST char *url, ! Ns_OpProc **procPtr, Ns_Callback **deletePtr, void **argPtr, int *flagsPtr) { Req *reqPtr; *************** *** 185,189 **** void ! Ns_UnRegisterRequest(char *server, char *method, char *url, int inherit) { Ns_MutexLock(&ulock); --- 185,190 ---- void ! Ns_UnRegisterRequest(CONST char *server, CONST char *method, CONST char *url, ! int inherit) { Ns_MutexLock(&ulock); *************** *** 261,265 **** int ! Ns_ConnRedirect(Ns_Conn *conn, char *url) { int status; --- 262,266 ---- int ! Ns_ConnRedirect(Ns_Conn *conn, CONST char *url) { int status; *************** *** 316,320 **** void ! Ns_RegisterProxyRequest(char *server, char *method, char *protocol, Ns_OpProc *proc, Ns_Callback *delete, void *arg) { --- 317,321 ---- void ! Ns_RegisterProxyRequest(CONST char *server, CONST char *method, CONST char *protocol, Ns_OpProc *proc, Ns_Callback *delete, void *arg) { *************** *** 367,371 **** void ! Ns_UnRegisterProxyRequest(char *server, char *method, char *protocol) { NsServer *servPtr; --- 368,373 ---- void ! Ns_UnRegisterProxyRequest(CONST char *server, CONST char *method, ! CONST char *protocol) { NsServer *servPtr; *************** *** 510,514 **** void ! NsGetRequestProcs(Tcl_DString *dsPtr, char *server) { NsServer *servPtr; --- 512,516 ---- void ! NsGetRequestProcs(Tcl_DString *dsPtr, CONST char *server) { NsServer *servPtr; Index: fastpath.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/fastpath.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** fastpath.c 19 Aug 2005 08:20:27 -0000 1.19 --- fastpath.c 2 Oct 2005 22:23:09 -0000 1.20 *************** *** 76,85 **** static Ns_Callback FreeEntry; static void DecrEntry(File *); ! static int UrlIs(char *server, char *url, int dir); ! static int FastStat(char *file, struct stat *stPtr); static int FastReturn(NsServer *servPtr, Ns_Conn *conn, int status, ! char *type, char *file, struct stat *stPtr); static int ParseRange(Ns_Conn *conn, Range *rnPtr); ! static int ReturnRange(Ns_Conn *conn, Range *rnPtr, int fd, char *data, int len, char *type); /* --- 76,87 ---- static Ns_Callback FreeEntry; static void DecrEntry(File *); ! static int UrlIs(CONST char *server, CONST char *url, int dir); ! static int FastStat(CONST char *file, struct stat *stPtr); static int FastReturn(NsServer *servPtr, Ns_Conn *conn, int status, ! CONST char *type, CONST char *file, struct stat *stPtr); ! static int FastGetRestart(Ns_Conn *conn, CONST char *page); static int ParseRange(Ns_Conn *conn, Range *rnPtr); ! static int ReturnRange(Ns_Conn *conn, Range *rnPtr, int fd, CONST char *data, ! int len, CONST char *type); /* *************** *** 99,103 **** Ns_Cache * ! NsFastpathCache(char *server, int size) { Ns_DString ds; --- 101,105 ---- Ns_Cache * ! NsFastpathCache(CONST char *server, int size) { Ns_DString ds; *************** *** 136,140 **** int ! Ns_ConnReturnFile(Ns_Conn *conn, int status, char *type, char *file) { struct stat st; --- 138,142 ---- int ! Ns_ConnReturnFile(Ns_Conn *conn, int status, CONST char *type, CONST char *file) { struct stat st; *************** *** 169,174 **** */ ! char * ! Ns_PageRoot(char *server) { NsServer *servPtr = NsGetServer(server); --- 171,176 ---- */ ! CONST char * ! Ns_PageRoot(CONST char *server) { NsServer *servPtr = NsGetServer(server); *************** *** 198,202 **** void ! Ns_SetUrlToFileProc(char *server, Ns_UrlToFileProc *procPtr) { NsServer *servPtr = NsGetServer(server); --- 200,204 ---- void ! Ns_SetUrlToFileProc(CONST char *server, Ns_UrlToFileProc *procPtr) { NsServer *servPtr = NsGetServer(server); *************** *** 223,227 **** int ! Ns_UrlToFile(Ns_DString *dsPtr, char *server, char *url) { NsServer *servPtr = NsGetServer(server); --- 225,229 ---- int ! Ns_UrlToFile(Ns_DString *dsPtr, CONST char *server, CONST char *url) { NsServer *servPtr = NsGetServer(server); *************** *** 247,251 **** int ! Ns_UrlIsFile(char *server, char *url) { return UrlIs(server, url, 0); --- 249,253 ---- int ! Ns_UrlIsFile(CONST char *server, CONST char *url) { return UrlIs(server, url, 0); *************** *** 253,257 **** int ! Ns_UrlIsDir(char *server, char *url) { return UrlIs(server, url, 1); --- 255,259 ---- int ! Ns_UrlIsDir(CONST char *server, CONST char *url) { return UrlIs(server, url, 1); *************** *** 259,263 **** static int ! UrlIs(char *server, char *url, int dir) { Ns_DString ds; --- 261,265 ---- static int ! UrlIs(CONST char *server, CONST char *url, int dir) { Ns_DString ds; *************** *** 294,298 **** static int ! FastGetRestart(Ns_Conn *conn, char *page) { int status; --- 296,300 ---- static int ! FastGetRestart(Ns_Conn *conn, CONST char *page) { int status; *************** *** 458,462 **** static int ! FastStat(char *file, struct stat *stPtr) { if (stat(file, stPtr) != 0) { --- 460,464 ---- static int ! FastStat(CONST char *file, struct stat *stPtr) { if (stat(file, stPtr) != 0) { *************** *** 490,494 **** static int FastReturn(NsServer *servPtr, Ns_Conn *conn, int status, ! char *type, char *file, struct stat *stPtr) { int fd, new, nread; --- 492,496 ---- static int FastReturn(NsServer *servPtr, Ns_Conn *conn, int status, ! CONST char *type, CONST char *file, struct stat *stPtr) { int fd, new, nread; *************** *** 663,667 **** int ! NsUrlToFile(Ns_DString *dsPtr, NsServer *servPtr, char *url) { int status; --- 665,669 ---- int ! NsUrlToFile(Ns_DString *dsPtr, NsServer *servPtr, CONST char *url) { int status; *************** *** 852,856 **** static int ! ReturnRange(Ns_Conn *conn, Range *rnPtr, int fd, char *data, int len, char *type) { struct iovec bufs[MAX_RANGES*3], *iovPtr = bufs; --- 854,859 ---- static int ! ReturnRange(Ns_Conn *conn, Range *rnPtr, int fd, CONST char *data, int len, ! CONST char *type) { struct iovec bufs[MAX_RANGES*3], *iovPtr = bufs; *************** *** 882,886 **** Ns_ConnSetRequiredHeaders(conn, type, rnPtr->offsets[0].size); Ns_ConnQueueHeaders(conn, rnPtr->status); ! iovPtr->iov_base = data + rnPtr->offsets[0].start; iovPtr->iov_len = rnPtr->offsets[0].size; result = Ns_ConnSend(conn, iovPtr, 1); --- 885,889 ---- Ns_ConnSetRequiredHeaders(conn, type, rnPtr->offsets[0].size); Ns_ConnQueueHeaders(conn, rnPtr->status); ! iovPtr->iov_base = (char *) data + rnPtr->offsets[0].start; iovPtr->iov_len = rnPtr->offsets[0].size; result = Ns_ConnSend(conn, iovPtr, 1); *************** *** 922,926 **** iovPtr++; ! iovPtr->iov_base = data + rnPtr->offsets[i].start; iovPtr->iov_len = rnPtr->offsets[i].size; rnPtr->size += iovPtr->iov_len; --- 925,929 ---- iovPtr++; ! iovPtr->iov_base = (char *) data + rnPtr->offsets[i].start; iovPtr->iov_len = rnPtr->offsets[i].size; rnPtr->size += iovPtr->iov_len; Index: return.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/return.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** return.c 2 Oct 2005 05:27:44 -0000 1.15 --- return.c 2 Oct 2005 22:23:10 -0000 1.16 *************** *** 50,57 **** static int ReturnRedirect(Ns_Conn *conn, int status, int *resultPtr); ! static int ReturnOpen(Ns_Conn *conn, int status, char *type, Tcl_Channel chan, FILE *fp, int fd, int len); ! static int ReturnCharData(Ns_Conn *conn, int status, char *data, int len, ! char *type, int sendRaw); /* --- 50,57 ---- static int ReturnRedirect(Ns_Conn *conn, int status, int *resultPtr); ! static int ReturnOpen(Ns_Conn *conn, int status, CONST char *type, Tcl_Channel chan, FILE *fp, int fd, int len); ! static int ReturnCharData(Ns_Conn *conn, int status, CONST char *data, int len, ! CONST char *type, int sendRaw); /* *************** *** 60,65 **** static struct { ! int status; ! char *reason; } reasons[] = { {100, "Continue"}, --- 60,65 ---- static struct { ! int status; ! CONST char... [truncated message content] |
From: Stephen D. <sd...@us...> - 2005-10-02 22:23:21
|
Update of /cvsroot/naviserver/naviserver In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17412 Modified Files: ChangeLog Log Message: Untabify, reformat, add CONST declarations and GNUC attributes. Index: ChangeLog =================================================================== RCS file: /cvsroot/naviserver/naviserver/ChangeLog,v retrieving revision 1.193 retrieving revision 1.194 diff -C2 -d -r1.193 -r1.194 *** ChangeLog 2 Oct 2005 05:27:44 -0000 1.193 --- ChangeLog 2 Oct 2005 22:23:10 -0000 1.194 *************** *** 1,2 **** --- 1,25 ---- + 2005-10-02 Stephen Deasey <sd...@us...> + + * nsd/adpeval.c: + * nsd/adprequest.c: + * nsd/connio.c: + * nsd/encoding.c: + * nsd/fastpath.c: + * nsd/form.c: + * nsd/mimetypes.c: + * nsd/op.c: + * nsd/request.c: + * nsd/return.c: + * nsd/rollfile.c: + * nsd/str.c: + * nsd/tclrequest.c: + * nsd/unix.c: + * nsd/nswin32.c: + * nsd/url.c: + * nsd/urlspace.c: + * nsd/nsd.h: + * include/ns.h: Untabify, reformat, add CONST declarations and + GNUC attributes. + 2005-10-01 Stephen Deasey <sd...@us...> |
From: Stephen D. <sd...@us...> - 2005-10-02 21:13:35
|
Update of /cvsroot/naviserver/naviserver/nsd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7125/nsd Added Files: .cvsignore Log Message: Tell cvs about files which it should ignore. --- NEW FILE: .cvsignore --- nsd |
From: Stephen D. <sd...@us...> - 2005-10-02 21:03:08
|
Update of /cvsroot/naviserver/naviserver In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6858 Modified Files: ChangeLog Log Message: * nsd/adprequest.c: * nsd/op.c: * nsd/return.c: * nsd/urlspace: Untabify and reformat. Index: ChangeLog =================================================================== RCS file: /cvsroot/naviserver/naviserver/ChangeLog,v retrieving revision 1.192 retrieving revision 1.193 diff -C2 -d -r1.192 -r1.193 *** ChangeLog 1 Oct 2005 19:50:43 -0000 1.192 --- ChangeLog 2 Oct 2005 05:27:44 -0000 1.193 *************** *** 1,4 **** --- 1,9 ---- 2005-10-01 Stephen Deasey <sd...@us...> + * nsd/adprequest.c: + * nsd/op.c: + * nsd/return.c: + * nsd/urlspace: Untabify and reformat. + * .cvsignore: * include/.cvsignore: |
From: Stephen D. <sd...@us...> - 2005-10-02 17:39:01
|
Update of /cvsroot/naviserver/naviserver/nsd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6858/nsd Modified Files: op.c adprequest.c return.c urlspace.c Log Message: * nsd/adprequest.c: * nsd/op.c: * nsd/return.c: * nsd/urlspace: Untabify and reformat. Index: op.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/op.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** op.c 10 Jun 2005 17:58:39 -0000 1.3 --- op.c 2 Oct 2005 05:27:44 -0000 1.4 *************** *** 31,36 **** * op.c -- * ! * Routines to register, unregister, and run connection request ! * routines (previously known as "op procs"). */ --- 31,36 ---- * op.c -- * ! * Routines to register, unregister, and run connection request ! * routines (previously known as "op procs"). */ *************** *** 45,49 **** typedef struct { ! int refcnt; Ns_OpProc *proc; Ns_Callback *delete; --- 45,49 ---- typedef struct { ! int refcnt; Ns_OpProc *proc; Ns_Callback *delete; *************** *** 62,66 **** */ ! static Ns_Mutex ulock; static int uid; --- 62,66 ---- */ ! static Ns_Mutex ulock; static int uid; *************** *** 71,81 **** * NsInitRequests -- * ! * Initialize the request API. * * Results: ! * None. * * Side effects: ! * None. * *---------------------------------------------------------------------- --- 71,81 ---- * NsInitRequests -- * ! * Initialize the request API. * * Results: ! * None. * * Side effects: ! * None. * *---------------------------------------------------------------------- *************** *** 96,108 **** * Ns_RegisterRequest -- * ! * Register a new procedure to be called to service matching ! * given method and url pattern. * * Results: ! * None. * * Side effects: ! * Delete procedure of previously registered request, if any, ! * will be called unless NS_OP_NODELETE flag is set. * *---------------------------------------------------------------------- --- 96,108 ---- * Ns_RegisterRequest -- * ! * Register a new procedure to be called to service matching ! * given method and url pattern. * * Results: ! * None. * * Side effects: ! * Delete procedure of previously registered request, if any, ! * will be called unless NS_OP_NODELETE flag is set. * *---------------------------------------------------------------------- *************** *** 111,115 **** void Ns_RegisterRequest(char *server, char *method, char *url, Ns_OpProc *proc, ! Ns_Callback *delete, void *arg, int flags) { Req *reqPtr; --- 111,115 ---- void Ns_RegisterRequest(char *server, char *method, char *url, Ns_OpProc *proc, ! Ns_Callback *delete, void *arg, int flags) { Req *reqPtr; *************** *** 132,143 **** * Ns_GetRequest -- * ! * Return the procedures and context for a given method and url ! * pattern. * * Results: ! * None. * * Side effects: ! * * *---------------------------------------------------------------------- --- 132,143 ---- * Ns_GetRequest -- * ! * Return the procedures and context for a given method and url ! * pattern. * * Results: ! * None. * * Side effects: ! * None. * *---------------------------------------------------------------------- *************** *** 146,150 **** void Ns_GetRequest(char *server, char *method, char *url, Ns_OpProc **procPtr, ! Ns_Callback **deletePtr, void **argPtr, int *flagsPtr) { Req *reqPtr; --- 146,150 ---- void Ns_GetRequest(char *server, char *method, char *url, Ns_OpProc **procPtr, ! Ns_Callback **deletePtr, void **argPtr, int *flagsPtr) { Req *reqPtr; *************** *** 158,165 **** *flagsPtr = reqPtr->flags; } else { ! *procPtr = NULL; ! *deletePtr = NULL; ! *argPtr = NULL; ! *flagsPtr = 0; } Ns_MutexUnlock(&ulock); --- 158,165 ---- *flagsPtr = reqPtr->flags; } else { ! *procPtr = NULL; ! *deletePtr = NULL; ! *argPtr = NULL; ! *flagsPtr = 0; } Ns_MutexUnlock(&ulock); *************** *** 172,183 **** * Ns_UnRegisterRequest -- * ! * Remove the procedure which would run for the given method and ! * url pattern. * * Results: ! * None. * * Side effects: ! * Requests deleteProc may run. * *---------------------------------------------------------------------- --- 172,183 ---- * Ns_UnRegisterRequest -- * ! * Remove the procedure which would run for the given method and ! * url pattern. * * Results: ! * None. * * Side effects: ! * Requests deleteProc may run. * *---------------------------------------------------------------------- *************** *** 189,193 **** Ns_MutexLock(&ulock); Ns_UrlSpecificDestroy(server, method, url, uid, ! inherit ? 0 : NS_OP_NOINHERIT); Ns_MutexUnlock(&ulock); } --- 189,193 ---- Ns_MutexLock(&ulock); Ns_UrlSpecificDestroy(server, method, url, uid, ! inherit ? 0 : NS_OP_NOINHERIT); Ns_MutexUnlock(&ulock); } *************** *** 199,210 **** * Ns_ConnRunRequest -- * ! * Locate and execute the procedure for the given method and ! * url pattern. * * Results: ! * Standard request procedure result, normally NS_OK. * * Side effects: ! * Depends on request procedure. * *---------------------------------------------------------------------- --- 199,210 ---- * Ns_ConnRunRequest -- * ! * Locate and execute the procedure for the given method and ! * url pattern. * * Results: ! * Standard request procedure result, normally NS_OK. * * Side effects: ! * Depends on request procedure. * *---------------------------------------------------------------------- *************** *** 220,231 **** Ns_MutexLock(&ulock); reqPtr = Ns_UrlSpecificGet(server, conn->request->method, ! conn->request->url, uid); if (reqPtr == NULL) { ! Ns_MutexUnlock(&ulock); ! if (STREQ(conn->request->method, "BAD")) { ! return Ns_ConnReturnBadRequest(conn, NULL); ! } else { ! return Ns_ConnReturnNotFound(conn); ! } } ++reqPtr->refcnt; --- 220,231 ---- Ns_MutexLock(&ulock); reqPtr = Ns_UrlSpecificGet(server, conn->request->method, ! conn->request->url, uid); if (reqPtr == NULL) { ! Ns_MutexUnlock(&ulock); ! if (STREQ(conn->request->method, "BAD")) { ! return Ns_ConnReturnBadRequest(conn, NULL); ! } else { ! return Ns_ConnReturnNotFound(conn); ! } } ++reqPtr->refcnt; *************** *** 235,238 **** --- 235,239 ---- FreeReq(reqPtr); Ns_MutexUnlock(&ulock); + return status; } *************** *** 244,258 **** * Ns_ConnRedirect -- * ! * Perform an internal redirect by updating the connection's ! * request URL and re-authorizing and running the request. This ! * Routine is used in FastPath to redirect to directory files ! * (e.g., index.html) and in return.c to redirect by HTTP result ! * code (e.g., custom not-found handler). * * Results: ! * Standard request procedure result, normally NS_OK. * * Side effects: ! * Depends on request procedure. * *---------------------------------------------------------------------- --- 245,259 ---- * Ns_ConnRedirect -- * ! * Perform an internal redirect by updating the connection's ! * request URL and re-authorizing and running the request. This ! * Routine is used in FastPath to redirect to directory files ! * (e.g., index.html) and in return.c to redirect by HTTP result ! * code (e.g., custom not-found handler). * * Results: ! * Standard request procedure result, normally NS_OK. * * Side effects: ! * Depends on request procedure. * *---------------------------------------------------------------------- *************** *** 275,280 **** status = Ns_AuthorizeRequest(Ns_ConnServer(conn), conn->request->method, ! conn->request->url, conn->authUser, ! conn->authPasswd, Ns_ConnPeer(conn)); switch (status) { case NS_OK: --- 276,281 ---- status = Ns_AuthorizeRequest(Ns_ConnServer(conn), conn->request->method, ! conn->request->url, conn->authUser, ! conn->authPasswd, Ns_ConnPeer(conn)); switch (status) { case NS_OK: *************** *** 302,313 **** * Ns_RegisterProxyRequest -- * ! * Register a new procedure to be called to proxy matching ! * given method and protocol pattern. * * Results: ! * None. * * Side effects: ! * Delete procedure of previously registered request, if any. * *---------------------------------------------------------------------- --- 303,314 ---- * Ns_RegisterProxyRequest -- * ! * Register a new procedure to be called to proxy matching ! * given method and protocol pattern. * * Results: ! * None. * * Side effects: ! * Delete procedure of previously registered request, if any. * *---------------------------------------------------------------------- *************** *** 316,331 **** void Ns_RegisterProxyRequest(char *server, char *method, char *protocol, ! Ns_OpProc *proc, Ns_Callback *delete, void *arg) { ! NsServer *servPtr; ! Req *reqPtr; ! Ns_DString ds; ! int new; Tcl_HashEntry *hPtr; servPtr = NsGetServer(server); if (servPtr == NULL) { ! Ns_Log(Error, "Ns_RegisterProxyRequest: no such server: %s", server); ! return; } Ns_DStringInit(&ds); --- 317,332 ---- void Ns_RegisterProxyRequest(char *server, char *method, char *protocol, ! Ns_OpProc *proc, Ns_Callback *delete, void *arg) { ! NsServer *servPtr; ! Req *reqPtr; ! Ns_DString ds; ! int new; Tcl_HashEntry *hPtr; servPtr = NsGetServer(server); if (servPtr == NULL) { ! Ns_Log(Error, "Ns_RegisterProxyRequest: no such server: %s", server); ! return; } Ns_DStringInit(&ds); *************** *** 340,344 **** hPtr = Tcl_CreateHashEntry(&servPtr->request.proxy, ds.string, &new); if (!new) { ! FreeReq(Tcl_GetHashValue(hPtr)); } Tcl_SetHashValue(hPtr, reqPtr); --- 341,345 ---- hPtr = Tcl_CreateHashEntry(&servPtr->request.proxy, ds.string, &new); if (!new) { ! FreeReq(Tcl_GetHashValue(hPtr)); } Tcl_SetHashValue(hPtr, reqPtr); *************** *** 353,364 **** * Ns_UnRegisterProxyRequest -- * ! * Remove the procedure which would run for the given method and ! * protocol. * * Results: ! * None. * * Side effects: ! * Request's deleteProc may run. * *---------------------------------------------------------------------- --- 354,365 ---- * Ns_UnRegisterProxyRequest -- * ! * Remove the procedure which would run for the given method and ! * protocol. * * Results: ! * None. * * Side effects: ! * Request's deleteProc may run. * *---------------------------------------------------------------------- *************** *** 368,387 **** Ns_UnRegisterProxyRequest(char *server, char *method, char *protocol) { ! NsServer *servPtr; ! Ns_DString ds; Tcl_HashEntry *hPtr; servPtr = NsGetServer(server); if (servPtr != NULL) { ! Ns_DStringInit(&ds); ! Ns_DStringVarAppend(&ds, method, protocol, NULL); ! Ns_MutexLock(&servPtr->request.plock); ! hPtr = Tcl_FindHashEntry(&servPtr->request.proxy, ds.string); ! if (hPtr != NULL) { ! FreeReq(Tcl_GetHashValue(hPtr)); ! Tcl_DeleteHashEntry(hPtr); ! } ! Ns_MutexUnlock(&servPtr->request.plock); ! Ns_DStringFree(&ds); } } --- 369,388 ---- Ns_UnRegisterProxyRequest(char *server, char *method, char *protocol) { ! NsServer *servPtr; ! Ns_DString ds; Tcl_HashEntry *hPtr; servPtr = NsGetServer(server); if (servPtr != NULL) { ! Ns_DStringInit(&ds); ! Ns_DStringVarAppend(&ds, method, protocol, NULL); ! Ns_MutexLock(&servPtr->request.plock); ! hPtr = Tcl_FindHashEntry(&servPtr->request.proxy, ds.string); ! if (hPtr != NULL) { ! FreeReq(Tcl_GetHashValue(hPtr)); ! Tcl_DeleteHashEntry(hPtr); ! } ! Ns_MutexUnlock(&servPtr->request.plock); ! Ns_DStringFree(&ds); } } *************** *** 393,404 **** * NsConnRunProxyRequest -- * ! * Locate and execute the procedure for the given method and ! * protocol pattern. * * Results: ! * Standard request procedure result, normally NS_OK. * * Side effects: ! * Depends on request procedure. * *---------------------------------------------------------------------- --- 394,405 ---- * NsConnRunProxyRequest -- * ! * Locate and execute the procedure for the given method and ! * protocol pattern. * * Results: ! * Standard request procedure result, normally NS_OK. * * Side effects: ! * Depends on request procedure. * *---------------------------------------------------------------------- *************** *** 408,417 **** NsConnRunProxyRequest(Ns_Conn *conn) { ! Conn *connPtr = (Conn *) conn; ! NsServer *servPtr = connPtr->servPtr; Ns_Request *request = conn->request; ! Req *reqPtr = NULL; ! int status; ! Ns_DString ds; Tcl_HashEntry *hPtr; --- 409,418 ---- NsConnRunProxyRequest(Ns_Conn *conn) { ! Conn *connPtr = (Conn *) conn; ! NsServer *servPtr = connPtr->servPtr; Ns_Request *request = conn->request; ! Req *reqPtr = NULL; ! int status; ! Ns_DString ds; Tcl_HashEntry *hPtr; *************** *** 421,437 **** hPtr = Tcl_FindHashEntry(&servPtr->request.proxy, ds.string); if (hPtr != NULL) { ! reqPtr = Tcl_GetHashValue(hPtr); ! ++reqPtr->refcnt; } Ns_MutexUnlock(&servPtr->request.plock); if (reqPtr == NULL) { ! status = Ns_ConnReturnNotFound(conn); } else { ! status = (*reqPtr->proc) (reqPtr->arg, conn); ! Ns_MutexLock(&servPtr->request.plock); ! FreeReq(reqPtr); ! Ns_MutexUnlock(&servPtr->request.plock); } Ns_DStringFree(&ds); return status; } --- 422,439 ---- hPtr = Tcl_FindHashEntry(&servPtr->request.proxy, ds.string); if (hPtr != NULL) { ! reqPtr = Tcl_GetHashValue(hPtr); ! ++reqPtr->refcnt; } Ns_MutexUnlock(&servPtr->request.plock); if (reqPtr == NULL) { ! status = Ns_ConnReturnNotFound(conn); } else { ! status = (*reqPtr->proc) (reqPtr->arg, conn); ! Ns_MutexLock(&servPtr->request.plock); ! FreeReq(reqPtr); ! Ns_MutexUnlock(&servPtr->request.plock); } Ns_DStringFree(&ds); + return status; } *************** *** 443,453 **** * FreeReq -- * ! * URL space callback to delete a request structure. * * Results: ! * None. * * Side effects: ! * Depends on request delete procedure. * *---------------------------------------------------------------------- --- 445,455 ---- * FreeReq -- * ! * URL space callback to delete a request structure. * * Results: ! * None. * * Side effects: ! * Depends on request delete procedure. * *---------------------------------------------------------------------- *************** *** 460,465 **** if (--reqPtr->refcnt == 0) { ! if (reqPtr->delete != NULL) { ! (*reqPtr->delete) (reqPtr->arg); } ns_free(reqPtr); --- 462,467 ---- if (--reqPtr->refcnt == 0) { ! if (reqPtr->delete != NULL) { ! (*reqPtr->delete) (reqPtr->arg); } ns_free(reqPtr); *************** *** 496,506 **** * NsGetRequestProcs -- * ! * Returns information about registered requests/procs * * Results: ! * DString with info as Tcl list * * Side effects: ! * None * *---------------------------------------------------------------------- --- 498,508 ---- * NsGetRequestProcs -- * ! * Returns information about registered requests/procs. * * Results: ! * DString with info as Tcl list. * * Side effects: ! * None. * *---------------------------------------------------------------------- *************** *** 516,523 **** return; } - Ns_MutexLock(&ulock); NsUrlSpecificWalk(uid, servPtr->server, NsTclRequestArgProc, dsPtr); Ns_MutexUnlock(&ulock); } - --- 518,523 ---- Index: return.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/return.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** return.c 1 Aug 2005 16:22:25 -0000 1.14 --- return.c 2 Oct 2005 05:27:44 -0000 1.15 *************** *** 32,36 **** * return.c -- * ! * Functions that return data to a browser. */ --- 32,36 ---- * return.c -- * ! * Functions that return data to a browser. */ [...1574 lines suppressed...] *** 1338,1346 **** Ns_ConnQueueHeaders(conn, status); if (chan != NULL) { ! result = Ns_ConnSendChannel(conn, chan, len); } else if (fp != NULL) { ! result = Ns_ConnSendFp(conn, fp, len); } else { ! result = Ns_ConnSendFd(conn, fd, len); } if (result == NS_OK) { --- 1351,1359 ---- Ns_ConnQueueHeaders(conn, status); if (chan != NULL) { ! result = Ns_ConnSendChannel(conn, chan, len); } else if (fp != NULL) { ! result = Ns_ConnSendFp(conn, fp, len); } else { ! result = Ns_ConnSendFd(conn, fd, len); } if (result == NS_OK) { Index: urlspace.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/urlspace.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** urlspace.c 11 Jun 2005 20:00:48 -0000 1.4 --- urlspace.c 2 Oct 2005 05:27:44 -0000 1.5 *************** *** 32,40 **** * urlspace.c -- * ! * This file implements a Trie data structure. It is used ! * for "UrlSpecificData"; for example, when one registers ! * a handler for all GET /foo/bar/ *.html requests, the data ! * structure that holds that information is implemented herein. ! * For full details see the file doc/urlspace.txt. */ --- 32,40 ---- [...2655 lines suppressed...] for (depth = 0; stack[depth] != NULL; depth++) { switch (depth) { ! case 0: ! Tcl_DStringAppendElement(dsPtr, stack[depth]); ! break; ! case 1: ! Tcl_DStringAppendElement(dsPtr, stack[depth]); ! Tcl_DStringAppend(dsPtr, " ", 1); ! break; ! default: ! Ns_DStringVarAppend(dsPtr, "/", stack[depth], NULL); ! break; } } *************** *** 2198,2200 **** Ns_MutexUnlock(&lock); } - --- 2177,2178 ---- Index: adprequest.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/adprequest.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** adprequest.c 1 Aug 2005 16:22:25 -0000 1.5 --- adprequest.c 2 Oct 2005 05:27:44 -0000 1.6 *************** *** 31,35 **** * adprequest.c -- * ! * ADP connection request support. */ --- 31,35 ---- * adprequest.c -- * ! * ADP connection request support. */ *************** *** 77,87 **** * Ns_AdpRequest - * ! * Invoke a file for an ADP request. * * Results: ! * A standard AOLserver request result. * * Side effects: ! * Depends on code embedded within page. * *---------------------------------------------------------------------- --- 77,87 ---- * Ns_AdpRequest - * ! * Invoke a file for an ADP request. * * Results: ! * A standard AOLserver request result. * * Side effects: ! * Depends on code embedded within page. * *---------------------------------------------------------------------- *************** *** 91,103 **** Ns_AdpRequest(Ns_Conn *conn, char *file) { ! Conn *connPtr = (Conn *) conn; Tcl_Interp *interp; ! Tcl_DString rds, tds; ! NsInterp *itPtr; int status; char *type, *start; Ns_Set *setPtr; ! NsServer *servPtr; ! Tcl_Obj *objv[2]; /* --- 91,103 ---- Ns_AdpRequest(Ns_Conn *conn, char *file) { ! Conn *connPtr = (Conn *) conn; Tcl_Interp *interp; ! Tcl_DString rds, tds; ! NsInterp *itPtr; int status; char *type, *start; Ns_Set *setPtr; ! NsServer *servPtr; ! Tcl_Obj *objv[2]; /* *************** *** 106,110 **** if (access(file, R_OK) != 0) { ! return Ns_ConnReturnNotFound(conn); } --- 106,110 ---- if (access(file, R_OK) != 0) { ! return Ns_ConnReturnNotFound(conn); } *************** *** 149,156 **** */ ! if (servPtr->adp.enabledebug && ! STREQ(conn->request->method, "GET") && ! (setPtr = Ns_ConnGetQuery(conn)) != NULL) { ! itPtr->adp.debugFile = Ns_SetIGet(setPtr, "debug"); } --- 149,156 ---- */ ! if (servPtr->adp.enabledebug ! && STREQ(conn->request->method, "GET") ! && (setPtr = Ns_ConnGetQuery(conn)) != NULL) { ! itPtr->adp.debugFile = Ns_SetIGet(setPtr, "debug"); } *************** *** 164,172 **** Tcl_IncrRefCount(objv[0]); Tcl_IncrRefCount(objv[1]); ! if (NsAdpInclude(itPtr, start, 2, objv) != TCL_OK && ! itPtr->adp.exception != ADP_RETURN && ! itPtr->adp.exception != ADP_BREAK && ! itPtr->adp.exception != ADP_ABORT) { ! Ns_TclLogError(interp); } Tcl_DecrRefCount(objv[0]); --- 164,172 ---- Tcl_IncrRefCount(objv[0]); Tcl_IncrRefCount(objv[1]); ! if (NsAdpInclude(itPtr, start, 2, objv) != TCL_OK ! && itPtr->adp.exception != ADP_RETURN ! && itPtr->adp.exception != ADP_BREAK ! && itPtr->adp.exception != ADP_ABORT) { ! Ns_TclLogError(interp); } Tcl_DecrRefCount(objv[0]); *************** *** 180,185 **** status = NS_OK; if (!(conn->flags & NS_CONN_SENTHDRS) ! && itPtr->adp.exception != ADP_ABORT) { ! status = AdpFlush(itPtr, 0); } --- 180,185 ---- status = NS_OK; if (!(conn->flags & NS_CONN_SENTHDRS) ! && itPtr->adp.exception != ADP_ABORT) { ! status = AdpFlush(itPtr, 0); } *************** *** 199,202 **** --- 199,203 ---- Tcl_DStringFree(&rds); Tcl_DStringFree(&tds); + return status; } *************** *** 208,219 **** * NsAdpFlush -- * ! * Flush current response output to connection. * * Results: ! * None. * * Side effects: ! * None unless streaming is enabled in which case AdpFlush ! * is called. * *---------------------------------------------------------------------- --- 209,220 ---- * NsAdpFlush -- * ! * Flush current response output to connection. * * Results: ! * None. * * Side effects: ! * None unless streaming is enabled in which case AdpFlush ! * is called. * *---------------------------------------------------------------------- *************** *** 224,235 **** { if (itPtr->adp.stream ! && itPtr->adp.responsePtr != NULL ! && itPtr->adp.responsePtr->length > 0) { ! if (AdpFlush(itPtr, 1) != NS_OK) { ! itPtr->adp.stream = 0; if (Ns_ConnGetChunkedFlag(itPtr->conn)) { Ns_ConnSetChunkedFlag(itPtr->conn, 0); } ! } } } --- 225,237 ---- { if (itPtr->adp.stream ! && itPtr->adp.responsePtr != NULL ! && itPtr->adp.responsePtr->length > 0) { ! ! if (AdpFlush(itPtr, 1) != NS_OK) { ! itPtr->adp.stream = 0; if (Ns_ConnGetChunkedFlag(itPtr->conn)) { Ns_ConnSetChunkedFlag(itPtr->conn, 0); } ! } } } *************** *** 241,251 **** * NsAdpStream -- * ! * Turn streaming mode on. * * Results: ! * None. * * Side effects: ! * Headers and current data, if any, are flushed. Can enable chunked * mode depending on the browser version. * --- 243,253 ---- * NsAdpStream -- * ! * Turn streaming mode on. * * Results: ! * None. * * Side effects: ! * Headers and current data, if any, are flushed. Can enable chunked * mode depending on the browser version. * *************** *** 276,286 **** * NsAdpCompress -- * ! * Turn on-the-fly compression on or off. * * Results: ! * None. * * Side effects: ! * None. * *---------------------------------------------------------------------- --- 278,288 ---- * NsAdpCompress -- * ! * Turn on-the-fly compression on or off. * * Results: ! * None. * * Side effects: ! * None. * *---------------------------------------------------------------------- *************** *** 299,309 **** * NsAdpSetMimeType -- * ! * Sets the mime type and connection encoding for this adp. * * Results: ! * None. * * Side effects: ! * Type may effect output encoding charset. * *---------------------------------------------------------------------- --- 301,311 ---- * NsAdpSetMimeType -- * ! * Sets the mime type and connection encoding for this adp. * * Results: ! * None. * * Side effects: ! * Type may effect output encoding charset. * *---------------------------------------------------------------------- *************** *** 316,326 **** if (itPtr->adp.typePtr != NULL) { ! Tcl_DStringFree(itPtr->adp.typePtr); ! Tcl_DStringAppend(itPtr->adp.typePtr, type, -1); ! encoding = Ns_GetTypeEncoding(type); ! if (encoding != NULL) { ! Ns_ConnSetEncoding(itPtr->conn, encoding); Ns_ConnSetUrlEncoding(itPtr->conn, encoding); ! } } } --- 318,328 ---- if (itPtr->adp.typePtr != NULL) { ! Tcl_DStringFree(itPtr->adp.typePtr); ! Tcl_DStringAppend(itPtr->adp.typePtr, type, -1); ! encoding = Ns_GetTypeEncoding(type); ! if (encoding != NULL) { ! Ns_ConnSetEncoding(itPtr->conn, encoding); Ns_ConnSetUrlEncoding(itPtr->conn, encoding); ! } } } *************** *** 332,342 **** * NsFreeAdp -- * ! * Interp delete callback to free ADP resources. * * Results: ! * None. * * Side effects: ! * None. * *---------------------------------------------------------------------- --- 334,344 ---- * NsFreeAdp -- * ! * Interp delete callback to free ADP resources. * * Results: ! * None. * * Side effects: ! * None. * *---------------------------------------------------------------------- *************** *** 347,351 **** { if (itPtr->adp.cache != NULL) { ! Ns_CacheDestroy(itPtr->adp.cache); } } --- 349,353 ---- { if (itPtr->adp.cache != NULL) { ! Ns_CacheDestroy(itPtr->adp.cache); } } *************** *** 357,367 **** * AdpFlush -- * ! * Flush the headers and/or ADP content. * * Results: ! * NS_OK or NS_ERROR if a connection write routine failed. * * Side effects: ! * Content is encoded and/or sent. * *---------------------------------------------------------------------- --- 359,369 ---- * AdpFlush -- * ! * Flush the headers and/or ADP content. * * Results: ! * NS_OK or NS_ERROR if a connection write routine failed. * * Side effects: ! * Content is encoded and/or sent. * *---------------------------------------------------------------------- *************** *** 390,396 **** encoding = Ns_ConnGetEncoding(conn); if (encoding != NULL) { ! Tcl_UtfToExternalDString(encoding, buf, len, &ds); ! buf = ds.string; ! len = ds.length; } --- 392,398 ---- encoding = Ns_ConnGetEncoding(conn); if (encoding != NULL) { ! Tcl_UtfToExternalDString(encoding, buf, len, &ds); ! buf = ds.string; ! len = ds.length; } *************** *** 405,418 **** if (itPtr->adp.compress ! && itPtr->servPtr->adp.compress.enable ! && !(conn->flags & NS_CONN_SENTHDRS) ! && !(conn->flags & NS_CONN_SKIPBODY) ! && !stream ! && len >= itPtr->servPtr->adp.compress.minsize ! && (ahdr = Ns_SetIGet(Ns_ConnHeaders(conn), ! "Accept-Encoding")) != NULL ! && strstr(ahdr, "gzip") != NULL ! && Ns_CompressGzip(buf, len, &cds, ! itPtr->servPtr->adp.compress.level) == NS_OK) { /* --- 407,420 ---- if (itPtr->adp.compress ! && itPtr->servPtr->adp.compress.enable ! && !(conn->flags & NS_CONN_SENTHDRS) ! && !(conn->flags & NS_CONN_SKIPBODY) ! && !stream ! && len >= itPtr->servPtr->adp.compress.minsize ! && (ahdr = Ns_SetIGet(Ns_ConnHeaders(conn), ! "Accept-Encoding")) != NULL ! && strstr(ahdr, "gzip") != NULL ! && Ns_CompressGzip(buf, len, &cds, ! itPtr->servPtr->adp.compress.level) == NS_OK) { /* *************** *** 432,440 **** if (!(conn->flags & NS_CONN_SENTHDRS)) { ! if (itPtr->servPtr->adp.enableexpire) { ! Ns_ConnCondSetHeaders(conn, "Expires", "now"); ! } ! Ns_ConnSetRequiredHeaders(conn, type, stream ? -1 : len); ! Ns_ConnQueueHeaders(conn, 200); } --- 434,442 ---- if (!(conn->flags & NS_CONN_SENTHDRS)) { ! if (itPtr->servPtr->adp.enableexpire) { ! Ns_ConnCondSetHeaders(conn, "Expires", "now"); ! } ! Ns_ConnSetRequiredHeaders(conn, type, stream ? -1 : len); ! Ns_ConnQueueHeaders(conn, 200); } *************** *** 451,455 **** result = Ns_WriteConn(conn, buf, len); if (result == NS_OK && !stream) { ! result = Ns_ConnClose(conn); } --- 453,457 ---- result = Ns_WriteConn(conn, buf, len); if (result == NS_OK && !stream) { ! result = Ns_ConnClose(conn); } *************** *** 457,460 **** --- 459,463 ---- Tcl_DStringFree(&cds); Tcl_DStringTrunc(itPtr->adp.responsePtr, 0); + return result; } |
From: Vlad S. <ser...@us...> - 2005-08-24 16:33:00
|
Update of /cvsroot/naviserver/modules/nschartdir In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12214 Modified Files: ChangeLog nschartdir.c Log Message: updated to Chardir 4.0 Index: nschartdir.c =================================================================== RCS file: /cvsroot/naviserver/modules/nschartdir/nschartdir.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** nschartdir.c 1 Aug 2005 19:19:44 -0000 1.5 --- nschartdir.c 24 Aug 2005 16:32:52 -0000 1.6 *************** *** 74,78 **** TrendLayer *trend; } layers[MAX_LAYERS]; ! } Chart; static int ChartCmd(ClientData arg,Tcl_Interp *interp,int objc,Tcl_Obj *CONST objv[]); --- 74,78 ---- TrendLayer *trend; } layers[MAX_LAYERS]; ! } Ns_Chart; static int ChartCmd(ClientData arg,Tcl_Interp *interp,int objc,Tcl_Obj *CONST objv[]); *************** *** 80,84 **** static void ChartGC(void *arg); ! static Chart *chartList = 0; static Ns_Mutex chartMutex; static int chartIdleTimeout = 600; --- 80,84 ---- static void ChartGC(void *arg); ! static Ns_Chart *chartList = 0; static Ns_Mutex chartMutex; static int chartIdleTimeout = 600; *************** *** 162,168 **** } ! static Chart *getChart(unsigned long id) { ! Chart *chart; Ns_MutexLock(&chartMutex); --- 162,168 ---- } ! static Ns_Chart *getChart(unsigned long id) { ! Ns_Chart *chart; Ns_MutexLock(&chartMutex); *************** *** 173,177 **** } ! static void freeChart(Chart *chart,int lock) { if(!chart) return; --- 173,177 ---- } ! static void freeChart(Ns_Chart *chart,int lock) { if(!chart) return; *************** *** 189,193 **** static void ChartGC(void *arg) { ! Chart *chart; time_t now = time(0); --- 189,193 ---- static void ChartGC(void *arg) { ! Ns_Chart *chart; time_t now = time(0); *************** *** 195,199 **** for(chart = chartList;chart;) { if(now - chart->access_time > chartIdleTimeout) { ! Chart *next = chart->next; Ns_Log(Notice,"ns_chartdir: GC: inactive chart %ld",chart->id); freeChart(chart,0); --- 195,199 ---- for(chart = chartList;chart;) { if(now - chart->access_time > chartIdleTimeout) { ! Ns_Chart *next = chart->next; Ns_Log(Notice,"ns_chartdir: GC: inactive chart %ld",chart->id); freeChart(chart,0); *************** *** 229,235 **** } ! static Chart *createChart(int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { ! Chart *chart; char *type; int width = 500; --- 229,235 ---- } ! static Ns_Chart *createChart(int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { ! Ns_Chart *chart; char *type; int width = 500; *************** *** 249,253 **** return 0; } ! chart = (Chart*)ns_calloc(1,sizeof(Chart)); Ns_MutexLock(&chartMutex); chart->id = ++chartID; --- 249,253 ---- return 0; } ! chart = (Ns_Chart*)ns_calloc(1,sizeof(Ns_Chart)); Ns_MutexLock(&chartMutex); chart->id = ++chartID; *************** *** 277,281 **** } ! static int setBackground(Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int bgcolor; --- 277,281 ---- } ! static int setBackground(Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int bgcolor; *************** *** 294,298 **** } ! static int setSize(Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int width,height; --- 294,298 ---- } ! static int setSize(Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int width,height; *************** *** 308,312 **** } ! static int setPlotArea(Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int x,y,width,height; --- 308,312 ---- } ! static int setPlotArea(Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int x,y,width,height; *************** *** 334,338 **** } ! static int addLegend(Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int x,y; --- 334,338 ---- } ! static int addLegend(Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int x,y; *************** *** 368,372 **** } ! static int addTitle(Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { const char *title; --- 368,372 ---- } ! static int addTitle(Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { const char *title; *************** *** 395,399 **** } ! static int setBgImage(Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { const char *image; --- 395,399 ---- } ! static int setBgImage(Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { const char *image; *************** *** 414,418 **** } ! static int setColors(Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { char *name; --- 414,418 ---- } ! static int setColors(Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { char *name; *************** *** 427,433 **** } ! if(!strcasecmp(name,"defaultPalette")) palette = defaultPalette; else ! if(!strcasecmp(name,"whiteOnBlackPalette")) palette = whiteOnBlackPalette; else ! if(!strcasecmp(name,"transparentPalette")) palette = transparentPalette; else { if(Tcl_ListObjGetElements(interp,objv[3],&argc,&argv) != TCL_OK) { Tcl_WrongNumArgs(interp,2,objv,"palette"); --- 427,433 ---- } ! if(!strcasecmp(name,"defaultPalette")) palette = (int*)defaultPalette; else ! if(!strcasecmp(name,"whiteOnBlackPalette")) palette = (int*)whiteOnBlackPalette; else ! if(!strcasecmp(name,"transparentPalette")) palette = (int*)transparentPalette; else { if(Tcl_ListObjGetElements(interp,objv[3],&argc,&argv) != TCL_OK) { Tcl_WrongNumArgs(interp,2,objv,"palette"); *************** *** 444,448 **** } ! static int setWallpaper(Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { const char *image; --- 444,448 ---- } ! static int setWallpaper(Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { const char *image; *************** *** 456,460 **** } ! static int XAxisCmd(int second,Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int cmd; --- 456,460 ---- } ! static int XAxisCmd(int second,Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int cmd; *************** *** 627,631 **** } ! static int YAxisCmd(int second,Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int cmd; --- 627,631 ---- } ! static int YAxisCmd(int second,Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int cmd; *************** *** 858,862 **** } ! static int LayerCmd(Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int cmd, layer, datasetID; --- 858,862 ---- } ! static int LayerCmd(Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int cmd, layer, datasetID; *************** *** 1199,1203 **** } ! static int dashLineColor(Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int color; --- 1199,1203 ---- } ! static int dashLineColor(Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int color; *************** *** 1214,1218 **** } ! static int patternColor(Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int i,argc; --- 1214,1218 ---- } ! static int patternColor(Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int i,argc; *************** *** 1248,1252 **** } ! static int gradientColor(Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int *array,argc; --- 1248,1252 ---- } ! static int gradientColor(Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int *array,argc; *************** *** 1269,1277 **** // Check if it is name if(argc == 1 && (name = Tcl_GetStringFromObj(argv[0],0)) && ! (!strcasecmp("goldGradient",name) && (array = goldGradient)) || ! (!strcasecmp("silverGradient",name) && (array = silverGradient)) || ! (!strcasecmp("redMetalGradient",name) && (array = redMetalGradient)) || ! (!strcasecmp("blueMetalGradient",name) && (array = blueMetalGradient)) || ! (!strcasecmp("greenMetalGradient",name) && (array = greenMetalGradient)) ) { Tcl_SetObjResult(interp,Tcl_NewIntObj(chart->chart->gradientColor(array,angle,scale,startx,starty))); return TCL_OK; --- 1269,1277 ---- // Check if it is name if(argc == 1 && (name = Tcl_GetStringFromObj(argv[0],0)) && ! (!strcasecmp("goldGradient",name) && (array = (int*)goldGradient)) || ! (!strcasecmp("silverGradient",name) && (array = (int*)silverGradient)) || ! (!strcasecmp("redMetalGradient",name) && (array = (int*)redMetalGradient)) || ! (!strcasecmp("blueMetalGradient",name) && (array = (int*)blueMetalGradient)) || ! (!strcasecmp("greenMetalGradient",name) && (array = (int*)greenMetalGradient)) ) { Tcl_SetObjResult(interp,Tcl_NewIntObj(chart->chart->gradientColor(array,angle,scale,startx,starty))); return TCL_OK; *************** *** 1285,1289 **** } ! static int addText(Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int x,y; --- 1285,1289 ---- } ! static int addText(Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int x,y; *************** *** 1313,1317 **** } ! static int PieCmd(Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int cmd; --- 1313,1317 ---- } ! static int PieCmd(Ns_Chart *chart,int objc,Tcl_Obj *CONST objv[],Tcl_Interp *interp) { int cmd; *************** *** 1388,1392 **** { int i,cmd; ! Chart *chart = 0; enum commands { --- 1388,1392 ---- { int i,cmd; ! Ns_Chart *chart = 0; enum commands { Index: ChangeLog =================================================================== RCS file: /cvsroot/naviserver/modules/nschartdir/ChangeLog,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ChangeLog 20 May 2005 20:37:39 -0000 1.1.1.1 --- ChangeLog 24 Aug 2005 16:32:52 -0000 1.2 *************** *** 1,2 **** --- 1,6 ---- + 2005-08-24 Vlad Seryakov vl...@cr... + + * update to support ChartDirector 4.0 + 2003-01-15 Vlad Seryakov vl...@cr... |
From: Stephen D. <sd...@us...> - 2005-08-19 09:01:24
|
Update of /cvsroot/naviserver/naviserver In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1729 Modified Files: ChangeLog Log Message: * nsd/dns.c: Don't log host/address not found error messages. These aren't really errors. Index: ChangeLog =================================================================== RCS file: /cvsroot/naviserver/naviserver/ChangeLog,v retrieving revision 1.190 retrieving revision 1.191 diff -C2 -d -r1.190 -r1.191 *** ChangeLog 19 Aug 2005 08:20:27 -0000 1.190 --- ChangeLog 19 Aug 2005 09:01:12 -0000 1.191 *************** *** 1,4 **** --- 1,7 ---- 2005-08-18 Stephen Deasey <sd...@us...> + * nsd/dns.c: Don't log host/address not found error + messages. These aren't really errors. + * nsd/fastpath.c: * nsd/nsmain.c: |
From: Stephen D. <sd...@us...> - 2005-08-19 09:01:24
|
Update of /cvsroot/naviserver/naviserver/nsd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1729/nsd Modified Files: dns.c Log Message: * nsd/dns.c: Don't log host/address not found error messages. These aren't really errors. Index: dns.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/dns.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** dns.c 24 Jun 2005 08:37:41 -0000 1.5 --- dns.c 19 Aug 2005 09:01:13 -0000 1.6 *************** *** 259,270 **** sa.sin_family = AF_INET; sa.sin_addr.s_addr = inet_addr(addr); ! if ((result = getnameinfo((const struct sockaddr *) &sa, ! sizeof(struct sockaddr_in), buf, sizeof(buf), ! NULL, 0, NI_NAMEREQD)) != 0) { ! Ns_Log(Error, "dns: getnameinfo failed: %s", gai_strerror(result)); ! } else { Ns_DStringAppend(dsPtr, buf); status = NS_TRUE; ! } return status; --- 259,270 ---- sa.sin_family = AF_INET; sa.sin_addr.s_addr = inet_addr(addr); ! result = getnameinfo((const struct sockaddr *) &sa, ! sizeof(struct sockaddr_in), buf, sizeof(buf), ! NULL, 0, NI_NAMEREQD); ! if (result == 0) { Ns_DStringAppend(dsPtr, buf); status = NS_TRUE; ! } else if (result != EAI_NONAME) { ! Ns_Log(Error, "dns: getnameinfo failed: %s", gai_strerror(result)); } return status; *************** *** 343,350 **** hints.ai_family = PF_INET; hints.ai_socktype = SOCK_STREAM; ! if ((result = getaddrinfo(host, NULL, &hints, &res)) != 0) { ! Ns_Log(Error, "dns: getaddrinfo failed for %s: %s", host, ! gai_strerror(result)); ! } else { ptr = res; while (ptr != NULL) { --- 343,347 ---- hints.ai_family = PF_INET; hints.ai_socktype = SOCK_STREAM; ! if ((result = getaddrinfo(host, NULL, &hints, &res)) == 0) { ptr = res; while (ptr != NULL) { *************** *** 355,358 **** --- 352,358 ---- } freeaddrinfo(res); + } else if (result != EAI_NONAME) { + Ns_Log(Error, "dns: getaddrinfo failed for %s: %s", host, + gai_strerror(result)); } return status; |
From: Stephen D. <sd...@us...> - 2005-08-19 08:20:36
|
Update of /cvsroot/naviserver/naviserver/nsd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25370/nsd Modified Files: fastpath.c nsmain.c pathname.c str.c Log Message: * nsd/fastpath.c: * nsd/nsmain.c: * nsd/pathname.c: * nsd/str.c: Make sure ctype functions are always passed an unsigned char. Index: fastpath.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/fastpath.c,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** fastpath.c 10 Jul 2005 07:27:13 -0000 1.18 --- fastpath.c 19 Aug 2005 08:20:27 -0000 1.19 *************** *** 724,733 **** * The byte positions specified are inclusive. Byte count start at zero. */ ! if (isdigit(*str)) { rnPtr->offsets[idx].start = atol(str); ! while (isdigit(*str)) str++; if (*str == '-') { str++; ! if (!isdigit(*str)) { rnPtr->offsets[idx].end = rnPtr->size - 1; } else { --- 724,733 ---- * The byte positions specified are inclusive. Byte count start at zero. */ ! if (isdigit(UCHAR(*str))) { rnPtr->offsets[idx].start = atol(str); ! while (isdigit(UCHAR(*str))) str++; if (*str == '-') { str++; ! if (!isdigit(UCHAR(*str))) { rnPtr->offsets[idx].end = rnPtr->size - 1; } else { *************** *** 739,743 **** rnPtr->offsets[idx].end = rnPtr->size - 1; } ! while (isdigit(*str)) str++; } /* At this point we have syntactically valid byte-str-set */ --- 739,743 ---- rnPtr->offsets[idx].end = rnPtr->size - 1; } ! while (isdigit(UCHAR(*str))) str++; } /* At this point we have syntactically valid byte-str-set */ *************** *** 766,770 **** */ str++; ! if (!isdigit(*str)) { return NS_OK; } --- 766,770 ---- */ str++; ! if (!isdigit(UCHAR(*str))) { return NS_OK; } *************** *** 777,781 **** rnPtr->offsets[idx].end = rnPtr->offsets[idx].start + rnPtr->offsets[idx].end - 1; /* At this point we have syntactically valid byte-range-set */ ! while (isdigit(*str)) str++; switch (*str) { case ',': --- 777,781 ---- rnPtr->offsets[idx].end = rnPtr->offsets[idx].start + rnPtr->offsets[idx].end - 1; /* At this point we have syntactically valid byte-range-set */ ! while (isdigit(UCHAR(*str))) str++; switch (*str) { case ',': Index: nsmain.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/nsmain.c,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** nsmain.c 30 Jul 2005 03:11:06 -0000 1.17 --- nsmain.c 19 Aug 2005 08:20:27 -0000 1.18 *************** *** 597,601 **** if (*cwd == '\\') { *cwd = '/'; ! } else if (isupper(*cwd)) { *cwd = tolower(*cwd); } --- 597,601 ---- if (*cwd == '\\') { *cwd = '/'; ! } else if (isupper(UCHAR(*cwd))) { *cwd = tolower(*cwd); } Index: str.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/str.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** str.c 19 Aug 2005 07:50:44 -0000 1.5 --- str.c 19 Aug 2005 08:20:27 -0000 1.6 *************** *** 360,364 **** for (p = string; *p != '\0'; p++) { ! if (!isalnum(*p) && *p != ':' && (*p != '.' || (p[0] == '.' && p[1] == '.'))) { --- 360,364 ---- for (p = string; *p != '\0'; p++) { ! if (!isalnum(UCHAR(*p)) && *p != ':' && (*p != '.' || (p[0] == '.' && p[1] == '.'))) { Index: pathname.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/pathname.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** pathname.c 13 Jun 2005 01:55:14 -0000 1.5 --- pathname.c 19 Aug 2005 08:20:27 -0000 1.6 *************** *** 39,43 **** NS_RCSID("@(#) $Header$"); ! #define isslash(c) ((c) == '/' || (c) == '\\') /* --- 39,43 ---- NS_RCSID("@(#) $Header$"); ! #define ISSLASH(c) ((c) == '/' || (c) == '\\') /* *************** *** 72,80 **** { #ifdef _WIN32 ! if (isalpha(*path) && path[1] == ':') { path += 2; } #endif ! if (isslash(*path)) { return NS_TRUE; } --- 72,80 ---- { #ifdef _WIN32 ! if (isalpha(UCHAR(*path)) && path[1] == ':') { path += 2; } #endif ! if (ISSLASH(*path)) { return NS_TRUE; } *************** *** 109,114 **** src = Ns_DStringAppend(&tmp, path); #ifdef _WIN32 ! if (isalpha(*src) && src[1] == ':') { ! if (isupper(*src)) { *src = tolower(*src); } --- 109,114 ---- src = Ns_DStringAppend(&tmp, path); #ifdef _WIN32 ! if (isalpha(UCHAR(*src)) && src[1] == ':') { ! if (isupper(UCHAR(*src))) { *src = tolower(*src); } *************** *** 122,126 **** */ ! while (isslash(*src)) { ++src; } --- 122,126 ---- */ ! while (ISSLASH(*src)) { ++src; } *************** *** 132,136 **** */ ! while (*src && !isslash(*src)) { ++src; } --- 132,136 ---- */ ! while (*src && !ISSLASH(*src)) { ++src; } *************** *** 237,241 **** Ns_DStringNAppend(dest, "/", 1); } ! while (*p == '.' || isslash(*p)) { ++p; } --- 237,241 ---- Ns_DStringNAppend(dest, "/", 1); } ! while (*p == '.' || ISSLASH(*p)) { ++p; } *************** *** 736,740 **** while ((s = va_arg(*pap, char *)) != NULL) { ! if (isalpha(*s) && s[1] == ':') { char temp = *(s+2); *(s + 2) = 0; --- 736,740 ---- while ((s = va_arg(*pap, char *)) != NULL) { ! if (isalpha(UCHAR(*s)) && s[1] == ':') { char temp = *(s+2); *(s + 2) = 0; *************** *** 744,748 **** } while (*s) { ! while (isslash(*s)) { ++s; } --- 744,748 ---- } while (*s) { ! while (ISSLASH(*s)) { ++s; } *************** *** 750,754 **** Ns_DStringNAppend(dest, "/", 1); len = 0; ! while (s[len] != '\0' && !isslash(s[len])) { ++len; } --- 750,754 ---- Ns_DStringNAppend(dest, "/", 1); len = 0; ! while (s[len] != '\0' && !ISSLASH(s[len])) { ++len; } |
From: Stephen D. <sd...@us...> - 2005-08-19 08:20:36
|
Update of /cvsroot/naviserver/naviserver In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25370 Modified Files: ChangeLog Log Message: * nsd/fastpath.c: * nsd/nsmain.c: * nsd/pathname.c: * nsd/str.c: Make sure ctype functions are always passed an unsigned char. Index: ChangeLog =================================================================== RCS file: /cvsroot/naviserver/naviserver/ChangeLog,v retrieving revision 1.189 retrieving revision 1.190 diff -C2 -d -r1.189 -r1.190 *** ChangeLog 19 Aug 2005 07:50:43 -0000 1.189 --- ChangeLog 19 Aug 2005 08:20:27 -0000 1.190 *************** *** 1,4 **** --- 1,10 ---- 2005-08-18 Stephen Deasey <sd...@us...> + * nsd/fastpath.c: + * nsd/nsmain.c: + * nsd/pathname.c: + * nsd/str.c: Make sure ctype functions are always passed an + unsigned char. + * include/ns.h: * nsd/str.c (Ns_StrToInt): Convenience function for parsing |
From: Stephen D. <sd...@us...> - 2005-08-19 07:50:52
|
Update of /cvsroot/naviserver/naviserver In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19013 Modified Files: ChangeLog Log Message: * include/ns.h: * nsd/str.c (Ns_StrToInt): Convenience function for parsing integers. atoi is not always threadsafe (e.g. Darwin) and makes it impossible to handle errors, strtol makes it difficult. Index: ChangeLog =================================================================== RCS file: /cvsroot/naviserver/naviserver/ChangeLog,v retrieving revision 1.188 retrieving revision 1.189 diff -C2 -d -r1.188 -r1.189 *** ChangeLog 19 Aug 2005 05:49:34 -0000 1.188 --- ChangeLog 19 Aug 2005 07:50:43 -0000 1.189 *************** *** 2,5 **** --- 2,10 ---- * include/ns.h: + * nsd/str.c (Ns_StrToInt): Convenience function for parsing + integers. atoi is not always threadsafe (e.g. Darwin) and + makes it impossible to handle errors, strtol makes it difficult. + + * include/ns.h: * nsd/str.c: Untabify and add attributes. |
From: Stephen D. <sd...@us...> - 2005-08-19 07:50:52
|
Update of /cvsroot/naviserver/naviserver/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19013/include Modified Files: ns.h Log Message: * include/ns.h: * nsd/str.c (Ns_StrToInt): Convenience function for parsing integers. atoi is not always threadsafe (e.g. Darwin) and makes it impossible to handle errors, strtol makes it difficult. Index: ns.h =================================================================== RCS file: /cvsroot/naviserver/naviserver/include/ns.h,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** ns.h 19 Aug 2005 05:49:34 -0000 1.48 --- ns.h 19 Aug 2005 07:50:43 -0000 1.49 *************** *** 1336,1339 **** --- 1336,1341 ---- NS_EXTERN char *Ns_StrToLower(char *string) NS_GNUC_NONNULL(1); NS_EXTERN char *Ns_StrToUpper(char *string) NS_GNUC_NONNULL(1); + NS_EXTERN int Ns_StrToInt(CONST char *string, int *intPtr) + NS_GNUC_NONNULL(1) NS_GNUC_NONNULL(2); NS_EXTERN char *Ns_Match(char *a, char *b); NS_EXTERN char *Ns_NextWord(char *line) NS_GNUC_NONNULL(1); |
From: Stephen D. <sd...@us...> - 2005-08-19 07:50:52
|
Update of /cvsroot/naviserver/naviserver/nsd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19013/nsd Modified Files: str.c Log Message: * include/ns.h: * nsd/str.c (Ns_StrToInt): Convenience function for parsing integers. atoi is not always threadsafe (e.g. Darwin) and makes it impossible to handle errors, strtol makes it difficult. Index: str.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/str.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** str.c 19 Aug 2005 05:49:34 -0000 1.4 --- str.c 19 Aug 2005 07:50:44 -0000 1.5 *************** *** 196,199 **** --- 196,237 ---- *---------------------------------------------------------------------- * + * Ns_StrToInt -- + * + * Attempt to convert the string value to an integer. + * + * Results: + * NS_OK and *intPtr updated, NS_ERROR if the number cannot be + * parsed or overflows. + * + * Side effects: + * None. + * + *---------------------------------------------------------------------- + */ + + int + Ns_StrToInt(CONST char *string, int *intPtr) + { + long lval; + char *ep; + + errno = 0; + lval = strtol(string, &ep, 10); + if (string[0] == '\0' || *ep != '\0') { + return NS_ERROR; + } + if ((errno == ERANGE && (lval == LONG_MAX || lval == LONG_MIN)) + || (lval > INT_MAX || lval < INT_MIN)) { + return NS_ERROR; + } + *intPtr = (int) lval; + + return NS_OK; + } + + + /* + *---------------------------------------------------------------------- + * * Ns_Match -- * |
From: Stephen D. <sd...@us...> - 2005-08-19 05:49:46
|
Update of /cvsroot/naviserver/naviserver/nsd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31225/nsd Modified Files: str.c Log Message: * include/ns.h: * nsd/str.c: Untabify and add attributes. Index: str.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/str.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** str.c 13 Jun 2005 01:55:14 -0000 1.3 --- str.c 19 Aug 2005 05:49:34 -0000 1.4 *************** *** 1,7 **** /* ! * The contents of this file are subject to the AOLserver Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at ! * http://aolserver.com/. * * Software distributed under the License is distributed on an "AS IS" --- 1,7 ---- /* ! * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at ! * http://mozilla.org/. * * Software distributed under the License is distributed on an "AS IS" *************** *** 32,36 **** * str.c -- * ! * Functions that deal with strings. */ --- 32,36 ---- * str.c -- * ! * Functions that deal with strings. */ *************** *** 45,56 **** * Ns_StrTrim -- * ! * Trim leading and trailing white space from a string. * * Results: ! * A pointer to the trimmed string, which will be in the original ! * string. * * Side effects: ! * May modify passed-in string. * *---------------------------------------------------------------------- --- 45,56 ---- * Ns_StrTrim -- * ! * Trim leading and trailing white space from a string. * * Results: ! * A pointer to the trimmed string, which will be in the original ! * string. * * Side effects: ! * May modify passed-in string. * *---------------------------------------------------------------------- *************** *** 70,81 **** * Ns_StrTrimLeft -- * ! * Trim leading white space from a string. * * Results: ! * A pointer to the trimmed string, which will be in the ! * original string. * * Side effects: ! * None. * *---------------------------------------------------------------------- --- 70,81 ---- * Ns_StrTrimLeft -- * ! * Trim leading white space from a string. * * Results: ! * A pointer to the trimmed string, which will be in the ! * original string. * * Side effects: ! * None. * *---------------------------------------------------------------------- *************** *** 85,92 **** Ns_StrTrimLeft(char *string) { ! if (string == NULL) ! return NULL; ! while (isspace(UCHAR(*string))) { ! ++string; } return string; --- 85,92 ---- Ns_StrTrimLeft(char *string) { ! if (string != NULL) { ! while (isspace(UCHAR(*string))) { ! ++string; ! } } return string; *************** *** 100,111 **** * Ns_StrTrimRight -- * ! * Trim trailing white space from a string. * * Results: ! * A pointer to the trimmed string, which will be in the ! * original string. * * Side effects: ! * The string will be modified. * *---------------------------------------------------------------------- --- 100,111 ---- * Ns_StrTrimRight -- * ! * Trim trailing white space from a string. * * Results: ! * A pointer to the trimmed string, which will be in the ! * original string. * * Side effects: ! * The string will be modified. * *---------------------------------------------------------------------- *************** *** 117,128 **** int len; ! if (string == NULL) ! return NULL; ! len = strlen(string); ! while ((--len >= 0) && ! (isspace(UCHAR(string[len])) || ! string[len] == '\n')) { ! ! string[len] = '\0'; } return string; --- 117,127 ---- int len; ! if (string != NULL) { ! len = strlen(string); ! while ((--len >= 0) ! && (isspace(UCHAR(string[len])) ! || string[len] == '\n')) { ! string[len] = '\0'; ! } } return string; *************** *** 135,145 **** * Ns_StrToLower -- * ! * All alph. chars in a string will be made to be lowercase. * * Results: ! * Same string as passed in. * * Side effects: ! * Will modify string. * *---------------------------------------------------------------------- --- 134,144 ---- * Ns_StrToLower -- * ! * All alph. chars in a string will be made to be lowercase. * * Results: ! * Same string as passed in. * * Side effects: ! * Will modify string. * *---------------------------------------------------------------------- *************** *** 167,177 **** * Ns_StrToUpper -- * ! * All alph. chars in a string will be made to be uppercase. * * Results: ! * Same string as pssed in. * * Side effects: ! * Will modify string. * *---------------------------------------------------------------------- --- 166,176 ---- * Ns_StrToUpper -- * ! * All alph. chars in a string will be made to be uppercase. * * Results: ! * Same string as pssed in. * * Side effects: ! * Will modify string. * *---------------------------------------------------------------------- *************** *** 199,211 **** * Ns_Match -- * ! * Compare the beginnings of two strings, case insensitively. ! * The comparison stops when the end of the shorter string is ! * reached. * * Results: ! * NULL if no match, b if match. * * Side effects: ! * None. * *---------------------------------------------------------------------- --- 198,210 ---- * Ns_Match -- * ! * Compare the beginnings of two strings, case insensitively. ! * The comparison stops when the end of the shorter string is ! * reached. * * Results: ! * NULL if no match, b if match. * * Side effects: ! * None. * *---------------------------------------------------------------------- *************** *** 215,222 **** Ns_Match(char *a, char *b) { if (a != NULL && b != NULL) { while (*a != '\0' && *b != '\0') { - char c1, c2; - c1 = islower(UCHAR(*a)) ? *a : tolower(UCHAR(*a)); c2 = islower(UCHAR(*b)) ? *b : tolower(UCHAR(*b)); --- 214,221 ---- Ns_Match(char *a, char *b) { + char c1, c2; + if (a != NULL && b != NULL) { while (*a != '\0' && *b != '\0') { c1 = islower(UCHAR(*a)) ? *a : tolower(UCHAR(*a)); c2 = islower(UCHAR(*b)) ? *b : tolower(UCHAR(*b)); *************** *** 237,248 **** * Ns_NextWord -- * ! * Return a pointer to first character of the next word in a ! * string; words are separated by white space. * * Results: ! * A string pointer in the original string. * * Side effects: ! * None. * *---------------------------------------------------------------------- --- 236,247 ---- * Ns_NextWord -- * ! * Return a pointer to first character of the next word in a ! * string; words are separated by white space. * * Results: ! * A string pointer in the original string. * * Side effects: ! * None. * *---------------------------------------------------------------------- *************** *** 265,277 **** *---------------------------------------------------------------------- * ! * Ns_StrCaseStr -- * ! * Search for first substring within string, case insensitive. * * Results: ! * A pointer to where substring starts or NULL. * * Side effects: ! * None. * *---------------------------------------------------------------------- --- 264,276 ---- *---------------------------------------------------------------------- * ! * Ns_StrCaseFind -- * ! * Search for first substring within string, case insensitive. * * Results: ! * A pointer to where substring starts or NULL. * * Side effects: ! * None. * *---------------------------------------------------------------------- *************** *** 288,297 **** { if (strlen(string) > strlen(substring)) { ! while (*string != '\0') { ! if (Ns_Match(string, substring)) { ! return string; ! } ! ++string; ! } } return NULL; --- 287,296 ---- { if (strlen(string) > strlen(substring)) { ! while (*string != '\0') { ! if (Ns_Match(string, substring)) { ! return string; ! } ! ++string; ! } } return NULL; |
From: Stephen D. <sd...@us...> - 2005-08-19 05:49:46
|
Update of /cvsroot/naviserver/naviserver In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31225 Modified Files: ChangeLog Log Message: * include/ns.h: * nsd/str.c: Untabify and add attributes. Index: ChangeLog =================================================================== RCS file: /cvsroot/naviserver/naviserver/ChangeLog,v retrieving revision 1.187 retrieving revision 1.188 diff -C2 -d -r1.187 -r1.188 *** ChangeLog 4 Aug 2005 22:17:41 -0000 1.187 --- ChangeLog 19 Aug 2005 05:49:34 -0000 1.188 *************** *** 1,2 **** --- 1,7 ---- + 2005-08-18 Stephen Deasey <sd...@us...> + + * include/ns.h: + * nsd/str.c: Untabify and add attributes. + 2005-08-04 Vlad Seryakov <ser...@us...> |
From: Stephen D. <sd...@us...> - 2005-08-19 05:49:45
|
Update of /cvsroot/naviserver/naviserver/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31225/include Modified Files: ns.h Log Message: * include/ns.h: * nsd/str.c: Untabify and add attributes. Index: ns.h =================================================================== RCS file: /cvsroot/naviserver/naviserver/include/ns.h,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** ns.h 4 Aug 2005 21:54:26 -0000 1.47 --- ns.h 19 Aug 2005 05:49:34 -0000 1.48 *************** *** 1334,1344 **** NS_EXTERN char *Ns_StrTrimLeft(char *string); NS_EXTERN char *Ns_StrTrimRight(char *string); ! NS_EXTERN char *Ns_StrToLower(char *string); ! NS_EXTERN char *Ns_StrToUpper(char *string); ! NS_EXTERN char *Ns_StrCaseFind(char *s1, char *s2); NS_EXTERN char *Ns_Match(char *a, char *b); ! NS_EXTERN char *Ns_NextWord(char *line); ! NS_EXTERN char *Ns_StrNStr(char *pattern, char *expression); ! NS_EXTERN int Ns_StrIsHost(CONST char *string); /* --- 1334,1344 ---- NS_EXTERN char *Ns_StrTrimLeft(char *string); NS_EXTERN char *Ns_StrTrimRight(char *string); ! NS_EXTERN char *Ns_StrToLower(char *string) NS_GNUC_NONNULL(1); ! NS_EXTERN char *Ns_StrToUpper(char *string) NS_GNUC_NONNULL(1); NS_EXTERN char *Ns_Match(char *a, char *b); ! NS_EXTERN char *Ns_NextWord(char *line) NS_GNUC_NONNULL(1); ! NS_EXTERN char *Ns_StrNStr(char *pattern, char *expression) NS_GNUC_NONNULL(1); ! NS_EXTERN char *Ns_StrCaseFind(char *s1, char *s2) NS_GNUC_NONNULL(1); ! NS_EXTERN int Ns_StrIsHost(CONST char *string) NS_GNUC_NONNULL(1); /* |
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; } |
From: Vlad S. <ser...@us...> - 2005-08-10 04:32:44
|
Update of /cvsroot/naviserver/modules/nssys In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17056 Modified Files: tclsys.c Log Message: Index: tclsys.c =================================================================== RCS file: /cvsroot/naviserver/modules/nssys/tclsys.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** tclsys.c 8 Aug 2005 18:56:59 -0000 1.6 --- tclsys.c 8 Aug 2005 18:58:15 -0000 1.7 *************** *** 1817,1828 **** 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])); --- 1817,1828 ---- int sock, len, timeout = 5, retries = 1, noreply = 0; ! if (objc < 4) { Tcl_WrongNumArgs(interp, 1, objv, "ipaddr port data ?-timeout N? ?-retries N? ?-noreply 1|0?"); return TCL_ERROR; } ! address = Tcl_GetString(objv[1]); ! port = Tcl_GetString(objv[2]); ! data = Tcl_GetStringFromObj(objv[3],&len); ! for (i = 4; i < objc-1; i += 2) { if (!strcmp(Tcl_GetString(objv[i]),"-timeout")) { timeout = atoi(Tcl_GetString(objv[i+1])); |
From: Vlad S. <ser...@us...> - 2005-08-08 15:16:10
|
Update of /cvsroot/naviserver/modules/nsdbpg In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2242 Modified Files: ChangeLog tclcmds.c Log Message: Index: tclcmds.c =================================================================== RCS file: /cvsroot/naviserver/modules/nsdbpg/tclcmds.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** tclcmds.c 1 Aug 2005 19:32:22 -0000 1.3 --- tclcmds.c 8 Aug 2005 15:16:02 -0000 1.4 *************** *** 311,317 **** return TCL_ERROR; } ! sql = Ns_StrDup(argv[5]); } else { ! sql = Ns_StrDup(argv[3]); } --- 311,317 ---- return TCL_ERROR; } ! sql = ns_strdup(argv[5]); } else { ! sql = ns_strdup(argv[3]); } *************** *** 353,357 **** string_list_free_list(bind_variables); string_list_free_list(sql_fragments); ! Ns_Free(sql); return TCL_ERROR; } --- 353,357 ---- string_list_free_list(bind_variables); string_list_free_list(sql_fragments); ! ns_free(sql); return TCL_ERROR; } *************** *** 404,408 **** } ! Ns_Free(sql); sql = Ns_DStringExport(&ds); Ns_DStringFree(&ds); --- 404,408 ---- } ! ns_free(sql); sql = Ns_DStringExport(&ds); Ns_DStringFree(&ds); *************** *** 459,463 **** return DbFail(interp, handle, cmd, sql); } ! Ns_Free(sql); return TCL_OK; --- 459,463 ---- return DbFail(interp, handle, cmd, sql); } ! ns_free(sql); return TCL_OK; *************** *** 507,511 **** Tcl_AppendResult(interp, "\nSQL: ", sql, NULL); ! Ns_Free(sql); return TCL_ERROR; --- 507,511 ---- Tcl_AppendResult(interp, "\nSQL: ", sql, NULL); ! ns_free(sql); return TCL_ERROR; *************** *** 573,579 **** int first_bind = 0; ! fragbuf = (char*)Ns_Malloc((strlen(input)+1)*sizeof(char)); fp = fragbuf; ! bindbuf = (char*)Ns_Malloc((strlen(input)+1)*sizeof(char)); bp = bindbuf; --- 573,579 ---- int first_bind = 0; ! fragbuf = (char*)ns_malloc((strlen(input)+1)*sizeof(char)); fp = fragbuf; ! bindbuf = (char*)ns_malloc((strlen(input)+1)*sizeof(char)); bp = bindbuf; *************** *** 590,594 **** state = bind; *fp = '\0'; ! felt = string_list_elt_new(Ns_StrDup(fragbuf)); if(ftail == 0) { fhead = ftail = felt; --- 590,594 ---- state = bind; *fp = '\0'; ! felt = string_list_elt_new(ns_strdup(fragbuf)); if(ftail == 0) { fhead = ftail = felt; *************** *** 617,621 **** } else if (!(*p == '_' || *p == '$' || *p == '#' || isalnum((int)*p))) { *bp = '\0'; ! elt = string_list_elt_new(Ns_StrDup(bindbuf)); if (tail == 0) { head = tail = elt; --- 617,621 ---- } else if (!(*p == '_' || *p == '$' || *p == '#' || isalnum((int)*p))) { *bp = '\0'; ! elt = string_list_elt_new(ns_strdup(bindbuf)); if (tail == 0) { head = tail = elt; *************** *** 636,640 **** if (state == bind) { *bp = '\0'; ! elt = string_list_elt_new(Ns_StrDup(bindbuf)); if (tail == 0) { head = tail = elt; --- 636,640 ---- if (state == bind) { *bp = '\0'; ! elt = string_list_elt_new(ns_strdup(bindbuf)); if (tail == 0) { head = tail = elt; *************** *** 645,649 **** } else { *fp = '\0'; ! felt = string_list_elt_new(Ns_StrDup(fragbuf)); if (ftail == 0) { fhead = ftail = felt; --- 645,649 ---- } else { *fp = '\0'; ! felt = string_list_elt_new(ns_strdup(fragbuf)); if (ftail == 0) { fhead = ftail = felt; *************** *** 654,659 **** } ! Ns_Free(fragbuf); ! Ns_Free(bindbuf); *bind_variables = head; *fragments = fhead; --- 654,659 ---- } ! ns_free(fragbuf); ! ns_free(bindbuf); *bind_variables = head; *fragments = fhead; Index: ChangeLog =================================================================== RCS file: /cvsroot/naviserver/modules/nsdbpg/ChangeLog,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ChangeLog 1 Aug 2005 19:32:22 -0000 1.5 --- ChangeLog 8 Aug 2005 15:16:01 -0000 1.6 *************** *** 1,2 **** --- 1,6 ---- + 2005-08-09 Vlad Seryakov <ser...@us...> + + * tclcmds.c: changed to stop using old Ns_ functions + 2005-08-01 Vlad Seryakov <ser...@us...> |
From: Vlad S. <ser...@us...> - 2005-08-07 22:15:18
|
Update of /cvsroot/naviserver/modules/nsudp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1713/nsudp Modified Files: nsudp.c Log Message: added support of broadcasting to all udp commands Index: nsudp.c =================================================================== RCS file: /cvsroot/naviserver/modules/nsudp/nsudp.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** nsudp.c 1 Aug 2005 19:49:53 -0000 1.3 --- nsudp.c 7 Aug 2005 22:15:09 -0000 1.4 *************** *** 170,174 **** int salen = sizeof(sa); char *address = 0, *data = 0; ! int sock, len, port, timeout = 5, retries = 1, noreply = 0; Ns_ObjvSpec opts[] = { --- 170,174 ---- int salen = sizeof(sa); char *address = 0, *data = 0; ! int i, sock, len, port, timeout = 5, retries = 1, noreply = 0; Ns_ObjvSpec opts[] = { *************** *** 199,202 **** --- 199,206 ---- return TCL_ERROR; } + /* To support brodcasting addresses */ + i = 1; + setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &i, sizeof(int)); + resend: if (sendto(sock, data, len, 0,(struct sockaddr*)&sa,sizeof(sa)) < 0) { |
From: Vlad S. <ser...@us...> - 2005-08-07 22:15:18
|
Update of /cvsroot/naviserver/modules/nssys In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1713/nssys Modified Files: tclsys.c test.tcl Log Message: added support of broadcasting to all udp commands Index: tclsys.c =================================================================== RCS file: /cvsroot/naviserver/modules/nssys/tclsys.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** tclsys.c 7 Aug 2005 22:05:30 -0000 1.4 --- tclsys.c 7 Aug 2005 22:15:09 -0000 1.5 *************** *** 1845,1849 **** sa.sin_family = AF_INET; sa.sin_port = htons(atoi(port)); ! sa.sin_addr.s_addr = !*address ? INADDR_ANY : inet_addr(address); sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock < 0) { --- 1845,1849 ---- sa.sin_family = AF_INET; sa.sin_port = htons(atoi(port)); ! sa.sin_addr.s_addr = inet_addr(address); sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock < 0) { *************** *** 1851,1854 **** --- 1851,1857 ---- return TCL_ERROR; } + // To support brodcasting + i = 1; + setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &i, sizeof(int)); resend: if (sendto(sock, data, len, 0,(struct sockaddr*)&sa, sizeof(sa)) < 0) { Index: test.tcl =================================================================== RCS file: /cvsroot/naviserver/modules/nssys/test.tcl,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** test.tcl 7 Aug 2005 22:05:30 -0000 1.2 --- test.tcl 7 Aug 2005 22:15:09 -0000 1.3 *************** *** 4,8 **** # Send HTTP over UDP ! puts [ns_sysudp 127.0.0.1 80 "GET / HTTP/1.0\r\n\r\n"] # Setting channel on video device --- 4,8 ---- # Send HTTP over UDP ! puts [ns_sysudp 127.0.0.255 80 "GET / HTTP/1.0\r\n\r\n"] # Setting channel on video device |
From: Vlad S. <ser...@us...> - 2005-08-07 22:15:17
|
Update of /cvsroot/naviserver/modules/nssnmp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1713/nssnmp Modified Files: nssnmp.c Log Message: added support of broadcasting to all udp commands Index: nssnmp.c =================================================================== RCS file: /cvsroot/naviserver/modules/nssnmp/nssnmp.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** nssnmp.c 1 Aug 2005 19:47:45 -0000 1.7 --- nssnmp.c 7 Aug 2005 22:15:09 -0000 1.8 *************** *** 2012,2015 **** --- 2012,2018 ---- * * $Log$ + * Revision 1.8 2005/08/07 22:15:09 seryakov + * added support of broadcasting to all udp commands + * * Revision 1.7 2005/08/01 19:47:45 seryakov * removed old compat functions *************** *** 3278,3282 **** int salen = sizeof(sa); char *address = 0, *data = 0; ! int sock, len, port, timeout = 5, retries = 1, noreply = 0; Ns_ObjvSpec opts[] = { --- 3281,3285 ---- int salen = sizeof(sa); char *address = 0, *data = 0; ! int i, sock, len, port, timeout = 5, retries = 1, noreply = 0; Ns_ObjvSpec opts[] = { *************** *** 3307,3310 **** --- 3310,3317 ---- return TCL_ERROR; } + /* To support brodcasting addresses */ + i = 1; + setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &i, sizeof(int)); + resend: if (sendto(sock, data, len, 0,(struct sockaddr*)&sa,sizeof(sa)) < 0) { |
From: Vlad S. <ser...@us...> - 2005-08-07 22:05:39
|
Update of /cvsroot/naviserver/modules/nssys In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32315 Modified Files: tclsys.c test.tcl Log Message: ns_sysudp works now Index: tclsys.c =================================================================== RCS file: /cvsroot/naviserver/modules/nssys/tclsys.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** tclsys.c 7 Aug 2005 21:49:35 -0000 1.3 --- tclsys.c 7 Aug 2005 22:05:30 -0000 1.4 *************** *** 1814,1825 **** struct sockaddr_in sa; int i,salen = sizeof(sa); ! char *address = 0, *data = 0; ! int sock, len, port = 0, timeout = 5, retries = 1, noreply = 0; ! if(objc < 1) { 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++) { if(!strcmp(Tcl_GetString(objv[i]),"-timeout")) { timeout = atoi(Tcl_GetString(objv[i+1])); --- 1814,1825 ---- struct sockaddr_in sa; int i,salen = sizeof(sa); ! 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])); *************** *** 1837,1841 **** } if(i < objc) address = Tcl_GetString(objv[i++]); ! if(i < objc) port = atoi(Tcl_GetString(objv[i++])); if(i < objc) data = Tcl_GetStringFromObj(objv[i++],&len); if(!address || !port || !data) { --- 1837,1841 ---- } 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) { *************** *** 1844,1857 **** } sa.sin_family = AF_INET; ! sa.sin_port = htons((unsigned short) port); ! sa.sin_addr.s_addr = inet_addr(!*address ? INADDR_ANY : address); sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock < 0) { ! Tcl_AppendResult(interp, "socket error ", strerror(errno), 0); return TCL_ERROR; } resend: ! if (sendto(sock, data, len, 0,(struct sockaddr*)&sa,sizeof(sa)) < 0) { ! Tcl_AppendResult(interp, "sendto error ", strerror(errno), 0); return TCL_ERROR; } --- 1844,1857 ---- } sa.sin_family = AF_INET; ! sa.sin_port = htons(atoi(port)); ! sa.sin_addr.s_addr = !*address ? INADDR_ANY : inet_addr(address); sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock < 0) { ! Tcl_AppendResult(interp, "socket error: ", address, ":", port, " ", strerror(errno), 0); return TCL_ERROR; } resend: ! if (sendto(sock, data, len, 0,(struct sockaddr*)&sa, sizeof(sa)) < 0) { ! Tcl_AppendResult(interp, "sendto error: ", address, ":", port, " ", strerror(errno), 0); return TCL_ERROR; } *************** *** 1861,1865 **** } memset(buf,0,sizeof(buf)); - Ns_SockSetNonBlocking(sock); wait: FD_ZERO(&fds); --- 1861,1864 ---- *************** *** 1873,1877 **** goto wait; } ! Tcl_AppendResult(interp, "select error ", strerror(errno), 0); close(sock); return TCL_ERROR; --- 1872,1876 ---- goto wait; } ! Tcl_AppendResult(interp, "select error: ", address, ":", port, " ", strerror(errno), 0); close(sock); return TCL_ERROR; Index: test.tcl =================================================================== RCS file: /cvsroot/naviserver/modules/nssys/test.tcl,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** test.tcl 17 Jun 2005 03:03:41 -0000 1.1.1.1 --- test.tcl 7 Aug 2005 22:05:30 -0000 1.2 *************** *** 1,2 **** --- 1,9 ---- + #!/usr/bin/tclsh + + load /usr/local/lib/tclsys.so + + # Send HTTP over UDP + puts [ns_sysudp 127.0.0.1 80 "GET / HTTP/1.0\r\n\r\n"] + # Setting channel on video device set fd [open /dev/video0 r+] |
From: Vlad S. <ser...@us...> - 2005-08-07 21:49:45
|
Update of /cvsroot/naviserver/modules/nssys In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30071 Modified Files: tclsys.c Log Message: added ns_sysudp command Index: tclsys.c =================================================================== RCS file: /cvsroot/naviserver/modules/nssys/tclsys.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** tclsys.c 1 Aug 2005 19:49:03 -0000 1.2 --- tclsys.c 7 Aug 2005 21:49:35 -0000 1.3 *************** *** 258,262 **** * nothing */ ! static int SysSync(ClientData data,Tcl_Interp *interp,int argc,char **argv) { sync(); --- 258,262 ---- * nothing */ ! static int SysSync(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { sync(); *************** *** 278,282 **** * nothing */ ! static int SysSignal(ClientData data,Tcl_Interp *interp,int argc,char **argv) { int signo; --- 278,282 ---- * nothing */ ! static int SysSignal(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { int signo; *************** *** 288,292 **** } /* Ok,check the signal name */ ! if((signo = signal_name2num(interp,argv[1])) < 0) { Tcl_AppendResult(interp,"sys_signal: invalid signal: ",argv[1],NULL); return TCL_ERROR; --- 288,292 ---- } /* Ok,check the signal name */ ! if((signo = signal_name2num(interp,(char*)argv[1])) < 0) { Tcl_AppendResult(interp,"sys_signal: invalid signal: ",argv[1],NULL); return TCL_ERROR; *************** *** 336,340 **** * nothing */ ! static int SysKill(ClientData data,Tcl_Interp *interp,int argc,char **argv) { int i,k,pid; --- 336,340 ---- * nothing */ ! static int SysKill(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { int i,k,pid; *************** *** 343,347 **** /* Decode the signal name */ if(argc > 1 && argv[1][0] == '-') { ! if((k = signal_name2num(interp,argv[1]+1)) < 0) { Tcl_AppendResult(interp,"sys_kill: invalid signal ",argv[1]+1,NULL); return TCL_ERROR; --- 343,347 ---- /* Decode the signal name */ if(argc > 1 && argv[1][0] == '-') { ! if((k = signal_name2num(interp,(char*)argv[1]+1)) < 0) { Tcl_AppendResult(interp,"sys_kill: invalid signal ",argv[1]+1,NULL); return TCL_ERROR; *************** *** 380,384 **** * file name */ ! static int SysMktemp(ClientData data,Tcl_Interp *interp,int argc,char **argv) { char temp[128] = "/tmp/tmpXXXXXX"; --- 380,384 ---- * file name */ ! static int SysMktemp(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { char temp[128] = "/tmp/tmpXXXXXX"; *************** *** 404,408 **** * nothing */ ! static int SysNice(ClientData data,Tcl_Interp *interp,int argc,char **argv) { int k; --- 404,408 ---- * nothing */ ! static int SysNice(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { int k; *************** *** 435,439 **** * nothing */ ! static int SysExec(ClientData data,Tcl_Interp *interp,int argc,char **argv) { if(argc == 1) { --- 435,439 ---- * nothing */ ! static int SysExec(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { if(argc == 1) { *************** *** 441,445 **** return TCL_ERROR; } ! execvp(argv[1],argv+1); Tcl_AppendResult(interp,argv[1],": ",strerror(errno),NULL); return TCL_ERROR; --- 441,445 ---- return TCL_ERROR; } ! execvp((char*)argv[1],argv); Tcl_AppendResult(interp,argv[1],": ",strerror(errno),NULL); return TCL_ERROR; *************** *** 460,464 **** * exit status */ ! static int SysWait(ClientData data,Tcl_Interp *interp,int argc,char **argv) { int i,k,pid; --- 460,464 ---- * exit status */ ! static int SysWait(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { int i,k,pid; *************** *** 499,503 **** * returns two created channels as a list */ ! static int SysPipe(ClientData data,Tcl_Interp *interp,int argc,char **argv) { int i,creating_pipes; --- 499,503 ---- * returns two created channels as a list */ ! static int SysPipe(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { int i,creating_pipes; *************** *** 533,537 **** * returns two created channels as a list */ ! static int SysOpentty(ClientData data,Tcl_Interp *interp,int argc,char **argv) { int i; --- 533,537 ---- * returns two created channels as a list */ ! static int SysOpentty(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { int i; *************** *** 557,561 **** * nothing */ ! static int SysReboot(ClientData data,Tcl_Interp *interp,int argc,char **argv) { sync(); --- 557,561 ---- * nothing */ ! static int SysReboot(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { sync(); *************** *** 580,584 **** * nothing */ ! static int SysHalt(ClientData data,Tcl_Interp *interp,int argc,char **argv) { kill(SIGTERM,-1); --- 580,584 ---- * nothing */ ! static int SysHalt(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { kill(SIGTERM,-1); *************** *** 601,605 **** * new channel name */ ! static int SysDup(ClientData data,Tcl_Interp *interp,int argc,char **argv) { int modes[2],fd[2]; --- 601,605 ---- * new channel name */ ! static int SysDup(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { int modes[2],fd[2]; *************** *** 634,638 **** * nothing */ ! static int SysDup2(ClientData data,Tcl_Interp *interp,int argc,char **argv) { int modes[2],fd[2]; --- 634,638 ---- * nothing */ ! static int SysDup2(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { int modes[2],fd[2]; *************** *** 675,679 **** * thread of execution, and a 0 is returned in the child's thread of execution */ ! static int SysFork(ClientData data,Tcl_Interp *interp,int argc,char **argv) { int k; --- 675,679 ---- * thread of execution, and a 0 is returned in the child's thread of execution */ ! static int SysFork(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { int k; *************** *** 701,705 **** * nothing */ ! static int SysFCopy(ClientData data,Tcl_Interp *interp,int argc,char **argv) { int i,j,k; --- 701,705 ---- * nothing */ ! static int SysFCopy(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { int i,j,k; *************** *** 753,757 **** * nothing */ ! static int SysChmod(ClientData data,Tcl_Interp *interp,int argc,char **argv) { int i,mode; --- 753,757 ---- * nothing */ ! static int SysChmod(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { int i,mode; *************** *** 795,801 **** * nothing */ ! static int SysChown(ClientData data,Tcl_Interp *interp,int argc,char **argv) { ! int i,uid = -1,gid = -1; if(argc < 3) { --- 795,801 ---- * nothing */ ! static int SysChown(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { ! int uid = -1,gid = -1; if(argc < 3) { *************** *** 806,810 **** if(argc > 3 && Tcl_GetInt(interp,argv[3],&gid) != TCL_OK) return TCL_ERROR; if(chown(argv[1],uid,gid) != 0) { ! Tcl_AppendResult(interp,"sys_chown(",argv[i],"): ",strerror(errno),NULL); return TCL_ERROR; } --- 806,810 ---- if(argc > 3 && Tcl_GetInt(interp,argv[3],&gid) != TCL_OK) return TCL_ERROR; if(chown(argv[1],uid,gid) != 0) { ! Tcl_AppendResult(interp,"sys_chown(",argv[1],"): ",strerror(errno),NULL); return TCL_ERROR; } *************** *** 825,829 **** * Previous octal umask value */ ! static int SysUmask(ClientData data,Tcl_Interp *interp,int argc,char **argv) { mode_t prev; --- 825,829 ---- * Previous octal umask value */ ! static int SysUmask(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { mode_t prev; *************** *** 857,861 **** * None */ ! static int SysIoctl(ClientData data,Tcl_Interp *interp,int objc,Tcl_Obj *objv[]) { static struct { --- 857,861 ---- * None */ ! static int SysIoctl(ClientData data,Tcl_Interp *interp,int objc,Tcl_Obj *CONST objv[]) { static struct { *************** *** 1219,1223 **** * nothing */ ! static int SysMknod(ClientData data,Tcl_Interp *interp,int argc,char **argv) { mode_t ftype; --- 1219,1223 ---- * nothing */ ! static int SysMknod(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { mode_t ftype; *************** *** 1311,1315 **** * f_namemax maximum filename length */ ! static int SysStatFs(ClientData data,Tcl_Interp *interp,int argc,char **argv) { char str[128]; --- 1311,1315 ---- * f_namemax maximum filename length */ ! static int SysStatFs(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { char str[128]; *************** *** 1365,1369 **** * nothing */ ! static int SysLog(ClientData data,Tcl_Interp *interp,int argc,char **argv) { int i,priority = 0; --- 1365,1369 ---- * nothing */ ! static int SysLog(ClientData data,Tcl_Interp *interp,int argc,const char **argv) { int i,priority = 0; *************** *** 1627,1631 **** * None */ ! static int SysV4L(ClientData data,Tcl_Interp *interp,int objc,Tcl_Obj *objv[]) { int i; --- 1627,1631 ---- * None */ ! static int SysV4L(ClientData data,Tcl_Interp *interp,int objc,Tcl_Obj *CONST objv[]) { int i; *************** *** 1714,1718 **** static char *shifted = "~!@#$%^&*()_+|}{\":?><ABCDEFGHIJKLMNOPQRSTUVWXYZ"; ! static int SysXevent(ClientData data,Tcl_Interp *interp,int objc,Tcl_Obj *objv[]) { char *op, *arg; --- 1714,1718 ---- static char *shifted = "~!@#$%^&*()_+|}{\":?><ABCDEFGHIJKLMNOPQRSTUVWXYZ"; ! static int SysXevent(ClientData data,Tcl_Interp *interp,int objc,Tcl_Obj *CONST objv[]) { char *op, *arg; *************** *** 1807,1810 **** --- 1807,1898 ---- } + static int SysUdp(ClientData arg, Tcl_Interp *interp,int objc,Tcl_Obj *CONST objv[]) + { + fd_set fds; + char buf[16384]; + struct timeval tv; + struct sockaddr_in sa; + int i,salen = sizeof(sa); + char *address = 0, *data = 0; + int sock, len, port = 0, timeout = 5, retries = 1, noreply = 0; + + if(objc < 1) { + 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++) { + 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 = atoi(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; + sa.sin_port = htons((unsigned short) port); + sa.sin_addr.s_addr = inet_addr(!*address ? INADDR_ANY : address); + sock = socket(AF_INET, SOCK_DGRAM, 0); + if (sock < 0) { + Tcl_AppendResult(interp, "socket error ", strerror(errno), 0); + return TCL_ERROR; + } + resend: + if (sendto(sock, data, len, 0,(struct sockaddr*)&sa,sizeof(sa)) < 0) { + Tcl_AppendResult(interp, "sendto error ", strerror(errno), 0); + return TCL_ERROR; + } + if (noreply) { + close(sock); + return TCL_OK; + } + memset(buf,0,sizeof(buf)); + Ns_SockSetNonBlocking(sock); + wait: + FD_ZERO(&fds); + FD_SET(sock,&fds); + tv.tv_sec = timeout; + tv.tv_usec = 0; + len = select(sock+1, &fds, 0, 0, &tv); + switch (len) { + case -1: + if (errno == EINTR || errno == EINPROGRESS || errno == EAGAIN) { + goto wait; + } + Tcl_AppendResult(interp, "select error ", strerror(errno), 0); + close(sock); + return TCL_ERROR; + + case 0: + if(--retries < 0) { + goto resend; + } + Tcl_AppendResult(interp, "timeout", 0); + close(sock); + return TCL_ERROR; + } + if (FD_ISSET(sock, &fds)) { + len = recvfrom(sock, buf, sizeof(buf)-1, 0, (struct sockaddr*)&sa, &salen); + if (len > 0) { + Tcl_AppendResult(interp, buf, 0); + } + } + close(sock); + return TCL_OK; + } + static int NsSysInterpInit(Tcl_Interp *interp,void *context) *************** *** 1816,1821 **** syslog_data.options = LOG_PID; syslog_data.facility = LOG_USER; ! if((argv0 = Tcl_GetVar(interp,"argv0",TCL_GLOBAL_ONLY))) strncpy(syslog_data.ident,argv0,sizeof(syslog_data.ident)-1); syslog_data.facilities = (Tcl_HashTable *)Tcl_Alloc(sizeof(Tcl_HashTable)); Tcl_InitHashTable(syslog_data.facilities,TCL_STRING_KEYS); --- 1904,1910 ---- syslog_data.options = LOG_PID; syslog_data.facility = LOG_USER; ! if((argv0 = (char*)Tcl_GetVar(interp,"argv0",TCL_GLOBAL_ONLY))) { strncpy(syslog_data.ident,argv0,sizeof(syslog_data.ident)-1); + } syslog_data.facilities = (Tcl_HashTable *)Tcl_Alloc(sizeof(Tcl_HashTable)); Tcl_InitHashTable(syslog_data.facilities,TCL_STRING_KEYS); *************** *** 1872,1879 **** Tcl_CreateCommand(interp,"ns_syssignal",SysSignal,context,0); Tcl_CreateCommand(interp,"ns_sysstatfs",SysStatFs,context,0); Tcl_CreateObjCommand(interp,"ns_sysioctl",SysIoctl,context,0); Tcl_CreateObjCommand(interp,"ns_sysv4l",SysV4L,context,0); - Tcl_CreateObjCommand(interp,"ns_sysmktemp",SysMktemp,context,0); Tcl_CreateObjCommand(interp,"ns_sysxevent",SysXevent,context,0); return 0; --- 1961,1969 ---- Tcl_CreateCommand(interp,"ns_syssignal",SysSignal,context,0); Tcl_CreateCommand(interp,"ns_sysstatfs",SysStatFs,context,0); + Tcl_CreateCommand(interp,"ns_sysmktemp",SysMktemp,context,0); Tcl_CreateObjCommand(interp,"ns_sysioctl",SysIoctl,context,0); Tcl_CreateObjCommand(interp,"ns_sysv4l",SysV4L,context,0); Tcl_CreateObjCommand(interp,"ns_sysxevent",SysXevent,context,0); + Tcl_CreateObjCommand(interp,"ns_sysudp",SysUdp,context,0); return 0; |