Mercurial > gftp.yaz
diff lib/protocols.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 | aec4b4541d3a |
line wrap: on
line diff
--- a/lib/protocols.c Sun Jun 08 22:31:07 2003 +0000 +++ b/lib/protocols.c Mon Jun 09 00:53:20 2003 +0000 @@ -392,7 +392,7 @@ gftp_logging_func logging_function; gftp_bookmarks_var * tempentry; char *default_protocol; - int i; + int i, init_ret; g_return_val_if_fail (request != NULL, GFTP_EFATAL); g_return_val_if_fail (bookmark != NULL, GFTP_EFATAL); @@ -433,7 +433,11 @@ { if (strcmp (gftp_protocols[i].name, tempentry->protocol) == 0) { - gftp_protocols[i].init (request); + if ((init_ret = gftp_protocols[i].init (request)) < 0) + { + gftp_request_destroy (request, 0); + return (init_ret); + } break; } } @@ -456,7 +460,12 @@ i = GFTP_FTP_NUM; } - gftp_protocols[i].init (request); + if ((init_ret = gftp_protocols[i].init (request)) < 0) + { + gftp_request_destroy (request, 0); + return (init_ret); + } + return (0); } @@ -466,8 +475,8 @@ { char *pos, *endpos, *endhostpos, tempchar, *default_protocol, *stpos; gftp_logging_func logging_function; + int len, i, init_ret; const char *cpos; - int len, i; g_return_val_if_fail (request != NULL, GFTP_EFATAL); g_return_val_if_fail (url != NULL, GFTP_EFATAL); @@ -493,13 +502,16 @@ break; } - *pos = ':'; - if (gftp_protocols[i].url_prefix == NULL) { + request->logging_function (gftp_logging_misc, NULL, + _("The protocol '%s' is currently not supported.\n"), + stpos); g_free (stpos); return (GFTP_EFATAL); } + + *pos = ':'; } else { @@ -519,7 +531,11 @@ if (gftp_protocols[i].url_prefix == NULL) i = GFTP_FTP_NUM; - gftp_protocols[i].init (request); + if ((init_ret = gftp_protocols[i].init (request)) < 0) + { + gftp_request_destroy (request, 0); + return (init_ret); + } if (request->parse_url != NULL) {