uhttpd: make missing certs only fatal if tls sockets were requested
This commit is contained in:
parent
0799c5f9ea
commit
77f310f5db
2 changed files with 18 additions and 10 deletions
|
@ -1,10 +1,13 @@
|
|||
CGI_SUPPORT:=1
|
||||
LUA_SUPPORT:=1
|
||||
TLS_SUPPORT:=0
|
||||
CGI_SUPPORT ?= 1
|
||||
LUA_SUPPORT ?= 1
|
||||
TLS_SUPPORT ?= 1
|
||||
|
||||
LDFLAGS ?= -L./lua-5.1.4/src -L./cyassl-1.4.0/src/.libs -lm
|
||||
CFLAGS ?= -Wall -I./lua-5.1.4/src -I./cyassl-1.4.0/include -O0 -ggdb3
|
||||
|
||||
CFLAGS += --std=c99 -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=500
|
||||
LDFLAGS += -lm -lcrypt
|
||||
|
||||
OBJ = uhttpd.o uhttpd-file.o uhttpd-utils.o
|
||||
|
||||
ifeq ($(CGI_SUPPORT),1)
|
||||
|
@ -21,7 +24,7 @@ endif
|
|||
ifeq ($(TLS_SUPPORT),1)
|
||||
OBJ += uhttpd-tls.o
|
||||
CFLAGS += -DHAVE_TLS
|
||||
LDFLAGS += -lcyassl
|
||||
LDFLAGS += -lpthread -lz -lcyassl
|
||||
endif
|
||||
|
||||
%.o: %.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 */
|
||||
|
|
Loading…
Reference in a new issue