47 #if ! ( defined ( CONSOLE_SYSLOGS ) && CONSOLE_EXPLICIT ( CONSOLE_SYSLOGS ) ) 48 #undef CONSOLE_SYSLOGS 49 #define CONSOLE_SYSLOGS ( CONSOLE_USAGE_ALL & ~CONSOLE_USAGE_TUI ) 67 DBG (
"SYSLOGS console disconnected: %s\n",
strerror (
rc ) );
84 if ( syslogs_console.disabled )
85 DBG (
"SYSLOGS console connected\n" );
86 syslogs_console.disabled = 0;
127 if ( params[0] >= 0 ) {
174 DBG (
"SYSLOGS could not send log message: %s\n",
199 .description =
"Encrypted syslog server",
201 .type = &setting_type_string,
210 static char *old_server;
218 if ( ( ( server ==
NULL ) && ( old_server ==
NULL ) ) ||
219 ( ( server !=
NULL ) && ( old_server !=
NULL ) &&
220 (
strcmp ( server, old_server ) == 0 ) ) ) {
233 DBG (
"SYSLOGS has no log server\n" );
237 DBG (
"SYSLOGS using log server %s\n", server );
242 server,
NULL ) ) != 0 ) {
243 DBG (
"SYSLOGS cannot connect to log server: %s\n",
245 goto err_open_named_socket;
250 DBG (
"SYSLOGS cannot create TLS filter: %s\n",
261 err_open_named_socket:
Transport Layer Security Protocol.
static struct interface_operation syslogs_operations[]
Encrypted syslog TLS interface operations.
An object interface operation.
struct arbelprm_rc_send_wqe rc
void xfer_window_changed(struct interface *intf)
Report change of flow control window.
void intf_close(struct interface *intf, int rc)
Close an object interface.
void intf_restart(struct interface *intf, int rc)
Shut down and restart an object interface.
A handler for an escape sequence.
Dynamic Host Configuration Protocol.
static void syslogs_putchar(int character)
Print a character to encrypted syslog console.
static void syslogs_window_changed(struct interface *intf)
Handle encrypted syslog TLS interface window change.
static struct sockaddr_tcpip logserver
The encrypted syslog server.
static struct ansiesc_handler syslogs_handlers[]
Encrypted syslog ANSI escape sequence handlers.
static unsigned int syslogs_severity
Encrypted syslog severity.
static struct interface_descriptor syslogs_desc
Encrypted syslog TLS interface descriptor.
#define INTF_INIT(descriptor)
Initialise a static object interface.
#define CONSOLE_DISABLED
Console is disabled for all uses.
#define SETTING_MISC
Miscellaneous settings.
#define INTF_DESC_PURE(operations)
Define an object interface descriptor for a pure-interface object.
ANSI escape sequence context.
struct golan_eq_context ctx
size_t xfer_window(struct interface *intf)
Check flow control window.
size_t line_putchar(struct line_console *line, int character)
Print a character to a line-based console.
Data transfer interfaces.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
static char syslogs_buffer[SYSLOG_BUFSIZE]
Encrypted syslog line buffer.
void(* putchar)(int character)
Write a character to the console.
static int apply_syslogs_settings(void)
Apply encrypted syslog settings.
#define __unused
Declare a variable or data structure as unused.
Transport-network layer interface.
uint16_t count
Number of entries.
static int syslogs_entered
Encrypted syslog recursion marker.
int fetch_string_setting_copy(struct settings *settings, const struct setting *setting, char **data)
Fetch value of string setting.
uint16_t st_port
TCP/IP port.
Generalized socket address structure.
An object interface descriptor.
char * strerror(int errno)
Retrieve string representation of error number.
static void(* free)(struct refcnt *refcnt))
#define ANSIESC_LOG_PRIORITY
Explicit log message priority.
#define INTF_OP(op_type, object_type, op_func)
Define an object interface operation.
Data transfer interface opening.
static void syslogs_close(struct interface *intf, int rc)
Handle encrypted syslog TLS interface close.
#define SYSLOG_PORT
Syslog server port.
#define SYSLOG_DEFAULT_SEVERITY
Syslog default severity.
static void syslogs_handle_priority(struct ansiesc_context *ctx __unused, unsigned int count __unused, int params[])
Handle ANSI set encrypted syslog priority (private sequence)
const struct setting syslogs_setting __setting(SETTING_MISC, syslogs)
Encrypted syslog server setting.
int strcmp(const char *first, const char *second)
Compare strings.
struct console_driver syslogs_console __console_driver
Encrypted syslog console driver.
struct settings_applicator syslogs_applicator __settings_applicator
Encrypted syslog settings applicator.
int syslog_send(struct interface *xfer, unsigned int severity, const char *message, const char *terminator)
Transmit formatted syslog message.
int(* apply)(void)
Apply updated settings.
char * buffer
Data buffer.
#define DHCP_EB_SYSLOGS_SERVER
Encrypted syslog server.
#define DBG(...)
Print a debugging message.
#define SYSLOG_BUFSIZE
Syslog line buffer size.
#define NULL
NULL pointer (VOID *)
static struct interface syslogs
The encrypted syslog TLS interface.
int add_tls(struct interface *xfer, const char *name, struct x509_root *root, struct private_key *key)
Add TLS on an interface.
int xfer_open_named_socket(struct interface *xfer, int semantics, struct sockaddr *peer, const char *name, struct sockaddr *local)
Open named socket.
static struct line_console syslogs_line
Encrypted syslog line console.