diff -ruN mini_httpd-1.19-orig/Makefile mini_httpd-1.19-3/Makefile --- mini_httpd-1.19-orig/Makefile 2002-11-02 00:02:57.000000000 +0100 +++ mini_httpd-1.19-3/Makefile 2005-03-09 08:52:21.000000000 +0100 @@ -14,17 +14,30 @@ # http://www.openssl.org/ Make sure the SSL_TREE definition points to the # tree with your OpenSSL installation - depending on how you installed it, # it may be in /usr/local instead of /usr/local/ssl. + +# OpenSSL #SSL_TREE = /usr/local/ssl #SSL_DEFS = -DUSE_SSL #SSL_INC = -I${SSL_TREE}/include #SSL_LIBS = -L${SSL_TREE}/lib -lssl -lcrypto +#SSL_OBJS = + +# MatrixSSL +#SSL_TREE = +#SSL_DEFS = -DUSE_SSL -DHAVE_MATRIXSSL +#SSL_INC = +#SSL_LIBS = -lmatrixssl +#SSL_OBJS = matrixssl_helper.o -BINDIR = /usr/local/sbin -MANDIR = /usr/local/man +DESTDIR = + +BINDIR = $(DESTDIR)/usr/sbin +MANDIR = $(DESTDIR)/usr/share/man CC = gcc CDEFS = ${SSL_DEFS} ${SSL_INC} -CFLAGS = -O ${CDEFS} +OFLAGS = -O +CFLAGS = ${OFLAGS} ${CDEFS} #CFLAGS = -g ${CDEFS} -LDFLAGS = -s +LDFLAGS = #LDFLAGS = -g @@ -32,12 +45,15 @@ all: mini_httpd htpasswd -mini_httpd: mini_httpd.o match.o tdate_parse.o - ${CC} ${CFLAGS} ${LDFLAGS} mini_httpd.o match.o tdate_parse.o ${LDLIBS} -o mini_httpd +mini_httpd: mini_httpd.o match.o tdate_parse.o ${SSL_OBJS} + ${CC} ${CFLAGS} ${LDFLAGS} mini_httpd.o match.o tdate_parse.o ${SSL_OBJS} ${LDLIBS} -o mini_httpd mini_httpd.o: mini_httpd.c version.h port.h match.h tdate_parse.h mime_encodings.h mime_types.h ${CC} ${CFLAGS} -c mini_httpd.c +matrixssl_helper.o: matrixssl_helper.c + ${CC} ${CFLAGS} -c matrixssl_helper.c + match.o: match.c match.h ${CC} ${CFLAGS} -c match.c @@ -71,16 +87,18 @@ chmod 600 mini_httpd.pem -install: all - rm -f ${BINDIR}/mini_httpd ${BINDIR}/htpasswd +install: all uninstall -mkdir -p ${BINDIR} cp mini_httpd htpasswd ${BINDIR} - rm -f ${MANDIR}/man8/mini_httpd.8 ${MANDIR}/man1/htpasswd.1 -mkdir -p ${MANDIR}/man8 cp mini_httpd.8 ${MANDIR}/man8 -mkdir -p ${MANDIR}/man1 cp htpasswd.1 ${MANDIR}/man1 +uninstall: + rm -f ${BINDIR}/mini_httpd ${BINDIR}/htpasswd + rm -f ${MANDIR}/man8/mini_httpd.8 ${MANDIR}/man1/htpasswd.1 + clean: rm -f mini_httpd mime_encodings.h mime_types.h htpasswd mini_httpd.rnd *.o core core.* *.core diff -ruN mini_httpd-1.19-orig/mini_httpd.c mini_httpd-1.19-3/mini_httpd.c --- mini_httpd-1.19-orig/mini_httpd.c 2003-12-03 19:27:22.000000000 +0100 +++ mini_httpd-1.19-3/mini_httpd.c 2005-03-09 08:46:28.000000000 +0100 @@ -66,8 +66,14 @@ #endif /* HAVE_SENDFILE */ #ifdef USE_SSL +# ifdef HAVE_OPENSSL #include #include +# else /* HAVE_OPENSSL */ +# ifdef HAVE_MATRIXSSL +# include "matrixssl_helper.h" +# endif /* HAVE_MATRIXSSL */ +# endif /* HAVE_OPENSSL */ #endif /* USE_SSL */ extern char* crypt( const char* key, const char* setting ); @@ -193,7 +199,13 @@ static int do_ssl; static char* certfile; static char* cipher; +#ifdef HAVE_OPENSSL static SSL_CTX* ssl_ctx; +#else /* HAVE_OPENSSL */ + #ifdef HAVE_MATRIXSSL +static sslKeys_t* keys; + #endif /* HAVE_MATRIXSSL */ +#endif /* HAVE_OPENSSL */ #endif /* USE_SSL */ static char cwd[MAXPATHLEN]; static int got_hup; @@ -540,6 +552,7 @@ #ifdef USE_SSL if ( do_ssl ) { +# ifdef HAVE_OPENSSL SSL_load_error_strings(); SSLeay_add_ssl_algorithms(); ssl_ctx = SSL_CTX_new( SSLv23_server_method() ); @@ -559,6 +572,17 @@ exit( 1 ); } } +# else /* HAVE_OPENSSL */ +# ifdef HAVE_MATRIXSSL + matrixSslOpen(); + if ( matrixSslReadKeys( &keys, certfile, certfile, NULL, NULL ) < 0 ) + { + syslog( LOG_CRIT, "can't load certificate and/or private key\n"); + (void) fprintf( stderr, "%s: can't load certificate and/or private key\n", argv0 ); + exit( 1 ); + } +# endif /* HAVE_MATRIXSSL */ +# endif /* HAVE_OPENSSL */ } #endif /* USE_SSL */ @@ -1174,6 +1198,7 @@ #ifdef USE_SSL if ( do_ssl ) { +# ifdef HAVE_OPENSSL ssl = SSL_new( ssl_ctx ); SSL_set_fd( ssl, conn_fd ); if ( SSL_accept( ssl ) == 0 ) @@ -1181,6 +1206,16 @@ ERR_print_errors_fp( stderr ); exit( 1 ); } +# else /* HAVE_OPENSSL */ +# ifdef HAVE_MATRIXSSL + ssl = SSL_new(keys); + SSL_set_fd( ssl, conn_fd ); + if ( SSL_accept( ssl ) <= 0 ) + { + perror( "SSL_accept" ); + } +# endif /* HAVE_MATRIXSSL */ +# endif /* HAVE_OPENSSL */ } #endif /* USE_SSL */