Fossil

Diff
Login

Differences From Artifact [a3958e41ac]:

To Artifact [8c2ac3bbd3]:


265
266
267
268
269
270
271

272
273
274



275
276
277
278
279
280





281
282
283
284
285
286
287
265
266
267
268
269
270
271
272



273
274
275






276
277
278
279
280
281
282
283
284
285
286
287







+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+







    BIO_write(mem, "", 1); /* nul-terminate mem buffer */
    BIO_get_mem_data(mem, &desc);
    
    if( hasSavedCertificate ){
      warning = "WARNING: Certificate doesn't match the "
                "saved certificate for this host!";
    }
    prompt = mprintf(
    prompt = mprintf("\nUnknown SSL certificate:\n\n%s\n\n%s\n"
                     "Either:\n"
                     " * verify the certificate is correct using the "
      "\nUnknown SSL certificate:\n\n%s\n\n%s\n"
      "Either:\n"
      " * verify the certificate is correct using the SHA1 fingerprint above\n"
                     "SHA1 fingerprint above\n"
                     " * use the global ssl-ca-location setting to specify your CA root\n"
                     "   certificates list\n\n"
                     "If you are not expecting this message, answer no and "
                     "contact your server\nadministrator.\n\n"
                     "Accept certificate [a=always/y/N]? ", desc, warning);
      " * use the global ssl-ca-location setting to specify your CA root\n"
      "   certificates list\n\n"
      "If you are not expecting this message, answer no and "
      "contact your server\nadministrator.\n\n"
      "Accept certificate [a=always/y/N]? ", desc, warning);
    BIO_free(mem);

    prompt_user(prompt, &ans);
    free(prompt);
    if( blob_str(&ans)[0]!='y' && blob_str(&ans)[0]!='a' ) {
      X509_free(cert);
      ssl_set_errmsg("SSL certificate declined");
302
303
304
305
306
307
308
309
310
311



312
313
314
315
316
317
318
302
303
304
305
306
307
308



309
310
311
312
313
314
315
316
317
318







-
-
-
+
+
+







  }

  /* Set the Global.zIpAddr variable to the server we are talking to.
  ** This is used to populate the ipaddr column of the rcvfrom table,
  ** if any files are received from the server.
  */
  {
      /* IPv4 only code */
      const unsigned char *ip = (const unsigned char *) BIO_get_conn_ip(iBio);
      g.zIpAddr = mprintf("%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]);
    /* IPv4 only code */
    const unsigned char *ip = (const unsigned char *) BIO_get_conn_ip(iBio);
    g.zIpAddr = mprintf("%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]);
  }

  X509_free(cert);
  return 0;
}

/*