2014-11-19 00:25:21 +08:00
|
|
|
#ifndef __SERVICE_INCLUDE_H__
|
|
|
|
#define __SERVICE_INCLUDE_H__
|
|
|
|
|
|
|
|
#include "service_struct.h"
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define TRACE do { \
|
|
|
|
acl_msg_info("%s(%d), %s", __FILE__, __LINE__, __FUNCTION__); \
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
/* in service.c */
|
|
|
|
void service_free(SERVICE *service) ;
|
|
|
|
SERVICE *service_alloc(const char *service_name, size_t size);
|
|
|
|
void service_set_dns(SERVICE *service, ACL_AIO *aio,
|
|
|
|
const char *dns_list, int dns_lookup_timeout,
|
|
|
|
int dns_cache_limit, const char *hosts_list);
|
|
|
|
void service_set_gctimer(ACL_AIO *aio, int timer);
|
|
|
|
|
|
|
|
/* in service_load.c */
|
|
|
|
void service_load(ACL_FIFO *service_modules, const char *dlname);
|
|
|
|
void service_load_all(ACL_FIFO *service_modules, const char *dlnames);
|
|
|
|
void service_unload_all(void);
|
|
|
|
|
|
|
|
/* in forward.c */
|
|
|
|
void forward_complete(CLIENT_ENTRY *entry);
|
|
|
|
void forward_start(CLIENT_ENTRY *entry);
|
|
|
|
|
|
|
|
/* in client_entry.c */
|
|
|
|
void client_entry_free(CLIENT_ENTRY *entry);
|
|
|
|
CLIENT_ENTRY *client_entry_new(SERVICE *service, size_t size, ACL_ASTREAM *client);
|
|
|
|
void client_entry_set_server(CLIENT_ENTRY *entry, ACL_ASTREAM *server);
|
|
|
|
int client_entry_detach(CLIENT_ENTRY *entry, ACL_VSTREAM *stream);
|
|
|
|
int client_entry_detach3(CLIENT_ENTRY *entry, ACL_VSTREAM *stream, int auto_free);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|