summaryrefslogtreecommitdiffstats
path: root/package/uhttpd/src/uhttpd.c
diff options
context:
space:
mode:
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-07-18 14:18:31 +0000
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-07-18 14:18:31 +0000
commit0dd0ee49446c28f754f86795d566a90a64e1bcc3 (patch)
tree82ffa4bd6648e6f7c3ee64864a703514ea043d4f /package/uhttpd/src/uhttpd.c
parentf2074cd245b50d51630978f1a118c5c7fa16edc0 (diff)
[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
Diffstat (limited to 'package/uhttpd/src/uhttpd.c')
-rw-r--r--package/uhttpd/src/uhttpd.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/package/uhttpd/src/uhttpd.c b/package/uhttpd/src/uhttpd.c
index 4a3bced72..3563d91d1 100644
--- a/package/uhttpd/src/uhttpd.c
+++ b/package/uhttpd/src/uhttpd.c
@@ -512,7 +512,22 @@ static void uh_mainloop(struct config *conf, fd_set serv_fds, int max_fd)
#ifdef HAVE_TLS
/* setup client tls context */
if( conf->tls )
- conf->tls_accept(cl);
+ {
+ if( conf->tls_accept(cl) < 1 )
+ {
+ fprintf(stderr,
+ "tls_accept failed, "
+ "connection dropped\n");
+
+ /* close client socket */
+ close(new_fd);
+
+ /* remove from global client list */
+ uh_client_remove(new_fd);
+
+ continue;
+ }
+ }
#endif
/* add client socket to global fdset */