mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 05:03:43 +01:00
r13054@catbus: nickm | 2007-05-29 14:20:50 -0400
An even better workaround for the probably-already-fixed bug 222. svn:r10395
This commit is contained in:
parent
9d1af71b70
commit
e5ed434c42
@ -135,6 +135,11 @@ Changes in version 0.2.0.1-alpha - 2007-??-??
|
||||
- When we are reporting the DirServer line we just parsed, we were
|
||||
logging the second stanza of the key fingerprint, not the first.
|
||||
|
||||
o Minor bugfixes (logging):
|
||||
- When we hit an EOF on a log (probably because we're shutting down),
|
||||
don't try to remove the log from the list: just mark it as
|
||||
unusable. (Bulletproofs against bug 222.)
|
||||
|
||||
o Minor bugfixes (other):
|
||||
- Stop allowing hibernating servers to be "stable" or "fast".
|
||||
- Check return values from pthread_mutex functions.
|
||||
|
@ -35,6 +35,7 @@ typedef struct logfile_t {
|
||||
struct logfile_t *next; /**< Next logfile_t in the linked list. */
|
||||
char *filename; /**< Filename to open. */
|
||||
FILE *file; /**< Stream to receive log messages. */
|
||||
int seems_dead; /**< Boolean: true if the stream seems to be kaput. */
|
||||
int needs_close; /**< Boolean: true if the stream gets closed on shutdown. */
|
||||
int min_loglevel; /**< Lowest severity level to send to this stream. */
|
||||
int max_loglevel; /**< Highest severity level to send to this stream. */
|
||||
@ -247,6 +248,10 @@ logv(int severity, uint32_t domain, const char *funcname, const char *format,
|
||||
lf = lf->next;
|
||||
continue;
|
||||
}
|
||||
if (lf->seems_dead) {
|
||||
lf = lf->next;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!formatted) {
|
||||
end_of_prefix =
|
||||
@ -268,13 +273,11 @@ logv(int severity, uint32_t domain, const char *funcname, const char *format,
|
||||
}
|
||||
if (fputs(buf, lf->file) == EOF ||
|
||||
fflush(lf->file) == EOF) { /* error */
|
||||
/* don't log the error! Blow away this log entry and continue. */
|
||||
logfile_t *victim = lf;
|
||||
lf = victim->next;
|
||||
delete_log(victim);
|
||||
} else {
|
||||
lf = lf->next;
|
||||
/* don't log the error! mark this log entry to be blown away, and
|
||||
* continue. */
|
||||
lf->seems_dead = 1;
|
||||
}
|
||||
lf = lf->next;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user