|
@@ -2947,7 +2947,7 @@ handle_control_resolve(control_connection_t *conn, uint32_t len,
|
|
|
send_control_done(conn);
|
|
|
SMARTLIST_FOREACH(failed, const char *, arg, {
|
|
|
control_event_address_mapped(arg, arg, time(NULL),
|
|
|
- "internal");
|
|
|
+ "internal", 0);
|
|
|
});
|
|
|
|
|
|
SMARTLIST_FOREACH(args, char *, cp, tor_free(cp));
|
|
@@ -4024,15 +4024,17 @@ control_event_descriptors_changed(smartlist_t *routers)
|
|
|
*/
|
|
|
int
|
|
|
control_event_address_mapped(const char *from, const char *to, time_t expires,
|
|
|
- const char *error)
|
|
|
+ const char *error, const int cached)
|
|
|
{
|
|
|
if (!EVENT_IS_INTERESTING(EVENT_ADDRMAP))
|
|
|
return 0;
|
|
|
|
|
|
if (expires < 3 || expires == TIME_MAX)
|
|
|
send_control_event(EVENT_ADDRMAP, ALL_FORMATS,
|
|
|
- "650 ADDRMAP %s %s NEVER %s\r\n", from, to,
|
|
|
- error?error:"");
|
|
|
+ "650 ADDRMAP %s %s NEVER %s%s"
|
|
|
+ "CACHED=\"%s\"\r\n",
|
|
|
+ from, to, error?error:"", error?" ":"",
|
|
|
+ cached?"YES":"NO");
|
|
|
else {
|
|
|
char buf[ISO_TIME_LEN+1];
|
|
|
char buf2[ISO_TIME_LEN+1];
|
|
@@ -4040,10 +4042,10 @@ control_event_address_mapped(const char *from, const char *to, time_t expires,
|
|
|
format_iso_time(buf2,expires);
|
|
|
send_control_event(EVENT_ADDRMAP, ALL_FORMATS,
|
|
|
"650 ADDRMAP %s %s \"%s\""
|
|
|
- " %s%sEXPIRES=\"%s\"\r\n",
|
|
|
+ " %s%sEXPIRES=\"%s\" CACHED=\"%s\"\r\n",
|
|
|
from, to, buf,
|
|
|
error?error:"", error?" ":"",
|
|
|
- buf2);
|
|
|
+ buf2, cached?"YES":"NO");
|
|
|
}
|
|
|
|
|
|
return 0;
|