/***************************************************************************
*
* Copyright (c) 1999 Balázs Scheidler
* Copyright (c) 1999-2001 BalaBit IT Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* Inspired by nsyslog, originally written by Darren Reed.
*
* $Id: afsocket.h,v 1.16.4.3 2006/08/22 07:45:21 bazsi Exp $
*
***************************************************************************/
#ifndef __AFSOCKET_H_INCLUDED
#define __AFSOCKET_H_INCLUDED
#include "syslog-ng.h"
#include "io.h"
#include "sources.h"
#include "destinations.h"
#include "utils.h"
#include "log.h"
#define CLASS_DECLARE
#include "afsocket.h.x"
#undef CLASS_DECLARE
#define AFSOCKET_DGRAM 0x0001
#define AFSOCKET_STREAM 0x0002
#define AFSOCKET_KEEP_ALIVE 0x0100
#define AFINET_YES 3
#define AFINET_NO 0
#define AFINET_REQUIRED 2
#define AFINET_ALLOW 1
#define AFINET_DENY 0
#define AFINET_AUTH_MASK 0x000C
#define AFINET_AUTH_SHIFT 2
#define AFINET_MAC_MASK 0x0030
#define AFINET_MAC_SHIFT 4
#define AFINET_ENCRYPT_MASK 0x00C0
#define AFINET_ENCRYPT_SHIFT 6
#define AFINET_TCP_KEEPALIVE 0x0100
#define AFINET_TCP_KEEPALIVE_MASK 0x0100
#define AFINET_TCP_KEEPALIVE_SHIFT 8
/* CLASS:
(class
(name afsocket_source_connection)
(super log_handler_pipe)
(vars
(owner object afsocket_source)
(queue_node simple "struct object_queue_node *")
(client object io_fd)
(client_addr object address_info)
(close method int "int close_reason")))
*/
#define CLOSE_CONNECTION(c, r) ((c)->close(c, r))
struct close_callback *
make_afsocket_source_close_callback(struct afsocket_source_connection *);
struct fd_listen_callback *
make_afsocket_accept_callback(struct io_backend *backend,
struct afsocket_source *source);
/* CLASS:
(class
(name afsocket_source)
(super log_source_driver)
(vars
(flags simple UINT32)
(bind_addr object address_info)
(max_connections simple UINT32)
(num_connections simple UINT32)
(connections object object_queue)
(open_connection method int
"struct io_fd *"
"struct address_info *a")))
*/
#define SOURCE_OPEN_CONNECTION(c, f, a) ((c)->open_connection(c, f, a))
/* CLASS:
(class
(name afsocket_dest)
(super log_dest_driver)
(vars
(flags simple UINT32)
(bind_addr object address_info)
(dest_addr object address_info)
(connected method int "struct io_fd *fd")))
*/
#define DESTINATION_CONNECTED(c, f) ((c)->connected(c, f))
void do_handle_afsocket_dest(struct log_handler *c, struct log_info *msg);
struct fd_callback *
make_afsocket_dest_connected(struct io_backend *backend,
struct afsocket_dest *dest);
void afsocket_src_set_keep_alive(struct log_source_driver *c, int enable);
void afsocket_src_set_max_connections(struct log_source_driver *c, UINT32 max_connections);
void afunix_set_owner(struct log_source_driver *c, const char *owner);
void afunix_set_group(struct log_source_driver *c, const char *group);
void afunix_set_perm(struct log_source_driver *c, int perm);
void afinet_src_set_localport(struct log_source_driver *c, UINT32 port, const char *service,const char *proto);
void afinet_src_set_localip(struct log_source_driver *c, const char *ip);
void afinet_src_set_auth(struct log_source_driver *c, UINT32 v);
void afinet_src_set_mac(struct log_source_driver *c, UINT32 v);
void afinet_src_set_encrypt(struct log_source_driver *c, UINT32 v);
void afinet_src_set_tcp_keepalive(struct log_source_driver *c, UINT32 v);
void afinet_src_set_so_rcvbuf(struct log_source_driver *c, UINT32 v);
void afinet_dest_set_localip(struct log_dest_driver *c, const char *ip);
void afinet_dest_set_localport(struct log_dest_driver *c, UINT32 port, const char *service,const char *proto);
void afinet_dest_set_destport(struct log_dest_driver *c, UINT32 port, const char *service,const char *proto);
void afinet_dest_set_auth(struct log_dest_driver *c, UINT32 value);
void afinet_dest_set_mac(struct log_dest_driver *c, UINT32 value);
void afinet_dest_set_encrypt(struct log_dest_driver *c, UINT32 value);
void afinet_dest_set_tcp_keepalive(struct log_dest_driver *c, UINT32 v);
void afinet_dest_set_spoof_source(struct log_dest_driver *c, int enable);
void afinet_dest_set_syncfreq(struct log_dest_driver *c, UINT32 value);
void afinet_dest_set_template(struct log_dest_driver *c, char *t);
void afinet_dest_set_template_escape(struct log_dest_driver *c, int enable);
struct log_source_driver *
make_afunix_source(struct address_info *bind_addr, UINT32 flags);
struct log_dest_driver *
make_afunix_dest(struct address_info *dest_addr, UINT32 flags);
void afunix_dest_set_template(struct log_dest_driver *c, char *t);
void afunix_dest_set_template_escape(struct log_dest_driver *c, int enable);
struct log_source_driver *
make_afinet_source(struct address_info *bind_addr, UINT32 flags);
struct log_dest_driver *
make_afinet_dest(struct address_info *dest_addr, UINT32 flags);
#endif
syntax highlighted by Code2HTML, v. 0.9.1