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