r13905@catbus: nickm | 2007-07-25 18:48:44 -0400
ADDRMAP events should never have specified local time. Extend them to have the proper gmt time, and make GETINFO address-mappings always do the right thing (since it is new in this version). svn:r10930
This commit is contained in:
parent
47f3a40900
commit
a8821e2d82
|
@ -77,6 +77,11 @@ Changes in version 0.2.0.3-alpha - 2007-??-??
|
||||||
can time them out correctly. (Bug found by mwenge) [Bugfix on
|
can time them out correctly. (Bug found by mwenge) [Bugfix on
|
||||||
0.2.0.2-alpha]
|
0.2.0.2-alpha]
|
||||||
|
|
||||||
|
o Minor bugfixes (controller)
|
||||||
|
- Provide DNS expiry times in GMT, not in local time. For backward
|
||||||
|
compatibility, ADDRMAP events only provide GMT expiry in an extended
|
||||||
|
field. "GETINFO address-mappings" always does the right thing.
|
||||||
|
|
||||||
|
|
||||||
Changes in version 0.1.2.15 - 2007-07-17
|
Changes in version 0.1.2.15 - 2007-07-17
|
||||||
o Major bugfixes (compilation):
|
o Major bugfixes (compilation):
|
||||||
|
|
|
@ -387,7 +387,8 @@ $Id$
|
||||||
client-side DNS cache; the 'control' key returns the mappings set
|
client-side DNS cache; the 'control' key returns the mappings set
|
||||||
via the control interface; the 'all' target returns the mappings
|
via the control interface; the 'all' target returns the mappings
|
||||||
set through any mechanism.
|
set through any mechanism.
|
||||||
Expiry is formatted as with ADDRMAP events; see section 4.1.7.
|
Expiry is formatted as with ADDRMAP events, except that "expiry" is
|
||||||
|
always a time in GMT or the string "NEVER"; see section 4.1.7.
|
||||||
First introduced in 0.2.0.3-alpha.
|
First introduced in 0.2.0.3-alpha.
|
||||||
|
|
||||||
"addr-mappings/*" -- as for address-mappings/*, but without the
|
"addr-mappings/*" -- as for address-mappings/*, but without the
|
||||||
|
@ -925,7 +926,7 @@ $Id$
|
||||||
|
|
||||||
If extended events are enabled (see 3.19), optional reason and
|
If extended events are enabled (see 3.19), optional reason and
|
||||||
circuit counting information is provided for CLOSED and FAILED
|
circuit counting information is provided for CLOSED and FAILED
|
||||||
events.
|
events.
|
||||||
|
|
||||||
Reason = "MISC" / "DONE" / "CONNECTREFUSED" /
|
Reason = "MISC" / "DONE" / "CONNECTREFUSED" /
|
||||||
"IDENTITY" / "CONNECTRESET" / "TIMEOUT" / "NOROUTE" /
|
"IDENTITY" / "CONNECTRESET" / "TIMEOUT" / "NOROUTE" /
|
||||||
|
@ -963,10 +964,17 @@ $Id$
|
||||||
4.1.7. New Address mapping
|
4.1.7. New Address mapping
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
"650" SP "ADDRMAP" SP Address SP Address SP Expiry
|
"650" SP "ADDRMAP" SP Address SP Address SP Expiry SP Error SP GMTExpiry
|
||||||
Expiry = DQUOTE ISOTime DQUOTE / "NEVER"
|
Expiry = DQUOTE ISOTime DQUOTE / "NEVER"
|
||||||
|
|
||||||
Expiry is expressed as the local time (rather than GMT).
|
Error = / "error=" ErrorCode
|
||||||
|
GMTExpiry = "EXPIRES=" DQUOTE IsoTime DQUOTE
|
||||||
|
|
||||||
|
Error and GMTExpiry are only provided if extended events are enabled.
|
||||||
|
|
||||||
|
Expiry is expressed as the local time (rather than GMT). This is a bug,
|
||||||
|
left in for backward compatibility; new code should look at GMTExpiry
|
||||||
|
instead.
|
||||||
|
|
||||||
These events are generated when a new address mapping is entered in the
|
These events are generated when a new address mapping is entered in the
|
||||||
cache, or when the answer for a RESOLVE command is found.
|
cache, or when the answer for a RESOLVE command is found.
|
||||||
|
|
|
@ -1161,7 +1161,7 @@ addressmap_get_mappings(smartlist_t *sl, time_t min_expires,
|
||||||
tor_snprintf(line, len, "%s %s NEVER", key, val->new_address);
|
tor_snprintf(line, len, "%s %s NEVER", key, val->new_address);
|
||||||
else {
|
else {
|
||||||
char time[ISO_TIME_LEN+1];
|
char time[ISO_TIME_LEN+1];
|
||||||
format_local_iso_time(time, val->expires);
|
format_iso_time(time, val->expires);
|
||||||
tor_snprintf(line, len, "%s %s \"%s\"", key, val->new_address,
|
tor_snprintf(line, len, "%s %s \"%s\"", key, val->new_address,
|
||||||
time);
|
time);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3099,10 +3099,15 @@ control_event_address_mapped(const char *from, const char *to, time_t expires,
|
||||||
error);
|
error);
|
||||||
else {
|
else {
|
||||||
char buf[ISO_TIME_LEN+1];
|
char buf[ISO_TIME_LEN+1];
|
||||||
|
char buf2[ISO_TIME_LEN+1];
|
||||||
format_local_iso_time(buf,expires);
|
format_local_iso_time(buf,expires);
|
||||||
|
format_iso_time(buf2,expires);
|
||||||
send_control_event_extended(EVENT_ADDRMAP, ALL_NAMES,
|
send_control_event_extended(EVENT_ADDRMAP, ALL_NAMES,
|
||||||
"650 ADDRMAP %s %s \"%s\"@%s\r\n",
|
"650 ADDRMAP %s %s \"%s\""
|
||||||
from, to, buf, error);
|
"@%s%sEXPIRES=\"%s\"\r\n",
|
||||||
|
from, to, buf,
|
||||||
|
error, error?" ":"",
|
||||||
|
buf2);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue