diff options
author | James Booth <boothj5@gmail.com> | 2013-01-20 13:28:43 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2013-01-20 13:28:43 +0000 |
commit | 3386ba3a1ea9f0abd620934d044c3e3f05660eec (patch) | |
tree | 8ab83a411ca56bc5fcd35dbbad079bec24b570ec | |
parent | b4ea35d40adfb1fbaf962f2c90c4b0db7a958082 (diff) | |
download | profani-tty-3386ba3a1ea9f0abd620934d044c3e3f05660eec.tar.gz |
Added basic SHA-1 hash of capabilities
-rw-r--r-- | src/jabber.c | 23 | ||||
-rw-r--r-- | src/jabber.h | 1 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/jabber.c b/src/jabber.c index ca6bce30..e947bdf0 100644 --- a/src/jabber.c +++ b/src/jabber.c @@ -24,6 +24,7 @@ #include <stdlib.h> #include <assert.h> +#include <openssl/sha.h> #include <strophe.h> #include "capabilities.h" @@ -179,6 +180,28 @@ jabber_disconnect(void) } } +char * +jabber_get_sha1_caps_str(void) +{ + GString *str = g_string_new(""); + unsigned char hash[SHA_DIGEST_LENGTH]; + + g_string_append(str, "client/pc//Profanity "); + g_string_append(str, PACKAGE_VERSION); + if (strcmp(PACKAGE_STATUS, "development") == 0) { + g_string_append(str, "dev"); + } + g_string_append(str, "<"); + + SHA1((unsigned char *)str->str, strlen(str->str), hash); + + char *result = g_base64_encode(hash, strlen((char *)hash)); + + g_string_free(str, TRUE); + + return result; +} + void jabber_process_events(void) { diff --git a/src/jabber.h b/src/jabber.h index e1494851..e1fc04f0 100644 --- a/src/jabber.h +++ b/src/jabber.h @@ -81,5 +81,6 @@ char * jabber_get_status(void); void jabber_free_resources(void); void jabber_restart(void); void jabber_set_autoping(int seconds); +char * jabber_get_sha1_caps_str(void); #endif |