ORs post descriptors periodically too

svn:r523
This commit is contained in:
Roger Dingledine 2003-09-30 23:06:23 +00:00
parent bd7db5bd87
commit 2cfc6f0379
3 changed files with 18 additions and 12 deletions

View File

@ -161,7 +161,7 @@ static void config_assign(or_options_t *options, struct config_line *list) {
config_compare(list, "APPort", CONFIG_TYPE_INT, &options->APPort) || config_compare(list, "APPort", CONFIG_TYPE_INT, &options->APPort) ||
config_compare(list, "ORPort", CONFIG_TYPE_INT, &options->ORPort) || config_compare(list, "ORPort", CONFIG_TYPE_INT, &options->ORPort) ||
config_compare(list, "DirPort", CONFIG_TYPE_INT, &options->DirPort) || config_compare(list, "DirPort", CONFIG_TYPE_INT, &options->DirPort) ||
config_compare(list, "DirFetchPeriod", CONFIG_TYPE_INT, &options->DirFetchPeriod) || config_compare(list, "DirFetchPostPeriod",CONFIG_TYPE_INT, &options->DirFetchPostPeriod) ||
config_compare(list, "KeepalivePeriod", CONFIG_TYPE_INT, &options->KeepalivePeriod) || config_compare(list, "KeepalivePeriod", CONFIG_TYPE_INT, &options->KeepalivePeriod) ||
config_compare(list, "MaxOnionsPending",CONFIG_TYPE_INT, &options->MaxOnionsPending) || config_compare(list, "MaxOnionsPending",CONFIG_TYPE_INT, &options->MaxOnionsPending) ||
config_compare(list, "NewCircuitPeriod",CONFIG_TYPE_INT, &options->NewCircuitPeriod) || config_compare(list, "NewCircuitPeriod",CONFIG_TYPE_INT, &options->NewCircuitPeriod) ||
@ -202,7 +202,7 @@ int getconfig(int argc, char **argv, or_options_t *options) {
options->DataDirectory = NULL; options->DataDirectory = NULL;
options->CoinWeight = 0.8; options->CoinWeight = 0.8;
options->MaxConn = 900; options->MaxConn = 900;
options->DirFetchPeriod = 600; options->DirFetchPostPeriod = 600;
options->KeepalivePeriod = 300; options->KeepalivePeriod = 300;
options->MaxOnionsPending = 10; options->MaxOnionsPending = 10;
options->NewCircuitPeriod = 60; /* once a minute */ options->NewCircuitPeriod = 60; /* once a minute */
@ -306,8 +306,8 @@ int getconfig(int argc, char **argv, or_options_t *options) {
result = -1; result = -1;
} }
if(options->DirFetchPeriod < 1) { if(options->DirFetchPostPeriod < 1) {
log(LOG_WARNING,"DirFetchPeriod option must be positive."); log(LOG_WARNING,"DirFetchPostPeriod option must be positive.");
result = -1; result = -1;
} }

View File

@ -276,16 +276,22 @@ static int prepare_for_poll(void) {
if(now.tv_sec > current_second) { /* the second has rolled over. check more stuff. */ if(now.tv_sec > current_second) { /* the second has rolled over. check more stuff. */
if(!options.DirPort) {
if(time_to_fetch_directory < now.tv_sec) { if(time_to_fetch_directory < now.tv_sec) {
/* it's time to fetch a new directory */ /* it's time to fetch a new directory and/or post our descriptor */
if(options.OnionRouter) {
if (init_descriptor()<0) {
log_fn(LOG_WARNING, "Error initializing descriptor. Not uploading desc.");
} else {
router_upload_desc_to_dirservers();
}
}
if(!options.DirPort) {
/* NOTE directory servers do not currently fetch directories. /* NOTE directory servers do not currently fetch directories.
* Hope this doesn't bite us later. * Hope this doesn't bite us later. */
*/
directory_initiate_command(router_pick_directory_server(), directory_initiate_command(router_pick_directory_server(),
DIR_CONN_STATE_CONNECTING_FETCH); DIR_CONN_STATE_CONNECTING_FETCH);
time_to_fetch_directory = now.tv_sec + options.DirFetchPeriod;
} }
time_to_fetch_directory = now.tv_sec + options.DirFetchPostPeriod;
} }
if(options.APPort && time_to_new_circuit < now.tv_sec) { if(options.APPort && time_to_new_circuit < now.tv_sec) {
@ -705,7 +711,7 @@ int dump_router_to_string(char *s, int maxlen, routerinfo_t *router,
int result=0; int result=0;
struct exit_policy_t *tmpe; struct exit_policy_t *tmpe;
get_platform_str(platform, 256); get_platform_str(platform, sizeof(platform));
if(crypto_pk_write_public_key_to_string(router->onion_pkey, if(crypto_pk_write_public_key_to_string(router->onion_pkey,
&onion_pkey,&onion_pkeylen)<0) { &onion_pkey,&onion_pkeylen)<0) {

View File

@ -430,7 +430,7 @@ typedef struct {
int LinkPadding; int LinkPadding;
int IgnoreVersion; int IgnoreVersion;
int DirRebuildPeriod; int DirRebuildPeriod;
int DirFetchPeriod; int DirFetchPostPeriod;
int KeepalivePeriod; int KeepalivePeriod;
int MaxOnionsPending; int MaxOnionsPending;
int NewCircuitPeriod; int NewCircuitPeriod;