118 #ifdef STRCASECMP_IN_STRINGS_H
142 #define STR(x) vstring_str(x)
143 #define LEN(x) VSTRING_LEN(x)
149 static void tls_mgr_open(
void)
157 msg_panic(
"tls_mgr_open: multiple initialization");
204 int tls_mgr_policy(
const char *cache_type,
int *cachable,
int *timeout)
264 const char *buf, ssize_t len)
339 name = keyname ? (
char *) keyname :
"";
355 ||
LEN(keybuf) !=
sizeof(tmp))
358 memcpy((
void *) &tmp,
STR(keybuf),
sizeof(tmp));
367 time_t now = time((time_t *) 0);
374 key = request_scache_key(keyname);
397 int main(
int unused_ac,
char **av)
415 if (argv->
argc == 0) {
419 #define COMMAND(argv, str, len) \
420 (strcasecmp(argv->argv[0], str) == 0 && argv->argc == len)
422 if (COMMAND(argv,
"policy", 2)) {
428 status, cachable, timeout);
429 }
else if (COMMAND(argv,
"seed", 2)) {
432 int len = atoi(argv->
argv[1]);
439 }
else if (COMMAND(argv,
"lookup", 3)) {
444 status,
LEN(buf),
STR(buf));
446 }
else if (COMMAND(argv,
"update", 4)) {
448 argv->
argv[3], strlen(argv->
argv[3]));
450 }
else if (COMMAND(argv,
"delete", 3)) {
456 "policy smtpd|smtp|lmtp\n"
457 "lookup smtpd|smtp|lmtp cache_id\n"
458 "update smtpd|smtp|lmtp cache_id session\n"
459 "delete smtpd|smtp|lmtp cache_id\n");
#define vstring_fgets_nonl(s, p)
#define ATTR_CLNT_CTL_PROTO
#define TLS_MGR_ATTR_SIZE
ARGV * argv_free(ARGV *argvp)
#define TLS_TICKET_NAMELEN
NORETURN msg_panic(const char *fmt,...)
#define ATTR_FLAG_MISSING
#define ATTR_CLNT_CTL_END
int main(int argc, char **argv)
#define TLS_MGR_REQ_TKTKEY
int tls_mgr_lookup(const char *, const char *, VSTRING *)
TLS_TICKET_KEY * tls_scache_key_rotate(TLS_TICKET_KEY *)
#define RECV_ATTR_INT(name, val)
int tls_mgr_update(const char *, const char *, const char *, ssize_t)
int tls_mgr_seed(VSTRING *, int)
ATTR_CLNT * attr_clnt_create(const char *service, int timeout, int max_idle, int max_ttl)
void mail_conf_read(void)
#define TLS_MGR_ATTR_SESSION
#define TLS_MGR_ATTR_SESSTOUT
char * var_tls_mgr_service
#define TLS_MGR_ATTR_SEED
#define TLS_MGR_ATTR_KEYBUF
void attr_clnt_control(ATTR_CLNT *client, int name,...)
#define TLS_MGR_REQ_DELETE
VSTRING * hex_encode(VSTRING *result, const char *in, ssize_t len)
TLS_TICKET_KEY * tls_scache_key(unsigned char *, time_t, int)
#define TLS_MGR_ATTR_KEYNAME
VSTREAM * vstream_printf(const char *fmt,...)
#define RECV_ATTR_DATA(name, val)
VSTRING * vstring_alloc(ssize_t len)
#define TLS_MGR_STAT_FAIL
#define TLS_MGR_REQ_LOOKUP
#define SEND_ATTR_INT(name, val)
int tls_mgr_delete(const char *, const char *)
NORETURN msg_fatal(const char *fmt,...)
TLS_TICKET_KEY * tls_mgr_key(unsigned char *, int)
int tls_mgr_policy(const char *, int *, int *)
#define TLS_MGR_REQ_UPDATE
int vstream_fflush(VSTREAM *stream)
char * concatenate(const char *arg0,...)
ARGV * argv_split(const char *, const char *)
int attr_clnt_request(ATTR_CLNT *client, int send_flags,...)
#define TLS_MGR_ATTR_STATUS
VSTRING * vstring_free(VSTRING *vp)
#define TLS_MGR_ATTR_CACHE_TYPE
void msg_vstream_init(const char *name, VSTREAM *vp)
#define TLS_MGR_ATTR_CACHE_ID
#define TLS_MGR_ATTR_CACHABLE
#define SEND_ATTR_STR(name, val)
#define SEND_ATTR_DATA(name, len, val)
#define TLS_MGR_REQ_POLICY
void msg_info(const char *fmt,...)