90 char *flaglist_joined;
102 if (smartlist_len(flaglist)) {
110 smartlist_free(flaglist);
117 const char *hs_state =
120 if (hs_state != NULL) {
127 const char *onion_address;
129 onion_address = addr;
134 char tbuf[ISO_TIME_USEC_LEN+1];
141 if (circ->socks_username_len > 0) {
143 (
size_t) circ->socks_username_len);
145 socks_username_escaped);
148 if (circ->socks_password_len > 0) {
150 (
size_t) circ->socks_password_len);
152 socks_password_escaped);
159 smartlist_free(descparts);
188 const char *client_protocol;
195 case 4: client_protocol =
"SOCKS4";
break;
196 case 5: client_protocol =
"SOCKS5";
break;
197 default: client_protocol =
"UNKNOWN";
204 client_protocol =
"HTTPCONNECT";
break;
206 client_protocol =
"METRICS";
break;
207 default: client_protocol =
"UNKNOWN";
223 char *isoflaglist_joined;
249 smartlist_free(isoflaglist);
254 smartlist_free(descparts);
void base16_encode(char *dest, size_t destlen, const char *src, size_t srclen)
char * circuit_list_path_for_controller(origin_circuit_t *circ)
Header file for circuitbuild.c.
const char * circuit_purpose_to_controller_hs_state_string(uint8_t purpose)
const char * circuit_purpose_to_controller_string(uint8_t purpose)
Header file for circuitlist.c.
Header file for connection.c.
#define CONN_TYPE_AP_HTTP_CONNECT_LISTENER
#define CONN_TYPE_METRICS_LISTENER
#define CONN_TYPE_AP_NATD_LISTENER
#define CONN_TYPE_AP_LISTENER
#define CONN_TYPE_AP_DNS_LISTENER
#define CONN_TYPE_AP_TRANS_LISTENER
int connection_edge_is_rendezvous_stream(const edge_connection_t *conn)
Header file for connection_edge.c.
Controller connection structure.
char * entry_connection_describe_status_for_controller(const entry_connection_t *conn)
const char * node_describe_longname_by_id(const char *id_digest)
char * circuit_describe_status_for_controller(origin_circuit_t *circ)
void orconn_target_get_name(char *name, size_t len, or_connection_t *conn)
int write_stream_target_to_buf(entry_connection_t *conn, char *buf, size_t len)
Header file for control_fmt.c.
Header file for control_proto.c.
Circuit-build-stse structure.
Entry connection structure.
#define ENTRY_TO_EDGE_CONN(c)
char * esc_for_log_len(const char *chars, size_t n)
void hs_build_address(const ed25519_public_key_t *key, uint8_t version, char *addr_out)
#define HS_SERVICE_ADDR_LEN_BASE32
void node_get_verbose_nickname_by_id(const char *id_digest, char *verbose_name_out)
const node_t * node_get_by_id(const char *identity_digest)
void node_get_verbose_nickname(const node_t *node, char *verbose_name_out)
Header file for nodelist.c.
Master header file for Tor-specific functionality.
#define MAX_VERBOSE_NICKNAME_LEN
Origin circuit structure.
int tor_snprintf(char *str, size_t size, const char *format,...)
void smartlist_add_asprintf(struct smartlist_t *sl, const char *pattern,...)
char * smartlist_join_strings(smartlist_t *sl, const char *join, int terminate, size_t *len_out)
smartlist_t * smartlist_new(void)
void smartlist_add(smartlist_t *sl, void *element)
#define SMARTLIST_FOREACH(sl, type, var, cmd)
Client request structure.
struct timeval timestamp_created
unsigned int onehop_tunnel
unsigned int need_capacity
socks_request_t * socks_request
ed25519_public_key_t identity_pk
char identity_digest[DIGEST_LEN]
struct hs_ident_circuit_t * hs_ident
cpath_build_state_t * build_state
char address[MAX_SOCKS_ADDR_LEN]
#define MOCK_IMPL(rv, funcname, arglist)
void format_iso_time_nospace_usec(char *buf, const struct timeval *tv)
int tor_digest_is_zero(const char *digest)