Commit 2cfc6f03 authored by Roger Dingledine's avatar Roger Dingledine
Browse files

ORs post descriptors periodically too


svn:r523
parent bd7db5bd
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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, "ORPort",          CONFIG_TYPE_INT, &options->ORPort) ||
    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, "MaxOnionsPending",CONFIG_TYPE_INT, &options->MaxOnionsPending) ||
    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->CoinWeight = 0.8;
  options->MaxConn = 900;
  options->DirFetchPeriod = 600;
  options->DirFetchPostPeriod = 600;
  options->KeepalivePeriod = 300;
  options->MaxOnionsPending = 10;
  options->NewCircuitPeriod = 60; /* once a minute */
@@ -306,8 +306,8 @@ int getconfig(int argc, char **argv, or_options_t *options) {
    result = -1;
  }

  if(options->DirFetchPeriod < 1) {
    log(LOG_WARNING,"DirFetchPeriod option must be positive.");
  if(options->DirFetchPostPeriod < 1) {
    log(LOG_WARNING,"DirFetchPostPeriod option must be positive.");
    result = -1;
  }

+13 −7
Original line number Diff line number Diff line
@@ -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(!options.DirPort) {
    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.
         * Hope this doesn't bite us later.
         */
         * Hope this doesn't bite us later. */
        directory_initiate_command(router_pick_directory_server(),
                                   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) {
@@ -705,7 +711,7 @@ int dump_router_to_string(char *s, int maxlen, routerinfo_t *router,
  int result=0;
  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,
                                          &onion_pkey,&onion_pkeylen)<0) {
+1 −1
Original line number Diff line number Diff line
@@ -430,7 +430,7 @@ typedef struct {
   int LinkPadding;
   int IgnoreVersion;
   int DirRebuildPeriod;
   int DirFetchPeriod;
   int DirFetchPostPeriod;
   int KeepalivePeriod;
   int MaxOnionsPending;
   int NewCircuitPeriod;