mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 05:33:47 +01:00
Split listener_connection_t into its own header
For once, it's a type that is used almost nowhere else besides the logical place.
This commit is contained in:
parent
1416f54d1e
commit
6c0fe9d07c
@ -116,6 +116,7 @@
|
||||
#include "dir_connection_st.h"
|
||||
#include "control_connection_st.h"
|
||||
#include "entry_connection_st.h"
|
||||
#include "listener_connection_st.h"
|
||||
#include "port_cfg_st.h"
|
||||
|
||||
static connection_t *connection_listener_new(
|
||||
@ -172,6 +173,15 @@ static smartlist_t *outgoing_addrs = NULL;
|
||||
|
||||
/**************************************************************/
|
||||
|
||||
/** Convert a connection_t* to an listener_connection_t*; assert if the cast
|
||||
* is invalid. */
|
||||
listener_connection_t *
|
||||
TO_LISTENER_CONN(connection_t *c)
|
||||
{
|
||||
tor_assert(c->magic == LISTENER_CONNECTION_MAGIC);
|
||||
return DOWNCAST(listener_connection_t, c);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the human-readable name for the connection type <b>type</b>
|
||||
*/
|
||||
|
@ -12,6 +12,8 @@
|
||||
#ifndef TOR_CONNECTION_H
|
||||
#define TOR_CONNECTION_H
|
||||
|
||||
listener_connection_t *TO_LISTENER_CONN(connection_t *);
|
||||
|
||||
/* XXXX For buf_datalen in inline function */
|
||||
#include "buffers.h"
|
||||
|
||||
|
@ -32,6 +32,7 @@
|
||||
|
||||
#include "control_connection_st.h"
|
||||
#include "entry_connection_st.h"
|
||||
#include "listener_connection_st.h"
|
||||
|
||||
#include <event2/dns.h>
|
||||
#include <event2/dns_compat.h>
|
||||
|
@ -238,6 +238,7 @@ ORHEADERS = \
|
||||
src/or/hs_stats.h \
|
||||
src/or/hs_service.h \
|
||||
src/or/keypin.h \
|
||||
src/or/listener_connection_st.h \
|
||||
src/or/main.h \
|
||||
src/or/microdesc.h \
|
||||
src/or/networkstatus.h \
|
||||
|
23
src/or/listener_connection_st.h
Normal file
23
src/or/listener_connection_st.h
Normal file
@ -0,0 +1,23 @@
|
||||
/* Copyright (c) 2001 Matej Pfajfar.
|
||||
* Copyright (c) 2001-2004, Roger Dingledine.
|
||||
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
|
||||
* Copyright (c) 2007-2017, The Tor Project, Inc. */
|
||||
/* See LICENSE for licensing information */
|
||||
|
||||
#ifndef LISTENER_CONNECTION_ST_H
|
||||
#define LISTENER_CONNECTION_ST_H
|
||||
|
||||
/** Subtype of connection_t; used for a listener socket. */
|
||||
struct listener_connection_t {
|
||||
connection_t base_;
|
||||
|
||||
/** If the connection is a CONN_TYPE_AP_DNS_LISTENER, this field points
|
||||
* to the evdns_server_port it uses to listen to and answer connections. */
|
||||
struct evdns_server_port *dns_server_port;
|
||||
|
||||
entry_port_cfg_t entry_cfg;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
21
src/or/or.h
21
src/or/or.h
@ -1381,18 +1381,6 @@ typedef struct connection_t {
|
||||
uint32_t n_written_conn_bw;
|
||||
} connection_t;
|
||||
|
||||
/** Subtype of connection_t; used for a listener socket. */
|
||||
typedef struct listener_connection_t {
|
||||
connection_t base_;
|
||||
|
||||
/** If the connection is a CONN_TYPE_AP_DNS_LISTENER, this field points
|
||||
* to the evdns_server_port it uses to listen to and answer connections. */
|
||||
struct evdns_server_port *dns_server_port;
|
||||
|
||||
entry_port_cfg_t entry_cfg;
|
||||
|
||||
} listener_connection_t;
|
||||
|
||||
/** Minimum length of the random part of an AUTH_CHALLENGE cell. */
|
||||
#define OR_AUTH_CHALLENGE_LEN 32
|
||||
|
||||
@ -1643,6 +1631,7 @@ typedef struct control_connection_t control_connection_t;
|
||||
typedef struct dir_connection_t dir_connection_t;
|
||||
typedef struct edge_connection_t edge_connection_t;
|
||||
typedef struct entry_connection_t entry_connection_t;
|
||||
typedef struct listener_connection_t listener_connection_t;
|
||||
|
||||
/** Cast a connection_t subtype pointer to a connection_t **/
|
||||
#define TO_CONN(c) (&(((c)->base_)))
|
||||
@ -1653,20 +1642,12 @@ typedef struct entry_connection_t entry_connection_t;
|
||||
/** Convert a connection_t* to an or_connection_t*; assert if the cast is
|
||||
* invalid. */
|
||||
static or_connection_t *TO_OR_CONN(connection_t *);
|
||||
/** Convert a connection_t* to an listener_connection_t*; assert if the cast is
|
||||
* invalid. */
|
||||
static listener_connection_t *TO_LISTENER_CONN(connection_t *);
|
||||
|
||||
static inline or_connection_t *TO_OR_CONN(connection_t *c)
|
||||
{
|
||||
tor_assert(c->magic == OR_CONNECTION_MAGIC);
|
||||
return DOWNCAST(or_connection_t, c);
|
||||
}
|
||||
static inline listener_connection_t *TO_LISTENER_CONN(connection_t *c)
|
||||
{
|
||||
tor_assert(c->magic == LISTENER_CONNECTION_MAGIC);
|
||||
return DOWNCAST(listener_connection_t, c);
|
||||
}
|
||||
|
||||
/** What action type does an address policy indicate: accept or reject? */
|
||||
typedef enum {
|
||||
|
Loading…
Reference in New Issue
Block a user