comparison mcabber/src/main.c @ 1222:75aee46d3aee

Fix a problem with the ssl_ca{file,path} variables expansion
author Mikael Berthe <mikael@lilotux.net>
date Thu, 17 May 2007 10:44:01 +0200
parents 2de8f8ba1f34
children 591d8b35c881
comparison
equal deleted inserted replaced
1221:0dd5df7eb007 1222:75aee46d3aee
69 const char *proxy_host; 69 const char *proxy_host;
70 char *bjid; 70 char *bjid;
71 int ssl; 71 int ssl;
72 int sslverify = -1; 72 int sslverify = -1;
73 const char *sslvopt = NULL, *cafile = NULL, *capath = NULL, *ciphers = NULL; 73 const char *sslvopt = NULL, *cafile = NULL, *capath = NULL, *ciphers = NULL;
74 char *cafile_xp = NULL, *capath_xp = NULL; 74 static char *cafile_xp, *capath_xp;
75 unsigned int port; 75 unsigned int port;
76 76
77 servername = settings_opt_get("server"); 77 servername = settings_opt_get("server");
78 username = settings_opt_get("username"); 78 username = settings_opt_get("username");
79 password = settings_opt_get("password"); 79 password = settings_opt_get("password");
80 resource = settings_opt_get("resource"); 80 resource = settings_opt_get("resource");
81 proxy_host = settings_opt_get("proxy_host"); 81 proxy_host = settings_opt_get("proxy_host");
82
83 // Free the ca*_xp strings if they've already been set.
84 g_free(cafile_xp);
85 g_free(capath_xp);
86 cafile_xp = capath_xp = NULL;
82 87
83 if (!servername) { 88 if (!servername) {
84 scr_LogPrint(LPRINT_NORMAL, "Server name has not been specified!"); 89 scr_LogPrint(LPRINT_NORMAL, "Server name has not been specified!");
85 return; 90 return;
86 } 91 }
111 "** Warning: SSL is NOT available, ignoring ssl-related setting"); 116 "** Warning: SSL is NOT available, ignoring ssl-related setting");
112 ssl = sslverify = 0; 117 ssl = sslverify = 0;
113 cafile = capath = ciphers = NULL; 118 cafile = capath = ciphers = NULL;
114 } 119 }
115 #endif 120 #endif
116 if (cafile) cafile_xp = expand_filename(cafile); 121 cafile_xp = expand_filename(cafile);
117 if (capath) capath_xp = expand_filename(capath); 122 capath_xp = expand_filename(capath);
118 cw_set_ssl_options(sslverify, cafile_xp, capath_xp, ciphers, servername); 123 cw_set_ssl_options(sslverify, cafile_xp, capath_xp, ciphers, servername);
119 g_free(cafile_xp); 124 // We can't free the ca*_xp variables now, because they're not duplicated
120 g_free(capath_xp); 125 // in cw_set_ssl_options().
121 126
122 /* Connect to server */ 127 /* Connect to server */
123 scr_LogPrint(LPRINT_NORMAL|LPRINT_DEBUG, "Connecting to server: %s", 128 scr_LogPrint(LPRINT_NORMAL|LPRINT_DEBUG, "Connecting to server: %s",
124 servername); 129 servername);
125 if (port) 130 if (port)