51 Commits

Author SHA1 Message Date
Jo-Philipp Wich
268dea84ec [package] uhttpd: various changes
- remove unused variables
	- simply ignore command line args which belong to not enabled features
	- resolve peer address at accept() time, should solve (#11850)
	- remove floating point operations where possible

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32704 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-07-13 17:10:56 +00:00
Jo-Philipp Wich
482c57ba79 [package] uhttpd: retry parsing the CGI header until the buffer space is exhausted
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32662 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-07-11 09:59:05 +00:00
Jo-Philipp Wich
0eefc94876 [package] uhttpd: various fixes
- avoid closing descriptors before removing them from uloop (#11755, #11830)
    - do not auto-initialize ubus if no prefix is set (#11832)
    - remove extraneous client context pointer from cgi and lua states
    - code cleanups and debug message changes

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32651 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-07-09 00:08:20 +00:00
Jo-Philipp Wich
1fe9e2d2cf [package] uhttpd: do not dispatch pipe error events, fixes use after free for cgi and lua scripts
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32644 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-07-07 16:43:27 +00:00
Jo-Philipp Wich
a2ba5e4cd5 [package] uhttpd: do not subscribe to epoll write events
Watch child read pipe end for data instead of relying on socket write
notification to process cgi data, should lower cpu consumption during
requests on weaker devices.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32640 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-07-06 17:29:25 +00:00
Jo-Philipp Wich
d787e8414b [package] uhttpd: finish inherited uloop in forked childs, fixes misdispatched events leading to race conditions and bad memory accesses
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32419 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-06-18 00:41:43 +00:00
Jo-Philipp Wich
61de624060 [package] uhttpd: remove some dead code
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32028 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-06-02 15:08:54 +00:00
Jo-Philipp Wich
4c82a59515 [package] uhttpd: add explicit stdin eof notification for Lua and CGI childs
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32027 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-06-02 14:56:24 +00:00
Jo-Philipp Wich
e2b17e1784 [package] uhttpd: fix wrongly applied sizeof() leading to writing beyound end of buffer and subsequent data corruption (#11557)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32005 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-30 15:30:07 +00:00
Jo-Philipp Wich
6e9f473afa [package] uhttpd:
- rewrite large parts of the server, use uloop event driven structure
	- support concurrent requests and make the upper limit configurable
	- implement initial version of HTTP-to-ubus JSON proxy and session.* namespace
	- add compile time support for debug information
	- code style changes
	- bump package revision

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31931 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-28 00:52:24 +00:00
Jo-Philipp Wich
c84a22dde3 [package] uhttpd: display errors in init script, code formatting changes, bump package version
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31572 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-03 17:19:22 +00:00
Jo-Philipp Wich
adae4ff72c uhttpd: added uhttpd.docroot
Passes the document-root to the Lua handler by placing it in uhttpd.docroot.

It could alternatively be placed in env.DOCUMENT_ROOT which would more closely
resemble the CGI protocol; but would mean that it is not available at the time
when the handler-chunk is loaded but rather not until the handler is called,
without any code savings.

Signed-off-by: David Favro <openwrt@meta-dynamic.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31571 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-03 17:19:20 +00:00
Jo-Philipp Wich
5d7a3d6461 Fixed: [PATCH 2/3] uhttpd URL-codec enhancements.
My apologies, the 2nd of those patches had a syntax error -- that's what
I get for making a last-minute edit, even to the comments, without
testing! :-p

Here is the corrected patch.

-- David

From d259cff104d2084455476b82e92a3a27524f4263 Mon Sep 17 00:00:00 2001
From: David Favro <openwrt@meta-dynamic.com>
Date: Fri, 27 Apr 2012 14:17:52 -0400
Subject: [PATCH] uhttpd URL-codec enhancements.

* uh_urlencode() and uh_urldecode() now return an error condition for
  buffer-overflow and malformed-encoding rather than normal return with corrupt
  or truncated data.  As HTTP request processing is currently implemented, this
  causes a 404 HTTP status returned to the client, while 400 is more
  appropriate.

* Exposed urlencode() to Lua.

* Lua's uhttpd.urlencode() and .urldecode() now raise an error condition for
  buffer-overflow and malformed-encoding rather than normal return with
  incorrect data.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31570 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-03 17:19:18 +00:00
Jo-Philipp Wich
9151869423 uhttpd URL-codec bug fixes.
* Fixed output-buffer-overflow bug in uh_urlencode() and uh_urldecode() [tested
  input-buffer index against output-buffer length].  In reality, this would not
  typically cause an overflow on decode, where the output string would be
  expected to be shorter than the input string; and uh_urlencode() seems to have
  been unreferenced in the source.

* Fixed bug: uh_urlencode() and uh_urldecode() both read one extra byte from the
  input-string.  While this could manifest in C code, the result was most
  egregious when called from Lua, where it caused an extra null byte to be
  embedded at the end of the output string.

* uh_urlencode() cleanup: removed redundant bitwise-and.

Signed-off-by: David Favro <openwrt@meta-dynamic.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31569 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-03 17:19:16 +00:00
Jo-Philipp Wich
5f4d8411d3 [package] uhttpd: reorder compiler flags to fix native build on Ubuntu 11.x
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30936 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-13 20:41:31 +00:00
Jo-Philipp Wich
81f7a21315 [package] uhttpd: cope with variable number of spaces in header lines (#11079)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30806 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-04 15:53:51 +00:00
Jo-Philipp Wich
d405d062dc [package] uhttpd: cope with DES crypted passwd entries by not relying on a leading dollar sign to indicate a cipher
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28886 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-09 18:55:28 +00:00
Jo-Philipp Wich
f822f9c298 [package] uhttpd: fix Makefiles and linking of tls plugin
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28769 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-05 17:36:47 +00:00
Jo-Philipp Wich
88dc98a342 [package] uhttpd: rework CyaSSL and OpenSSL integration; move protected recv() and send() operations below the ssl layer - fixes hangs when accessing via https
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28761 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-05 03:19:07 +00:00
Jo-Philipp Wich
a3c71fc56c [package] uhttpd: fix bad pointer use in previous commit
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28257 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-09-18 23:34:25 +00:00
Jo-Philipp Wich
65866b3bba [package] uhttpd: fix possible CGI header line parsing beyound the empty line, thanks Linus Luessing for spotting it
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28254 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-09-18 22:30:20 +00:00
Jo-Philipp Wich
04314394a1 [package] uhttpd: properly match mimetype entries which cover the whole filename (#8236)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28160 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-09-04 10:21:05 +00:00
Jo-Philipp Wich
a672927900 [package] uhttpd: add "application/x-ns-proxy-autoconfig" mime type (#8236)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28149 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-09-02 13:28:29 +00:00
Jo-Philipp Wich
ffd45a9640 [package] uhttpd: support building against openssl instead of cyassl, minor cleanups (#7827)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27686 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-18 14:18:31 +00:00
Jo-Philipp Wich
4e7f4a35b5 [package] uhttpd: unblock signals in CGI childs, solves hanging ssh logout after server restart from within LuCI and similar problems
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27628 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-17 07:18:59 +00:00
Jo-Philipp Wich
ef6390643f [package] uhttpd: substitute "+" with space when using the -d flag, lazyload tls support
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@25220 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-01-28 19:50:33 +00:00
Jo-Philipp Wich
15fc78d187 [package] uhttpd: protect tcp receive operations with select, make tcp keep-alive optional (#8272)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24952 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-01-09 23:35:45 +00:00
Jo-Philipp Wich
c40c6c6269 [package] uhttpd: allow lowercase http header fields (#8513)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24823 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-12-24 22:03:34 +00:00
Jo-Philipp Wich
1cdac6bf95 [package] uhttpd: redirect to same location with trailing slash appended if directories are requested
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23952 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-11-10 20:52:30 +00:00
Jo-Philipp Wich
160c1f2b37 [package] uhttpd: make it work without shadow password support
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23897 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-11-06 16:19:04 +00:00
Jo-Philipp Wich
6e1d16d0d2 [package] uhttpd: revert unrelated change in previous commit
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23261 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-10-05 19:35:38 +00:00
Jo-Philipp Wich
62f58cd112 [package] uhttpd: add /etc/uhttpd.key and /etc/uhttpd.crt to conffile hints
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23260 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-10-05 19:34:22 +00:00
Jo-Philipp Wich
a326df749e [package] uhttpd: break tight loop when receiving eof during header reading (#7904)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22988 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-09-09 20:15:02 +00:00
Jo-Philipp Wich
ccdc9b7172 [package] uhttpd: fix segfault triggered by Basic Auth checking
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22805 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-08-25 21:38:48 +00:00
Jo-Philipp Wich
8d6da64cc3 [package] uhttpd:
- fix parsing of interpreter entries in the config file, fixes serving of static files as .cgi with X-Wrt
	- better cope with connection aborts, especially during header transfer
	- fix return value checking of TLS reads and writes, solves some blocking issues


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22692 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-08-18 00:04:52 +00:00
Jo-Philipp Wich
36e143f830 [package] uhttpd:
- more robust handling of network failures on static file serving
	- support unlimited amount of authentication realms, listener and client sockets
	- support for interpreters (.php => /usr/bin/php-cgi)


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22630 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-08-14 00:54:24 +00:00
Jo-Philipp Wich
fcc4516333 [package] uhttpd: fix segmentation fault triggered by invalid header line
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22607 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-08-12 10:56:41 +00:00
Jo-Philipp Wich
9873985c21 [package] uhttpd:
- abort file serving if client connection is lost (#7742)
	- don't send bad request headers twice


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22602 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-08-11 23:44:30 +00:00
Jo-Philipp Wich
c942ea2cfa [package] uhttpd: add option to reject requests from RFC1918 IPs to public server IPs (DNS rebinding countermeasure)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22589 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-08-11 00:05:34 +00:00
Jo-Philipp Wich
f589036a4f [package] uhttpd:
- fix a compile warning
	- support custom index file names
	- support custom error pages (or cgi handler)
	- add option to disable directory listings
	- add REDIRECT_STATUS for CGI requests, fixes php-cgi


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22366 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-07-23 13:15:22 +00:00
Jo-Philipp Wich
0f2211afd6 [package] uhttpd:
- fix incorrect parsing of multiple listen options (#7458)
	- support PEM certificates for SSL


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21762 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-06-12 12:58:11 +00:00
Jo-Philipp Wich
c1fe2f4ee9 [package] uhttpd:
- ignore authentication realms that refer to user accounts with no password set yet (X-Wrt compatibility)
	- fix off-by-one in CGI header parsing, fixes cgi programs that emit bad header lines (AsteriskGUI compatibility)
	- bump version


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21121 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-04-24 11:07:41 +00:00
Jo-Philipp Wich
7119535b12 [package] uhttpd: fix bug in path canonization introduced by r20883
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20885 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-04-15 20:08:56 +00:00
Jo-Philipp Wich
3fe0660216 [package] uhttpd:
- make network timeout configurable, increase default to 30 seconds (#7067)
	- follow symlinks in docroot and add option to disable that
	- fix mimetype detection for files with combined extensions (.tar.gz, ...)


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20883 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-04-15 19:46:35 +00:00
Jo-Philipp Wich
d0f557ddbf [package] uhttpd:
- cope with options instead of lists in uci config
	- fix compilation without tls (#7050)
	- bump to rev 7


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20668 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-04-03 13:09:10 +00:00
Jo-Philipp Wich
33f40d7677 [package] uhttpd: fix a signal related race condition exposed by LuCI on fast machines
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20573 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-29 09:26:02 +00:00
Jo-Philipp Wich
dacb54ca3b [package] uhttpd: fix parameter parsing issue on avr32 and most likely ixp4xx
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20532 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-28 02:35:45 +00:00
Jo-Philipp Wich
f6156ab875 [package] uhttpd: block SIGCHLD until it is expected (#6957)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20513 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-27 14:31:35 +00:00
Jo-Philipp Wich
c111766893 [package] uhttpd: clear script timeout as soon as data is received from the child
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20501 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-27 01:47:36 +00:00
Jo-Philipp Wich
99e8e7cf2f [package] uhttpd:
- make script timeout configurable
	- catch SIGCHLD to properly interrupt select()
	- flag listen and client sockets as close-on-exec


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20500 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-27 00:00:33 +00:00