aboutsummaryrefslogtreecommitdiff
path: root/src/feature/control
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2020-07-16 10:07:21 -0400
committerNick Mathewson <nickm@torproject.org>2020-07-16 10:08:15 -0400
commit47a48e2f5a384450679a544e7a1f26f378a26a78 (patch)
treea9848573bd201bca1017fd711f6388328dbe6f32 /src/feature/control
parentb0d7b100886ef14a785f6ca1de968df9a884d0a7 (diff)
downloadtor-47a48e2f5a384450679a544e7a1f26f378a26a78.tar.gz
tor-47a48e2f5a384450679a544e7a1f26f378a26a78.zip
Define new CONST_TO_*_CONN() functions for const-to-const casts
These names are analogous to the CONST_TO_*_CIRC() functions we have for circuits. Part of #40046.
Diffstat (limited to 'src/feature/control')
-rw-r--r--src/feature/control/control.c12
-rw-r--r--src/feature/control/control.h1
2 files changed, 13 insertions, 0 deletions
diff --git a/src/feature/control/control.c b/src/feature/control/control.c
index b5d4c31525..ef707319a6 100644
--- a/src/feature/control/control.c
+++ b/src/feature/control/control.c
@@ -74,6 +74,18 @@ TO_CONTROL_CONN(connection_t *c)
return DOWNCAST(control_connection_t, c);
}
+/**
+ * Cast a `const connection_t *` to a `const control_connection_t *`.
+ *
+ * Exit with an assertion failure if the input is not a
+ * `control_connection_t`.
+ **/
+const control_connection_t *
+CONST_TO_CONTROL_CONN(const connection_t *c)
+{
+ return TO_CONTROL_CONN((connection_t*)c);
+}
+
/** Create and add a new controller connection on <b>sock</b>. If
* <b>CC_LOCAL_FD_IS_OWNER</b> is set in <b>flags</b>, this Tor process should
* exit when the connection closes. If <b>CC_LOCAL_FD_IS_AUTHENTICATED</b>
diff --git a/src/feature/control/control.h b/src/feature/control/control.h
index 7e72b2736b..f884286ec7 100644
--- a/src/feature/control/control.h
+++ b/src/feature/control/control.h
@@ -13,6 +13,7 @@
#define TOR_CONTROL_H
control_connection_t *TO_CONTROL_CONN(connection_t *);
+const control_connection_t *CONST_TO_CONTROL_CONN(const connection_t *);
#define CONTROL_CONN_STATE_MIN_ 1
/** State for a control connection: Authenticated and accepting v1 commands. */