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");