From c3733b746b1512c1d91c9b9bc53aa19241371b39 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Sat, 27 Feb 2021 17:07:43 -0500 Subject: [PATCH] Fixed a bug in StrBufReadBLOBBuffered() that would make the read go into an infinite loop if the client closed the connection during transmission. --- libcitadel/lib/stringbuf.c | 32 +-- webcit/debian/.gitignore | 7 - webcit/debian/changelog | 322 ------------------------- webcit/debian/citadel-webcit.config | 81 ------- webcit/debian/citadel-webcit.install | 1 - webcit/debian/citadel-webcit.links | 3 - webcit/debian/citadel-webcit.postinst | 80 ------ webcit/debian/citadel-webcit.postrm | 36 --- webcit/debian/citadel-webcit.templates | 44 ---- webcit/debian/compat | 1 - webcit/debian/control | 19 -- webcit/debian/copyright | 144 ----------- webcit/debian/docs | 1 - webcit/debian/po/POTFILES.in | 2 - webcit/debian/po/templates.pot | 107 -------- webcit/debian/rules | 133 ---------- webcit/debian/webcit.conf | 33 --- webcit/debian/webcit.init | 188 --------------- webcit/tcp_sockets.c | 1 - webcit/webcit.c | 1 + 20 files changed, 14 insertions(+), 1222 deletions(-) delete mode 100644 webcit/debian/.gitignore delete mode 100644 webcit/debian/changelog delete mode 100755 webcit/debian/citadel-webcit.config delete mode 100644 webcit/debian/citadel-webcit.install delete mode 100644 webcit/debian/citadel-webcit.links delete mode 100644 webcit/debian/citadel-webcit.postinst delete mode 100644 webcit/debian/citadel-webcit.postrm delete mode 100644 webcit/debian/citadel-webcit.templates delete mode 100644 webcit/debian/compat delete mode 100644 webcit/debian/control delete mode 100644 webcit/debian/copyright delete mode 100644 webcit/debian/docs delete mode 100644 webcit/debian/po/POTFILES.in delete mode 100644 webcit/debian/po/templates.pot delete mode 100755 webcit/debian/rules delete mode 100644 webcit/debian/webcit.conf delete mode 100644 webcit/debian/webcit.init diff --git a/libcitadel/lib/stringbuf.c b/libcitadel/lib/stringbuf.c index 770cb3eb5..2605da7db 100644 --- a/libcitadel/lib/stringbuf.c +++ b/libcitadel/lib/stringbuf.c @@ -4989,14 +4989,13 @@ int StrBufReadBLOBBuffered(StrBuf *Blob, pos = *Pos; - if (pos != NULL) + if (pos != NULL) { rlen = pos - IOBuf->buf; + } rlen = IOBuf->BufUsed - rlen; - if ((IOBuf->BufUsed > 0) && - (pos != NULL) && - (pos < IOBuf->buf + IOBuf->BufUsed)) + if ((IOBuf->BufUsed > 0) && (pos != NULL) && (pos < IOBuf->buf + IOBuf->BufUsed)) { if (rlen < nBytes) { memcpy(Blob->buf + Blob->BufUsed, pos, rlen); @@ -5021,8 +5020,9 @@ int StrBufReadBLOBBuffered(StrBuf *Blob, FlushStrBuf(IOBuf); *Pos = NULL; - if (IOBuf->BufSize < nBytes - nRead) + if (IOBuf->BufSize < nBytes - nRead) { IncreaseBuf(IOBuf, 0, nBytes - nRead); + } ptr = IOBuf->buf; fdflags = fcntl(*fd, F_GETFL); @@ -5034,11 +5034,8 @@ int StrBufReadBLOBBuffered(StrBuf *Blob, nBytes -= nRead; nRead = 0; - while ((nSuccessLess < MaxTries) && - (nRead < nBytes) && - (*fd != -1)) { - if (IsNonBlock) - { + while ((nSuccessLess < MaxTries) && (nRead < nBytes) && (*fd != -1)) { + if (IsNonBlock) { tv.tv_sec = 1; tv.tv_usec = 0; @@ -5048,8 +5045,9 @@ int StrBufReadBLOBBuffered(StrBuf *Blob, *Error = strerror(errno); close (*fd); *fd = -1; - if (*Error == NULL) + if (*Error == NULL) { *Error = ErrRBLF_SelectFailed; + } return -1; } if (! FD_ISSET(*fd, &rfds) != 0) { @@ -5057,20 +5055,16 @@ int StrBufReadBLOBBuffered(StrBuf *Blob, continue; } } - rlen = read(*fd, - ptr, - IOBuf->BufSize - (ptr - IOBuf->buf)); - if (rlen == -1) { + rlen = read(*fd, ptr, IOBuf->BufSize - (ptr - IOBuf->buf)); + // if (rlen == -1) { 2021feb27 ajc changed this, apparently we will always get at least 1 byte unless the connection is broken + if (rlen < 1) { close(*fd); *fd = -1; *Error = strerror(errno); return rlen; } else if (rlen == 0){ - if ((check == NNN_TERM) && - (nRead > 5) && - (strncmp(IOBuf->buf + IOBuf->BufUsed - 5, "\n000\n", 5) == 0)) - { + if ((check == NNN_TERM) && (nRead > 5) && (strncmp(IOBuf->buf + IOBuf->BufUsed - 5, "\n000\n", 5) == 0)) { StrBufPlain(Blob, HKEY("\n000\n")); StrBufCutRight(Blob, 5); return Blob->BufUsed; diff --git a/webcit/debian/.gitignore b/webcit/debian/.gitignore deleted file mode 100644 index 0a15b7c1a..000000000 --- a/webcit/debian/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -citadel-webcit -citadel-webcit.debhelper.log -citadel-webcit.postinst.debhelper -citadel-webcit.postrm.debhelper -citadel-webcit.prerm.debhelper -citadel-webcit.substvars -files diff --git a/webcit/debian/changelog b/webcit/debian/changelog deleted file mode 100644 index f774c408d..000000000 --- a/webcit/debian/changelog +++ /dev/null @@ -1,322 +0,0 @@ -webcit (925-1) stable; urgency=low - - * new release - - -- Wilfried Goesgens Wed, 19 Dec 2018 16:57:49 -0500 - -webcit (924-1) stable; urgency=low - - * new release - - -- Wilfried Goesgens Wed, 19 Dec 2018 16:57:49 -0500 - -webcit (917-1) stable; urgency=low - - * new release - - -- Wilfried Goesgens Wed, 03 Jan 2018 16:57:49 -0500 - -webcit (9.16-1) stable; urgency=low - - * new release - - -- Wilfried Goesgens Wed, 02 Jan 2018 12:56:30 -0400 - -webcit (9.15-1) stable; urgency=low - - * new release - - -- Wilfried Goesgens Wed, 29 Dec 2017 12:56:30 -0400 - -webcit (9.14-1) stable; urgency=low - - * new release - - -- Wilfried Goesgens Wed, 26 Dec 2017 12:56:30 -0400 - -webcit (8.29-1) stable; urgency=low - - * development prerelease - - -- Wilfried Goesgens Sat, 07 Dec 2013 11:41:23 +0100 - -webcit (8.21-1) stable; urgency=low - - * new release - - -- Wilfried Goesgens Tue, 16 Oct 2013 22:00:00 +0001 - -webcit (8.20-1) stable; urgency=low - - * new release - - -- Wilfried Goesgens Tue, 16 Jul 2013 22:00:00 +0001 - -webcit (8.13-1) stable; urgency=low - - * new release - - -- Wilfried Goesgens Mon, 16 Jun 2012 22:00:00 +0001 - -webcit (8.12-1) stable; urgency=low - - * new release - - -- Wilfried Goesgens Tue, 26 Jun 2012 22:00:00 +0001 - -webcit (8.11-1) stable; urgency=low - - * new release - - -- Wilfried Goesgens Wed, 16 May 2012 22:00:00 +0001 - -webcit (8.10-1) stable; urgency=low - - * new release - - -- Wilfried Goesgens Tue, 12 Dec 2011 22:00:00 +0001 - -webcit (8.03-1) stable; urgency=low - - * new release - - -- Wilfried Goesgens Tue, 12 Dec 2011 22:00:00 +0001 - -webcit (8.02-1) stable; urgency=low - - * new release - - -- Wilfried Goesgens Tue, 11 Nov 2011 22:00:00 +0001 - -webcit (7.83-91) stable; urgency=low - - * new release - - -- Wilfried Goesgens Wed, 28 Jul 2010 22:00:00 +0001 - -webcit (7.80-90) stable; urgency=low - - * new release - - -- Wilfried Goesgens Tue, 19 Jul 2010 22:00:00 +0001 - -webcit (7.72-89) stable; urgency=low - - * new release - - -- Wilfried Goesgens Wed, 17 Feb 2010 22:00:00 +0001 - -webcit (7.71-89) stable; urgency=low - - * new release - - -- Wilfried Goesgens Tue, 5 Jan 2010 22:00:00 +0001 - -webcit (7.70-88) stable; urgency=low - - * new release - - -- Wilfried Goesgens Wed, 16 Dec 2009 22:00:00 +0001 - -webcit (7.66-87) stable; urgency=low - - * new release - - -- Wilfried Goesgens Mon, 28 Sep 2009 18:00:00 +0001 - -webcit (7.65-86) stable; urgency=low - - * more fixes - - -- Wilfried Goesgens Fri, 4 Sep 2009 0:00:00 +0002 - -webcit (7.63-85) stable; urgency=low - - * fix double handling of begin/endburst - - -- Wilfried Goesgens Tue, 2 Sep 2009 8:00:00 +0002 - -webcit (7.63-84) stable; urgency=low - - * new release - - -- Wilfried Goesgens Tue, 1 Sep 2009 8:00:00 +0002 - -webcit (7.62-82) stable; urgency=low - - * new release - - -- Wilfried Goesgens Mon, 17 Aug 2009 23:00:00 +0002 - -webcit (7.61-81) stable; urgency=low - - * new release - - -- Wilfried Goesgens Tue, 6 Aug 2009 10:00:00 +0002 - - -webcit (7.60-80) stable; urgency=low - - * new release - - -- Wilfried Goesgens Tue, 28 Jul 2009 22:00:00 +0002 - -webcit (7.52-77) stable; urgency=low - - * bugfix of integer overflow in files application - - -- Wilfried Goesgens Tue, 21 Jul 2009 22:00:00 +0002 - -webcit (7.52-76) stable; urgency=low - - * new upstream maintenance version - - -- Wilfried Goesgens Sat, 18 Jul 2009 10:00:00 +0002 - -webcit (7.51-75) stable; urgency=low - - * new upstream maintainance version - - -- Wilfried Goesgens Tue, 2 Jun 2009 16:00:00 +0002 - -webcit (7.50b-74) stable; urgency=low - - * new upstream maintainance version - - -- Wilfried Goesgens Tue, 23 Apr 2009 16:00:00 +0002 - -webcit (7.50-73) stable; urgency=low - - * new upstream stable release - - -- Wilfried Goesgens Tue, 9 Apr 2009 16:00:00 +0002 - -webcit (7.43-72) unstable; urgency=low - - * Beta release - - -- Wilfried Goesgens Tue, 17 Mar 2009 8:00:00 +0002 - -webcit (7.42-71) unstable; urgency=low - - * Beta release - - -- Wilfried Goesgens Fri, 27 Feb 2009 8:00:00 +0002 - -webcit (7.41-70) unstable; urgency=low - - * Beta release - - -- Wilfried Goesgens Fri, 20 Feb 2009 18:00:00 +0002 - -webcit (7.37-36) stable; urgency=low - - * fix tiny JS error anoying HTTP IM Users - - -- Wilfried Goesgens Wed, 16 Jul 2008 14:00:00 +0002 - -webcit (7.37-35) stable; urgency=low - - * tiny bugfix with i18n makefiles - - -- Wilfried Goesgens Sun, 22 Jun 2008 22:00:00 +0002 - -webcit (7.37-34) stable; urgency=low - - * new upstream version - - -- Wilfried Goesgens Thu, 19 Jun 2008 22:00:00 +0002 - -webcit (7.36-33) stable; urgency=low - - * new upstream version - - -- Wilfried Goesgens Fri, 30 May 2008 19:00:00 +0002 - -webcit (7.35-32) stable; urgency=low - - * fix prototype package integration - * updated brazillian translation - - -- Wilfried Goesgens Wed, 22 Apr 2008 8:00:00 +0001 -webcit (7.35-31) stable; urgency=low - - * New citadel version - - -- Wilfried Goesgens Tue, 22 Apr 2008 19:00:00 +0002 - -webcit (7.34-29) stable; urgency=high - - * fix bug in addressbook popup - - -- Wilfried Goesgens Wed, 5 Mar 2008 22:00:00 +0001 - -webcit (7.33-28) stable; urgency=high - - * adjusted license; new sorting in lists - - -- Wilfried Goesgens Mo, 3 Mar 2008 22:00:00 +0001 - -webcit (7.31-27) stable; urgency=high - - * initial mime detection support - * don't nail the users to GIF - - -- Wilfried Goesgens Tue, 12 Feb 2008 0:00:00 +0001 - -webcit (7.30-26) stable; urgency=high - - * Fix room admin dialog - - -- Wilfried Goesgens Wed, 6 Feb 2008 20:00:00 +0001 -webcit (7.30-25) stable; urgency=high - - * New citadel version. - - -- Wilfried Goesgens Fri, 1 Feb 2008 10:00:00 +0001 -webcit (7.24-24) stable; urgency=high - - * fixed missing locales and image calculation - - -- Wilfried Goesgens Wed, 21 Nov 2007 0:01:21 +0002 -webcit (7.24-23) stable; urgency=high - - * crash in notes fixed. - - -- Wilfried Goesgens Fri, 16 Nov 2007 0:01:21 +0002 -webcit (7.23-22) stable; urgency=high - - * fix some IE rendering bugs - - -- Wilfried Goesgens Thu, 8 Nov 2007 23:01:21 +0002 -webcit (7.22-21) stable; urgency=high - - * fixed ssl related directory access crash - - -- Wilfried Goesgens Di, 30 Oct 2007 18:10:00 +0002 -webcit (7.22-20) stable; urgency=high - - * Lots of stylesheet fixes. Performance improvements. - - -- Wilfried Goesgens Do, 25 Oct 2007 18:10:00 +0002 -webcit (7.13-19) stable; urgency=high - - * update to actual Webcit release. Fix several conditions of CPU abuse. - - -- Wilfried Goesgens Fr, 3 Aug 2007 18:10:00 +0002 -webcit (7.12-18) stable; urgency=high - - * update to actual Citadel SVN. many new features. see Packages changelog. - - -- Wilfried Goesgens Sun, 8 Jul 2007 8:10:00 +0000 -webcit (7.11-17) stable; urgency=high - - * update to actual Citadel SVN. many new features. see Packages changelog. - - -- Wilfried Goesgens Fr, 6 Jul 2007 22:10:00 +0000 -webcit (7.07-0ubuntu1) stable; urgency=low - - * initial ubuntu release. - - -- Wilfried Goesgens Fri, 06 Apr 2007 19:07:00 +0000 - diff --git a/webcit/debian/citadel-webcit.config b/webcit/debian/citadel-webcit.config deleted file mode 100755 index 21158acbc..000000000 --- a/webcit/debian/citadel-webcit.config +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/sh -set -e -. /usr/share/debconf/confmodule - -db_version 2.0 - -db_capb backup - -DO_CONFIGURE=no - -if test -n "$2"; then -# do we want to reconfigure? - if test "$1" = reconfigure; then - DO_CONFIGURE=yes - fi -else -# are we in first install? - if test "$1" = "configure"; then - DO_CONFIGURE=yes - fi -fi - -if test "$DO_CONFIGURE" = "yes"; then - if test -e /etc/default/webcit; then - . /etc/default/webcit - else - WEBCIT_APACHEFLAG=" " - WEBCIT_HTTP_PORT=8504 - WEBCIT_HTTPS_PORT=-1 - WEBCIT_LANG=UNLIMITED - fi - - if test "$WEBCIT_APACHEFLAG" = "-f"; then - db_set citadel/WebcitApacheIntegration Apache2 - else - db_set citadel/WebcitApacheIntegration Internal - fi - db_set citadel/WebcitHttpPort $WEBCIT_HTTP_PORT - db_set citadel/WebcitHttpsPort $WEBCIT_HTTPS_PORT - db_set citadel/WebcitOfferLang $WEBCIT_LANG - - STATE=1 - LASTSTATE=5 - while [ "$STATE" != 0 -a "$STATE" -le "$LASTSTATE" ]; do - - case "$STATE" in - 1) - db_input high citadel/WebcitApacheIntegration || true - ;; - 2) - db_get citadel/WebcitApacheIntegration - if test "$RET" = "Internal"; then - db_set citadel/WebcitHttpPort 80 - db_input high citadel/WebcitHttpPort || true - fi - ;; - 3) - db_get citadel/WebcitApacheIntegration - if test "$RET" = "Internal"; then - db_set citadel/WebcitHttpsPort 443 - db_input high citadel/WebcitHttpsPort || true - fi - ;; - 4) - db_input high citadel/WebcitOfferLang || true - ;; - 5) - db_input high citadel/WebcitInstallnote||true - ;; - esac - if db_go; then - STATE=$(($STATE + 1)) - else - STATE=$(($STATE - 1)) - fi - - done - set |grep WEBCIT |sed "s;^;export ;;" >/etc/default/webcit -fi - -exit 0 diff --git a/webcit/debian/citadel-webcit.install b/webcit/debian/citadel-webcit.install deleted file mode 100644 index 9b10849ba..000000000 --- a/webcit/debian/citadel-webcit.install +++ /dev/null @@ -1 +0,0 @@ -debian/webcit.conf etc/citadel/ diff --git a/webcit/debian/citadel-webcit.links b/webcit/debian/citadel-webcit.links deleted file mode 100644 index a6d42852c..000000000 --- a/webcit/debian/citadel-webcit.links +++ /dev/null @@ -1,3 +0,0 @@ -/usr/share/webcit_icons/gnome/24x24/mimetypes /usr/share/citadel-webcit/static/icons -/usr/share/javascript/prototype/prototype.js /usr/share/citadel-webcit/static/prototype.js -/usr/share/javascript/scriptaculous/scriptaculous.js /usr/share/citadel-webcit/static/scriptaculous.js diff --git a/webcit/debian/citadel-webcit.postinst b/webcit/debian/citadel-webcit.postinst deleted file mode 100644 index 58799807d..000000000 --- a/webcit/debian/citadel-webcit.postinst +++ /dev/null @@ -1,80 +0,0 @@ -#! /bin/sh -# Abort if any command returns an error value -set -e -. /usr/share/debconf/confmodule - -db_version 2.0 - -case "$1" in - configure) - if test ! -d /var/lib/citadel/keys; then - mkdir -p /var/lib/citadel/keys - fi - if test ! -d /var/run/citadel/keys; then - mkdir -p /var/run/citadel/keys - fi - - if test -e /etc/default/webcit; then - . /etc/default/webcit - else - WEBCIT_CITADEL_IP=127.0.0.1 - WEBCIT_CITADEL_PORT=504 - fi - - db_get citadel/WebcitApacheIntegration && WWWTYPE="$RET" - if test "$WWWTYPE" = "Internal"; then - echo 'export WEBCIT_APACHEFLAG=" "' > /etc/default/webcit - echo "export WEBCIT_LISTEN_IP=${WEBCIT_LISTEN_IP:-0.0.0.0}" >> /etc/default/webcit - else - echo 'export WEBCIT_APACHEFLAG="-f"' > /etc/default/webcit - echo "export WEBCIT_LISTEN_IP=${WEBCIT_LISTEN_IP:-127.0.0.1}" >> /etc/default/webcit - fi - - db_get citadel/WebcitHttpPort && echo "export WEBCIT_HTTP_PORT=$RET" >> /etc/default/webcit - db_get citadel/WebcitHttpsPort && echo "export WEBCIT_HTTPS_PORT=$RET" >> /etc/default/webcit - db_get citadel/WebcitOfferLang && echo "export WEBCIT_LANG=$RET" >> /etc/default/webcit - - echo "export WEBCIT_CITADEL_PORT=$WEBCIT_CITADEL_PORT" >> /etc/default/webcit - echo "export WEBCIT_CITADEL_IP=$WEBCIT_CITADEL_IP" >> /etc/default/webcit - - db_stop - - #DEBHELPER# - -# update the webserver, if needed - case "$WWWTYPE" in - "Apache") - webservers="apache" - aenmod proxy||true - ;; - "Apache-SSL") - webservers="apache-ssl" - ;; - "Apache2") - webservers="apache2" - a2enmod proxy||true - a2enmod proxy_http||true - ;; - "All") - webservers="apache apache-ssl apache2" - ;; - *) - webservers="" - ;; - esac - for server in $webservers; do - if [ -d "/etc/${server}/conf.d" ]; then - if [ ! -e "/etc/${server}/conf.d/webcit.conf" ] ; then - ln -sf /etc/citadel/webcit.conf "/etc/${server}/conf.d/webcit.conf" - fi - invoke-rc.d $server reload || true - fi - done - ;; - abort-upgrade|abort-remove|abort-deconfigure) - ;; - *) echo "$0: didn't understand being called with '$1'" 1>&2 - exit 1;; -esac - -exit 0 diff --git a/webcit/debian/citadel-webcit.postrm b/webcit/debian/citadel-webcit.postrm deleted file mode 100644 index 24fb4ea2c..000000000 --- a/webcit/debian/citadel-webcit.postrm +++ /dev/null @@ -1,36 +0,0 @@ -#! /bin/sh -# Abort if any command returns an error value -set -e -. /usr/share/debconf/confmodule - -#DEBHELPER# - -case "$1" in - purge) - echo "/etc/citadel/www/keys not removed. " - for server in apache apache-ssl apache2; do - if [ -h "/etc/${server}/conf.d/webcit.conf" ]; then - rm -f "/etc/${server}/conf.d/webcit.conf" - invoke-rc.d $server reload || true - fi - done - - rm -f /etc/default/webcit - - db_purge 'citadel/WebcitHttpsPort' || true - db_purge 'citadel/WebcitHttpPort' || true - db_purge 'citadel/WebcitApacheIntegration' ||true - ;; - disappear) - if test "$2" != overwriter; then - echo "$0: undocumented call to \`postrm $*'" 1>&2 - exit 0 - fi - ;; - remove|upgrade|failed-upgrade|abort-install|abort-upgrade) - ;; - *) echo "$0: didn't understand being called with \`$1'" 1>&2 - exit 0;; -esac - -exit 0 diff --git a/webcit/debian/citadel-webcit.templates b/webcit/debian/citadel-webcit.templates deleted file mode 100644 index 93f3124d9..000000000 --- a/webcit/debian/citadel-webcit.templates +++ /dev/null @@ -1,44 +0,0 @@ -Template: citadel/WebcitApacheIntegration -Type: select -_Choices: Apache2, Internal -Default: Internal -_Description: Integration with Apache webservers: - If you want Webcit to run alongside with one of your other installed - Apache webservers, select it from the list, else use Internal to make - Webcit use its own HTTP server facilities. - -Template: citadel/WebcitHttpPort -Type: string -Default: 8504 -_Description: Webcit HTTP port: - Select the port which the plain HTTP Webcit server should listen on. - Use port 80 if you don't have another webserver running or enter -1 to disable - it. - -Template: citadel/WebcitHttpsPort -Type: string -Default: 443 -_Description: Webcit HTTPS port: - Select the port which the SSL HTTP Webcit server should listen on or enter -1 - to disable it. - -Template: citadel/WebcitOfferLang -Type: select -_Choices: UNLIMITED, da_DA, de_DE, en_GB, es_ES, fr_FR, it_IT, nl_NL, pt_BR -Default: UNLIMITED -_Description: Limit Webcits Login language selection - Select language for the Webcit should run in; select UNLIMITED - to leave this choice to your user at the login prompt. - hint: localeconf has to enable the locale so webcit can use it - - -Template: citadel/WebcitInstallnote -Type: note -_Description: Citadel/UX - Citadel-webcit will be running soon. Log into it with your citadel - Administrator user, and do the fine setup. Log in as the user you - specified as the Administrator, and - review the Points under the Administration menu. If you have further - questions review www.citadel.org, specialy the FAQ and Documentation - section. - diff --git a/webcit/debian/compat b/webcit/debian/compat deleted file mode 100644 index b8626c4cf..000000000 --- a/webcit/debian/compat +++ /dev/null @@ -1 +0,0 @@ -4 diff --git a/webcit/debian/control b/webcit/debian/control deleted file mode 100644 index 67e12ad0f..000000000 --- a/webcit/debian/control +++ /dev/null @@ -1,19 +0,0 @@ -Source: webcit -Section: web -Priority: extra -Maintainer: Wilfried Goesgens -Build-Depends: debhelper (>= 4), po-debconf, libical2-dev (>=0.43), gettext, locales, - libcitadel-dev (> 8.13), quilt (>= 0.40), autotools-dev, libssl-dev, libmarkdown2-dev -Standards-Version: 3.8.0 - -Package: citadel-webcit -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, debconf, tinymce, citadel-common, openssl, locales, libjs-prototype, libjs-scriptaculous -Suggests: citadel-server, apache2 | apache, localepurge, gnome-icon-theme -Recommends: shared-mime-info -Description: web-based frontend to Citadel groupware server - WebCit is a web-based, dynamic web frontend to the Citadel groupware system. - It is an attractive web applicagtion that allows user-friendly access. - By combining WebCit and Citadel, you can have a versatile online environment - with many users concurrently accessing the same system using the user - interface of their choice (text, web, or downloaded client software). diff --git a/webcit/debian/copyright b/webcit/debian/copyright deleted file mode 100644 index 4a610639f..000000000 --- a/webcit/debian/copyright +++ /dev/null @@ -1,144 +0,0 @@ -This package was debianized by Wilfried Goesgens on -Mon, 25 Jul 2005 12:46:10 +0200. - -It was downloaded from http://www.citadel.org - -Upstream Authors (the webcit development team): - Art Cancro - Nathan Bryant - Alessandro Fulciniti - Wilifried Goesgens - Nick Grossman - Andru Luvisi - Dave Lindquist - Matt Pfleger - Martin Mouritzen - -Copyright: (C) 1996-2007 WebCit development team - -Copyright for Prototype JavaScript Framework : - (C) 2005 Sam Stephenson - -Copyright for script.aculo.us JavaScript library : - (C) 2005-2006 Thomas Fuchs - -Copyright for TinyMCE : - (C) 2003-2006 Moxiecode Systems AB - -Copyright for epic-editor - (C) 2011-2014, Oscar Godson (http://oscargodson.com) - -Prototype JavaScript Framework license: - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -script.aculo.us JavaScript library license: - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -TinyMCE license: - - This package is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the - - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this package; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Epic license: - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - - -On Debian systems, the complete text of the GNU Lesser General -Public License can be found in `/usr/share/common-licenses/LGPL'. - -WebCit license: - - This package is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License, version 3. - - - - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - - along with this package; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -* In addition, as a special exception, the copyright holders give -* permission to link the code of portions of this program with the -* OpenSSL library under certain conditions as described in each -* individual source file, and distribute linked combinations -* including the two. -* You must obey the GNU General Public License in all respects -* for all of the code used other than OpenSSL. If you modify -* file(s) with this exception, you may extend this exception to your -* version of the file(s), but you are not obligated to do so. If you -* do not wish to do so, delete this exception statement from your -* version. If you delete this exception statement from all source -* files in the program, then also delete it here. - -On Debian systems, the complete text of the GNU General -Public License can be found in `/usr/share/common-licenses/GPL'. - -static/util.js is mostly Copyright (c) 2005, Michael Schuerig, michael@schuerig.de and distributed under the LGPL. - -The Debian packaging is (C) 2006-2008, Debian Citadel Team and -is licensed under the GPL, see above. diff --git a/webcit/debian/docs b/webcit/debian/docs deleted file mode 100644 index 71dfd5bac..000000000 --- a/webcit/debian/docs +++ /dev/null @@ -1 +0,0 @@ -README.txt diff --git a/webcit/debian/po/POTFILES.in b/webcit/debian/po/POTFILES.in deleted file mode 100644 index 99ae7c8e0..000000000 --- a/webcit/debian/po/POTFILES.in +++ /dev/null @@ -1,2 +0,0 @@ -[type: gettext/rfc822deb] citadel-webcit.templates - diff --git a/webcit/debian/po/templates.pot b/webcit/debian/po/templates.pot deleted file mode 100644 index bca6d4290..000000000 --- a/webcit/debian/po/templates.pot +++ /dev/null @@ -1,107 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: webcit@packages.debian.org\n" -"POT-Creation-Date: 2011-05-12 20:13+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#. Type: select -#. Choices -#: ../citadel-webcit.templates:1001 -msgid "Apache2, Internal" -msgstr "" - -#. Type: select -#. Description -#: ../citadel-webcit.templates:1002 -msgid "Integration with Apache webservers:" -msgstr "" - -#. Type: select -#. Description -#: ../citadel-webcit.templates:1002 -msgid "" -"If you want Webcit to run alongside with one of your other installed Apache " -"webservers, select it from the list, else use Internal to make Webcit use " -"its own HTTP server facilities." -msgstr "" - -#. Type: string -#. Description -#: ../citadel-webcit.templates:2001 -msgid "Webcit HTTP port:" -msgstr "" - -#. Type: string -#. Description -#: ../citadel-webcit.templates:2001 -msgid "" -"Select the port which the plain HTTP Webcit server should listen on. Use " -"port 80 if you don't have another webserver running or enter -1 to disable " -"it." -msgstr "" - -#. Type: string -#. Description -#: ../citadel-webcit.templates:3001 -msgid "Webcit HTTPS port:" -msgstr "" - -#. Type: string -#. Description -#: ../citadel-webcit.templates:3001 -msgid "" -"Select the port which the SSL HTTP Webcit server should listen on or enter " -"-1 to disable it." -msgstr "" - -#. Type: select -#. Choices -#: ../citadel-webcit.templates:4001 -msgid "UNLIMITED, da_DA, de_DE, en_GB, es_ES, fr_FR, it_IT, nl_NL, pt_BR" -msgstr "" - -#. Type: select -#. Description -#: ../citadel-webcit.templates:4002 -msgid "Limit Webcits Login language selection" -msgstr "" - -#. Type: select -#. Description -#: ../citadel-webcit.templates:4002 -msgid "" -"Select language for the Webcit should run in; select UNLIMITED to leave " -"this choice to your user at the login prompt. hint: localeconf has to " -"enable the locale so webcit can use it" -msgstr "" - -#. Type: note -#. Description -#: ../citadel-webcit.templates:5001 -msgid "Citadel/UX" -msgstr "" - -#. Type: note -#. Description -#: ../citadel-webcit.templates:5001 -msgid "" -" Citadel-webcit will be running soon. Log into it with your citadel\n" -" Administrator user, and do the fine setup. Log in as the user you\n" -" specified as the Administrator, and\n" -" review the Points under the Administration menu. If you have further\n" -" questions review www.citadel.org, specialy the FAQ and Documentation\n" -" section." -msgstr "" diff --git a/webcit/debian/rules b/webcit/debian/rules deleted file mode 100755 index 46eecdca8..000000000 --- a/webcit/debian/rules +++ /dev/null @@ -1,133 +0,0 @@ -#!/usr/bin/make -f -# -*- makefile -*- -# Sample debian/rules that uses debhelper. -# This file was originally written by Joey Hess and Craig Small. -# As a special exception, when this file is copied by dh-make into a -# dh-make output file, you may use that output file without restriction. -# This special exception was added by Craig Small in version 0.37 of dh-make. - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -include /usr/share/quilt/quilt.make - -upstreamversion := $(shell dpkg-parsechangelog | sed -n 's/^Version: *\([^-]\+\)-.\+/\1/p') - -DESTDIR=$(CURDIR)/debian/citadel-webcit - -EXTRA_ARGS= -PROFILE_ARGS= -COMPILER= -CFLAGS= -#to enable debugging: export DEB_BUILD_OPTIONS="debug profiling compression urldebug iodbg clang" - -ifneq (,$(findstring clang,$(DEB_BUILD_OPTIONS))) - COMPILER="clang" -endif -ifneq (,$(findstring profiling,$(DEB_BUILD_OPTIONS))) - PROFILE_ARGS= --with-gprof - LDFLAGS += -pg -endif -ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 -ggdb -rdynamic -MD -MP -D TECH_PREVIEW -pedantic -Wformat-nonliteral -Wmaybe-uninitialized -Wunused-variable - EXTRA_ARGS = --with-backtrace -else - CFLAGS += -O2 -endif -ifneq (,$(findstring urldebug,$(DEB_BUILD_OPTIONS))) - CFLAGS += -D DEBUG_URLSTRINGS -endif - -ifneq (,$(findstring iodbg,$(DEB_BUILD_OPTIONS))) - CFLAGS += -D SERV_TRACE -endif - - -configure: patch configure-stamp -configure-stamp: - dh_testdir -ifneq "$(wildcard /usr/share/misc/config.sub)" "" - cp -f /usr/share/misc/config.sub config.sub -endif -ifneq "$(wildcard /usr/share/misc/config.guess)" "" - cp -f /usr/share/misc/config.guess config.guess -endif - export CC=$(COMPILER); export CFLAGS=" -Wformat -Werror=format-security $(CFLAGS)"; ./configure \ - --host=$(DEB_HOST_GNU_TYPE) \ - --build=$(DEB_BUILD_GNU_TYPE) \ - --prefix=/usr/sbin/ \ - --with-wwwdir=/usr/share/citadel-webcit \ - --with-localedir=/usr/share/ \ - --with-editordir=/usr/share/tinymce/www/ \ - --with-markdowneditordir=/usr/share/citadel-webcit/epic/ \ - --with-rundir=/var/run/citadel \ - --with-ssldir=/etc/ssl/webcit/ \ - --with-etcdir=/etc/citadel \ - --with-ssl \ - --with-datadir=/var/run/citadel \ - --enable-debug $(EXTRA_ARGS) $(PROFILE_ARGS) - - touch configure-stamp - - -build: build-stamp - -build-stamp: configure-stamp - dh_testdir - -# Add here commands to compile the package. - $(MAKE) - - touch build-stamp - -clean: configure-stamp - dh_testdir - dh_testroot - rm -f build-stamp configure-stamp - -# Add here commands to clean up after the build process. - [ ! -f Makefile ] || $(MAKE) clean - debconf-updatepo - - dh_clean - -install: build - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - $(MAKE) install-bin install-locale install-wwwdata install-cfg install-epic DESTDIR=$(DESTDIR) - chmod a-x -R $(DESTDIR)/usr/share/citadel-webcit/static/* - find $(DESTDIR)/usr/share/locale/ -name webcit.mo -exec chmod a-x {} \; - rm $(DESTDIR)/usr/share/citadel-webcit/static/prototype.js -# mkdir -p $(DESTDIR)/etc/citadel; cp webcit.conf $(DESTDIR)/etc/citadel/ - - - -# Build architecture-independent files here. -binary-indep: build install -# We have nothing to do by default. - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot - dh_installchangelogs - dh_installdocs - dh_installexamples - dh_install - dh_installdebconf - dh_installinit --name=webcit - dh_installman - dh_link - dh_strip - dh_compress - dh_fixperms - dh_installdeb - dh_shlibdeps - dh_gencontrol - dh_md5sums - dh_builddeb - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/webcit/debian/webcit.conf b/webcit/debian/webcit.conf deleted file mode 100644 index 19d71fbb0..000000000 --- a/webcit/debian/webcit.conf +++ /dev/null @@ -1,33 +0,0 @@ -# if you want to have this in just one virtual host -# context, remove the symbolic link from /etc/apachenn/conf.d -# and rather do something like -# -# Servername www.mycitadel.org -# include /etc/citadel/webcit.conf -# - - - Allow from all - - - Allow from all - - - Allow from all - - -ProxyPass /webcit/ http://127.0.0.1:8504/webcit/ -ProxyPassReverse /webcit/ http://127.0.0.1:8504/webcit/ - -ProxyPass /listsub http://127.0.0.1:8504/listsub -ProxyPassReverse /listsub http://127.0.0.1:8504/listsub - -ProxyPass /groupdav/ http://127.0.0.1:8504/groupdav/ -ProxyPassReverse /groupdav/ http://127.0.0.1:8504/groupdav/ - -ProxyPass /who_inner_html http://127.0.0.1:8504/who_inner_html -ProxyPassReverse /who_inner_html http://127.0.0.1:8504/who_inner_html - -alias /static /usr/share/citadel-webcit/static -alias /tiny_mce /usr/share/tinymce/www - diff --git a/webcit/debian/webcit.init b/webcit/debian/webcit.init deleted file mode 100644 index 2375ac712..000000000 --- a/webcit/debian/webcit.init +++ /dev/null @@ -1,188 +0,0 @@ -#! /bin/sh -### BEGIN INIT INFO -# Provides: webcit -# Required-Start: $local_fs $remote_fs -# Required-Stop: $local_fs $remote_fs -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Example initscript -# Description: This file should be used to construct scripts to be -# placed in /etc/init.d. -### END INIT INFO - -# uncomment this to create coredumps as described in -# http://www.citadel.org/doku.php/faq:mastering_your_os:gdb#how.do.i.make.my.system.produce.core-files -# ulimit -c unlimited - -# Author: Wilfried Goesgens -RUNDIR=/var/run/webcit -PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="Citadel Groupware Webserver " -NAME=webcit -DAEMON=/usr/sbin/$NAME -DAEMON_ARGS="" -PIDFILE=$RUNDIR/$NAME.pid -SCRIPTNAME=/etc/init.d/webcit -SENDCOMMAND=/usr/sbin/sendcommand -DEFAULT=/etc/default/webcit -DROP_TO_UID=`id -u nobody` - -# Exit if the package is not installed -[ -x "$DAEMON" ] || exit 0 - -# Read configuration variable file if it is present -[ -r /etc/default/$NAME ] && . /etc/default/$NAME - -MODERN= - -# Load the VERBOSE setting and other rcS variables -if test -f /lib/init/vars.sh ; then - . /lib/init/vars.sh - MODERN=1 -fi - -# Define LSB log_* functions. -# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. -if test -f /lib/lsb/init-functions; then - . /lib/lsb/init-functions - MODERN=1 -fi - -if test -f $DEFAULT; then - . $DEFAULT -fi - -unset LANG -unset LANGUAGE -unset LC_ALL -unset LOCALE - -if test -z "$TZ"; then - if test -e /etc/timezone; then - TZ=`cat /etc/timezone` - export TZ - fi -fi -# -# Function that starts the daemon/service -# -do_start() -{ - #1: -p flag - #1: port - #2: ssl - #4: -f flag for apache - - # for ubuntu: check our volatile dirs. - if test ! -d $RUNDIR; then - mkdir -p $RUNDIR - fi - - # are we disabled? - if test "$1" -lt "0"; then - return 0 - fi - - # Return - # 0 if daemon has been started - # 1 if daemon was already running - # 2 if daemon could not be started - if $DAEMON -u $DROP_TO_UID -D$PIDFILE.$1 \ - -p$@ $4; then - return 0 - else - return 2 - fi -} - -# -# Function that stops the daemon/service -# -do_stop() -{ - for i in $PIDFILE.*; do if test -f $i; then - kill `cat $i` - rm -f $i - fi; done -} - -do_reload() { - do_stop - do_start $WEBCIT_HTTP_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT "" "$LISTEN" "$WEBCIT_APACHEFLAG" - do_start $WEBCIT_HTTPS_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT -s "$LISTEN" "$WEBCIT_APACHEFLAG" - return 0 -} - -case "$1" in - start) - if test -n "$MODERN"; then - [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" - else - echo "Starting $DESC" "$NAME" - fi - - if test -n "$WEBCIT_LISTEN_IP"; then - LISTEN="-i$WEBCIT_LISTEN_IP" - fi - - do_start $WEBCIT_HTTP_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT "" "$LISTEN" "$WEBCIT_APACHEFLAG" - do_start $WEBCIT_HTTPS_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT -s "$LISTEN" "$WEBCIT_APACHEFLAG" - - if test -n "$MODERN"; then - case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; - esac - fi - ;; - stop) - if test -n "$MODERN"; then - [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" - else - echo "Stopping $DESC" "$NAME" - fi - do_stop - if test -n "$MODERN"; then - case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; - esac - fi - ;; - restart|force-reload) - if test -n "$MODERN"; then - log_daemon_msg "Restarting $DESC" "$NAME" - else - echo "Restarting $DESC" "$NAME" - fi - - do_stop - - if test -n "$MODERN"; then - case "$?" in - 0|1) - do_start $WEBCIT_HTTP_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT "" "$WEBCIT_APACHEFLAG" - do_start $WEBCIT_HTTPS_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT -s "$WEBCIT_APACHEFLAG" - case "$?" in - 0) log_end_msg 0 ;; - 1) log_end_msg 1 ;; # Old process is still running - *) log_end_msg 1 ;; # Failed to start - esac - ;; - *) - # Failed to stop - log_end_msg 1 - ;; - esac - else - do_start $WEBCIT_HTTP_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT "" "$WEBCIT_APACHEFLAG" - do_start $WEBCIT_HTTPS_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT -s "$WEBCIT_APACHEFLAG" - fi - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 - exit 3 - ;; -esac - -: diff --git a/webcit/tcp_sockets.c b/webcit/tcp_sockets.c index 1ac55143e..ad4903afc 100644 --- a/webcit/tcp_sockets.c +++ b/webcit/tcp_sockets.c @@ -1017,7 +1017,6 @@ int client_read_to(ParsedHttpHdrs *Hdr, StrBuf *Target, int bytes, int timeout) return 1; } #endif - retval = StrBufReadBLOBBuffered(Target, Hdr->ReadBuf, &Hdr->Pos, diff --git a/webcit/webcit.c b/webcit/webcit.c index 11f8afe50..703bc99c7 100644 --- a/webcit/webcit.c +++ b/webcit/webcit.c @@ -540,6 +540,7 @@ void pop_destination(void) { int ReadPostData(void) { + TRACE; int rc; int urlencoded_post = 0; StrBuf *content = NULL; -- 2.30.2