X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=contrib%2Fpackage%2Fuhttpd%2Fsrc%2Fuhttpd.c;fp=contrib%2Fpackage%2Fuhttpd%2Fsrc%2Fuhttpd.c;h=a338d2925ff75e2c1bb3fc348704ebb05e8abc66;hp=1f66f785f05f9efd98705dbac1f825fadae7bda9;hb=77f310f5db4b9cd5a98adbf198c3eb9d36632cb7;hpb=0799c5f9ea70ddc5cc958cea74a6e066fea12f80 diff --git a/contrib/package/uhttpd/src/uhttpd.c b/contrib/package/uhttpd/src/uhttpd.c index 1f66f785f..a338d2925 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 */