mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
better comments and a few patches
svn:r164
This commit is contained in:
parent
c5e7d4ca7a
commit
1768f29d7e
@ -8,6 +8,10 @@
|
||||
|
||||
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) {
|
||||
|
||||
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);
|
||||
if(!*buf)
|
||||
return -1;
|
||||
memset(*buf,0,MAX_BUF_SIZE);
|
||||
// memset(*buf,0,MAX_BUF_SIZE);
|
||||
*buflen = MAX_BUF_SIZE;
|
||||
*buf_datalen = 0;
|
||||
|
||||
@ -26,14 +30,13 @@ void buf_free(char *buf) {
|
||||
free(buf);
|
||||
}
|
||||
|
||||
/* 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.
|
||||
* 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.
|
||||
*/
|
||||
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 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
|
||||
* down the connection return -1, else return the number of bytes read.
|
||||
*/
|
||||
|
||||
int read_result;
|
||||
|
||||
assert(buf && *buf && buflen && buf_datalen && reached_eof && (s>=0));
|
||||
|
@ -454,10 +454,9 @@ int dns_resolve(connection_t *exitconn) {
|
||||
|
||||
strncpy(search.question, exitconn->address, MAX_ADDRESSLEN);
|
||||
|
||||
/* try adding it to the tree. if it's already there it will
|
||||
* return it. */
|
||||
/* check the tree to see if 'question' is already there. */
|
||||
resolve = SPLAY_FIND(cache_tree, &cache_root, &search);
|
||||
if(resolve) { /* already there. free up new_resolve */
|
||||
if(resolve) { /* already there */
|
||||
switch(resolve->state) {
|
||||
case CACHE_STATE_PENDING:
|
||||
/* add us to the pending list */
|
||||
@ -472,7 +471,7 @@ int dns_resolve(connection_t *exitconn) {
|
||||
case CACHE_STATE_FAILED:
|
||||
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));
|
||||
memset(resolve, 0, sizeof(struct cached_resolve));
|
||||
resolve->state = CACHE_STATE_PENDING;
|
||||
|
@ -650,6 +650,7 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
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 (SIGTERM, catch);
|
||||
|
Loading…
Reference in New Issue
Block a user