First off, I'd like to say how pleased I am that the SSL work has been integrated into the Lynx distribution. With the recent ease of US export regulations and the expiration of the RSA patent, it's now possible for people worldwide to enjoy the benefits of an SSL-enabled Lynx without the hassle of applying a separate patch. As for the integrated code itself, there was one important fix in (as yet unreleased) version 1.4.2 of the patch related to building Lynx with SSL and no news support. These builds would fail because some of the SSL news code wound up living in HTTP.c. The included patch file brings 2.8.4dev16 up to date with SSL 1.4.2, which incorporates a fix for such situations by placing news-related items in HTTP.c within approprate #ifdef macros. Another issue from the whiteboard was the reliance on srand48 and lrand48, which some systems do not include. I assume that configure could be tweaked to check for the appropriate functions and HTTP.c could be changed accordingly to use srandom/random or srand/rand in the event that srand48 and lrand48 aren't available. I had held off on doing this myself for the same reason that I hadn't integrated configure support in the first place - diffs against configure.in aren't appropriate for general distribution, and diffs against configure are messy. Enjoy your SSL-enabled Lynx, everyone. If there were any other intergration issues, let me know. Mark
diff -ur lynx2-8-4.dist/WWW/Library/Implementation/HTTP.c lynx2-8-4/WWW/Library/Implementation/HTTP.c --- lynx2-8-4.dist/WWW/Library/Implementation/HTTP.c Mon Jan 1 20:39:50 2001 +++ lynx2-8-4/WWW/Library/Implementation/HTTP.c Sat Jan 6 14:46:54 2001 @@ -14,14 +14,18 @@ #include <LYUtils.h> #ifdef USE_SSL +#ifndef DISABLE_NEWS #include <HTNews.h> -#endif +#endif /* not DISABLE_NEWS */ +#endif /* USE_SSL */ #define HTTP_VERSION "HTTP/1.0" #define HTTP_PORT 80 #define HTTPS_PORT 443 +#ifndef DISABLE_NEWS #define SNEWS_PORT 563 +#endif /* not DISABLE_NEWS */ #define INIT_LINE_SIZE 1536 /* Start with line buffer this big */ #define LINE_EXTEND_THRESH 256 /* Minimum read size */ @@ -420,6 +424,7 @@ } CTRACE((tfp, "HTTP: connect_url = '%s'\n", connect_url)); CTRACE((tfp, "HTTP: connect_host = '%s'\n", connect_host)); +#ifndef DISABLE_NEWS } else if ((connect_url = strstr((url+7), "snews://"))) { do_connect = TRUE; connect_host = HTParse(connect_url, "snews", PARSE_HOST); @@ -429,6 +434,7 @@ } CTRACE((tfp, "HTTP: connect_url = '%s'\n", connect_url)); CTRACE((tfp, "HTTP: connect_host = '%s'\n", connect_host)); +#endif /* not DISABLE_NEWS */ } } #endif /* USE_SSL */ @@ -1375,6 +1381,7 @@ url = connect_url; FREE(line_buffer); FREE(line_kept_clean); +#ifndef DISABLE_NEWS if (!strncmp(connect_url, "snews", 5)) { CTRACE((tfp, " Will attempt handshake and snews connection.\n")); @@ -1382,6 +1389,7 @@ format_out, sink); goto done; } +#endif /* not DISABLE_NEWS */ did_connect = TRUE; already_retrying = TRUE; eol = 0; diff -ur lynx2-8-4.dist/src/LYMain.c lynx2-8-4/src/LYMain.c --- lynx2-8-4.dist/src/LYMain.c Mon Jan 1 20:39:50 2001 +++ lynx2-8-4/src/LYMain.c Sat Jan 6 14:47:44 2001 @@ -1029,7 +1029,7 @@ StrAllocCat(LYUserAgent, HTLibraryVersion); } #ifdef USE_SSL - StrAllocCat(LYUserAgent, " SSL-MM/1.4.1"); + StrAllocCat(LYUserAgent, " SSL-MM/1.4.2"); #ifdef OPENSSL_VERSION_TEXT LYstrncpy(SSLLibraryVersion, OPENSSL_VERSION_TEXT, sizeof(SSLLibraryVersion)-1); if ((SSLcp = strchr(SSLLibraryVersion, ' ')) != NULL) { @@ -2951,7 +2951,7 @@ LYNX_NAME, LYNX_VERSION, LYVersionDate()); #ifdef USE_SSL - printf("libwww-FM %s, SSL-MM 1.4.1", HTLibraryVersion); + printf("libwww-FM %s, SSL-MM 1.4.2", HTLibraryVersion); #ifdef OPENSSL_VERSION_TEXT LYstrncpy(SSLLibraryVersion, OPENSSL_VERSION_TEXT, sizeof(SSLLibraryVersion)-1); if ((SSLcp = strchr(SSLLibraryVersion, ' ')) != NULL) {