Tor  0.4.5.0-alpha-dev
Macros | Functions
control.h File Reference

Header file for control.c. More...

Go to the source code of this file.

Macros

#define CONTROL_CONN_STATE_MIN_   1
 
#define CONTROL_CONN_STATE_OPEN   1
 
#define CONTROL_CONN_STATE_NEEDAUTH   2
 
#define CONTROL_CONN_STATE_MAX_   2
 
#define LOG_FN_CONN(conn, args)    CONN_LOG_PROTECT(conn, log_fn args)
 
#define CC_LOCAL_FD_IS_OWNER   (1u<<0)
 
#define CC_LOCAL_FD_IS_AUTHENTICATED   (1u<<1)
 

Functions

control_connection_tTO_CONTROL_CONN (connection_t *)
 
const control_connection_tCONST_TO_CONTROL_CONN (const connection_t *)
 
void control_ports_write_to_file (void)
 
int control_connection_add_local_fd (tor_socket_t sock, unsigned flags)
 
int connection_control_finished_flushing (control_connection_t *conn)
 
int connection_control_reached_eof (control_connection_t *conn)
 
void connection_control_closed (control_connection_t *conn)
 
int connection_control_process_inbuf (control_connection_t *conn)
 
void disable_control_logging (void)
 
void enable_control_logging (void)
 
void monitor_owning_controller_process (const char *process_spec)
 
const char * rend_auth_type_to_string (rend_auth_type_t auth_type)
 
void control_free_all (void)
 

Detailed Description

Header file for control.c.

Definition in file control.h.

Macro Definition Documentation

◆ CONTROL_CONN_STATE_NEEDAUTH

#define CONTROL_CONN_STATE_NEEDAUTH   2

State for a control connection: Waiting for authentication; speaking protocol v1.

Definition at line 23 of file control.h.

◆ CONTROL_CONN_STATE_OPEN

#define CONTROL_CONN_STATE_OPEN   1

State for a control connection: Authenticated and accepting v1 commands.

Definition at line 20 of file control.h.

◆ LOG_FN_CONN

#define LOG_FN_CONN (   conn,
  args 
)     CONN_LOG_PROTECT(conn, log_fn args)

Log information about the connection conn, protecting it as with CONN_LOG_PROTECT. Example:

LOG_FN_CONN(conn, (LOG_DEBUG, "Socket %d wants to write", conn->s));

Definition at line 33 of file control.h.

Function Documentation

◆ connection_control_closed()

void connection_control_closed ( control_connection_t conn)

Called when conn is being freed.

Definition at line 231 of file control.c.

◆ connection_control_finished_flushing()

int connection_control_finished_flushing ( control_connection_t conn)

Called when conn has no more bytes left on its outbuf.

Definition at line 201 of file control.c.

Referenced by connection_finished_flushing().

◆ connection_control_process_inbuf()

int connection_control_process_inbuf ( control_connection_t conn)

Called when data has arrived on a v1 control connection: Try to fetch commands from conn->inbuf, and execute them.

Definition at line 420 of file control.c.

Referenced by connection_process_inbuf().

◆ connection_control_reached_eof()

int connection_control_reached_eof ( control_connection_t conn)

Called when conn has gotten its socket closed.

Definition at line 209 of file control.c.

Referenced by connection_reached_eof().

◆ CONST_TO_CONTROL_CONN()

const control_connection_t* CONST_TO_CONTROL_CONN ( const 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.

Definition at line 84 of file control.c.

◆ control_connection_add_local_fd()

int control_connection_add_local_fd ( tor_socket_t  sock,
unsigned  flags 
)

Create and add a new controller connection on sock. If CC_LOCAL_FD_IS_OWNER is set in flags, this Tor process should exit when the connection closes. If CC_LOCAL_FD_IS_AUTHENTICATED is set, then the connection does not need to authenticate.

Definition at line 95 of file control.c.

◆ control_free_all()

void control_free_all ( void  )

Free any leftover allocated memory of the control.c subsystem.

Definition at line 622 of file control.c.

◆ control_ports_write_to_file()

void control_ports_write_to_file ( void  )

Write all of the open control ports to ControlPortWriteToFile

Definition at line 134 of file control.c.

◆ disable_control_logging()

void disable_control_logging ( void  )

Called when we are sending a log message to the controllers: suspend sending further log messages to the controllers until we're done. Used by CONN_LOG_PROTECT.

Definition at line 1341 of file control_events.c.

◆ enable_control_logging()

void enable_control_logging ( void  )

We're done sending a log message to the controllers: re-enable controller logging. Used by CONN_LOG_PROTECT.

Definition at line 1349 of file control_events.c.

◆ monitor_owning_controller_process()

void monitor_owning_controller_process ( const char *  process_spec)

Set process_spec as Tor's owning controller process. Exit on failure.

Definition at line 573 of file control.c.

◆ rend_auth_type_to_string()

const char* rend_auth_type_to_string ( rend_auth_type_t  auth_type)

Convert rendezvous auth type to string for HS_DESC control events

Definition at line 1898 of file control_events.c.

◆ TO_CONTROL_CONN()

control_connection_t* TO_CONTROL_CONN ( connection_t c)

Cast a connection_t * to a control_connection_t *.

Exit with an assertion failure if the input is not a control_connection_t.

Definition at line 71 of file control.c.

Referenced by connection_finished_flushing(), connection_free_all(), connection_process_inbuf(), connection_reached_eof(), and CONST_TO_CONTROL_CONN().