1c633f71ec2060e5bfa500a97f34cd881a958ecdTimo Sirainen#ifndef DOVEADM_UTIL_H
1c633f71ec2060e5bfa500a97f34cd881a958ecdTimo Sirainen#define DOVEADM_UTIL_H
1c633f71ec2060e5bfa500a97f34cd881a958ecdTimo Sirainen
009217abb57a24a4076092e8e4e165545747839eStephan Bosch#include "net.h"
009217abb57a24a4076092e8e4e165545747839eStephan Bosch
1c633f71ec2060e5bfa500a97f34cd881a958ecdTimo Sirainen#define DOVEADM_SERVER_PROTOCOL_VERSION_MAJOR 1
c9dd53f7180a78668cbc1e6eb34d5b1722beccb9Aki Tuomi#define DOVEADM_SERVER_PROTOCOL_VERSION_MINOR 1
c9dd53f7180a78668cbc1e6eb34d5b1722beccb9Aki Tuomi#define DOVEADM_SERVER_PROTOCOL_VERSION_LINE "VERSION\tdoveadm-server\t1\t1"
c9dd53f7180a78668cbc1e6eb34d5b1722beccb9Aki Tuomi#define DOVEADM_CLIENT_PROTOCOL_VERSION_LINE "VERSION\tdoveadm-client\t1\t1"
1c633f71ec2060e5bfa500a97f34cd881a958ecdTimo Sirainen
71df09024cea5f2faa93da3bb9513ee96ba6bf22Timo Sirainenextern bool doveadm_verbose, doveadm_debug, doveadm_server;
1c633f71ec2060e5bfa500a97f34cd881a958ecdTimo Sirainen
1c633f71ec2060e5bfa500a97f34cd881a958ecdTimo Sirainenconst char *unixdate2str(time_t timestamp);
1c633f71ec2060e5bfa500a97f34cd881a958ecdTimo Sirainenconst char *doveadm_plugin_getenv(const char *name);
1c633f71ec2060e5bfa500a97f34cd881a958ecdTimo Sirainenint doveadm_connect(const char *path);
009217abb57a24a4076092e8e4e165545747839eStephan Boschint doveadm_tcp_connect(const char *target, in_port_t default_port);
250a06cde50c4004ac1cc72279b75a229a7f90f5Timo Sirainenint doveadm_connect_with_default_port(const char *path,
009217abb57a24a4076092e8e4e165545747839eStephan Bosch in_port_t default_port);
1c633f71ec2060e5bfa500a97f34cd881a958ecdTimo Sirainen
1c633f71ec2060e5bfa500a97f34cd881a958ecdTimo Sirainenvoid doveadm_load_modules(void);
1c633f71ec2060e5bfa500a97f34cd881a958ecdTimo Sirainenvoid doveadm_unload_modules(void);
1c633f71ec2060e5bfa500a97f34cd881a958ecdTimo Sirainenbool doveadm_has_unloaded_plugin(const char *name);
1c633f71ec2060e5bfa500a97f34cd881a958ecdTimo Sirainen
c9dd53f7180a78668cbc1e6eb34d5b1722beccb9Aki Tuomichar doveadm_log_type_to_char(enum log_type type) ATTR_PURE;
c9dd53f7180a78668cbc1e6eb34d5b1722beccb9Aki Tuomibool doveadm_log_type_from_char(char c, enum log_type *type_r);
c9dd53f7180a78668cbc1e6eb34d5b1722beccb9Aki Tuomi
a23210844b06c53ebca34b162f3a268d5f1cd4d1Aki Tuomi/* Similar to strcmp(), except "camel case" == "camel-case" == "camelCase".
a23210844b06c53ebca34b162f3a268d5f1cd4d1Aki Tuomi Otherwise the comparison is case-sensitive. */
a23210844b06c53ebca34b162f3a268d5f1cd4d1Aki Tuomiint i_strccdascmp(const char *a, const char *b) ATTR_PURE;
a23210844b06c53ebca34b162f3a268d5f1cd4d1Aki Tuomi
1c633f71ec2060e5bfa500a97f34cd881a958ecdTimo Sirainen#endif