Commit 1768f29d authored by Roger Dingledine's avatar Roger Dingledine
Browse files

better comments and a few patches


svn:r164
parent c5e7d4ca
Loading
Loading
Loading
Loading
+10 −7
Original line number Original line Diff line number Diff line
@@ -8,6 +8,10 @@


extern or_options_t options; /* command-line and config-file options */
extern or_options_t options; /* command-line and config-file options */


/* Create a new buf of size MAX_BUF_SIZE. Write a pointer to it
 * into *buf, write MAX_BUF_SIZE into *buflen, and initialize
 * *buf_datalen to 0. Return 0 if success, or -1 if malloc fails.
 */
int buf_new(char **buf, int *buflen, int *buf_datalen) {
int buf_new(char **buf, int *buflen, int *buf_datalen) {


  assert(buf && buflen && buf_datalen);
  assert(buf && buflen && buf_datalen);
@@ -15,7 +19,7 @@ int buf_new(char **buf, int *buflen, int *buf_datalen) {
  *buf = (char *)malloc(MAX_BUF_SIZE);
  *buf = (char *)malloc(MAX_BUF_SIZE);
  if(!*buf)
  if(!*buf)
    return -1;
    return -1;
  memset(*buf,0,MAX_BUF_SIZE);
//  memset(*buf,0,MAX_BUF_SIZE);
  *buflen = MAX_BUF_SIZE;
  *buflen = MAX_BUF_SIZE;
  *buf_datalen = 0;
  *buf_datalen = 0;


@@ -26,13 +30,12 @@ void buf_free(char *buf) {
  free(buf);
  free(buf);
}
}


int read_to_buf(int s, int at_most, char **buf, int *buflen, int *buf_datalen, int *reached_eof) {

/* read from socket s, writing onto buf+buf_datalen. If at_most is >= 0 then
/* read from socket s, writing onto buf+buf_datalen. If at_most is >= 0 then
 * read at most 'at_most' bytes, and in any case don't read more than will fit based on buflen.
 * read at most 'at_most' bytes, and in any case don't read more than will fit based on buflen.
 * If read() returns 0, set *reached_eof to 1 and return 0. If you want to tear
 * If read() returns 0, set *reached_eof to 1 and return 0. If you want to tear
 * down the connection return -1, else return the number of bytes read.
 * down the connection return -1, else return the number of bytes read.
 */
 */
int read_to_buf(int s, int at_most, char **buf, int *buflen, int *buf_datalen, int *reached_eof) {


  int read_result;
  int read_result;


+4 −5
Original line number Original line Diff line number Diff line
@@ -454,10 +454,9 @@ int dns_resolve(connection_t *exitconn) {


  strncpy(search.question, exitconn->address, MAX_ADDRESSLEN);
  strncpy(search.question, exitconn->address, MAX_ADDRESSLEN);


  /* try adding it to the tree. if it's already there it will
  /* check the tree to see if 'question' is already there. */
   * return it. */
  resolve = SPLAY_FIND(cache_tree, &cache_root, &search);
  resolve = SPLAY_FIND(cache_tree, &cache_root, &search);
  if(resolve) { /* already there. free up new_resolve */
  if(resolve) { /* already there */
    switch(resolve->state) {
    switch(resolve->state) {
      case CACHE_STATE_PENDING:
      case CACHE_STATE_PENDING:
        /* add us to the pending list */
        /* add us to the pending list */
@@ -472,7 +471,7 @@ int dns_resolve(connection_t *exitconn) {
      case CACHE_STATE_FAILED:
      case CACHE_STATE_FAILED:
        return -1;
        return -1;
    }
    }
  } else { /* this was newly added to the tree. ask the dns farm. */
  } else { /* need to add it */
    resolve = malloc(sizeof(struct cached_resolve));
    resolve = malloc(sizeof(struct cached_resolve));
    memset(resolve, 0, sizeof(struct cached_resolve));
    memset(resolve, 0, sizeof(struct cached_resolve));
    resolve->state = CACHE_STATE_PENDING;
    resolve->state = CACHE_STATE_PENDING;
+1 −0
Original line number Original line Diff line number Diff line
@@ -650,6 +650,7 @@ int main(int argc, char *argv[]) {
  }
  }


  init_tracked_tree(); /* initialize the replay detection tree */
  init_tracked_tree(); /* initialize the replay detection tree */
  init_cache_tree(); /* initialize the dns resolve tree */


  signal (SIGINT,  catch); /* catch kills so we can exit cleanly */
  signal (SIGINT,  catch); /* catch kills so we can exit cleanly */
  signal (SIGTERM, catch);
  signal (SIGTERM, catch);