From b9480620c61e1eb5115353e1ff79c2d676d70964 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 17 Jun 2003 21:15:25 +0000 Subject: [PATCH] Make log_fn work on apples with no workarounds needed in main code svn:r330 --- doc/tor-spec.txt | 6 ++++++ src/common/log.h | 11 +++++++---- src/or/routers.c | 14 +++++++------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/doc/tor-spec.txt b/doc/tor-spec.txt index 26836823ff..e4637b8518 100644 --- a/doc/tor-spec.txt +++ b/doc/tor-spec.txt @@ -487,6 +487,12 @@ which reveals the downstream node. cells, echo their contents to the corresponding TCP stream. [XXX Mention zlib encoding. -NM] +5.2. Closing connections + + [Note -- TCP streams can only be half-closed for reading. Our + Bickford's conversation was incorrect. -NM] + + When one side of the TCP stream is closed, the corresponding edge node sends a RELAY_END cell along the circuit; upon receiving a RELAY_END cell, the edge node closes its side of the corresponding diff --git a/src/common/log.h b/src/common/log.h index d8311d20fb..5669a511aa 100644 --- a/src/common/log.h +++ b/src/common/log.h @@ -13,10 +13,13 @@ void log(int severity, const char *format, ...); #ifdef __GNUC__ -#define log_fn(severity, format) \ - log((severity), "%s(): " format , __PRETTY_FUNCTION__) -#define log_fnf(severity, format, args...) \ - log((severity), "%s(): " format , __PRETTY_FUNCTION__ , ##args) +#ifdef __APPLE_CPP__ +#define log_fn(severity, args...) \ + log((severity), __PRETTY_FUNCTION__ "(): " args) +#else +#define log_fn(severity, format, args...) \ + log((severity), "%s(): " format, __PRETTY_FUNCTION__ , ##args) +#endif #else #define log_fn log #define log_fnf log diff --git a/src/or/routers.c b/src/or/routers.c index 6a47e7f74c..0f6156cdf2 100644 --- a/src/or/routers.c +++ b/src/or/routers.c @@ -47,7 +47,7 @@ int learn_my_address(struct sockaddr_in *me) { log_fn(LOG_ERR,"Error obtaining local hostname"); return -1; } - log_fnf(LOG_DEBUG,"localhostname is '%s'.",localhostname); + log_fn(LOG_DEBUG,"localhostname is '%s'.",localhostname); localhost = gethostbyname(localhostname); if (!localhost) { log_fn(LOG_ERR,"Error obtaining local host info."); @@ -57,7 +57,7 @@ int learn_my_address(struct sockaddr_in *me) { me->sin_family = AF_INET; memcpy((void *)&me->sin_addr,(void *)localhost->h_addr,sizeof(struct in_addr)); me->sin_port = htons(options.ORPort); - log_fnf(LOG_DEBUG,"chose address as '%s'.",inet_ntoa(me->sin_addr)); + log_fn(LOG_DEBUG,"chose address as '%s'.",inet_ntoa(me->sin_addr)); return 0; } @@ -69,7 +69,7 @@ void router_retry_connections(void) { for (i=0;in_routers;i++) { router = directory->routers[i]; if(!connection_exact_get_by_addr_port(router->addr,router->or_port)) { /* not in the list */ - log_fnf(LOG_DEBUG,"connecting to OR %s:%u.",router->address,router->or_port); + log_fn(LOG_DEBUG,"connecting to OR %s:%u.",router->address,router->or_port); connection_or_connect(router); } } @@ -199,26 +199,26 @@ int router_get_list_from_file(char *routerfile) assert(routerfile); if (strcspn(routerfile,CONFIG_LEGAL_FILENAME_CHARACTERS) != 0) { - log_fnf(LOG_ERR,"Filename %s contains illegal characters.",routerfile); + log_fn(LOG_ERR,"Filename %s contains illegal characters.",routerfile); return -1; } if(stat(routerfile, &statbuf) < 0) { - log_fnf(LOG_ERR,"Could not stat %s.",routerfile); + log_fn(LOG_ERR,"Could not stat %s.",routerfile); return -1; } /* open the router list */ fd = open(routerfile,O_RDONLY,0); if (fd<0) { - log_fnf(LOG_ERR,"Could not open %s.",routerfile); + log_fn(LOG_ERR,"Could not open %s.",routerfile); return -1; } string = tor_malloc(statbuf.st_size+1); if(read(fd,string,statbuf.st_size) != statbuf.st_size) { - log_fnf(LOG_ERR,"Couldn't read all %d bytes of file '%s'.",statbuf.st_size,routerfile); + log_fn(LOG_ERR,"Couldn't read all %d bytes of file '%s'.",statbuf.st_size,routerfile); free(string); close(fd); return -1;