mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-23 22:47:12 +01:00
when we refuse a router descriptor, log contactinfo and source address.
svn:r4156
This commit is contained in:
parent
57b7427c2d
commit
c9e83eb1b4
2 changed files with 10 additions and 9 deletions
|
@ -1035,6 +1035,7 @@ directory_handle_command_post(connection_t *conn, char *headers,
|
|||
case -1:
|
||||
/* malformed descriptor, or something wrong */
|
||||
write_http_status_line(conn, 400, msg?msg:"Malformed or unacceptable server descriptor");
|
||||
log_fn(LOG_NOTICE,"Rejected descriptor published by '%s'.", conn->address);
|
||||
break;
|
||||
case 0:
|
||||
/* descriptor was well-formed but server has not been approved */
|
||||
|
|
|
@ -293,9 +293,9 @@ dirserv_router_has_valid_address(routerinfo_t *ri)
|
|||
* to NULL.
|
||||
*
|
||||
* Return 1 if descriptor is well-formed and accepted;
|
||||
* 0 if well-formed and server is unapproved but accepted;
|
||||
* -1 if well-formed but rejected;
|
||||
* -2 if not well-formed.
|
||||
* 0 if well-formed and server is unapproved but accepted;
|
||||
* -1 if it looks vaguely like a router descriptor but rejected;
|
||||
* -2 if we can't find a router descriptor in *desc.
|
||||
*/
|
||||
int
|
||||
dirserv_add_descriptor(const char **desc, const char **msg)
|
||||
|
@ -338,7 +338,7 @@ dirserv_add_descriptor(const char **desc, const char **msg)
|
|||
/* Okay. Now check whether the fingerprint is recognized. */
|
||||
r = dirserv_router_fingerprint_is_known(ri);
|
||||
if (r==-1) {
|
||||
log_fn(LOG_WARN, "Known nickname '%s', wrong fingerprint. Not adding.", ri->nickname);
|
||||
log_fn(LOG_WARN, "Known nickname '%s', wrong fingerprint. Not adding (ContactInfo '%s').", ri->nickname, ri->contact_info);
|
||||
*msg = "Rejected: There is already a verified server with this nickname and a different fingerprint.";
|
||||
routerinfo_free(ri);
|
||||
*desc = end;
|
||||
|
@ -357,23 +357,23 @@ dirserv_add_descriptor(const char **desc, const char **msg)
|
|||
/* Is there too much clock skew? */
|
||||
now = time(NULL);
|
||||
if (ri->published_on > now+ROUTER_ALLOW_SKEW) {
|
||||
log_fn(LOG_NOTICE, "Publication time for nickname '%s' is too far (%d minutes) in the future; possible clock skew. Not adding.",
|
||||
ri->nickname, (int)((ri->published_on-now)/60));
|
||||
log_fn(LOG_NOTICE, "Publication time for nickname '%s' is too far (%d minutes) in the future; possible clock skew. Not adding (ContactInfo '%s').",
|
||||
ri->nickname, (int)((ri->published_on-now)/60), ri->contact_info);
|
||||
*msg = "Rejected: Your clock is set too far in the future, or your timezone is not correct.";
|
||||
routerinfo_free(ri);
|
||||
*desc = end;
|
||||
return -1;
|
||||
}
|
||||
if (ri->published_on < now-ROUTER_MAX_AGE) {
|
||||
log_fn(LOG_NOTICE, "Publication time for router with nickname '%s' is too far (%d minutes) in the past. Not adding.",
|
||||
ri->nickname, (int)((now-ri->published_on)/60));
|
||||
log_fn(LOG_NOTICE, "Publication time for router with nickname '%s' is too far (%d minutes) in the past. Not adding (ContactInfo '%s').",
|
||||
ri->nickname, (int)((now-ri->published_on)/60), ri->contact_info);
|
||||
*msg = "Rejected: Server is expired, or your clock is too far in the past, or your timezone is not correct.";
|
||||
routerinfo_free(ri);
|
||||
*desc = end;
|
||||
return -1;
|
||||
}
|
||||
if (dirserv_router_has_valid_address(ri) < 0) {
|
||||
log_fn(LOG_NOTICE, "Router with nickname '%s' has invalid address '%s'. Not adding.", ri->nickname, ri->address);
|
||||
log_fn(LOG_NOTICE, "Router with nickname '%s' has invalid address '%s'. Not adding (ContactInfo '%s').", ri->nickname, ri->address, ri->contact_info);
|
||||
*msg = "Rejected: Address is not an IP, or IP is a private address.";
|
||||
routerinfo_free(ri);
|
||||
*desc = end;
|
||||
|
|
Loading…
Add table
Reference in a new issue