|
@@ -1366,9 +1366,18 @@ handle_control_mapaddress(control_connection_t *conn, uint32_t len,
|
|
|
smartlist_add_asprintf(reply, "250-%s=%s", address, to);
|
|
|
}
|
|
|
} else {
|
|
|
- addressmap_register(from, tor_strdup(to), 1,
|
|
|
- ADDRMAPSRC_CONTROLLER, 0, 0);
|
|
|
- smartlist_add_asprintf(reply, "250-%s", line);
|
|
|
+ const char *msg;
|
|
|
+ if (addressmap_register_auto(from, to, 1,
|
|
|
+ ADDRMAPSRC_CONTROLLER, &msg) < 0) {
|
|
|
+ smartlist_add_asprintf(reply,
|
|
|
+ "512-syntax error: invalid address mapping "
|
|
|
+ " '%s': %s", line, msg);
|
|
|
+ log_warn(LD_CONTROL,
|
|
|
+ "Skipping invalid argument '%s' in MapAddress msg: %s",
|
|
|
+ line, msg);
|
|
|
+ } else {
|
|
|
+ smartlist_add_asprintf(reply, "250-%s", line);
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
smartlist_add_asprintf(reply, "512-syntax error: mapping '%s' is "
|