routerinfo_t *router = router_get_by_digest(conn->identity_digest);
if((!connection_state_is_open(conn)) ||
(!clique_mode() && !circuit_get_by_conn(conn) &&
- (!router || !server_mode() || strncmp(router->platform, "Tor 0.0.7", 9)))) {
+ (!router || !server_mode() || !router_is_clique_mode(router)))) {
/* our handshake has expired;
* or we're not an authdirserver, we have no circuits, and
- * either he's an OP, we're an OP, or we're both ORs and he's running 0.0.8,
+ * either he's an OP, we're an OP, or we're both ORs and he's
+ * running 0.0.8 and he's not an authdirserver,
* then kill it. */
log_fn(LOG_INFO,"Expiring connection to %d (%s:%d).",
i,conn->address, conn->port);
void rotate_onion_key(void);
void router_retry_connections(void);
+int router_is_clique_mode(routerinfo_t *router);
void router_upload_dir_desc_to_dirservers(void);
int router_compare_to_my_exit_policy(connection_t *conn);
routerinfo_t *router_get_my_routerinfo(void);
}
}
+int router_is_clique_mode(routerinfo_t *router) {
+ if(router->is_trusted_dir)
+ return 1;
+ if(!strncmp(router->platform, "Tor 0.0.7", 9))
+ return 1;
+ return 0;
+}
+
/*
* OR descriptor generation.
*/