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;