summaryrefslogtreecommitdiff
path: root/src/or/main.c
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2003-09-30 19:06:22 +0000
committerRoger Dingledine <arma@torproject.org>2003-09-30 19:06:22 +0000
commit2da3e4da0d2bf7ddde416f634c6e2a2d2445f861 (patch)
tree2d2502b7a3f9504bfd380c5138e03339e1554eed /src/or/main.c
parente7e858d0d1c39933c7cd2ada4cb8b19795782472 (diff)
downloadtor-2da3e4da0d2bf7ddde416f634c6e2a2d2445f861.tar.gz
tor-2da3e4da0d2bf7ddde416f634c6e2a2d2445f861.zip
move connection_array accessors from main.c to connection.c
(leave poll_array accessors in main.c) svn:r512
Diffstat (limited to 'src/or/main.c')
-rw-r--r--src/or/main.c89
1 files changed, 3 insertions, 86 deletions
diff --git a/src/or/main.c b/src/or/main.c
index e96b8306d0..37e506ac07 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -131,91 +131,9 @@ int connection_remove(connection_t *conn) {
return 0;
}
-connection_t *connection_twin_get_by_addr_port(uint32_t addr, uint16_t port) {
- /* Find a connection to the router described by addr and port,
- * or alternately any router which knows its key.
- * This connection *must* be in 'open' state.
- * If not, return NULL.
- */
- int i;
- connection_t *conn;
- routerinfo_t *router;
-
- /* first check if it's there exactly */
- conn = connection_exact_get_by_addr_port(addr,port);
- if(conn && connection_state_is_open(conn)) {
- log(LOG_INFO,"connection_twin_get_by_addr_port(): Found exact match.");
- return conn;
- }
-
- /* now check if any of the other open connections are a twin for this one */
-
- router = router_get_by_addr_port(addr,port);
- if(!router)
- return NULL;
-
- for(i=0;i<nfds;i++) {
- conn = connection_array[i];
- assert(conn);
- if(connection_state_is_open(conn) &&
- !conn->marked_for_close &&
- !crypto_pk_cmp_keys(conn->onion_pkey, router->onion_pkey)) {
- log(LOG_INFO,"connection_twin_get_by_addr_port(): Found twin (%s).",conn->address);
- return conn;
- }
- }
- /* guess not */
- return NULL;
-
-}
-
-connection_t *connection_exact_get_by_addr_port(uint32_t addr, uint16_t port) {
- int i;
- connection_t *conn;
-
- for(i=0;i<nfds;i++) {
- conn = connection_array[i];
- if(conn->addr == addr && conn->port == port && !conn->marked_for_close)
- return conn;
- }
- return NULL;
-}
-
-connection_t *connection_get_by_type(int type) {
- int i;
- connection_t *conn;
-
- for(i=0;i<nfds;i++) {
- conn = connection_array[i];
- if(conn->type == type && !conn->marked_for_close)
- return conn;
- }
- return NULL;
-}
-
-connection_t *connection_get_by_type_state(int type, int state) {
- int i;
- connection_t *conn;
-
- for(i=0;i<nfds;i++) {
- conn = connection_array[i];
- if(conn->type == type && conn->state == state && !conn->marked_for_close)
- return conn;
- }
- return NULL;
-}
-
-connection_t *connection_get_by_type_state_lastwritten(int type, int state) {
- int i;
- connection_t *conn, *best=NULL;
-
- for(i=0;i<nfds;i++) {
- conn = connection_array[i];
- if(conn->type == type && conn->state == state && !conn->marked_for_close)
- if(!best || conn->timestamp_lastwritten < best->timestamp_lastwritten)
- best = conn;
- }
- return best;
+void get_connection_array(connection_t ***array, int *n) {
+ *array = connection_array;
+ *n = nfds;
}
void connection_watch_events(connection_t *conn, short events) {
@@ -740,7 +658,6 @@ static void dumpstats(void) { /* dump stats to stdout */
circuit_dump_by_conn(conn); /* dump info about all the circuits using this conn */
printf("\n");
}
-
}
int dump_router_to_string(char *s, int maxlen, routerinfo_t *router,