From 6de60e7efc75d3eaa8e8d6b3676d3ee115ba0bd8 Mon Sep 17 00:00:00 2001 From: Paul Fariello Date: Mon, 10 Sep 2018 12:28:28 +0200 Subject: [PATCH] Add support for ad-hoc response with forms --- src/command/cmd_funcs.c | 4 ++-- src/xmpp/iq.c | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index f8c9d9e2..42f85182 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -3899,11 +3899,11 @@ cmd_form(ProfWin *window, const char *const command, gchar **args) return TRUE; } - if (g_strcmp0(args[0], "submit") == 0) { + if (g_strcmp0(args[0], "submit") == 0 && confwin->submit != NULL) { confwin->submit(confwin); } - if (g_strcmp0(args[0], "cancel") == 0) { + if (g_strcmp0(args[0], "cancel") == 0 && confwin->cancel != NULL) { confwin->cancel(confwin); } diff --git a/src/xmpp/iq.c b/src/xmpp/iq.c index d155a574..3b5f1990 100644 --- a/src/xmpp/iq.c +++ b/src/xmpp/iq.c @@ -1176,6 +1176,12 @@ _command_exec_response_handler(xmpp_stanza_t *const stanza, void *const userdata const char *value = xmpp_stanza_get_text(note); win_handle_command_exec_result_note(win, type, value); } + xmpp_stanza_t *x = xmpp_stanza_get_child_by_ns(cmd, STANZA_NS_DATA); + if (x) { + DataForm *form = form_create(x); + ProfConfWin *confwin = (ProfConfWin*)wins_new_config(from, form, NULL, NULL, NULL); + confwin_handle_configuration(confwin, form); + } } else if (g_strcmp0(status, "executing") == 0) { win_handle_command_exec_status(win, command, "executing");