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:
parent
cb1dbb2732
commit
8c34f2ce01
@ -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;
|
||||||
|
@ -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,
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user