25 #include "ac-stdint.h" 36 #ifdef HAVE_SYS_TYPES_H 37 # include <sys/types.h> 40 #ifdef HAVE_NETINET_IN_H 41 # include <netinet/in.h> 44 #if defined(HAVE_SYS_TIME_H) 45 # include <sys/time.h> 46 #elif defined(HAVE_SYS_TIMEB_H) 47 # include <sys/timeb.h> 57 #ifdef HAVE_SYS_SOCKET_H 58 # include <sys/socket.h> 60 #ifdef HAVE_NETINET_IN_H 61 # include <netinet/in.h> 63 #ifdef HAVE_ARPA_INET_H 64 # include <arpa/inet.h> 71 # define PATH_MAX MAXPATHLEN 76 #include "subst/subst.h" 87 # ifdef JABBERD2_EXPORTS 88 # define JABBERD2_API __declspec(dllexport) 90 # define JABBERD2_API __declspec(dllimport) 93 # define JABBERD2_API extern 367 #define stanza_err_BAD_REQUEST (100) 368 #define stanza_err_CONFLICT (101) 369 #define stanza_err_FEATURE_NOT_IMPLEMENTED (102) 370 #define stanza_err_FORBIDDEN (103) 371 #define stanza_err_GONE (104) 372 #define stanza_err_INTERNAL_SERVER_ERROR (105) 373 #define stanza_err_ITEM_NOT_FOUND (106) 374 #define stanza_err_JID_MALFORMED (107) 375 #define stanza_err_NOT_ACCEPTABLE (108) 376 #define stanza_err_NOT_ALLOWED (109) 377 #define stanza_err_PAYMENT_REQUIRED (110) 378 #define stanza_err_RECIPIENT_UNAVAILABLE (111) 379 #define stanza_err_REDIRECT (112) 380 #define stanza_err_REGISTRATION_REQUIRED (113) 381 #define stanza_err_REMOTE_SERVER_NOT_FOUND (114) 382 #define stanza_err_REMOTE_SERVER_TIMEOUT (115) 383 #define stanza_err_RESOURCE_CONSTRAINT (116) 384 #define stanza_err_SERVICE_UNAVAILABLE (117) 385 #define stanza_err_SUBSCRIPTION_REQUIRED (118) 386 #define stanza_err_UNDEFINED_CONDITION (119) 387 #define stanza_err_UNEXPECTED_REQUEST (120) 388 #define stanza_err_OLD_UNAUTH (121) 389 #define stanza_err_UNKNOWN_SENDER (122) 390 #define stanza_err_LAST (123) 421 #define ZONE __FILE__,__LINE__ 422 #define MAX_DEBUG 8192 426 #define log_debug if(get_debug_flag()) debug_log 428 #define log_debug if(0) debug_log 437 typedef int (jmainhandler_t)(
int argc,
char** argv);
438 JABBERD2_API int jabber_wrap_service(
int argc,
char** argv, jmainhandler_t *wrapper, LPCTSTR
name, LPCTSTR display, LPCTSTR description, LPCTSTR depends);
439 #define JABBER_MAIN(name, display, description, depends) jabber_main(int argc, char** argv); \ 440 main(int argc, char** argv) { return jabber_wrap_service(argc, argv, jabber_main, name, display, description, depends); } \ 441 jabber_main(int argc, char** argv) 443 #define JABBER_MAIN(name, display, description, depends) int main(int argc, char** argv) 450 #if XML_MAJOR_VERSION > 1 452 #define HAVE_XML_STOPPARSER 453 #if XML_MINOR_VERSION > 0 455 #define HAVE_XML_SETHASHSALT JABBERD2_API void set_debug_log_from_config(config_t c)
JABBERD2_API void rate_free(rate_t rt)
struct spool_struct * spool
struct sockaddr_storage ip
JABBERD2_API void shahash_r(const char *str, char hashbuf[41])
old convenience function, now in str.c
JABBERD2_API int apr_base64_decode(char *bufplain, const char *bufcoded, int buflen)
JABBERD2_API void set_debug_file(const char *filename)
JABBERD2_API void set_debug_flag(int v)
JABBERD2_API int rate_check(rate_t rt)
JABBERD2_API int access_allow(access_t access, const char *ip, const char *mask)
JABBERD2_API void rate_add(rate_t rt, int count)
Add a number of events to the counter.
JABBERD2_API void * jqueue_pull(jqueue_t q)
struct access_rule_st * access_rule_t
JABBERD2_API int config_load(config_t c, const char *file)
turn an xml file into a config hash
JABBERD2_API char * config_get_attr(config_t c, const char *key, int num, const char *attr)
get an attr for this value
JABBERD2_API int apr_base64_decode_len(const char *bufcoded, int buflen)
JABBERD2_API int jqueue_size(jqueue_t q)
JABBERD2_API config_t config_new(void)
new config structure
JABBERD2_API nad_t stanza_tofrom(nad_t nad, int elem)
flip the to and from attributes on this elem
holder for the config hash and nad
struct _stanza_error_st * stanza_error_t
struct _jqueue_node_st * _jqueue_node_t
JABBERD2_API int j_strcasecmp(const char *a, const char *b)
JABBERD2_API int get_debug_flag(void)
JABBERD2_API config_elem_t config_get(config_t c, const char *key)
get the config element for this key
JABBERD2_API void log_write(log_t log, int level, const char *msgfmt,...)
JABBERD2_API int j_strncasecmp(const char *a, const char *b, int i)
JABBERD2_API void spool_add(spool s, const char *str)
JABBERD2_API void config_free(config_t)
Replaces $(some.value) with config_get_one(c, "some.value", 0)
JABBERD2_API jsighandler_t * jabber_signal(int signo, jsighandler_t *func)
JABBERD2_API char * b64_decode(char *buf)
JABBERD2_API int access_check(access_t access, const char *ip)
JABBERD2_API jqueue_t jqueue_new(void)
JABBERD2_API const char * config_get_one_default(config_t c, const char *key, int num, const char *default_value)
get config value n for this key, returns default_value if not found
JABBERD2_API void rate_reset(rate_t rt)
JABBERD2_API const char * spools(pool_t p,...)
convenience :)
JABBERD2_API int config_count(config_t c, const char *key)
how many values for this key?
JABBERD2_API nad_t stanza_error(nad_t nad, int elem, int err)
error the packet
JABBERD2_API const char * config_get_one(config_t c, const char *key, int num)
get config value n for this key
JABBERD2_API log_t log_new(log_type_t type, const char *ident, const char *facility)
JABBERD2_API int hex_to_raw(const char *in, int inlen, char *out)
turn hex into raw - out must be (inlen/2)
JABBERD2_API void ser_int_set(int source, int *dest, char **buf, int *len)
struct log_facility_st log_facility_t
JABBERD2_API int ser_int_get(int *dest, int *source, const char *buf, int len)
JABBERD2_API void debug_log(const char *file, int line, const char *msgfmt,...)
JABBERD2_API rate_t rate_new(int total, int seconds, int wait)
JABBERD2_API int ser_string_get(char **dest, int *source, const char *buf, int len)
JABBERD2_API int config_load_with_id(config_t c, const char *file, const char *id)
turn an xml file into a config hash
JABBERD2_API int j_strlen(const char *a)
JABBERD2_API char * strunescape(pool_t p, char *buf)
struct config_elem_st * config_elem_t
JABBERD2_API int apr_base64_encode(char *encoded, const char *string, int len)
struct spool_node * first
JABBERD2_API const char * spool_print(spool s)
JABBERD2_API char * config_expand(config_t c, const char *value)
JABBERD2_API int j_atoi(const char *a, int def)
JABBERD2_API access_t access_new(int order)
JABBERD2_API void log_free(log_t log)
JABBERD2_API time_t jqueue_age(jqueue_t q)
JABBERD2_API int apr_base64_encode_len(int len)
JABBERD2_API int access_deny(access_t access, const char *ip, const char *mask)
JABBERD2_API int rate_left(rate_t rt)
JABBERD2_API void spooler(spool s,...)
JABBERD2_API void jqueue_push(jqueue_t q, void *data, int pri)
struct config_st * config_t
JABBERD2_API char * strescape(pool_t p, const char *buf, int len)
JABBERD2_API void shahash_raw(const char *str, unsigned char hashval[20])
JABBERD2_API int j_strncmp(const char *a, const char *b, int i)
JABBERD2_API void spool_escape(spool s, const char *raw, int len)
JABBERD2_API time_t datetime_in(char *date)
JABBERD2_API void access_free(access_t access)
struct access_st * access_t
JABBERD2_API struct _stanza_error_st _stanza_errors[]
pool - base node for a pool.
JABBERD2_API int j_strcmp(const char *a, const char *b)
JABBERD2_API spool spool_new(pool_t p)
JABBERD2_API void datetime_out(time_t t, datetime_t type, char *date, int datelen)
JABBERD2_API char * b64_encode(char *buf, int len)
JABBERD2_API char * j_attr(const char **atts, const char *attr)
JABBERD2_API char * j_strcat(char *dest, const char *txt)
JABBERD2_API void jqueue_free(jqueue_t q)
define the structures that could be missing in old libc implementations
JABBERD2_API char * j_strdup(const char *str)
JABBERD2_API char * j_strnchr(const char *s, int c, int n)
like strchr, but only searches n chars
JABBERD2_API void ser_string_set(const char *source, int *dest, char **buf, int *len)
struct _jqueue_st * jqueue_t
JABBERD2_API void hex_from_raw(const unsigned char *in, int inlen, char *out)
turn raw into hex - out must be (inlen*2)+1