mirror of
https://github.com/weechat/weechat.git
synced 2026-06-29 14:26:39 +02:00
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)
This commit is contained in:
@@ -3523,11 +3523,12 @@ weechat_lua_api_hook_process (lua_State *L)
|
||||
*/
|
||||
|
||||
int
|
||||
weechat_lua_api_hook_connect_cb (void *data, int status,
|
||||
weechat_lua_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 *lua_argv[5], str_status[32], empty_arg[1] = { '\0' };
|
||||
char *lua_argv[6], str_status[32], str_gnutls_rc[32];
|
||||
char empty_arg[1] = { '\0' };
|
||||
int *rc, ret;
|
||||
|
||||
script_callback = (struct t_script_callback *)data;
|
||||
@@ -3535,12 +3536,14 @@ weechat_lua_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);
|
||||
|
||||
lua_argv[0] = (script_callback->data) ? script_callback->data : empty_arg;
|
||||
lua_argv[1] = str_status;
|
||||
lua_argv[2] = (ip_address) ? (char *)ip_address : empty_arg;
|
||||
lua_argv[3] = (error) ? (char *)error : empty_arg;
|
||||
lua_argv[4] = NULL;
|
||||
lua_argv[2] = str_gnutls_rc;
|
||||
lua_argv[3] = (ip_address) ? (char *)ip_address : empty_arg;
|
||||
lua_argv[4] = (error) ? (char *)error : empty_arg;
|
||||
lua_argv[5] = NULL;
|
||||
|
||||
rc = (int *) weechat_lua_exec (script_callback->script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -3135,11 +3135,12 @@ weechat_python_api_hook_process (PyObject *self, PyObject *args)
|
||||
*/
|
||||
|
||||
int
|
||||
weechat_python_api_hook_connect_cb (void *data, int status,
|
||||
weechat_python_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 *python_argv[5], str_status[32], empty_arg[1] = { '\0' };
|
||||
char *python_argv[6], str_status[32], str_gnutls_rc[32];
|
||||
char empty_arg[1] = { '\0' };
|
||||
int *rc, ret;
|
||||
|
||||
script_callback = (struct t_script_callback *)data;
|
||||
@@ -3147,12 +3148,14 @@ weechat_python_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);
|
||||
|
||||
python_argv[0] = (script_callback->data) ? script_callback->data : empty_arg;
|
||||
python_argv[1] = str_status;
|
||||
python_argv[2] = (ip_address) ? (char *)ip_address : empty_arg;
|
||||
python_argv[3] = (error) ? (char *)error : empty_arg;
|
||||
python_argv[4] = NULL;
|
||||
python_argv[2] = str_gnutls_rc;
|
||||
python_argv[3] = (ip_address) ? (char *)ip_address : empty_arg;
|
||||
python_argv[4] = (error) ? (char *)error : empty_arg;
|
||||
python_argv[5] = NULL;
|
||||
|
||||
rc = (int *) weechat_python_exec (script_callback->script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
|
||||
@@ -3620,11 +3620,12 @@ weechat_ruby_api_hook_process (VALUE class, VALUE command, VALUE timeout,
|
||||
*/
|
||||
|
||||
int
|
||||
weechat_ruby_api_hook_connect_cb (void *data, int status,
|
||||
weechat_ruby_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 *ruby_argv[5], str_status[32], empty_arg[1] = { '\0' };
|
||||
char *ruby_argv[6], str_status[32], str_gnutls_rc[32];
|
||||
char empty_arg[1] = { '\0' };
|
||||
int *rc, ret;
|
||||
|
||||
script_callback = (struct t_script_callback *)data;
|
||||
@@ -3632,12 +3633,14 @@ weechat_ruby_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);
|
||||
|
||||
ruby_argv[0] = (script_callback->data) ? script_callback->data : empty_arg;
|
||||
ruby_argv[1] = str_status;
|
||||
ruby_argv[2] = (ip_address) ? (char *)ip_address : empty_arg;
|
||||
ruby_argv[3] = (error) ? (char *)error : empty_arg;
|
||||
ruby_argv[4] = NULL;
|
||||
ruby_argv[2] = str_gnutls_rc;
|
||||
ruby_argv[3] = (ip_address) ? (char *)ip_address : empty_arg;
|
||||
ruby_argv[4] = (error) ? (char *)error : empty_arg;
|
||||
ruby_argv[5] = NULL;
|
||||
|
||||
rc = (int *) weechat_ruby_exec (script_callback->script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
|
||||
@@ -929,6 +929,7 @@ script_api_hook_connect (struct t_weechat_plugin *weechat_plugin,
|
||||
void *gnutls_cb, int gnutls_dhkey_size,
|
||||
const char *local_hostname,
|
||||
int (*callback)(void *data, int status,
|
||||
int gnutls_rc,
|
||||
const char *error,
|
||||
const char *ip_address),
|
||||
const char *function,
|
||||
|
||||
@@ -174,6 +174,7 @@ extern struct t_hook *script_api_hook_connect (struct t_weechat_plugin *weechat_
|
||||
const char *local_hostname,
|
||||
int (*callback)(void *data,
|
||||
int status,
|
||||
int gnutls_rc,
|
||||
const char *error,
|
||||
const char *ip_address),
|
||||
const char *function,
|
||||
|
||||
@@ -3375,11 +3375,12 @@ weechat_tcl_api_hook_process (ClientData clientData, Tcl_Interp *interp,
|
||||
*/
|
||||
|
||||
int
|
||||
weechat_tcl_api_hook_connect_cb (void *data, int status,
|
||||
weechat_tcl_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 *tcl_argv[5], str_status[32], empty_arg[1] = { '\0' };
|
||||
char *tcl_argv[6], str_status[32], str_gnutls_rc[32];
|
||||
char empty_arg[1] = { '\0' };
|
||||
int *rc, ret;
|
||||
|
||||
script_callback = (struct t_script_callback *)data;
|
||||
@@ -3387,12 +3388,14 @@ weechat_tcl_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);
|
||||
|
||||
tcl_argv[0] = (script_callback->data) ? script_callback->data : empty_arg;
|
||||
tcl_argv[1] = str_status;
|
||||
tcl_argv[2] = (ip_address) ? (char *)ip_address : empty_arg;
|
||||
tcl_argv[3] = (error) ? (char *)error : empty_arg;
|
||||
tcl_argv[4] = NULL;
|
||||
tcl_argv[2] = str_gnutls_rc;
|
||||
tcl_argv[3] = (ip_address) ? (char *)ip_address : empty_arg;
|
||||
tcl_argv[4] = (error) ? (char *)error : empty_arg;
|
||||
tcl_argv[5] = NULL;
|
||||
|
||||
rc = (int *) weechat_tcl_exec (script_callback->script,
|
||||
WEECHAT_SCRIPT_EXEC_INT,
|
||||
|
||||
Reference in New Issue
Block a user