|
unbound 0.1
|
This file contains the remote control functionality for the daemon. More...
Data Structures | |
| struct | rc_state |
| a busy control command connection, SSL state More... | |
| struct | daemon_remote |
| The remote control tool state. More... | |
| struct | remote_stream |
| Connection to print to, either SSL or plain over fd. More... | |
Macros | |
| #define | REMOTE_CONTROL_TCP_TIMEOUT 120000 |
| number of milliseconds timeout on incoming remote control handshake | |
Typedefs | |
| typedef struct remote_stream | RES |
Functions | |
| struct daemon_remote * | daemon_remote_create (struct config_file *cfg) |
| Create new remote control state for the daemon. | |
| void | daemon_remote_delete (struct daemon_remote *rc) |
| remote control state to delete. | |
| void | daemon_remote_clear (struct daemon_remote *rc) |
| remote control state to clear up. | |
| struct listen_port * | daemon_remote_open_ports (struct config_file *cfg) |
| Open and create listening ports for remote control. | |
| int | daemon_remote_open_accept (struct daemon_remote *rc, struct listen_port *ports, struct worker *worker) |
| Setup comm points for accepting remote control connections. | |
| void | daemon_remote_stop_accept (struct daemon_remote *rc) |
| Stop accept handlers for TCP (until enabled again) | |
| void | daemon_remote_start_accept (struct daemon_remote *rc) |
| Stop accept handlers for TCP (until enabled again) | |
| void | daemon_remote_exec (struct worker *worker) |
| Handle nonthreaded remote cmd execution. | |
This file contains the remote control functionality for the daemon.
The remote control can be performed using either the commandline unbound-control tool, or a SSLv3/TLS capable web browser. The channel is secured using SSLv3 or TLSv1, and certificates. Both the server and the client(control tool) have their own keys.
| struct daemon_remote * daemon_remote_create | ( | struct config_file * | cfg | ) |
Create new remote control state for the daemon.
| cfg | config file with key file settings. |
References config_file::control_ifs, config_file::control_use_cert, daemon_remote_delete(), config_strlist_head::first, log_err(), log_warn(), daemon_remote::max_active, config_strlist::next, options_remote_is_address(), config_file::remote_control_enable, and config_strlist::str.
Referenced by perform_setup(), and service_init().
| void daemon_remote_delete | ( | struct daemon_remote * | rc | ) |
remote control state to delete.
| rc | state to delete. |
References daemon_remote_clear(), and rc_state::rc.
Referenced by daemon_delete(), and daemon_remote_create().
| void daemon_remote_clear | ( | struct daemon_remote * | rc | ) |
remote control state to clear up.
Busy and accept points are closed. Does not delete the rc itself, or the ssl context (with its keys).
| rc | state to clear. |
References daemon_remote::accept_list, daemon_remote::active, daemon_remote::busy_list, rc_state::c, comm_point_delete(), listen_list_delete(), rc_state::next, rc_state::rc, and daemon_remote::worker.
Referenced by daemon_cleanup(), and daemon_remote_delete().
| struct listen_port * daemon_remote_open_ports | ( | struct config_file * | cfg | ) |
Open and create listening ports for remote control.
| cfg | config options. |
References add_open(), config_del_strarray(), config_file::control_ifs, config_file::control_port, config_file::do_ip4, config_file::do_ip6, config_strlist_head::first, listening_ports_free(), log_assert, config_file::remote_control_enable, and resolve_interface_names().
Referenced by daemon_open_shared_ports().
| int daemon_remote_open_accept | ( | struct daemon_remote * | rc, |
| struct listen_port * | ports, | ||
| struct worker * | worker ) |
Setup comm points for accepting remote control connections.
| rc | state |
| ports | already opened ports. |
| worker | worker with communication base. and links to command channels. |
References accept_open(), listen_port::fd, log_err(), listen_port::next, and daemon_remote::worker.
Referenced by worker_init().
| void daemon_remote_stop_accept | ( | struct daemon_remote * | rc | ) |
Stop accept handlers for TCP (until enabled again)
| rc | state |
References daemon_remote::accept_list, listen_list::com, and listen_list::next.
Referenced by worker_stop_accept().
| void daemon_remote_start_accept | ( | struct daemon_remote * | rc | ) |
Stop accept handlers for TCP (until enabled again)
| rc | state |
References daemon_remote::accept_list, listen_list::com, and listen_list::next.
Referenced by worker_start_accept().
| void daemon_remote_exec | ( | struct worker * | worker | ) |
Handle nonthreaded remote cmd execution.
| worker | this worker (the remote worker). |
References worker::cmd, execute_cmd(), log_err(), tube_read_msg(), VERB_ALGO, and verbose().