Mercurial > ~mikael > mcabber > hg
comparison mcabber/mcabber/xmpp.c @ 2197:189abf03ef24
Fix fingerprint management
(Reported by Sven Gaerner in issue #134)
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sun, 11 Oct 2015 17:17:35 +0200 |
parents | 40ddaebeb81e |
children | 1591518a33b9 |
comparison
equal
deleted
inserted
replaced
2196:8811fe9d6ef0 | 2197:189abf03ef24 |
---|---|
712 case LM_SSL_STATUS_CERT_HOSTNAME_MISMATCH: | 712 case LM_SSL_STATUS_CERT_HOSTNAME_MISMATCH: |
713 scr_LogPrint(LPRINT_LOGNORM, | 713 scr_LogPrint(LPRINT_LOGNORM, |
714 "Certificate hostname does not match expected hostname!"); | 714 "Certificate hostname does not match expected hostname!"); |
715 break; | 715 break; |
716 case LM_SSL_STATUS_CERT_FINGERPRINT_MISMATCH: { | 716 case LM_SSL_STATUS_CERT_FINGERPRINT_MISMATCH: { |
717 char fpr[49]; | 717 char fpr[49] = {0}; |
718 fingerprint_to_hex((const unsigned char*)lm_ssl_get_fingerprint(ssl), | 718 fingerprint_to_hex((const unsigned char*)lm_ssl_get_fingerprint(ssl), |
719 fpr); | 719 fpr); |
720 scr_LogPrint(LPRINT_LOGNORM, | 720 scr_LogPrint(LPRINT_LOGNORM, |
721 "Certificate fingerprint does not match expected fingerprint!"); | 721 "Certificate fingerprint does not match expected fingerprint!"); |
722 scr_LogPrint(LPRINT_LOGNORM, "Remote fingerprint: %s", fpr); | 722 scr_LogPrint(LPRINT_LOGNORM, "Remote fingerprint: %s", fpr); |
723 | 723 |
724 scr_LogPrint(LPRINT_LOGNORM, "Expected fingerprint: %s", | 724 scr_LogPrint(LPRINT_LOGNORM, "Expected fingerprint: %s", |
725 settings_opt_get("ssl_fingerprint")); | 725 settings_opt_get("ssl_fingerprint")); |
726 | 726 |
727 return LM_SSL_RESPONSE_STOP; | 727 return LM_SSL_RESPONSE_STOP; |
728 } | |
728 break; | 729 break; |
729 } | |
730 case LM_SSL_STATUS_GENERIC_ERROR: | 730 case LM_SSL_STATUS_GENERIC_ERROR: |
731 scr_LogPrint(LPRINT_LOGNORM, "Generic SSL error!"); | 731 scr_LogPrint(LPRINT_LOGNORM, "Generic SSL error!"); |
732 break; | 732 break; |
733 default: | 733 default: |
734 scr_LogPrint(LPRINT_LOGNORM, "SSL error:%d", status); | 734 scr_LogPrint(LPRINT_LOGNORM, "SSL error:%d", status); |
1730 // (no JID, no password, etc.) | 1730 // (no JID, no password, etc.) |
1731 gint xmpp_connect(void) | 1731 gint xmpp_connect(void) |
1732 { | 1732 { |
1733 const char *userjid, *password, *resource, *servername, *ssl_fpr; | 1733 const char *userjid, *password, *resource, *servername, *ssl_fpr; |
1734 char *dynresource = NULL; | 1734 char *dynresource = NULL; |
1735 char fpr[16]; | 1735 char fpr[17] = {0}; |
1736 const char *proxy_host; | 1736 const char *proxy_host; |
1737 const char *resource_prefix = PACKAGE_NAME; | 1737 const char *resource_prefix = PACKAGE_NAME; |
1738 char *fjid; | 1738 char *fjid; |
1739 int ssl, tls; | 1739 int ssl, tls; |
1740 LmSSL *lssl; | 1740 LmSSL *lssl; |
1741 unsigned int port; | 1741 unsigned int port; |
1742 unsigned int ping; | 1742 unsigned int ping = 40; |
1743 LmMessageHandler *handler; | 1743 LmMessageHandler *handler; |
1744 GError *error = NULL; | 1744 GError *error = NULL; |
1745 | 1745 |
1746 xmpp_disconnect(); | 1746 xmpp_disconnect(); |
1747 | 1747 |
1763 | 1763 |
1764 lconnection = lm_connection_new_with_context(NULL, main_context); | 1764 lconnection = lm_connection_new_with_context(NULL, main_context); |
1765 | 1765 |
1766 g_log_set_handler("LM", LM_LOG_LEVEL_ALL, lm_debug_handler, NULL); | 1766 g_log_set_handler("LM", LM_LOG_LEVEL_ALL, lm_debug_handler, NULL); |
1767 | 1767 |
1768 ping = 40; | |
1769 if (settings_opt_get("pinginterval")) | 1768 if (settings_opt_get("pinginterval")) |
1770 ping = (unsigned int) settings_opt_get_int("pinginterval"); | 1769 ping = (unsigned int) settings_opt_get_int("pinginterval"); |
1771 lm_connection_set_keep_alive_rate(lconnection, ping); | 1770 lm_connection_set_keep_alive_rate(lconnection, ping); |
1772 scr_LogPrint(LPRINT_DEBUG, "Ping interval established: %d secs", ping); | 1771 scr_LogPrint(LPRINT_DEBUG, "Ping interval established: %d secs", ping); |
1773 | 1772 |