From 7e5acaf50f25dd097e8225b0df6c4731c8730a63 Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Fri, 4 Dec 2009 17:36:09 +0100 Subject: Give GnuTLS return code to callback if handshake has failed, display extra info in irc plugin if Diffie-Hellman prime sent by the server is not acceptable (not long enough) --- src/plugins/scripts/perl/weechat-perl-api.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/plugins/scripts/perl') diff --git a/src/plugins/scripts/perl/weechat-perl-api.c b/src/plugins/scripts/perl/weechat-perl-api.c index 4b12fff25..1538e7177 100644 --- a/src/plugins/scripts/perl/weechat-perl-api.c +++ b/src/plugins/scripts/perl/weechat-perl-api.c @@ -2968,11 +2968,12 @@ XS (XS_weechat_api_hook_process) */ int -weechat_perl_api_hook_connect_cb (void *data, int status, +weechat_perl_api_hook_connect_cb (void *data, int status, int gnutls_rc, const char *error, const char *ip_address) { struct t_script_callback *script_callback; - char *perl_argv[5], str_status[32], empty_arg[1] = { '\0' }; + char *perl_argv[6], str_status[32], str_gnutls_rc[32]; + char empty_arg[1] = { '\0' }; int *rc, ret; script_callback = (struct t_script_callback *)data; @@ -2980,12 +2981,14 @@ weechat_perl_api_hook_connect_cb (void *data, int status, if (script_callback && script_callback->function && script_callback->function[0]) { snprintf (str_status, sizeof (str_status), "%d", status); + snprintf (str_gnutls_rc, sizeof (str_gnutls_rc), "%d", gnutls_rc); perl_argv[0] = (script_callback->data) ? script_callback->data : empty_arg; perl_argv[1] = str_status; - perl_argv[2] = (ip_address) ? (char *)ip_address : empty_arg; - perl_argv[3] = (error) ? (char *)error : empty_arg; - perl_argv[4] = NULL; + perl_argv[2] = str_gnutls_rc; + perl_argv[3] = (ip_address) ? (char *)ip_address : empty_arg; + perl_argv[4] = (error) ? (char *)error : empty_arg; + perl_argv[5] = NULL; rc = (int *) weechat_perl_exec (script_callback->script, WEECHAT_SCRIPT_EXEC_INT, -- cgit v1.2.3