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 "imap-urlauth-settings.h" 8 9 #include <stddef.h> 10 #include <unistd.h> 11 12 /* <settings checks> */ 13 static struct file_listener_settings imap_urlauth_unix_listeners_array[] = { 14 { "token-login/imap-urlauth", 0666, "", "" } 15 }; 16 static struct file_listener_settings *imap_urlauth_unix_listeners[] = { 17 &imap_urlauth_unix_listeners_array[0] 18 }; 19 static buffer_t imap_urlauth_unix_listeners_buf = { 20 { { imap_urlauth_unix_listeners, sizeof(imap_urlauth_unix_listeners) } } 21 }; 22 /* </settings checks> */ 23 24 struct service_settings imap_urlauth_service_settings = { 25 .name = "imap-urlauth", 26 .protocol = "imap", 27 .type = "", 28 .executable = "imap-urlauth", 29 .user = "$default_internal_user", 30 .group = "", 31 .privileged_group = "", 32 .extra_groups = "", 33 .chroot = "", 34 35 .drop_priv_before_exec = FALSE, 36 37 .process_min_avail = 0, 38 .process_limit = 1024, 39 .client_limit = 1, 40 .service_count = 1, 41 .idle_kill = 0, 42 .vsz_limit = UOFF_T_MAX, 43 44 .unix_listeners = { { &imap_urlauth_unix_listeners_buf, 45 sizeof(imap_urlauth_unix_listeners[0]) } }, 46 .fifo_listeners = ARRAY_INIT, 47 .inet_listeners = ARRAY_INIT 48 }; 49 50 #undef DEF 51 #define DEF(type, name) \ 52 SETTING_DEFINE_STRUCT_##type(#name, name, struct imap_urlauth_settings) 53 54 static const struct setting_define imap_urlauth_setting_defines[] = { 55 DEF(STR, base_dir), 56 57 DEF(BOOL, mail_debug), 58 59 DEF(BOOL, verbose_proctitle), 60 61 DEF(STR, imap_urlauth_logout_format), 62 DEF(STR, imap_urlauth_submit_user), 63 DEF(STR, imap_urlauth_stream_user), 64 65 SETTING_DEFINE_LIST_END 66 }; 67 68 const struct imap_urlauth_settings imap_urlauth_default_settings = { 69 .base_dir = PKG_RUNDIR, 70 .mail_debug = FALSE, 71 72 .verbose_proctitle = FALSE, 73 74 .imap_urlauth_logout_format = "in=%i out=%o", 75 .imap_urlauth_submit_user = NULL, 76 .imap_urlauth_stream_user = NULL 77 }; 78 79 static const struct setting_parser_info *imap_urlauth_setting_dependencies[] = { 80 NULL 81 }; 82 83 const struct setting_parser_info imap_urlauth_setting_parser_info = { 84 .module_name = "imap-urlauth", 85 .defines = imap_urlauth_setting_defines, 86 .defaults = &imap_urlauth_default_settings, 87 88 .type_offset = SIZE_MAX, 89 .struct_size = sizeof(struct imap_urlauth_settings), 90 91 .parent_offset = SIZE_MAX, 92 93 .dependencies = imap_urlauth_setting_dependencies 94 }; 95