File: dm_audit_log.h

package info (click to toggle)
fis-gtm 7.1-006-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 32,908 kB
  • sloc: ansic: 344,906; asm: 5,184; csh: 4,859; sh: 2,000; awk: 294; makefile: 73; sed: 13
file content (69 lines) | stat: -rwxr-xr-x 2,807 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/****************************************************************
 *								*
 * Copyright (c) 2018-2022 Fidelity National Information	*
 * Services, Inc. and/or its subsidiaries. All rights reserved.	*
 *								*
 *	This source code contains the intellectual property	*
 *	of its copyright holder(s), and is made available	*
 *	under a license.  If you do not know the terms of	*
 *	the license, please stop and do not read further.	*
 *								*
 ****************************************************************/
#ifndef DM_AUDIT_LOG_INCLUDED
#define DM_AUDIT_LOG_INCLUDED

#include <sys/socket.h>
#include <sys/un.h>
#include <unistd.h>
#ifdef GTM_TLS
#include "gtm_tls.h"
#endif

#define	MAX_SOCKADDR_UN_PATH            SIZEOF(((struct sockaddr_un *)0)->sun_path)
#define	MAX_AUDIT_PROC_INFO_LEN		72 + TTY_NAME_MAX 	/* Safe max length of "src=%d; uid=%d; euid=%d; pid=%d; tty=%s" */
/* For every caller that calls dm_audit_log(), an integer value needs be defined to identify that caller.
 * Otherwise, caller should use AUDIT_SRC_UNKNOWN (0) to identify itself when calling dm_audit_log().
 * If new value defined, the caller must use the defined value as the second argument when calling dm_audit_log().
 */
#define AUDIT_SRC_UNKNOWN		0		/* Caller is unknown */
#define AUDIT_SRC_DMREAD		1		/* Caller is dm_read */
#define AUDIT_SRC_OPREAD		2		/* Caller is op_read */
#define AUDIT_SRC_MUPIP			3		/* Caller is mupip */
#define AUDIT_SRC_GTM			4		/* Caller is gtm */
#define AUDIT_SRC_LKE			5		/* Caller is lke */
#define AUDIT_SRC_DSE 			6		/* Caller is dse */
/* Connection type when sending log info to logger */
#define AUDIT_CONN_INVALID		0
#define AUDIT_CONN_UN			1			/* UNIX domain (socket) */
#define AUDIT_CONN_TCP			2			/* TCP */
#define AUDIT_CONN_TLS			3			/* TLS */

#define MAX_AUD_CONN			2			/* Maximum number of AUDIT_CONN connections */
/* This structure is used to store information
 * about the direct mode auditing logger.
 */
typedef struct
{
	int			conn_type;			/* Connection type (UNIX-domain/TCP/TLS) */
	int			sock_fd;			/* Socket identifier */
	union
	{
		struct sockaddr_un	un_addr;		/* UNIX domain socket address */
		struct addrinfo		*tcp_addr;		/* TCP/IP address */
	} netaddr;
#	ifdef GTM_TLS
	char			tls_id[MAX_TLSID_LEN + 1];	/* Label of section in the GTM TLS configuration
								 * file containing the TLS options and/or certificate
								 * that GT.M uses to connect to the logger.
								*/
	gtm_tls_socket_t	*tls_sock;			/* TLS socket */
#	endif
	boolean_t		initialized;			/* TRUE if this struct is initialized */
} dm_audit_info;

int dm_audit_connect(void);
int dm_audit_init(char *host_info, boolean_t is_tls);
int dm_audit_log(mval *v, int src);
void free_dm_audit_info_ptrs(void);
int log_cmd_if_needed(char *logcmd);
#endif /* DM_AUDIT_LOG_INCLUDED */