|
@@ -130,7 +130,7 @@ _tor_malloc(size_t size DMALLOC_PARAMS)
|
|
|
result = dmalloc_malloc(file, line, size, DMALLOC_FUNC_MALLOC, 0, 0);
|
|
|
|
|
|
if (!result) {
|
|
|
- err(LD_MM,"Out of memory. Dying.");
|
|
|
+ log_err(LD_MM,"Out of memory. Dying.");
|
|
|
/* XXX if these functions die within a worker process, they won't
|
|
|
* call spawn_exit */
|
|
|
exit(1);
|
|
@@ -162,7 +162,7 @@ _tor_realloc(void *ptr, size_t size DMALLOC_PARAMS)
|
|
|
|
|
|
result = dmalloc_realloc(file, line, ptr, size, DMALLOC_FUNC_REALLOC, 0);
|
|
|
if (!result) {
|
|
|
- err(LD_MM,"Out of memory. Dying.");
|
|
|
+ log_err(LD_MM,"Out of memory. Dying.");
|
|
|
exit(1);
|
|
|
}
|
|
|
return result;
|
|
@@ -180,7 +180,7 @@ _tor_strdup(const char *s DMALLOC_PARAMS)
|
|
|
|
|
|
dup = dmalloc_strdup(file, line, s, 0);
|
|
|
if (!dup) {
|
|
|
- err(LD_MM,"Out of memory. Dying.");
|
|
|
+ log_err(LD_MM,"Out of memory. Dying.");
|
|
|
exit(1);
|
|
|
}
|
|
|
return dup;
|
|
@@ -577,7 +577,7 @@ tv_udiff(struct timeval *start, struct timeval *end)
|
|
|
long secdiff = end->tv_sec - start->tv_sec;
|
|
|
|
|
|
if (labs(secdiff+1) > LONG_MAX/1000000) {
|
|
|
- warn(LD_GENERAL, "comparing times too far apart.");
|
|
|
+ log_warn(LD_GENERAL, "comparing times too far apart.");
|
|
|
return LONG_MAX;
|
|
|
}
|
|
|
|
|
@@ -647,7 +647,7 @@ tor_timegm(struct tm *tm)
|
|
|
int i;
|
|
|
year = tm->tm_year + 1900;
|
|
|
if (year < 1970 || tm->tm_mon < 0 || tm->tm_mon > 11) {
|
|
|
- warn(LD_BUG, "Out-of-range argument to tor_timegm");
|
|
|
+ log_warn(LD_BUG, "Out-of-range argument to tor_timegm");
|
|
|
return -1;
|
|
|
}
|
|
|
days = 365 * (year-1970) + n_leapdays(1970,year);
|
|
@@ -700,7 +700,7 @@ parse_rfc1123_time(const char *buf, time_t *t)
|
|
|
if (sscanf(buf, "%3s, %d %3s %d %d:%d:%d GMT", weekday,
|
|
|
&tm.tm_mday, month, &tm.tm_year, &tm.tm_hour,
|
|
|
&tm.tm_min, &tm.tm_sec) < 7) {
|
|
|
- warn(LD_GENERAL, "Got invalid RFC1123 time \"%s\"", buf);
|
|
|
+ log_warn(LD_GENERAL, "Got invalid RFC1123 time \"%s\"", buf);
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
@@ -712,13 +712,14 @@ parse_rfc1123_time(const char *buf, time_t *t)
|
|
|
}
|
|
|
}
|
|
|
if (m<0) {
|
|
|
- warn(LD_GENERAL, "Got invalid RFC1123 time \"%s\"", buf);
|
|
|
+ log_warn(LD_GENERAL, "Got invalid RFC1123 time \"%s\"", buf);
|
|
|
return -1;
|
|
|
}
|
|
|
tm.tm_mon = m;
|
|
|
|
|
|
if (tm.tm_year < 1970) {
|
|
|
- warn(LD_GENERAL, "Got invalid RFC1123 time \"%s\". (Before 1970)", buf);
|
|
|
+ log_warn(LD_GENERAL,
|
|
|
+ "Got invalid RFC1123 time \"%s\". (Before 1970)", buf);
|
|
|
return -1;
|
|
|
}
|
|
|
tm.tm_year -= 1900;
|
|
@@ -747,17 +748,17 @@ parse_iso_time(const char *cp, time_t *t)
|
|
|
struct tm st_tm;
|
|
|
#ifdef HAVE_STRPTIME
|
|
|
if (!strptime(cp, "%Y-%m-%d %H:%M:%S", &st_tm)) {
|
|
|
- warn(LD_GENERAL, "Published time was unparseable"); return -1;
|
|
|
+ log_warn(LD_GENERAL, "Published time was unparseable"); return -1;
|
|
|
}
|
|
|
#else
|
|
|
unsigned int year=0, month=0, day=0, hour=100, minute=100, second=100;
|
|
|
if (sscanf(cp, "%u-%u-%u %u:%u:%u", &year, &month,
|
|
|
&day, &hour, &minute, &second) < 6) {
|
|
|
- warn(LD_GENERAL, "Published time was unparseable"); return -1;
|
|
|
+ log_warn(LD_GENERAL, "Published time was unparseable"); return -1;
|
|
|
}
|
|
|
if (year < 1970 || month < 1 || month > 12 || day < 1 || day > 31 ||
|
|
|
hour > 23 || minute > 59 || second > 61) {
|
|
|
- warn(LD_GENERAL, "Published time was nonsensical"); return -1;
|
|
|
+ log_warn(LD_GENERAL, "Published time was nonsensical"); return -1;
|
|
|
}
|
|
|
st_tm.tm_year = year-1900;
|
|
|
st_tm.tm_mon = month-1;
|
|
@@ -767,7 +768,7 @@ parse_iso_time(const char *cp, time_t *t)
|
|
|
st_tm.tm_sec = second;
|
|
|
#endif
|
|
|
if (st_tm.tm_year < 70) {
|
|
|
- warn(LD_GENERAL, "Got invalid ISO time \"%s\". (Before 1970)", cp);
|
|
|
+ log_warn(LD_GENERAL, "Got invalid ISO time \"%s\". (Before 1970)", cp);
|
|
|
return -1;
|
|
|
}
|
|
|
*t = tor_timegm(&st_tm);
|
|
@@ -903,7 +904,7 @@ check_private_dir(const char *dirname, cpd_check_t check)
|
|
|
log(LOG_WARN, LD_FS, "Directory %s does not exist.", dirname);
|
|
|
return -1;
|
|
|
} else if (check == CPD_CREATE) {
|
|
|
- info(LD_GENERAL, "Creating directory %s", dirname);
|
|
|
+ log_info(LD_GENERAL, "Creating directory %s", dirname);
|
|
|
#ifdef MS_WINDOWS
|
|
|
r = mkdir(dirname);
|
|
|
#else
|
|
@@ -965,8 +966,8 @@ write_str_to_file(const char *fname, const char *str, int bin)
|
|
|
{
|
|
|
#ifdef MS_WINDOWS
|
|
|
if (!bin && strchr(str, '\r')) {
|
|
|
- warn(LD_BUG,
|
|
|
- "Bug: we're writing a text string that already contains a CR.");
|
|
|
+ log_warn(LD_BUG,
|
|
|
+ "Bug: we're writing a text string that already contains a CR.");
|
|
|
}
|
|
|
#endif
|
|
|
return write_bytes_to_file(fname, str, strlen(str), bin);
|
|
@@ -1091,13 +1092,13 @@ read_file_to_str(const char *filename, int bin)
|
|
|
r = stat(f, &statbuf);
|
|
|
tor_free(f);
|
|
|
if (r < 0) {
|
|
|
- info(LD_FS,"Could not stat \"%s\".",filename);
|
|
|
+ log_info(LD_FS,"Could not stat \"%s\".",filename);
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
fd = open(filename,O_RDONLY|(bin?O_BINARY:O_TEXT),0);
|
|
|
if (fd<0) {
|
|
|
- warn(LD_FS,"Could not open \"%s\".",filename);
|
|
|
+ log_warn(LD_FS,"Could not open \"%s\".",filename);
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
@@ -1105,8 +1106,8 @@ read_file_to_str(const char *filename, int bin)
|
|
|
|
|
|
r = read_all(fd,string,statbuf.st_size,0);
|
|
|
if (r<0) {
|
|
|
- warn(LD_FS,"Error reading from file \"%s\": %s", filename,
|
|
|
- strerror(errno));
|
|
|
+ log_warn(LD_FS,"Error reading from file \"%s\": %s", filename,
|
|
|
+ strerror(errno));
|
|
|
tor_free(string);
|
|
|
close(fd);
|
|
|
return NULL;
|
|
@@ -1116,17 +1117,17 @@ read_file_to_str(const char *filename, int bin)
|
|
|
if (bin && r != statbuf.st_size) {
|
|
|
/* If we're in binary mode, then we'd better have an exact match for
|
|
|
* size. Otherwise, win32 encoding may throw us off, and that's okay. */
|
|
|
- warn(LD_FS,"Could read only %d of %ld bytes of file \"%s\".",
|
|
|
- r, (long)statbuf.st_size,filename);
|
|
|
+ log_warn(LD_FS,"Could read only %d of %ld bytes of file \"%s\".",
|
|
|
+ r, (long)statbuf.st_size,filename);
|
|
|
tor_free(string);
|
|
|
close(fd);
|
|
|
return NULL;
|
|
|
}
|
|
|
#ifdef MS_WINDOWS
|
|
|
if (!bin && strchr(string, '\r')) {
|
|
|
- debug(LD_FS, "We didn't convert CRLF to LF as well as we hoped "
|
|
|
- "when reading %s. Coping.",
|
|
|
- filename);
|
|
|
+ log_debug(LD_FS, "We didn't convert CRLF to LF as well as we hoped "
|
|
|
+ "when reading %s. Coping.",
|
|
|
+ filename);
|
|
|
tor_strstrip(string, "\r");
|
|
|
}
|
|
|
#endif
|
|
@@ -1220,8 +1221,8 @@ expand_filename(const char *filename)
|
|
|
if (filename[1] == '/' || filename[1] == '\0') {
|
|
|
home = getenv("HOME");
|
|
|
if (!home) {
|
|
|
- warn(LD_CONFIG, "Couldn't find $HOME environment variable while "
|
|
|
- "expanding %s", filename);
|
|
|
+ log_warn(LD_CONFIG, "Couldn't find $HOME environment variable while "
|
|
|
+ "expanding %s", filename);
|
|
|
return NULL;
|
|
|
}
|
|
|
home = tor_strdup(home);
|
|
@@ -1235,14 +1236,14 @@ expand_filename(const char *filename)
|
|
|
else
|
|
|
username = tor_strdup(filename+1);
|
|
|
if (!(home = get_user_homedir(username))) {
|
|
|
- warn(LD_CONFIG,"Couldn't get homedir for \"%s\"",username);
|
|
|
+ log_warn(LD_CONFIG,"Couldn't get homedir for \"%s\"",username);
|
|
|
tor_free(username);
|
|
|
return NULL;
|
|
|
}
|
|
|
tor_free(username);
|
|
|
rest = slash ? (slash+1) : NULL;
|
|
|
#else
|
|
|
- warn(LD_CONFIG, "Couldn't expend homedir on system without pwd.h");
|
|
|
+ log_warn(LD_CONFIG, "Couldn't expend homedir on system without pwd.h");
|
|
|
return tor_strdup(filename);
|
|
|
#endif
|
|
|
}
|
|
@@ -1289,7 +1290,7 @@ tor_listdir(const char *dirname)
|
|
|
}
|
|
|
if (!FindNextFile(handle, &findData)) {
|
|
|
if (GetLastError() != ERROR_NO_MORE_FILES) {
|
|
|
- warn(LD_FS, "Error reading directory.");
|
|
|
+ log_warn(LD_FS, "Error reading directory.");
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
@@ -1384,12 +1385,13 @@ parse_addr_port(const char *addrport, char **address, uint32_t *addr,
|
|
|
_address = tor_strndup(addrport, colon-addrport);
|
|
|
_port = (int) tor_parse_long(colon+1,10,1,65535,NULL,NULL);
|
|
|
if (!_port) {
|
|
|
- warn(LD_GENERAL, "Port '%s' out of range", colon+1);
|
|
|
+ log_warn(LD_GENERAL, "Port '%s' out of range", colon+1);
|
|
|
ok = 0;
|
|
|
}
|
|
|
if (!port_out) {
|
|
|
- warn(LD_GENERAL, "Port '%s' given on '%s' when not required", colon+1,
|
|
|
- addrport);
|
|
|
+ log_warn(LD_GENERAL,
|
|
|
+ "Port '%s' given on '%s' when not required",
|
|
|
+ colon+1, addrport);
|
|
|
ok = 0;
|
|
|
}
|
|
|
} else {
|
|
@@ -1400,7 +1402,7 @@ parse_addr_port(const char *addrport, char **address, uint32_t *addr,
|
|
|
if (addr) {
|
|
|
/* There's an addr pointer, so we need to resolve the hostname. */
|
|
|
if (tor_lookup_hostname(_address,addr)) {
|
|
|
- warn(LD_NET, "Couldn't look up '%s'", _address);
|
|
|
+ log_warn(LD_NET, "Couldn't look up '%s'", _address);
|
|
|
ok = 0;
|
|
|
*addr = 0;
|
|
|
}
|
|
@@ -1477,8 +1479,8 @@ parse_addr_and_port_range(const char *s, uint32_t *addr_out,
|
|
|
} else if (tor_inet_aton(address, &in) != 0) {
|
|
|
*addr_out = ntohl(in.s_addr);
|
|
|
} else {
|
|
|
- warn(LD_GENERAL, "Malformed IP \"%s\" in address pattern; rejecting.",
|
|
|
- address);
|
|
|
+ log_warn(LD_GENERAL, "Malformed IP \"%s\" in address pattern; rejecting.",
|
|
|
+ address);
|
|
|
goto err;
|
|
|
}
|
|
|
|
|
@@ -1493,16 +1495,17 @@ parse_addr_and_port_range(const char *s, uint32_t *addr_out,
|
|
|
if (!*endptr) {
|
|
|
/* strtol handled the whole mask. */
|
|
|
if (bits < 0 || bits > 32) {
|
|
|
- warn(LD_GENERAL,
|
|
|
- "Bad number of mask bits on address range; rejecting.");
|
|
|
+ log_warn(LD_GENERAL,
|
|
|
+ "Bad number of mask bits on address range; rejecting.");
|
|
|
goto err;
|
|
|
}
|
|
|
*mask_out = ~((1u<<(32-bits))-1);
|
|
|
} else if (tor_inet_aton(mask, &in) != 0) {
|
|
|
*mask_out = ntohl(in.s_addr);
|
|
|
} else {
|
|
|
- warn(LD_GENERAL, "Malformed mask \"%s\" on address range; rejecting.",
|
|
|
- mask);
|
|
|
+ log_warn(LD_GENERAL,
|
|
|
+ "Malformed mask \"%s\" on address range; rejecting.",
|
|
|
+ mask);
|
|
|
goto err;
|
|
|
}
|
|
|
}
|
|
@@ -1520,18 +1523,20 @@ parse_addr_and_port_range(const char *s, uint32_t *addr_out,
|
|
|
*port_max_out = (uint16_t) tor_parse_long(port, 10, 1, 65535, NULL,
|
|
|
&endptr);
|
|
|
if (*endptr || !*port_max_out) {
|
|
|
- warn(LD_GENERAL, "Malformed port \"%s\" on address range rejecting.",
|
|
|
- port);
|
|
|
+ log_warn(LD_GENERAL,
|
|
|
+ "Malformed port \"%s\" on address range rejecting.",
|
|
|
+ port);
|
|
|
}
|
|
|
} else if (*endptr || !*port_min_out) {
|
|
|
- warn(LD_GENERAL, "Malformed port \"%s\" on address range; rejecting.",
|
|
|
- port);
|
|
|
+ log_warn(LD_GENERAL,
|
|
|
+ "Malformed port \"%s\" on address range; rejecting.",
|
|
|
+ port);
|
|
|
goto err;
|
|
|
} else {
|
|
|
*port_max_out = *port_min_out;
|
|
|
}
|
|
|
if (*port_min_out > *port_max_out) {
|
|
|
- warn(LD_GENERAL, "Insane port range on address policy; rejecting.");
|
|
|
+ log_warn(LD_GENERAL, "Insane port range on address policy; rejecting.");
|
|
|
goto err;
|
|
|
}
|
|
|
}
|
|
@@ -1607,7 +1612,7 @@ get_interface_address(uint32_t *addr)
|
|
|
sock = socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);
|
|
|
if (sock < 0) {
|
|
|
int e = tor_socket_errno(-1);
|
|
|
- warn(LD_NET, "unable to create socket: %s", tor_socket_strerror(e));
|
|
|
+ log_warn(LD_NET, "unable to create socket: %s", tor_socket_strerror(e));
|
|
|
goto err;
|
|
|
}
|
|
|
|
|
@@ -1621,14 +1626,14 @@ get_interface_address(uint32_t *addr)
|
|
|
|
|
|
if (connect(sock,(struct sockaddr *)&target_addr,sizeof(target_addr))<0) {
|
|
|
int e = tor_socket_errno(sock);
|
|
|
- warn(LD_NET, "connnect() failed: %s", tor_socket_strerror(e));
|
|
|
+ log_warn(LD_NET, "connnect() failed: %s", tor_socket_strerror(e));
|
|
|
goto err;
|
|
|
}
|
|
|
|
|
|
/* XXXX Can this be right on IPv6 clients? */
|
|
|
if (getsockname(sock, (struct sockaddr*)&my_addr, &my_addr_len)) {
|
|
|
int e = tor_socket_errno(sock);
|
|
|
- warn(LD_NET, "getsockname() failed: %s", tor_socket_strerror(e));
|
|
|
+ log_warn(LD_NET, "getsockname() failed: %s", tor_socket_strerror(e));
|
|
|
goto err;
|
|
|
}
|
|
|
|
|
@@ -1667,7 +1672,7 @@ start_daemon(void)
|
|
|
pipe(daemon_filedes);
|
|
|
pid = fork();
|
|
|
if (pid < 0) {
|
|
|
- err(LD_GENERAL,"fork failed. Exiting.");
|
|
|
+ log_err(LD_GENERAL,"fork failed. Exiting.");
|
|
|
exit(1);
|
|
|
}
|
|
|
if (pid) { /* Parent */
|
|
@@ -1722,14 +1727,14 @@ finish_daemon(const char *desired_cwd)
|
|
|
desired_cwd = "/";
|
|
|
/* Don't hold the wrong FS mounted */
|
|
|
if (chdir(desired_cwd) < 0) {
|
|
|
- err(LD_GENERAL,"chdir to \"%s\" failed. Exiting.",desired_cwd);
|
|
|
+ log_err(LD_GENERAL,"chdir to \"%s\" failed. Exiting.",desired_cwd);
|
|
|
exit(1);
|
|
|
}
|
|
|
|
|
|
nullfd = open("/dev/null",
|
|
|
O_CREAT | O_RDWR | O_APPEND);
|
|
|
if (nullfd < 0) {
|
|
|
- err(LD_GENERAL,"/dev/null can't be opened. Exiting.");
|
|
|
+ log_err(LD_GENERAL,"/dev/null can't be opened. Exiting.");
|
|
|
exit(1);
|
|
|
}
|
|
|
/* close fds linking to invoking terminal, but
|
|
@@ -1739,7 +1744,7 @@ finish_daemon(const char *desired_cwd)
|
|
|
if (dup2(nullfd,0) < 0 ||
|
|
|
dup2(nullfd,1) < 0 ||
|
|
|
dup2(nullfd,2) < 0) {
|
|
|
- err(LD_GENERAL,"dup2 failed. Exiting.");
|
|
|
+ log_err(LD_GENERAL,"dup2 failed. Exiting.");
|
|
|
exit(1);
|
|
|
}
|
|
|
if (nullfd > 2)
|
|
@@ -1768,8 +1773,8 @@ write_pidfile(char *filename)
|
|
|
FILE *pidfile;
|
|
|
|
|
|
if ((pidfile = fopen(filename, "w")) == NULL) {
|
|
|
- warn(LD_FS, "Unable to open \"%s\" for writing: %s", filename,
|
|
|
- strerror(errno));
|
|
|
+ log_warn(LD_FS, "Unable to open \"%s\" for writing: %s", filename,
|
|
|
+ strerror(errno));
|
|
|
} else {
|
|
|
fprintf(pidfile, "%d\n", (int)getpid());
|
|
|
fclose(pidfile);
|