|
@@ -1646,6 +1646,33 @@ directory_handle_command_get(connection_t *conn, char *headers,
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (!strcmp(url,"/tor/dir-all-weaselhack") && (conn->addr == 0x7f000001ul) &&
|
|
|
|
+ authdir_mode(get_options())) {
|
|
|
|
+ /* XXX until weasel rewrites his scripts XXXX012 */
|
|
|
|
+ char *new_directory=NULL;
|
|
|
|
+
|
|
|
|
+ if (dirserv_dump_directory_to_string(&new_directory,
|
|
|
|
+ get_identity_key(), 1)) {
|
|
|
|
+ log_warn(LD_BUG, "Error creating full v1 directory.");
|
|
|
|
+ tor_free(new_directory);
|
|
|
|
+ write_http_status_line(conn, 503, "Directory unavailable");
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ dlen = strlen(new_directory);
|
|
|
|
+
|
|
|
|
+ format_rfc1123_time(date, time(NULL));
|
|
|
|
+ tor_snprintf(tmp, sizeof(tmp),
|
|
|
|
+ "HTTP/1.0 200 OK\r\nDate: %s\r\nContent-Length: %d\r\n"
|
|
|
|
+ "Content-Type: text/plain\r\nContent-Encoding: identity\r\n\r\n",
|
|
|
|
+ date,
|
|
|
|
+ (int)dlen);
|
|
|
|
+ connection_write_to_buf(tmp, strlen(tmp), conn);
|
|
|
|
+ connection_write_to_buf(new_directory, dlen, conn);
|
|
|
|
+ tor_free(new_directory);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
/* we didn't recognize the url */
|
|
/* we didn't recognize the url */
|
|
write_http_status_line(conn, 404, "Not found");
|
|
write_http_status_line(conn, 404, "Not found");
|
|
tor_free(url);
|
|
tor_free(url);
|