summaryrefslogtreecommitdiffhomepage
path: root/contrib/package/uhttpd/src/uhttpd.c
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2010-03-19 01:35:26 +0000
committerJo-Philipp Wich <jow@openwrt.org>2010-03-19 01:35:26 +0000
commit77f310f5db4b9cd5a98adbf198c3eb9d36632cb7 (patch)
tree2f0a22808dba693dc1cece057d2e03f05e2f751a /contrib/package/uhttpd/src/uhttpd.c
parent0799c5f9ea70ddc5cc958cea74a6e066fea12f80 (diff)
uhttpd: make missing certs only fatal if tls sockets were requested
Diffstat (limited to 'contrib/package/uhttpd/src/uhttpd.c')
-rw-r--r--contrib/package/uhttpd/src/uhttpd.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/contrib/package/uhttpd/src/uhttpd.c b/contrib/package/uhttpd/src/uhttpd.c
index 1f66f785f0..a338d2925f 100644
--- a/contrib/package/uhttpd/src/uhttpd.c
+++ b/contrib/package/uhttpd/src/uhttpd.c
@@ -104,7 +104,7 @@ static int uh_socket_bind(
continue;
error:
- if( sock > 0 )
+ if( sock > 0 )
close(sock);
}
@@ -363,6 +363,8 @@ int main (int argc, char **argv)
/* maximum file descriptor number */
int new_fd, cur_fd, max_fd = 0;
+
+ int tls = 0;
int keys = 0;
int bound = 0;
int nofork = 0;
@@ -428,10 +430,13 @@ int main (int argc, char **argv)
port = optarg;
}
+ if( opt == 's' )
+ tls = 1;
+
/* bind sockets */
bound += uh_socket_bind(
- &serv_fds, &max_fd, bind[0] ? bind : NULL, port, &hints,
- (opt == 's') ? 1 : 0, &conf
+ &serv_fds, &max_fd, bind[0] ? bind : NULL, port,
+ &hints, tls, &conf
);
break;
@@ -532,7 +537,7 @@ int main (int argc, char **argv)
}
#ifdef HAVE_TLS
- if( keys < 2 )
+ if( (tls == 1) && (keys < 2) )
{
fprintf(stderr, "Missing private key or certificate file\n");
exit(1);
@@ -621,7 +626,7 @@ int main (int argc, char **argv)
{
/* is a socket managed by us */
if( FD_ISSET(cur_fd, &read_fds) )
- {
+ {
/* is one of our listen sockets */
if( FD_ISSET(cur_fd, &serv_fds) )
{
@@ -638,7 +643,7 @@ int main (int argc, char **argv)
/* add client socket to global fdset */
FD_SET(new_fd, &used_fds);
- max_fd = max(max_fd, new_fd);
+ max_fd = max(max_fd, new_fd);
}
/* insufficient resources */