1
1
mirror of https://github.com/profanity-im/profanity.git synced 2025-02-02 15:08:15 -05:00

xep-0092: add config option to set whether OS is revealed

Default is on. `revail.os=false` in the `connection` section of the
config can disable it.
A command to configure this will follow.
This commit is contained in:
Michael Vetter 2020-01-23 23:35:46 +01:00
parent cb1dbb2732
commit 8c34f2ce01
3 changed files with 27 additions and 14 deletions

View File

@ -1758,6 +1758,7 @@ _get_group(preference_t pref)
case PREF_CARBONS: case PREF_CARBONS:
case PREF_RECEIPTS_SEND: case PREF_RECEIPTS_SEND:
case PREF_RECEIPTS_REQUEST: case PREF_RECEIPTS_REQUEST:
case PREF_REVEAL_OS:
case PREF_TLS_CERTPATH: case PREF_TLS_CERTPATH:
return PREF_GROUP_CONNECTION; return PREF_GROUP_CONNECTION;
case PREF_OTR_LOG: case PREF_OTR_LOG:
@ -1817,6 +1818,8 @@ _get_key(preference_t pref)
return "receipts.send"; return "receipts.send";
case PREF_RECEIPTS_REQUEST: case PREF_RECEIPTS_REQUEST:
return "receipts.request"; return "receipts.request";
case PREF_REVEAL_OS:
return "reveal.os";
case PREF_OCCUPANTS: case PREF_OCCUPANTS:
return "occupants"; return "occupants";
case PREF_OCCUPANTS_JID: case PREF_OCCUPANTS_JID:
@ -2056,6 +2059,7 @@ _get_default_boolean(preference_t pref)
case PREF_BOOKMARK_INVITE: case PREF_BOOKMARK_INVITE:
case PREF_ROOM_LIST_CACHE: case PREF_ROOM_LIST_CACHE:
case PREF_STATUSBAR_SHOW_NUMBER: case PREF_STATUSBAR_SHOW_NUMBER:
case PREF_REVEAL_OS:
return TRUE; return TRUE;
default: default:
return FALSE; return FALSE;

View File

@ -63,6 +63,7 @@ typedef enum {
PREF_CARBONS, PREF_CARBONS,
PREF_RECEIPTS_SEND, PREF_RECEIPTS_SEND,
PREF_RECEIPTS_REQUEST, PREF_RECEIPTS_REQUEST,
PREF_REVEAL_OS,
PREF_OCCUPANTS, PREF_OCCUPANTS,
PREF_OCCUPANTS_SIZE, PREF_OCCUPANTS_SIZE,
PREF_OCCUPANTS_JID, PREF_OCCUPANTS_JID,

View File

@ -1598,29 +1598,37 @@ _version_get_handler(xmpp_stanza_t *const stanza)
xmpp_stanza_set_text(version_txt, version_str->str); xmpp_stanza_set_text(version_txt, version_str->str);
xmpp_stanza_add_child(version, version_txt); xmpp_stanza_add_child(version, version_txt);
xmpp_stanza_t *os = xmpp_stanza_new(ctx); xmpp_stanza_t *os;
xmpp_stanza_set_name(os, "os"); xmpp_stanza_t *os_txt;
xmpp_stanza_t *os_txt = xmpp_stanza_new(ctx);
bool include_os = prefs_get_boolean(PREF_REVEAL_OS);
if (include_os) {
os = xmpp_stanza_new(ctx);
xmpp_stanza_set_name(os, "os");
os_txt = xmpp_stanza_new(ctx);
#if defined(_WIN32) || defined(__CYGWIN__) || defined(PLATFORM_CYGWIN) #if defined(_WIN32) || defined(__CYGWIN__) || defined(PLATFORM_CYGWIN)
xmpp_stanza_set_text(os_txt, "Windows"); xmpp_stanza_set_text(os_txt, "Windows");
#elif defined(__linux__) #elif defined(__linux__)
xmpp_stanza_set_text(os_txt, "Linux"); xmpp_stanza_set_text(os_txt, "Linux");
#elif defined(__APPLE__) #elif defined(__APPLE__)
xmpp_stanza_set_text(os_txt, "Apple"); xmpp_stanza_set_text(os_txt, "Apple");
#elif defined(__FreeBSD__) #elif defined(__FreeBSD__)
xmpp_stanza_set_text(os_txt, "FreeBSD"); xmpp_stanza_set_text(os_txt, "FreeBSD");
#elif defined(__NetBSD__) #elif defined(__NetBSD__)
xmpp_stanza_set_text(os_txt, "__NetBSD__"); xmpp_stanza_set_text(os_txt, "__NetBSD__");
#elif defined(__OpenBSD__) #elif defined(__OpenBSD__)
xmpp_stanza_set_text(os_txt, "__OpenBSD__"); xmpp_stanza_set_text(os_txt, "__OpenBSD__");
#else #else
xmpp_stanza_set_text(os_txt, "Unknown"); xmpp_stanza_set_text(os_txt, "Unknown");
#endif #endif
xmpp_stanza_add_child(os, os_txt); xmpp_stanza_add_child(os, os_txt);
}
xmpp_stanza_add_child(query, name); xmpp_stanza_add_child(query, name);
xmpp_stanza_add_child(query, version); xmpp_stanza_add_child(query, version);
xmpp_stanza_add_child(query, os); if (include_os) {xmpp_stanza_add_child(query, os);}
xmpp_stanza_add_child(response, query); xmpp_stanza_add_child(response, query);
iq_send_stanza(response); iq_send_stanza(response);
@ -1628,10 +1636,10 @@ _version_get_handler(xmpp_stanza_t *const stanza)
g_string_free(version_str, TRUE); g_string_free(version_str, TRUE);
xmpp_stanza_release(name_txt); xmpp_stanza_release(name_txt);
xmpp_stanza_release(version_txt); xmpp_stanza_release(version_txt);
xmpp_stanza_release(os_txt); if (include_os) {xmpp_stanza_release(os_txt);}
xmpp_stanza_release(name); xmpp_stanza_release(name);
xmpp_stanza_release(version); xmpp_stanza_release(version);
xmpp_stanza_release(os); if (include_os) {xmpp_stanza_release(os);}
xmpp_stanza_release(query); xmpp_stanza_release(query);
xmpp_stanza_release(response); xmpp_stanza_release(response);
} }