mcabber/src/main.c
changeset 1222 75aee46d3aee
parent 1205 2de8f8ba1f34
child 1223 591d8b35c881
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)