361 |
} |
} |
362 |
|
|
363 |
void |
void |
364 |
sieve_machine_set_error (sieve_machine_t mach, sieve_printf_t error_printer) |
sieve_set_error (sieve_machine_t mach, sieve_printf_t error_printer) |
365 |
{ |
{ |
366 |
mach->error_printer = error_printer ? |
mach->error_printer = error_printer ? |
367 |
error_printer : _sieve_default_error_printer; |
error_printer : _sieve_default_error_printer; |
368 |
} |
} |
369 |
|
|
370 |
void |
void |
371 |
sieve_machine_set_parse_error (sieve_machine_t mach, sieve_parse_error_t p) |
sieve_set_parse_error (sieve_machine_t mach, sieve_parse_error_t p) |
372 |
{ |
{ |
373 |
mach->parse_error_printer = p ? p : _sieve_default_parse_error; |
mach->parse_error_printer = p ? p : _sieve_default_parse_error; |
374 |
} |
} |
375 |
|
|
376 |
void |
void |
377 |
sieve_machine_set_debug (sieve_machine_t mach, sieve_printf_t debug) |
sieve_set_debug (sieve_machine_t mach, sieve_printf_t debug) |
378 |
{ |
{ |
379 |
mach->debug_printer = debug; |
mach->debug_printer = debug; |
380 |
} |
} |
381 |
|
|
382 |
void |
void |
383 |
sieve_machine_set_debug_level (sieve_machine_t mach, mu_debug_t dbg, int level) |
sieve_set_debug_level (sieve_machine_t mach, mu_debug_t dbg, int level) |
384 |
{ |
{ |
385 |
mach->mu_debug = dbg; |
mach->mu_debug = dbg; |
386 |
mach->debug_level = level; |
mach->debug_level = level; |
387 |
} |
} |
388 |
|
|
389 |
void |
void |
390 |
sieve_machine_set_logger (sieve_machine_t mach, sieve_action_log_t logger) |
sieve_set_logger (sieve_machine_t mach, sieve_action_log_t logger) |
391 |
{ |
{ |
392 |
mach->logger = logger; |
mach->logger = logger; |
393 |
} |
} |
394 |
|
|
395 |
void |
void |
396 |
sieve_machine_set_ticket (sieve_machine_t mach, ticket_t ticket) |
sieve_set_ticket (sieve_machine_t mach, ticket_t ticket) |
397 |
{ |
{ |
398 |
mach->ticket = ticket; |
mach->ticket = ticket; |
399 |
} |
} |
404 |
return mach->ticket; |
return mach->ticket; |
405 |
} |
} |
406 |
|
|
407 |
|
mailer_t |
408 |
|
sieve_get_mailer (sieve_machine_t mach) |
409 |
|
{ |
410 |
|
if (!mach->mailer) |
411 |
|
mailer_create (&mach->mailer, NULL); |
412 |
|
return mach->mailer; |
413 |
|
} |
414 |
|
|
415 |
|
void |
416 |
|
sieve_set_mailer (sieve_machine_t mach, mailer_t mailer) |
417 |
|
{ |
418 |
|
mailer_destroy (&mach->mailer); |
419 |
|
mach->mailer = mailer; |
420 |
|
} |
421 |
|
|
422 |
|
#define MAILER_DAEMON_PFX "MAILER-DAEMON@" |
423 |
|
|
424 |
|
char * |
425 |
|
sieve_get_daemon_email (sieve_machine_t mach) |
426 |
|
{ |
427 |
|
if (!mach->daemon_email) |
428 |
|
{ |
429 |
|
const char *domain = NULL; |
430 |
|
|
431 |
|
mu_get_user_email_domain (&domain); |
432 |
|
mach->daemon_email = sieve_palloc (&mach->memory_pool, |
433 |
|
sizeof(MAILER_DAEMON_PFX) + |
434 |
|
strlen (domain)); |
435 |
|
sprintf (mach->daemon_email, "%s%s", MAILER_DAEMON_PFX, domain); |
436 |
|
} |
437 |
|
return mach->daemon_email; |
438 |
|
} |
439 |
|
|
440 |
|
void |
441 |
|
sieve_set_daemon_email (sieve_machine_t mach, const char *email) |
442 |
|
{ |
443 |
|
sieve_pfree (&mach->memory_pool, (void *)mach->daemon_email); |
444 |
|
mach->daemon_email = sieve_pstrdup (&mach->memory_pool, email); |
445 |
|
} |
446 |
|
|
447 |
struct sieve_destr_record |
struct sieve_destr_record |
448 |
{ |
{ |
449 |
sieve_destructor_t destr; |
sieve_destructor_t destr; |
481 |
list_do (mach->destr_list, _run_destructor, NULL); |
list_do (mach->destr_list, _run_destructor, NULL); |
482 |
list_destroy (&mach->destr_list); |
list_destroy (&mach->destr_list); |
483 |
sieve_slist_destroy (&mach->memory_pool); |
sieve_slist_destroy (&mach->memory_pool); |
484 |
|
mailer_destroy (&mach->mailer); |
485 |
free (mach); |
free (mach); |
486 |
*pmach = NULL; |
*pmach = NULL; |
487 |
} |
} |