1 /* 2 * Copyright (c) 2015 YASUOKA Masahiko <yasuoka@yasuoka.net> 3 * 4 * Permission to use, copy, modify, and distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 #ifndef MAILESTD_H 17 #define MAILESTD_H 1 18 19 #include <sys/cdefs.h> 20 21 #define MAILESTD_MAIL_DIR "Mail" 22 #define MAILESTD_SOCK_PATH ".mailest.sock" 23 #define MAILESTD_SOCK_MSGSIZ 256 /* response message size */ 24 #define MAILESTD_MAX_MESSAGE_ID 256 25 26 enum MAILESTCTL_CMD { 27 MAILESTCTL_CMD_NONE = 0, 28 MAILESTCTL_CMD_DEBUGI, 29 MAILESTCTL_CMD_DEBUGD, 30 MAILESTCTL_CMD_STOP, 31 MAILESTCTL_CMD_UPDATE, 32 MAILESTCTL_CMD_SUSPEND, 33 MAILESTCTL_CMD_RESUME, 34 MAILESTCTL_CMD_SEARCH, 35 MAILESTCTL_CMD_SMEW 36 }; 37 38 enum MAILESTCTL_OUTFORM { 39 MAILESTCTL_OUTFORM_COMPAT_VU, 40 MAILESTCTL_OUTFORM_SMEW 41 }; 42 43 #define ATTR_MSGID "message-id" 44 #define ATTR_PARID "x-mew-parid" 45 #define ATTR_TITLE "@title" 46 #define ATTR_CDATE "@cdate" 47 48 struct mailestctl { 49 enum MAILESTCTL_CMD command; 50 }; 51 52 struct mailestctl_update { 53 enum MAILESTCTL_CMD command; 54 char folder[PATH_MAX]; 55 }; 56 struct mailestctl_search { 57 enum MAILESTCTL_CMD command; 58 enum MAILESTCTL_OUTFORM outform; 59 int max; 60 char attrs[8][MAILESTD_MAX_MESSAGE_ID + 80]; 61 char order[80]; 62 char phrase[BUFSIZ]; 63 }; 64 struct mailestctl_smew { 65 enum MAILESTCTL_CMD command; 66 char msgid[MAILESTD_MAX_MESSAGE_ID]; 67 char folder[PATH_MAX]; 68 }; 69 70 __BEGIN_DECLS 71 int mailestctl_main(int, char *[]); 72 void mailestd_log(int, const char *, ...) 73 __attribute__((__format__(__syslog__,2,3))); 74 struct mailestd_conf *parse_config(const char *, const char *); 75 void free_config(struct mailestd_conf *); 76 int cmdline_symset(char *); 77 __END_DECLS 78 79 #endif 80