aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-07-18 07:13:01 +0000
committerChristian Grothoff <christian@grothoff.org>2011-07-18 07:13:01 +0000
commit6793e33c9451f1e6c74f09a4364fe9f9dc123784 (patch)
tree58edb45fd0f2ad418de44e42e026194682292efa /src
parent34456a662c7c4e6f3b56c3d8f1b3d6c6680ada00 (diff)
downloadgnunet-6793e33c9451f1e6c74f09a4364fe9f9dc123784.tar.gz
gnunet-6793e33c9451f1e6c74f09a4364fe9f9dc123784.zip
defaults belong in defaults.conf, not in source
Diffstat (limited to 'src')
-rw-r--r--src/transport/plugin_transport_http.c108
1 files changed, 52 insertions, 56 deletions
diff --git a/src/transport/plugin_transport_http.c b/src/transport/plugin_transport_http.c
index bb2b01e0e..8722390ef 100644
--- a/src/transport/plugin_transport_http.c
+++ b/src/transport/plugin_transport_http.c
@@ -3248,7 +3248,7 @@ LIBGNUNET_PLUGIN_TRANSPORT_DONE (void *cls)
3248 3248
3249 GNUNET_free_non_null (plugin->bind4_address); 3249 GNUNET_free_non_null (plugin->bind4_address);
3250 GNUNET_free_non_null (plugin->bind6_address); 3250 GNUNET_free_non_null (plugin->bind6_address);
3251 GNUNET_free_non_null(plugin->bind_hostname); 3251 GNUNET_free_non_null (plugin->bind_hostname);
3252#if BUILD_HTTPS 3252#if BUILD_HTTPS
3253 GNUNET_free_non_null (plugin->crypto_init); 3253 GNUNET_free_non_null (plugin->crypto_init);
3254 GNUNET_free_non_null (plugin->cert); 3254 GNUNET_free_non_null (plugin->cert);
@@ -3272,8 +3272,8 @@ load_certificate( const char * file )
3272 struct stat fstat; 3272 struct stat fstat;
3273 char * text = NULL; 3273 char * text = NULL;
3274 3274
3275 if (0!=STAT(file, &fstat)) 3275 if (0 != STAT(file, &fstat))
3276 return NULL; 3276 return NULL;
3277 text = GNUNET_malloc (fstat.st_size+1); 3277 text = GNUNET_malloc (fstat.st_size+1);
3278 gn_file = GNUNET_DISK_file_open(file, GNUNET_DISK_OPEN_READ, GNUNET_DISK_PERM_USER_READ); 3278 gn_file = GNUNET_DISK_file_open(file, GNUNET_DISK_OPEN_READ, GNUNET_DISK_PERM_USER_READ);
3279 if (gn_file==NULL) 3279 if (gn_file==NULL)
@@ -3281,14 +3281,14 @@ load_certificate( const char * file )
3281 GNUNET_free(text); 3281 GNUNET_free(text);
3282 return NULL; 3282 return NULL;
3283 } 3283 }
3284 if (GNUNET_SYSERR == GNUNET_DISK_file_read(gn_file, text, fstat.st_size)) 3284 if (GNUNET_SYSERR == GNUNET_DISK_file_read (gn_file, text, fstat.st_size))
3285 { 3285 {
3286 GNUNET_free(text); 3286 GNUNET_free (text);
3287 GNUNET_DISK_file_close(gn_file); 3287 GNUNET_DISK_file_close (gn_file);
3288 return NULL; 3288 return NULL;
3289 } 3289 }
3290 text[fstat.st_size] = '\0'; 3290 text[fstat.st_size] = '\0';
3291 GNUNET_DISK_file_close(gn_file); 3291 GNUNET_DISK_file_close (gn_file);
3292 return text; 3292 return text;
3293} 3293}
3294#endif 3294#endif
@@ -3463,67 +3463,63 @@ LIBGNUNET_PLUGIN_TRANSPORT_INIT (void *cls)
3463 3463
3464#if BUILD_HTTPS 3464#if BUILD_HTTPS
3465 /* Reading HTTPS crypto related configuration */ 3465 /* Reading HTTPS crypto related configuration */
3466 /* Get crypto init string from config */ 3466 /* Get crypto init string from config */
3467 if (GNUNET_CONFIGURATION_have_value (env->cfg, 3467 if ( (GNUNET_OK !=
3468 "transport-https", "CRYPTO_INIT")) 3468 GNUNET_CONFIGURATION_get_value_string (env->cfg,
3469 { 3469 "transport-https",
3470 GNUNET_CONFIGURATION_get_value_string (env->cfg, 3470 "CRYPTO_INIT",
3471 "transport-https", 3471 &plugin->crypto_init)) ||
3472 "CRYPTO_INIT", 3472 (GNUNET_OK !=
3473 &plugin->crypto_init); 3473 GNUNET_CONFIGURATION_get_value_filename (env->cfg,
3474 } 3474 "transport-https",
3475 else 3475 "KEY_FILE",
3476 &key_file)) ||
3477 (GNUNET_OK !=
3478 GNUNET_CONFIGURATION_get_value_filename (env->cfg,
3479 "transport-https",
3480 "CERT_FILE",
3481 &cert_file)) )
3476 { 3482 {
3477 GNUNET_asprintf(&plugin->crypto_init,"NORMAL"); 3483 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
3478 } 3484 "https",
3479 3485 _("Required configuration options missing in section `%s'\n"),
3480 /* Get private key file from config */ 3486 "transport-https");
3481 if (GNUNET_CONFIGURATION_have_value (env->cfg, 3487 GNUNET_free (component_name);
3482 "transport-https", "KEY_FILE")) 3488 GNUNET_free_non_null (key_file);
3483 { 3489 GNUNET_free_non_null (cert_file);
3484 GNUNET_CONFIGURATION_get_value_filename (env->cfg, 3490 LIBGNUNET_PLUGIN_TRANSPORT_DONE (api);
3485 "transport-https", 3491 return NULL;
3486 "KEY_FILE",
3487 &key_file);
3488 }
3489 if (key_file==NULL)
3490 GNUNET_asprintf(&key_file,"https.key");
3491
3492 /* Get private key file from config */
3493 if (GNUNET_CONFIGURATION_have_value (env->cfg,"transport-https", "CERT_FILE"))
3494 {
3495 GNUNET_CONFIGURATION_get_value_filename (env->cfg,
3496 "transport-https",
3497 "CERT_FILE",
3498 &cert_file);
3499 } 3492 }
3500 if (cert_file==NULL) 3493
3501 GNUNET_asprintf(&cert_file,"https.cert");
3502
3503 /* read key & certificates from file */ 3494 /* read key & certificates from file */
3504 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 3495 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
3505 "Loading TLS certificate `%s' `%s'\n", 3496 "Loading TLS certificate `%s' `%s'\n",
3506 key_file, cert_file); 3497 key_file, cert_file);
3507 3498
3508 plugin->key = load_certificate( key_file ); 3499 plugin->key = load_certificate (key_file);
3509 plugin->cert = load_certificate( cert_file ); 3500 plugin->cert = load_certificate (cert_file);
3510 3501
3511 if ((plugin->key==NULL) || (plugin->cert==NULL)) 3502 if ( (plugin->key==NULL) || (plugin->cert==NULL) )
3512 { 3503 {
3513 char * cmd; 3504 char * cmd;
3514 int ret = 0; 3505 int ret = 0;
3506
3507 GNUNET_free_non_null (plugin->key);
3508 plugin->key = NULL;
3509 GNUNET_free_non_null (plugin->cert);
3510 plugin->cert = NULL;
3515 GNUNET_asprintf(&cmd, 3511 GNUNET_asprintf(&cmd,
3516 "gnunet-transport-certificate-creation %s %s", 3512 "gnunet-transport-certificate-creation %s %s",
3517 key_file, cert_file); 3513 key_file, cert_file);
3518 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 3514 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
3519 "No usable TLS certificate found, creating certificate \n"); 3515 "No usable TLS certificate found, creating certificate\n");
3520 ret = system(cmd); 3516 ret = system(cmd);
3521 if (ret != 0) 3517 if (ret != 0)
3522 { 3518 {
3523 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, 3519 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
3524 "https", 3520 "https",
3525 _("Could not create a new TLS certificate, shell script `%s' failed!\n"),cmd, 3521 _("Could not create a new TLS certificate, shell script `%s' failed!\n"),
3526 "transport-https"); 3522 cmd);
3527 GNUNET_free (key_file); 3523 GNUNET_free (key_file);
3528 GNUNET_free (cert_file); 3524 GNUNET_free (cert_file);
3529 GNUNET_free (component_name); 3525 GNUNET_free (component_name);
@@ -3531,20 +3527,19 @@ LIBGNUNET_PLUGIN_TRANSPORT_INIT (void *cls)
3531 GNUNET_free (cmd); 3527 GNUNET_free (cmd);
3532 return NULL; 3528 return NULL;
3533 } 3529 }
3534 GNUNET_free (cmd); 3530 GNUNET_free (cmd);
3535 plugin->key = load_certificate( key_file ); 3531 plugin->key = load_certificate (key_file);
3536 plugin->cert = load_certificate( cert_file ); 3532 plugin->cert = load_certificate (cert_file);
3537 if ((plugin->key==NULL) || (plugin->cert==NULL)) 3533 if ((plugin->key==NULL) || (plugin->cert==NULL))
3538 { 3534 {
3539 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, 3535 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
3540 "https", 3536 "https",
3541 _("No usable TLS certificate found and creating one failed! \n"), 3537 _("No usable TLS certificate found and creating one failed!\n"),
3542 "transport-https"); 3538 "transport-https");
3543 GNUNET_free (key_file); 3539 GNUNET_free (key_file);
3544 GNUNET_free (cert_file); 3540 GNUNET_free (cert_file);
3545 GNUNET_free (component_name); 3541 GNUNET_free (component_name);
3546 3542 LIBGNUNET_PLUGIN_TRANSPORT_DONE (api);
3547 LIBGNUNET_PLUGIN_TRANSPORT_DONE(api);
3548 return NULL; 3543 return NULL;
3549 } 3544 }
3550 } 3545 }
@@ -3552,7 +3547,8 @@ LIBGNUNET_PLUGIN_TRANSPORT_INIT (void *cls)
3552 GNUNET_free (cert_file); 3547 GNUNET_free (cert_file);
3553 3548
3554 GNUNET_assert((plugin->key!=NULL) && (plugin->cert!=NULL)); 3549 GNUNET_assert((plugin->key!=NULL) && (plugin->cert!=NULL));
3555 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "TLS certificate loaded\n"); 3550 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
3551 "TLS certificate loaded\n");
3556#endif 3552#endif
3557 3553
3558 GNUNET_assert ((port > 0) && (port <= 65535)); 3554 GNUNET_assert ((port > 0) && (port <= 65535));