suricata
util-logopenfile.h File Reference
#include "conf.h"
#include "util-buffer.h"
#include "suricata-plugin.h"
Include dependency graph for util-logopenfile.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  PcieFile
 
struct  SyslogSetup_
 
struct  LogThreadedFileCtx_
 
struct  LogFileCtx_
 

Macros

#define LOGFILE_RECONN_MIN_TIME   500
 
#define LOGFILE_HEADER_WRITTEN   0x01
 
#define LOGFILE_ALERTS_PRINTED   0x02
 
#define LOGFILE_ROTATE_INTERVAL   0x04
 

Typedefs

typedef struct SyslogSetup_ SyslogSetup
 
typedef struct LogThreadedFileCtx_ LogThreadedFileCtx
 
typedef struct LogFileCtx_ LogFileCtx
 

Enumerations

enum  LogFileType {
  LOGFILE_TYPE_FILE, LOGFILE_TYPE_SYSLOG, LOGFILE_TYPE_UNIX_DGRAM, LOGFILE_TYPE_UNIX_STREAM,
  LOGFILE_TYPE_REDIS, LOGFILE_TYPE_PLUGIN
}
 

Functions

LogFileCtxLogFileNewCtx (void)
 LogFileNewCtx() Get a new LogFileCtx. More...
 
int LogFileFreeCtx (LogFileCtx *)
 LogFileFreeCtx() Destroy a LogFileCtx (Close the file and free memory) More...
 
int LogFileWrite (LogFileCtx *file_ctx, MemBuffer *buffer)
 
LogFileCtxLogFileEnsureExists (LogFileCtx *lf_ctx, int thread_id)
 LogFileEnsureExists() Ensure a log file context for the thread exists. More...
 
int SCConfLogOpenGeneric (ConfNode *conf, LogFileCtx *, const char *, int)
 open a generic output "log file", which may be a regular file or a socket More...
 
int SCConfLogReopen (LogFileCtx *)
 Reopen a regular log file with the side-affect of truncating it. More...
 

Detailed Description

Macro Definition Documentation

◆ LOGFILE_ALERTS_PRINTED

#define LOGFILE_ALERTS_PRINTED   0x02

Definition at line 161 of file util-logopenfile.h.

◆ LOGFILE_HEADER_WRITTEN

#define LOGFILE_HEADER_WRITTEN   0x01

Definition at line 160 of file util-logopenfile.h.

◆ LOGFILE_RECONN_MIN_TIME

#define LOGFILE_RECONN_MIN_TIME   500

Definition at line 157 of file util-logopenfile.h.

◆ LOGFILE_ROTATE_INTERVAL

#define LOGFILE_ROTATE_INTERVAL   0x04

Definition at line 162 of file util-logopenfile.h.

Typedef Documentation

◆ LogFileCtx

typedef struct LogFileCtx_ LogFileCtx

Global structure for Output Context

◆ LogThreadedFileCtx

◆ SyslogSetup

typedef struct SyslogSetup_ SyslogSetup

Enumeration Type Documentation

◆ LogFileType

Enumerator
LOGFILE_TYPE_FILE 
LOGFILE_TYPE_SYSLOG 
LOGFILE_TYPE_UNIX_DGRAM 
LOGFILE_TYPE_UNIX_STREAM 
LOGFILE_TYPE_REDIS 
LOGFILE_TYPE_PLUGIN 

Definition at line 40 of file util-logopenfile.h.

Function Documentation

◆ LogFileEnsureExists()

LogFileCtx* LogFileEnsureExists ( LogFileCtx parent_ctx,
int  thread_id 
)

LogFileEnsureExists() Ensure a log file context for the thread exists.

Parameters
parent_ctx
thread_id
Return values
LogFileCtx* pointer if successful; NULL otherwise

Definition at line 659 of file util-logopenfile.c.

References LogThreadedFileCtx_::lf_slots, LogThreadedFileCtx_::mutex, SCLogDebug, SCMutexLock, LogFileCtx_::threaded, and LogFileCtx_::threads.

Referenced by JsonLogThreadInit().

Here is the caller graph for this function:

◆ LogFileFreeCtx()

◆ LogFileNewCtx()

LogFileCtx* LogFileNewCtx ( void  )

LogFileNewCtx() Get a new LogFileCtx.

Return values
LogFileCtx* pointer if successful, NULL if error

Definition at line 640 of file util-logopenfile.c.

References SCCalloc, and LogFileCtx_::Write.

Referenced by AlertFastLogInitCtx(), LogHttpLogInitCtx(), LogTcpDataLogInitCtx(), and OutputJsonInitCtx().

Here is the caller graph for this function:

◆ LogFileWrite()

◆ SCConfLogOpenGeneric()

int SCConfLogOpenGeneric ( ConfNode conf,
LogFileCtx log_ctx,
const char *  default_filename,
int  rotate 
)

open a generic output "log file", which may be a regular file or a socket

Parameters
confConfNode structure for the output section in question
log_ctxLog file context allocated by caller
default_filenameDefault name of file to open, if not specified in ConfNode
rotateRegister the file for rotation in HUP.
Return values
0on success
-1on error

Definition at line 423 of file util-logopenfile.c.

Referenced by AlertFastLogInitCtx(), LogHttpLogInitCtx(), and LogTcpDataLogInitCtx().

Here is the caller graph for this function:

◆ SCConfLogReopen()

int SCConfLogReopen ( LogFileCtx log_ctx)

Reopen a regular log file with the side-affect of truncating it.

This is useful to clear the log file and start a new one, or to re-open the file after its been moved by something external (eg. logrotate).

Definition at line 609 of file util-logopenfile.c.

References LogFileCtx_::filename, LogFileCtx_::fp, LogFileCtx_::is_regular, SC_ERR_INVALID_ARGUMENT, SCLogDebug, and SCLogWarning.