that's still on one of the lists.
in particular, this will detect situations where we mark-for-close
and then free it ourselves.
svn:r3475
void connection_free(connection_t *conn) {
tor_assert(conn);
tor_assert(conn->magic == CONNECTION_MAGIC);
+ tor_assert(!connection_in_array(conn));
+ tor_assert(!connection_is_on_closeable_list(conn));
if (!connection_is_listener(conn)) {
buf_free(conn->inbuf);
smartlist_add(closeable_connection_lst, conn);
}
+/** Return 1 if conn is on the closeable list, else return 0. */
+int connection_is_on_closeable_list(connection_t *conn) {
+ return smartlist_isin(closeable_connection_lst, conn);
+}
+
/** Return true iff conn is in the current poll array. */
int connection_in_array(connection_t *conn) {
int i;
int connection_remove(connection_t *conn);
int connection_in_array(connection_t *conn);
void add_connection_to_closeable_list(connection_t *conn);
+int connection_is_on_closeable_list(connection_t *conn);
void get_connection_array(connection_t ***array, int *n);