From 9c853d9f4644360e7f5065546f4738eb8daac878 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Thu, 14 May 2020 19:13:27 +0200 Subject: xep-0092: make it possible to ask servers or components for software This adds the new `/serversoftware` command. ``` /software user@domain.org/resource /serversoftware domain.org ``` Fix https://github.com/profanity-im/profanity/issues/1338 --- src/command/cmd_defs.c | 17 +++++++++++++++++ src/command/cmd_funcs.c | 19 +++++++++++++++++++ src/command/cmd_funcs.h | 1 + 3 files changed, 37 insertions(+) (limited to 'src/command') diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c index 7cf7b2ef..db55eaf4 100644 --- a/src/command/cmd_defs.c +++ b/src/command/cmd_defs.c @@ -2433,6 +2433,23 @@ static struct cmd_t command_defs[] = { "on|off", "Enable or disable slashguard." }) CMD_NOEXAMPLES }, + + { "/serversoftware", + parse_args, 1, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_serversoftware) + CMD_TAGS( + CMD_TAG_DISCOVERY) + CMD_SYN( + "/serversoftware ") + CMD_DESC( + "Find server or component software version information.") + CMD_ARGS( + { "", "The jid of your server or component." }) + CMD_EXAMPLES( + "/software valhalla.edda", + "/software xmpp.vanaheimr.edda") + } }; static GHashTable *search_index; diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index d29244a9..96f6c372 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -3521,6 +3521,25 @@ cmd_software(ProfWin *window, const char *const command, gchar **args) return TRUE; } +gboolean +cmd_serversoftware(ProfWin *window, const char *const command, gchar **args) +{ + jabber_conn_status_t conn_status = connection_get_status(); + + if (conn_status != JABBER_CONNECTED) { + cons_show("You are not currently connected."); + return TRUE; + } + + if (args[0]) { + iq_send_software_version(args[0]); + } else { + cons_show("You must provide a jid to the /serversoftware command."); + } + + return TRUE; +} + gboolean cmd_join(ProfWin *window, const char *const command, gchar **args) { diff --git a/src/command/cmd_funcs.h b/src/command/cmd_funcs.h index 4b7b6017..6f82a88a 100644 --- a/src/command/cmd_funcs.h +++ b/src/command/cmd_funcs.h @@ -231,4 +231,5 @@ gboolean cmd_os(ProfWin *window, const char *const command, gchar **args); gboolean cmd_correction(ProfWin *window, const char *const command, gchar **args); gboolean cmd_correct(ProfWin *window, const char *const command, gchar **args); gboolean cmd_slashguard(ProfWin *window, const char *const command, gchar **args); +gboolean cmd_serversoftware(ProfWin *window, const char *const command, gchar **args); #endif -- cgit 1.4.1-2-gfad0