$Id$ --- mini_httpd-1.19.orig/mini_httpd.c 2005-06-29 19:31:17.000000000 +0200 +++ mini_httpd-1.19/mini_httpd.c 2007-01-20 19:48:49.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 ); @@ -132,10 +138,10 @@ typedef long long int64_t; #define CGI_NICE 10 #endif /* CGI_NICE */ #ifndef CGI_PATH -#define CGI_PATH "/usr/local/bin:/usr/ucb:/bin:/usr/bin" +#define CGI_PATH "/usr/bin:/bin:/usr/sbin:/sbin" #endif /* CGI_PATH */ #ifndef CGI_LD_LIBRARY_PATH -#define CGI_LD_LIBRARY_PATH "/usr/local/lib:/usr/lib" +#define CGI_LD_LIBRARY_PATH "/usr/lib:/lib" #endif /* CGI_LD_LIBRARY_PATH */ #ifndef AUTH_FILE #define AUTH_FILE ".htpasswd" @@ -193,7 +199,13 @@ static int listen4_fd, listen6_fd; 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 @@ main( int argc, char** argv ) #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 @@ main( int argc, char** argv ) 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 @@ handle_request( void ) #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 @@ handle_request( void ) 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 */