1 /* Copyright (c) 2013-2018 Dovecot authors, see the included COPYING file */ 2 3 #include "lib.h" 4 #include "buffer.h" 5 #include "settings-parser.h" 6 #include "service-settings.h" 7 #include "mail-storage-settings.h" 8 #include "imap-urlauth-worker-settings.h" 9 10 #include <stddef.h> 11 #include <unistd.h> 12 13 /* <settings checks> */ 14 static struct file_listener_settings imap_urlauth_worker_unix_listeners_array[] = { 15 { "imap-urlauth-worker", 0600, "$default_internal_user", "" } 16 }; 17 static struct file_listener_settings *imap_urlauth_worker_unix_listeners[] = { 18 &imap_urlauth_worker_unix_listeners_array[0] 19 }; 20 static buffer_t imap_urlauth_worker_unix_listeners_buf = { 21 { { imap_urlauth_worker_unix_listeners, 22 sizeof(imap_urlauth_worker_unix_listeners) } } 23 }; 24 /* </settings checks> */ 25 26 struct service_settings imap_urlauth_worker_service_settings = { 27 .name = "imap-urlauth-worker", 28 .protocol = "imap", 29 .type = "", 30 .executable = "imap-urlauth-worker", 31 .user = "", 32 .group = "", 33 .privileged_group = "", 34 .extra_groups = "$default_internal_group", 35 .chroot = "", 36 37 .drop_priv_before_exec = FALSE, 38 39 .process_min_avail = 0, 40 .process_limit = 1024, 41 .client_limit = 1, 42 .service_count = 1, 43 .idle_kill = 0, 44 .vsz_limit = UOFF_T_MAX, 45 46 .unix_listeners = { { &imap_urlauth_worker_unix_listeners_buf, 47 sizeof(imap_urlauth_worker_unix_listeners[0]) } }, 48 .fifo_listeners = ARRAY_INIT, 49 .inet_listeners = ARRAY_INIT 50 }; 51 52 #undef DEF 53 #define DEF(type, name) \ 54 SETTING_DEFINE_STRUCT_##type(#name, name, struct imap_urlauth_worker_settings) 55 56 static const struct setting_define imap_urlauth_worker_setting_defines[] = { 57 DEF(BOOL, verbose_proctitle), 58 59 DEF(STR, imap_urlauth_host), 60 DEF(IN_PORT, imap_urlauth_port), 61 62 SETTING_DEFINE_LIST_END 63 }; 64 65 const struct imap_urlauth_worker_settings imap_urlauth_worker_default_settings = { 66 .verbose_proctitle = FALSE, 67 68 .imap_urlauth_host = "", 69 .imap_urlauth_port = 143 70 }; 71 72 static const struct setting_parser_info *imap_urlauth_worker_setting_dependencies[] = { 73 &mail_user_setting_parser_info, 74 NULL 75 }; 76 77 const struct setting_parser_info imap_urlauth_worker_setting_parser_info = { 78 .module_name = "imap-urlauth-worker", 79 .defines = imap_urlauth_worker_setting_defines, 80 .defaults = &imap_urlauth_worker_default_settings, 81 82 .type_offset = SIZE_MAX, 83 .struct_size = sizeof(struct imap_urlauth_worker_settings), 84 85 .parent_offset = SIZE_MAX, 86 87 .dependencies = imap_urlauth_worker_setting_dependencies 88 }; 89