diff options
author | Christian Grothoff <christian@grothoff.org> | 2011-07-18 07:13:01 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2011-07-18 07:13:01 +0000 |
commit | 6793e33c9451f1e6c74f09a4364fe9f9dc123784 (patch) | |
tree | 58edb45fd0f2ad418de44e42e026194682292efa /src | |
parent | 34456a662c7c4e6f3b56c3d8f1b3d6c6680ada00 (diff) | |
download | gnunet-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.c | 108 |
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)); |