diff -Nru clearsilver-0.9.6/Makefile clearsilver-0.9.7/Makefile --- clearsilver-0.9.6/Makefile Mon Oct 20 14:19:29 2003 +++ clearsilver-0.9.7/Makefile Tue Nov 18 18:07:55 2003 @@ -107,8 +107,8 @@ mkdir -p $$mdir; \ done -CS_DISTDIR = clearsilver-0.9.6 -CS_LABEL = CLEARSILVER-0_9_6 +CS_DISTDIR = clearsilver-0.9.7 +CS_LABEL = CLEARSILVER-0_9_7 CS_FILES = README README.python INSTALL LICENSE CS_LICENSE rules.mk.in Makefile util cs cgi python scripts mod_ecs imd java-jni perl ruby dso csharp acconfig.h autogen.sh config.guess config.sub configure.in cs_config.h.in mkinstalldirs install-sh ClearSilver.h ports contrib cs_dist: rm -rf $(CS_DISTDIR) diff -Nru clearsilver-0.9.6/cgi/cgi.c clearsilver-0.9.7/cgi/cgi.c --- clearsilver-0.9.6/cgi/cgi.c Wed Oct 8 16:45:40 2003 +++ clearsilver-0.9.7/cgi/cgi.c Tue Nov 18 17:54:37 2003 @@ -199,6 +199,8 @@ {"HTTP_USER_AGENT", "UserAgent"}, {"HTTP_IF_MODIFIED_SINCE", "IfModifiedSince"}, {"HTTP_REFERER", "Referer"}, + /* SOAP */ + {"HTTP_SOAPACTION", "Soap.Action"}, {NULL, NULL} }; diff -Nru clearsilver-0.9.6/cgi/rfc2388.c clearsilver-0.9.7/cgi/rfc2388.c --- clearsilver-0.9.6/cgi/rfc2388.c Wed Apr 2 15:07:28 2003 +++ clearsilver-0.9.7/cgi/rfc2388.c Mon Nov 10 13:36:53 2003 @@ -359,6 +359,7 @@ { err = _read_header_line (cgi, &str, done); if (err) break; + if (*done) break; if (str.buf == NULL || str.buf[0] == '\0') break; p = strchr (str.buf, ':'); if (p) @@ -410,14 +411,14 @@ } string_set(&str, ""); - while (1) + while (!(*done)) { char *s; int l, w; err = _read_line (cgi, &s, &l, done); if (err) break; - if (l == 0) break; + if (*done || (l == 0)) break; if (_is_boundary(boundary, s, l, done)) break; if (filename) { diff -Nru clearsilver-0.9.6/java-jni/Makefile clearsilver-0.9.7/java-jni/Makefile --- clearsilver-0.9.6/java-jni/Makefile Wed Sep 3 15:38:47 2003 +++ clearsilver-0.9.7/java-jni/Makefile Tue Nov 4 16:42:27 2003 @@ -51,7 +51,7 @@ LD_LIBRARY_PATH=$(NEOTONIC_ROOT)/java-jni; export LD_LIBRARY_PATH; \ CLASSPATH=$(NEO_UTIL_JAVA_JAR):.; export CLASSPATH; \ $(JAVA_PATH)/bin/java CSTest > javatest.out; \ - diff -brief javatest.out javatest.gold > /dev/null 2>&1; \ + diff --brief javatest.out javatest.gold > /dev/null 2>&1; \ return_code=$$?; \ if [ $$return_code -ne 0 ]; then \ diff javatest.out javatest.gold > javatest.err; \ diff -Nru clearsilver-0.9.6/ports/freebsd/Makefile clearsilver-0.9.7/ports/freebsd/Makefile --- clearsilver-0.9.6/ports/freebsd/Makefile Tue Jun 17 14:29:27 2003 +++ clearsilver-0.9.7/ports/freebsd/Makefile Tue Nov 18 18:07:56 2003 @@ -6,7 +6,7 @@ # PORTNAME= clearsilver -PORTVERSION= 0.8.1 +PORTVERSION= 0.9.7 CATEGORIES= www python perl ruby DISTDIR= /home/blong/ports/distfiles MASTER_SITES= http://www.clearsilver.net/downloads/ diff -Nru clearsilver-0.9.6/ports/rpm/clearsilver.spec clearsilver-0.9.7/ports/rpm/clearsilver.spec --- clearsilver-0.9.6/ports/rpm/clearsilver.spec Mon Oct 20 14:19:30 2003 +++ clearsilver-0.9.7/ports/rpm/clearsilver.spec Tue Nov 18 18:07:58 2003 @@ -23,7 +23,7 @@ # manpage is probably wrong on some platforms. # # * The apache/java/ruby/csharp packages are not yet finished. For one, -# all of my machines are redhat 7.3 or later, and don't have rpms +# all of my machines are redhat 7.3 or earlier, and don't have rpms # installed for java/ruby/csharp, and my apache installation is Neotonic # specific and therefore not much help to the rest of you. @@ -53,11 +53,11 @@ Summary: Neotonic ClearSilver Name: clearsilver -Version: 0.9.6 +Version: 0.9.7 Release: 1 Copyright: Open Source - Neotonic ClearSilver License (Apache 1.1 based) Group: Development/Libraries -Source: http://www.clearsilver.net/downloads/clearsilver-0.9.5.tar.gz +Source: http://www.clearsilver.net/downloads/clearsilver-0.9.7.tar.gz URL: http://www.clearsilver.net/ Vendor: Neotonic Software Corporation, Inc. Packager: Brandon Long diff -Nru clearsilver-0.9.6/util/neo_hdf.c clearsilver-0.9.7/util/neo_hdf.c --- clearsilver-0.9.6/util/neo_hdf.c Mon Oct 20 14:18:58 2003 +++ clearsilver-0.9.7/util/neo_hdf.c Wed Oct 29 12:06:57 2003 @@ -880,6 +880,7 @@ p->next = NULL; c = p; } + h->last_child = c; } while (0); uListDestroy(&level, 0); return nerr_pass(err); diff -Nru clearsilver-0.9.6/util/neo_misc.h clearsilver-0.9.7/util/neo_misc.h --- clearsilver-0.9.6/util/neo_misc.h Fri Aug 8 23:54:17 2003 +++ clearsilver-0.9.7/util/neo_misc.h Tue Nov 11 18:11:52 2003 @@ -13,7 +13,11 @@ #include #include + +/* In case they didn't start from ClearSilver.h... */ +#ifndef __CS_CONFIG_H_ #include "cs_config.h" +#endif /* Fix Up for systems that don't define these standard things... */ #ifndef __BEGIN_DECLS diff -Nru clearsilver-0.9.6/util/neo_net.c clearsilver-0.9.7/util/neo_net.c --- clearsilver-0.9.6/util/neo_net.c Thu May 22 19:32:19 2003 +++ clearsilver-0.9.7/util/neo_net.c Wed Oct 29 12:07:23 2003 @@ -30,13 +30,13 @@ static int ShutdownAccept = 0; -void net_shutdown() +void ne_net_shutdown() { ShutdownAccept = 1; } /* Server side */ -NEOERR *net_listen(int port, int *fd) +NEOERR *ne_net_listen(int port, int *fd) { int sfd = 0; int on = 1; @@ -106,7 +106,7 @@ return STATUS_OK; } -NEOERR *net_accept(NSOCK **sock, int sfd, int data_timeout) +NEOERR *ne_net_accept(NSOCK **sock, int sfd, int data_timeout) { NSOCK *my_sock; int fd; @@ -145,7 +145,7 @@ } /* Client side */ -NEOERR *net_connect(NSOCK **sock, char *host, int port, int conn_timeout, +NEOERR *ne_net_connect(NSOCK **sock, char *host, int port, int conn_timeout, int data_timeout) { struct sockaddr_in serv_addr; @@ -278,12 +278,12 @@ return STATUS_OK; } -NEOERR *net_close(NSOCK **sock) +NEOERR *ne_net_close(NSOCK **sock) { NEOERR *err; if (sock == NULL || *sock == NULL) return STATUS_OK; - err = net_flush(*sock); + err = ne_net_flush(*sock); close((*sock)->fd); free((*sock)); *sock = NULL; @@ -302,7 +302,7 @@ * calling this we have to check that case as well as standard errors. * We could raise an NERR_EOF or something, but that seems like * overkill. We should probably have a ret arg for the case... */ -static NEOERR *net_fill(NSOCK *sock) +static NEOERR *ne_net_fill(NSOCK *sock) { NEOERR *err; struct timeval tv; @@ -314,7 +314,7 @@ * flush the output buffer (if any) before we read */ if (sock->ol) { - err = net_flush(sock); + err = ne_net_flush(sock); if (err) return nerr_pass(err); } @@ -363,7 +363,7 @@ return STATUS_OK; } -NEOERR *net_flush(NSOCK *sock) +NEOERR *ne_net_flush(NSOCK *sock) { fd_set fds; struct timeval tv; @@ -408,7 +408,7 @@ } /* hmm, we may need something to know how much we've read here... */ -NEOERR *net_read(NSOCK *sock, UINT8 *buf, int buflen) +NEOERR *ne_net_read(NSOCK *sock, UINT8 *buf, int buflen) { NEOERR *err; int x = 0; @@ -430,7 +430,7 @@ } else { - err = net_fill(sock); + err = ne_net_fill(sock); if (err) return nerr_pass(err); if (sock->il == 0) return STATUS_OK; } @@ -438,7 +438,7 @@ return STATUS_OK; } -NEOERR *net_read_line(NSOCK *sock, char **buf) +NEOERR *ne_net_read_line(NSOCK *sock, char **buf) { NEOERR *err; STRING str; @@ -472,7 +472,7 @@ } else { - err = net_fill(sock); + err = ne_net_fill(sock); if (err) break; if (sock->il == 0) return STATUS_OK; } @@ -481,7 +481,7 @@ return nerr_pass(err); } -static NEOERR *_net_read_int(NSOCK *sock, int *i, char end) +static NEOERR *_ne_net_read_int(NSOCK *sock, int *i, char end) { NEOERR *err; int x = 0; @@ -498,7 +498,7 @@ if (x == sizeof(buf)) break; } if (buf[x] == end) break; - err = net_fill(sock); + err = ne_net_fill(sock); if (err) return nerr_pass(err); if (sock->il == 0) return STATUS_OK; } @@ -516,14 +516,14 @@ return STATUS_OK; } -NEOERR *net_read_binary(NSOCK *sock, UINT8 **b, int *blen) +NEOERR *ne_net_read_binary(NSOCK *sock, UINT8 **b, int *blen) { NEOERR *err; UINT8 *data; char buf[5]; int l; - err = _net_read_int(sock, &l, ':'); + err = _ne_net_read_int(sock, &l, ':'); if (err) return nerr_pass(err); /* Special case to read a NULL */ @@ -542,14 +542,14 @@ "Unable to allocate memory for binary data %d" , l); } - err = net_read(sock, data, l); + err = ne_net_read(sock, data, l); if (err) { free(data); return nerr_pass(err); } /* check for comma separator */ - err = net_read(sock, buf, 1); + err = ne_net_read(sock, buf, 1); if (err) { free(data); @@ -566,13 +566,13 @@ return STATUS_OK; } -NEOERR *net_read_str_alloc(NSOCK *sock, char **s, int *len) +NEOERR *ne_net_read_str_alloc(NSOCK *sock, char **s, int *len) { NEOERR *err; int l; /* just use the binary read and null terminate the string... */ - err = net_read_binary(sock, (UINT8 **)s, &l); + err = ne_net_read_binary(sock, (UINT8 **)s, &l); if (err) return nerr_pass(err); if (*s != NULL) @@ -583,12 +583,12 @@ return STATUS_OK; } -NEOERR *net_read_int(NSOCK *sock, int *i) +NEOERR *ne_net_read_int(NSOCK *sock, int *i) { - return nerr_pass(_net_read_int(sock, i, ',')); + return nerr_pass(_ne_net_read_int(sock, i, ',')); } -NEOERR *net_write(NSOCK *sock, UINT8 *b, int blen) +NEOERR *ne_net_write(NSOCK *sock, UINT8 *b, int blen) { NEOERR *err; int x = 0; @@ -614,25 +614,25 @@ } else { - err = net_flush(sock); + err = ne_net_flush(sock); if (err) return nerr_pass(err); } } return STATUS_OK; } -NEOERR *net_write_line(NSOCK *sock, char *s) +NEOERR *ne_net_write_line(NSOCK *sock, char *s) { NEOERR *err; - err = net_write(sock, s, strlen(s)); + err = ne_net_write(sock, s, strlen(s)); if (err) return nerr_pass(err); - err = net_write(sock, "\n", 1); + err = ne_net_write(sock, "\n", 1); if (err) return nerr_pass(err); return STATUS_OK; } -NEOERR *net_write_binary(NSOCK *sock, UINT8 *b, int blen) +NEOERR *ne_net_write_binary(NSOCK *sock, UINT8 *b, int blen) { NEOERR *err; char buf[32]; @@ -640,36 +640,36 @@ if (b == NULL) blen = -1; snprintf(buf, sizeof(buf), "%d:", blen); - err = net_write(sock, buf, strlen(buf)); + err = ne_net_write(sock, buf, strlen(buf)); if (err) return nerr_pass(err); if (blen > 0) { - err = net_write(sock, b, blen); + err = ne_net_write(sock, b, blen); if (err) return nerr_pass(err); } - err = net_write(sock, ",", 1); + err = ne_net_write(sock, ",", 1); if (err) return nerr_pass(err); return STATUS_OK; } -NEOERR *net_write_str(NSOCK *sock, char *s) +NEOERR *ne_net_write_str(NSOCK *sock, char *s) { NEOERR *err; if (s == NULL) - err = net_write_binary(sock, s, -1); + err = ne_net_write_binary(sock, s, -1); else - err = net_write_binary(sock, s, strlen(s)); + err = ne_net_write_binary(sock, s, strlen(s)); return nerr_pass(err); } -NEOERR *net_write_int(NSOCK *sock, int i) +NEOERR *ne_net_write_int(NSOCK *sock, int i) { char buf[32]; snprintf(buf, sizeof(buf), "%d,", i); - return nerr_pass(net_write(sock, buf, strlen(buf))); + return nerr_pass(ne_net_write(sock, buf, strlen(buf))); } diff -Nru clearsilver-0.9.6/util/neo_net.h clearsilver-0.9.7/util/neo_net.h --- clearsilver-0.9.6/util/neo_net.h Thu Jul 24 11:35:13 2003 +++ clearsilver-0.9.7/util/neo_net.h Wed Oct 29 12:07:23 2003 @@ -33,22 +33,22 @@ int ol; } NSOCK; -NEOERR *net_listen(int port, int *fd); -NEOERR *net_accept(NSOCK **sock, int fd, int data_timeout); -NEOERR *net_connect(NSOCK **sock, char *host, int port, int conn_timeout, int data_timeout); -NEOERR *net_close(NSOCK **sock); -NEOERR *net_read(NSOCK *sock, UINT8 *buf, int buflen); -NEOERR *net_read_line(NSOCK *sock, char **buf); -NEOERR *net_read_binary(NSOCK *sock, UINT8 **b, int *blen); -NEOERR *net_read_str_alloc(NSOCK *sock, char **s, int *len); -NEOERR *net_read_int(NSOCK *sock, int *i); -NEOERR *net_write(NSOCK *sock, UINT8 *b, int blen); -NEOERR *net_write_line(NSOCK *sock, char *s); -NEOERR *net_write_binary(NSOCK *sock, UINT8 *b, int blen); -NEOERR *net_write_str(NSOCK *sock, char *s); -NEOERR *net_write_int(NSOCK *sock, int i); -NEOERR *net_flush(NSOCK *sock); -void net_shutdown(void); +NEOERR *ne_net_listen(int port, int *fd); +NEOERR *ne_net_accept(NSOCK **sock, int fd, int data_timeout); +NEOERR *ne_net_connect(NSOCK **sock, char *host, int port, int conn_timeout, int data_timeout); +NEOERR *ne_net_close(NSOCK **sock); +NEOERR *ne_net_read(NSOCK *sock, UINT8 *buf, int buflen); +NEOERR *ne_net_read_line(NSOCK *sock, char **buf); +NEOERR *ne_net_read_binary(NSOCK *sock, UINT8 **b, int *blen); +NEOERR *ne_net_read_str_alloc(NSOCK *sock, char **s, int *len); +NEOERR *ne_net_read_int(NSOCK *sock, int *i); +NEOERR *ne_net_write(NSOCK *sock, UINT8 *b, int blen); +NEOERR *ne_net_write_line(NSOCK *sock, char *s); +NEOERR *ne_net_write_binary(NSOCK *sock, UINT8 *b, int blen); +NEOERR *ne_net_write_str(NSOCK *sock, char *s); +NEOERR *ne_net_write_int(NSOCK *sock, int i); +NEOERR *ne_net_flush(NSOCK *sock); +void ne_net_shutdown(void); __END_DECLS diff -Nru clearsilver-0.9.6/util/neo_server.c clearsilver-0.9.7/util/neo_server.c --- clearsilver-0.9.6/util/neo_server.c Wed Apr 2 15:07:36 2003 +++ clearsilver-0.9.7/util/neo_server.c Wed Oct 29 12:07:23 2003 @@ -55,17 +55,17 @@ { err = fLock(server->accept_lock); if (err) break; - err = net_accept(&child_sock, server->server_fd, server->data_timeout); + err = ne_net_accept(&child_sock, server->server_fd, server->data_timeout); fUnlock(server->accept_lock); if (err) break; err = server->req_cb(server->data, num, child_sock); if (err) { - net_close(&child_sock); + ne_net_close(&child_sock); } else { - err = net_close(&child_sock); + err = ne_net_close(&child_sock); } nerr_log_error(err); nerr_ignore(&err); @@ -105,7 +105,7 @@ static void sig_term(int sig) { ShutdownPending = 1; - net_shutdown(); + ne_net_shutdown(); } static void setup_term(void) @@ -143,7 +143,7 @@ do { - err = net_listen(server->port, &(server->server_fd)); + err = ne_net_listen(server->port, &(server->server_fd)); if (err) break; if (debug == TRUE)