Commit Graph

42 Commits (47566a2eb3df6b6fbda67488c3fa1f66ce6724fa)

Author SHA1 Message Date
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
Jo-Philipp Wich 4ebe5e79c6 [package] add uhttpd (moved from LuCI trunk)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20428 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-25 15:46:16 +00:00