Tree @debian/3.4.1-2 (Download .tar.gz)
- ..
- annotate.c
- annotate.h
- append.c
- append.h
- arbitron.c
- autocreate.c
- autocreate.h
- backend.c
- backend.h
- calalarmd.c
- caldav_alarm.c
- caldav_alarm.h
- caldav_db.c
- caldav_db.h
- carddav_db.c
- carddav_db.h
- chk_cyrus.c
- cli_fatal.c
- conversations.c
- conversations.h
- convert_code.c
- convert_code.h
- css3_color.c
- css3_color.h
- ctl_conversationsdb.c
- ctl_cyrusdb.c
- ctl_deliver.c
- ctl_mboxlist.c
- ctl_zoneinfo.c
- cvt_cyrusdb.c
- cvt_xlist_specialuse.c
- cyr_buildinfo.c
- cyr_dbtool.c
- cyr_deny.c
- cyr_df.c
- cyr_expire.c
- cyr_info.c
- cyr_sequence.c
- cyr_synclog.c
- cyr_userseen.c
- cyr_virusscan.c
- cyrdump.c
- dav_db.c
- dav_db.h
- dav_reconstruct.c
- dav_util.c
- dav_util.h
- deliver.c
- dlist.c
- dlist.h
- duplicate.c
- duplicate.h
- fetchnews.c
- fud.c
- global.c
- global.h
- http_admin.c
- http_applepush.c
- http_caldav.c
- http_caldav.h
- http_caldav.js
- http_caldav_js.h
- http_caldav_sched.c
- http_caldav_sched.h
- http_carddav.c
- http_carddav.h
- http_carddav.js
- http_carddav_js.h
- http_cgi.c
- http_client.c
- http_client.h
- http_dav.c
- http_dav.h
- http_dav_sharing.c
- http_dav_sharing.h
- http_dblookup.c
- http_err.et
- http_h2.c
- http_h2.h
- http_ischedule.c
- http_jmap.c
- http_jmap.h
- http_prometheus.c
- http_proxy.c
- http_proxy.h
- http_rss.c
- http_tzdist.c
- http_webdav.c
- http_ws.c
- http_ws.h
- httpd.c
- httpd.h
- ical_apply_patch.c
- ical_support.c
- ical_support.h
- icu_wrap.cpp
- icu_wrap.h
- idle.c
- idle.h
- idled.c
- idlemsg.c
- idlemsg.h
- imap_err.et
- imap_proxy.c
- imap_proxy.h
- imapd.c
- imapd.h
- imapparse.c
- imapparse.h
- index.c
- index.h
- ipurge.c
- jcal.c
- jcal.h
- jmap_api.c
- jmap_api.h
- jmap_backup.c
- jmap_calendar.c
- jmap_contact.c
- jmap_core.c
- jmap_err.et
- jmap_ical.c
- jmap_ical.h
- jmap_mail.c
- jmap_mail.h
- jmap_mail_query.c
- jmap_mail_query.h
- jmap_mail_query_parse.c
- jmap_mail_query_parse.h
- jmap_mail_submission.c
- jmap_mailbox.c
- jmap_mdn.c
- jmap_notes.c
- jmap_sieve.c
- jmap_util.c
- jmap_util.h
- jmap_vacation.c
- json_support.c
- json_support.h
- lmtp_err.et
- lmtp_sieve.c
- lmtp_sieve.h
- lmtpd.c
- lmtpd.h
- lmtpengine.c
- lmtpengine.h
- mailbox.c
- mailbox.h
- mailbox_header_cache.gperf
- mailbox_header_cache.h
- mbdump.c
- mbdump.h
- mbexamine.c
- mboxevent.c
- mboxevent.h
- mboxkey.c
- mboxkey.h
- mboxlist.c
- mboxlist.h
- mboxname.c
- mboxname.h
- mbpath.c
- mbtool.c
- message.c
- message.h
- message_guid.c
- message_guid.h
- message_priv.h
- message_test.c
- msgrecord.c
- msgrecord.h
- mupdate-client.c
- mupdate-client.h
- mupdate-slave.c
- mupdate.c
- mupdate.h
- mupdate_err.et
- mutex.h
- mutex_fake.c
- mutex_pthread.c
- nntp_err.et
- nntpd.c
- notify.c
- notify.h
- objectstore.h
- objectstore_caringo.c
- objectstore_db.c
- objectstore_db.h
- objectstore_dummy.c
- objectstore_openio.c
- partlist.c
- partlist.h
- pop3d.c
- proc.c
- proc.h
- promdata.p
- promdatagen
- prometheus.c
- prometheus.h
- promstatsd.c
- protocol.h
- proxy.c
- proxy.h
- quota.c
- quota.h
- quota_db.c
- reconstruct.c
- rfc822_header.c
- rfc822_header.h
- rfc822_header.st
- saslclient.c
- saslclient.h
- saslserver.c
- search_engines.c
- search_engines.h
- search_expr.c
- search_expr.h
- search_part.h
- search_query.c
- search_query.h
- search_sort.h
- search_squat.c
- search_test.c
- search_xapian.c
- seen.h
- seen_db.c
- sequence.c
- sequence.h
- setproctitle.c
- sievedir.c
- sievedir.h
- smmapd.c
- smtpclient.c
- smtpclient.h
- spool.c
- spool.h
- squat.c
- squat.h
- squat_build.c
- squat_dump.c
- squat_internal.c
- squat_internal.h
- squatter.c
- statuscache.h
- statuscache_db.c
- sync_client.c
- sync_log.c
- sync_log.h
- sync_reset.c
- sync_server.c
- sync_support.c
- sync_support.h
- telemetry.c
- telemetry.h
- tls.c
- tls.h
- tls_prune.c
- tls_th-lock.c
- tls_th-lock.h
- tz_err.et
- unexpunge.c
- user.c
- user.h
- userdeny.h
- userdeny_db.c
- vcard_support.c
- vcard_support.h
- version.c
- version.h
- webdav_db.c
- webdav_db.h
- xapian_wrap.cpp
- xapian_wrap.h
- xcal.c
- xcal.h
- xml_support.c
- xml_support.h
- xstats.c
- xstats.h
- xstats_metrics.h
- zoneinfo_db.c
- zoneinfo_db.h
jmap_mail_query.h @debian/3.4.1-2 — raw · history · blame
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | /* jmap_mail_query.h -- Helper routines for JMAP Email queries. * * Copyright (c) 1994-2018 Carnegie Mellon University. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The name "Carnegie Mellon University" must not be used to * endorse or promote products derived from this software without * prior written permission. For permission or any legal * details, please contact * Carnegie Mellon University * Center for Technology Transfer and Enterprise Creation * 4615 Forbes Avenue * Suite 302 * Pittsburgh, PA 15213 * (412) 268-7393, fax: (412) 268-7395 * innovation@andrew.cmu.edu * * 4. Redistributions of any form whatsoever must retain the following * acknowledgment: * "This product includes software developed by Computing Services * at Carnegie Mellon University (http://www.cmu.edu/computing/)." * * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * */ #ifndef JMAP_MAIL_QUERY_H #define JMAP_MAIL_QUERY_H #include <jansson.h> #include "strarray.h" #include "jmap_mail_query_parse.h" #include "jmap_util.h" #ifdef WITH_DAV #include <time.h> #include "hash.h" #include "ptrarray.h" #include "carddav_db.h" #include "message.h" #include "xapian_wrap.h" struct email_contactfilter { const char *accountid; struct carddav_db *carddavdb; char *addrbook; hash_table contactgroups; /* maps groupid to emails (strarray) */ }; extern void jmap_email_contactfilter_init(const char *accountid, const char *addressbookid, struct email_contactfilter *cfilter); extern void jmap_email_contactfilter_fini(struct email_contactfilter *cfilter); extern int jmap_email_contactfilter_from_filtercondition(struct jmap_parser *parser, json_t *filter, struct email_contactfilter *cfilter); struct emailbodies { ptrarray_t attslist; ptrarray_t textlist; ptrarray_t htmllist; }; #define EMAILBODIES_INITIALIZER { \ PTRARRAY_INITIALIZER, \ PTRARRAY_INITIALIZER, \ PTRARRAY_INITIALIZER \ } extern void jmap_emailbodies_fini(struct emailbodies *bodies); extern int jmap_emailbodies_extract(const struct body *root, struct emailbodies *bodies); struct jmap_email_filter_parser_rock { struct jmap_parser *parser; json_t *unsupported; }; extern void jmap_filter_parser_invalid(const char *field, void *rock); extern void jmap_filter_parser_push_index(const char *field, size_t index, const char *name, void *rock); extern void jmap_filter_parser_pop(void *rock); extern void jmap_email_filtercondition_validate(const char *field, json_t *arg, void *rock); /* Matches MIME message mime against the JMAP Email query * filter. * * Contact groups are looked up in the default addressbook * of accountid. Before/after filters are matched against * internaldate. * * Returns non-zero if filter matches. * On error, sets the JMAP error in err. */ struct matchmime { char *dbpath; xapian_dbw_t *dbw; message_t *m; const struct buf *mime; }; typedef struct matchmime matchmime_t; extern matchmime_t *jmap_email_matchmime_init(const struct buf *buf, json_t **err); extern void jmap_email_matchmime_free(matchmime_t **matchmimep); extern int jmap_email_matchmime(matchmime_t *matchmime, json_t *jfilter, const char *accountid, time_t internaldate, json_t **err); #endif /* WITH_DAV */ #endif /* JMAP_MAIL_QUERY_H */ |