Sample file auditfile_exit.c (deprecated)

Note: Audit Manager is deprecated and provided for backward compatibility only. We recommend that you use syslog events instead. See Enterprise Server Auditing for more information.

The following sample .c code is a user exit that calls the AUDITFILE emitter.

/*******************************************************************************
 *
 * Copyright (C) 1984-2015 Micro Focus International Ltd.
 * All rights reserved.
 *
 ******************************************************************************/

#ifdef _WIN32

# define DLLEXPORT	    __declspec(dllexport)

#else  /* _WIN32 */

# define DLLEXPORT

#endif /* _WIN32 */

#include <string.h>
#include <stdarg.h>
#include <stdio.h>

#include "mfaudit.h"

/******************************************************************************/
/*  AUDITFILE emitter exit						      */
/*									      */
/*  AUDITFILE_EMITTER_EXIT(cobuns32_t function,				      */
/*			   cobuns8_t  *emitter_name,			      */
/*			   ...)						      */
/*									      */
/*  On input:								      */
/*									      */
/*	function	=   exit function				      */
/*									      */
/*	emitter_name	=   emitter instance name			      */
/*									      */
/*	...		=   dependent upon exit function		      */
/*									      */
/*  On output:								      */
/*									      */
/*	<nothing>							      */
/*									      */
/*  Function returns:							      */
/*									      */
/*	0		=   normal completion				      */
/*	non-zero	=   dependent upon exit function		      */
/******************************************************************************/
DLLEXPORT cobrtncode_t 
AUDITFILE_EMITTER_EXIT(
    cobuns32_t	function,
    cobuns8_t	*emitter_name,
    ...)
{
    va_list	args;
    cobuns8_t	*filename;

    va_start(args, emitter_name);

    switch(function)
    {
	case AUDITFILE_EXIT_FUNC_INIT:
	    printf("Initialising emitter %s\n", emitter_name);
	    break;

	case AUDITFILE_EXIT_FUNC_DEINIT:
	    printf("De-initialising emitter %s\n", emitter_name);
	    break;

	case AUDITFILE_EXIT_FUNC_FILE_ACTIVE:
	    filename = (cobuns8_t *)va_arg(args, cobuns8_t *);
	    printf("Emitter %s; active file %s\n", emitter_name, filename);
	    break;

	case AUDITFILE_EXIT_FUNC_FILE_FULL:
	    filename = (cobuns8_t *)va_arg(args, cobuns8_t *);
	    printf("Emitter %s; full file %s\n", emitter_name, filename);
	    break;

	case AUDITFILE_EXIT_FUNC_NO_FILES:
	    printf("Emitter %s; no available files\n", emitter_name);
	    break;

	default:
	    printf("Emitter %s; unknown function %d\n", emitter_name, function);
	    break;
    }

    va_end(args);
    return 0;
}