Loading src/or/buffers.c +10 −7 Original line number Original line Diff line number Diff line Loading @@ -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); Loading @@ -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; Loading @@ -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; Loading src/or/dns.c +4 −5 Original line number Original line Diff line number Diff line Loading @@ -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 */ Loading @@ -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; Loading src/or/main.c +1 −0 Original line number Original line Diff line number Diff line Loading @@ -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); Loading Loading
src/or/buffers.c +10 −7 Original line number Original line Diff line number Diff line Loading @@ -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); Loading @@ -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; Loading @@ -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; Loading
src/or/dns.c +4 −5 Original line number Original line Diff line number Diff line Loading @@ -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 */ Loading @@ -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; Loading
src/or/main.c +1 −0 Original line number Original line Diff line number Diff line Loading @@ -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); Loading