[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [tor/master] Implement kill_conn_list_for_oos()



commit e9464737af4b31e0aba29eb5581a5faf80647800
Author: Andrea Shepard <andrea@xxxxxxxxxxxxxx>
Date:   Thu Jun 30 14:13:42 2016 +0000

    Implement kill_conn_list_for_oos()
---
 src/or/connection.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/or/connection.c b/src/or/connection.c
index fce63ad..e164fae 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -4519,9 +4519,20 @@ pick_oos_victims(int n)
 static void
 kill_conn_list_for_oos(smartlist_t *conns)
 {
-  (void)conns;
+  if (!conns) return;
 
-  /* TODO */
+  SMARTLIST_FOREACH_BEGIN(conns, connection_t *, c) {
+    /* Make sure the channel layer gets told about orconns */
+    if (c->type == CONN_TYPE_OR) {
+      connection_or_close_for_error(TO_OR_CONN(c), 1);
+    } else {
+      connection_mark_and_flush(c);
+    }
+  } SMARTLIST_FOREACH_END(c);
+
+  log_notice(LD_NET,
+             "OOS handler marked and flushed %d connections",
+             smartlist_len(conns));
 }
 
 /** Out-of-Sockets handler; n_socks is the current number of open



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits