diff lib/https.c @ 173:4c288d05b26a

2003-6-8 Brian Masney <masneyb@gftp.org> * lib/bookmark.c lib/gftp.h lib/https.c lib/local.c lib/misc.c lib/protocols.c lib/rfc2068.c lib/rfc959.c lib/sshv2.c src/text/gftp-text.c src/gtk/gftp-gtk.c - made the init function for all the protocols return an integer instead of nothing. If there was an error setting up the protocol, GFTP_EFATAL should be returned and the connection should be aborted. The HTTPS protocol uses this to return if SSL support was not compiled in * lib/protocols.c src/text/gftp-text.c src/gtk/dnd.c src/gtk/gftp-gtk.c src/gtk/menu-items.c - have gftp_parse_url() log the error messages to the user. This shouldn't have been done in the individual ports * lib/https.c - only initialize the SSL engine the first time a SSL connection is made.
author masneyb
date Mon, 09 Jun 2003 00:53:20 +0000
parents d40f9db52cdf
children e643d287fe32
line wrap: on
line diff
--- a/lib/https.c	Sun Jun 08 22:31:07 2003 +0000
+++ b/lib/https.c	Mon Jun 09 00:53:20 2003 +0000
@@ -54,21 +54,21 @@
 void
 https_register_module (void)
 {
-#ifdef USE_SSL
-  gftp_ssl_startup (NULL); /* FIXME - take out of here */
-#endif
 }
 
 
-void
+int
 https_init (gftp_request * request)
 {
 #ifdef USE_SSL
   rfc2068_params * params;
+  int ret;
 
-  g_return_if_fail (request != NULL);
+  g_return_val_if_fail (request != NULL, GFTP_EFATAL);
 
-  gftp_protocols[GFTP_HTTP_NUM].init (request);
+  if ((ret = gftp_protocols[GFTP_HTTP_NUM].init (request)) < 0)
+    return (ret);
+
   params = request->protocol_data;
   request->init = https_init;
   request->post_connect = gftp_ssl_session_setup;
@@ -76,11 +76,16 @@
   request->write_function = gftp_ssl_write;
   request->get_next_file = https_get_next_file;
   request->url_prefix = g_strdup ("https");
-#else
-  gftp_protocols[GFTP_HTTP_NUM].init (request);
+
+  if ((ret = gftp_ssl_startup (NULL)) < 0)
+    return (ret);
 
+  return (0);
+#else
   request->logging_function (gftp_logging_error, request->user_data,
-                             _("HTTPS Support unavailable since SSL support was not compiled in. Reverting back to plaintext\n"));
+                             _("HTTPS Support unavailable since SSL support was not compiled in. Aborting connection.\n"));
+
+  return (GFTP_EFATAL);
 #endif
 }