unbound-control.c File Reference

The remote control utility contacts the unbound server over ssl and sends the command, receives the answer, and displays the result from the commandline. More...

#include "config.h"
#include "util/log.h"
#include "util/config_file.h"
#include "util/locks.h"
#include "util/net_help.h"
#include "util/shm_side/shm_main.h"
#include "util/timeval_func.h"
#include "daemon/stats.h"
#include "sldns/wire2str.h"
#include "sldns/pkthdr.h"
#include "services/rpz.h"
#include "services/listen_dnsport.h"

Macros

#define UNBOUND_CONTROL_CONNECT_TIMEOUT   5000
 

Functions

static void usage (void)
 timeout to wait for connection over stream, in msec More...
 
static void print_stats_shm (const char *cfgfile, int quiet)
 print statistics from shm memory segment
 
static void ssl_err (const char *s)
 exit with ssl error
 
static void ssl_path_err (const char *s, const char *path)
 exit with ssl error related to a file path
 
static SSL_CTX * setup_ctx (struct config_file *cfg)
 setup SSL context
 
static void checkconnecterr (int err, const char *svr, struct sockaddr_storage *addr, socklen_t addrlen, int statuscmd, int useport)
 check connect error
 
static int contact_server (const char *svr, struct config_file *cfg, int statuscmd)
 contact the server with TCP connect
 
static SSL * setup_ssl (SSL_CTX *ctx, int fd)
 setup SSL on the connection
 
static int remote_read (SSL *ssl, int fd, char *buf, size_t len)
 read from ssl or fd, fatalexit on error, 0 EOF, 1 success
 
static void remote_write (SSL *ssl, int fd, const char *buf, size_t len)
 write to ssl or fd, fatalexit on error
 
static void check_args_for_listcmd (int argc, char *argv[])
 check args, to see if too many args. More...
 
static void send_file (SSL *ssl, int fd, FILE *in, char *buf, size_t sz)
 send stdin to server
 
static void send_eof (SSL *ssl, int fd)
 send end-of-file marker to server
 
static int go_cmd (SSL *ssl, int fd, int quiet, int argc, char *argv[])
 send command and display result
 
static int go (const char *cfgfile, char *svr, int quiet, int argc, char *argv[])
 go ahead and read config, contact server and perform command and display
 
int main (int argc, char *argv[])
 Main routine for unbound-control.
 

Variables

int optind
 getopt global, in case header files fail to declare it.
 
char * optarg
 getopt global, in case header files fail to declare it.
 

Detailed Description

The remote control utility contacts the unbound server over ssl and sends the command, receives the answer, and displays the result from the commandline.

Function Documentation

◆ usage()

static void usage ( void  )
static

timeout to wait for connection over stream, in msec

Give unbound-control usage, and exit (1).

Referenced by main().

◆ check_args_for_listcmd()

static void check_args_for_listcmd ( int  argc,
char *  argv[] 
)
static

check args, to see if too many args.

Because when a file is sent it would wait for the terminal, and we can check for too many arguments, eg. user put arguments on the commandline.