Mercurial > ~mikael > mcabber > hg
comparison mcabber/mcabber/xmpp.c @ 2085:88b6e9707e02
Added setting "ssl_ciphers" to define the allowed ciphers
author | franky |
---|---|
date | Thu, 24 Oct 2013 22:52:01 +0200 |
parents | f52b47f29ca0 |
children | 3667697d677d |
comparison
equal
deleted
inserted
replaced
2084:e3325bad2e0c | 2085:88b6e9707e02 |
---|---|
1796 // xmpp_connect() | 1796 // xmpp_connect() |
1797 // Return a non-zero value if there's an obvious problem | 1797 // Return a non-zero value if there's an obvious problem |
1798 // (no JID, no password, etc.) | 1798 // (no JID, no password, etc.) |
1799 gint xmpp_connect(void) | 1799 gint xmpp_connect(void) |
1800 { | 1800 { |
1801 const char *userjid, *password, *resource, *servername, *ssl_fpr; | 1801 const char *userjid, *password, *resource, *servername; |
1802 const char *ssl_fpr, *ssl_ciphers; | |
1802 char *dynresource = NULL; | 1803 char *dynresource = NULL; |
1803 char fpr[16]; | 1804 char fpr[16]; |
1804 const char *proxy_host; | 1805 const char *proxy_host; |
1805 const char *resource_prefix = PACKAGE_NAME; | 1806 const char *resource_prefix = PACKAGE_NAME; |
1806 char *fjid; | 1807 char *fjid; |
1811 LmMessageHandler *handler; | 1812 LmMessageHandler *handler; |
1812 GError *error = NULL; | 1813 GError *error = NULL; |
1813 | 1814 |
1814 xmpp_disconnect(); | 1815 xmpp_disconnect(); |
1815 | 1816 |
1816 servername = settings_opt_get("server"); | 1817 servername = settings_opt_get("server"); |
1817 userjid = settings_opt_get("jid"); | 1818 userjid = settings_opt_get("jid"); |
1818 password = settings_opt_get("password"); | 1819 password = settings_opt_get("password"); |
1819 resource = settings_opt_get("resource"); | 1820 resource = settings_opt_get("resource"); |
1820 proxy_host = settings_opt_get("proxy_host"); | 1821 proxy_host = settings_opt_get("proxy_host"); |
1821 ssl_fpr = settings_opt_get("ssl_fingerprint"); | 1822 ssl_fpr = settings_opt_get("ssl_fingerprint"); |
1823 ssl_ciphers = settings_opt_get("ssl_ciphers"); | |
1822 | 1824 |
1823 if (!userjid) { | 1825 if (!userjid) { |
1824 scr_LogPrint(LPRINT_LOGNORM, "Your JID has not been specified!"); | 1826 scr_LogPrint(LPRINT_LOGNORM, "Your JID has not been specified!"); |
1825 return -1; | 1827 return -1; |
1826 } | 1828 } |
1953 } | 1955 } |
1954 | 1956 |
1955 lssl = lm_ssl_new((ssl_fpr ? fpr : NULL), ssl_cb, NULL, NULL); | 1957 lssl = lm_ssl_new((ssl_fpr ? fpr : NULL), ssl_cb, NULL, NULL); |
1956 if (lssl) { | 1958 if (lssl) { |
1957 lm_ssl_use_starttls(lssl, !ssl, tls); | 1959 lm_ssl_use_starttls(lssl, !ssl, tls); |
1960 lm_ssl_set_cipher_list(lssl, ssl_ciphers); | |
1958 lm_connection_set_ssl(lconnection, lssl); | 1961 lm_connection_set_ssl(lconnection, lssl); |
1959 lm_ssl_unref(lssl); | 1962 lm_ssl_unref(lssl); |
1960 } else if (ssl || tls) { | 1963 } else if (ssl || tls) { |
1961 scr_LogPrint(LPRINT_LOGNORM, "** Error: Couldn't create SSL struct."); | 1964 scr_LogPrint(LPRINT_LOGNORM, "** Error: Couldn't create SSL struct."); |
1962 return -1; | 1965 return -1; |