Tree @lintian-fixes/main (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
- caldav_util.c
- caldav_util.h
- calsched_support.c
- calsched_support.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_cd.sh
- cyr_dbtool.c
- cyr_deny.c
- cyr_df.c
- cyr_expire.c
- cyr_info.c
- cyr_ls.c
- cyr_pwd.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.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_jwt.c
- http_jwt.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
- itip_support.c
- itip_support.h
- jcal.c
- jcal.h
- jmap_admin.c
- jmap_api.c
- jmap_api.h
- jmap_backup.c
- jmap_calendar.c
- jmap_calendar.h
- 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_notif.c
- jmap_notif.h
- jmap_push.c
- jmap_push.h
- 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
- relocate_by_id.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
- setproctitle.c
- sieve_db.c
- sieve_db.h
- 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
backend.h @lintian-fixes/main — 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 | /* backend.h -- IMAP server proxy for Cyrus Murder * * Copyright (c) 1994-2008 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 _INCLUDED_BACKEND_H #define _INCLUDED_BACKEND_H #include "global.h" #include "mboxlist.h" #include "prot.h" #include "protocol.h" #include "tls.h" /* Functionality to bring up/down connections to backend servers */ struct backend_cap_params { unsigned long capa; char *params; /* each BAR from FOO=BAR, in order, space separated */ }; struct backend { char hostname[MAX_PARTITION_LEN]; char banner[2048]; struct sockaddr_storage addr; int sock; /* protocol we're speaking */ struct protocol_t *prot; /* service-specific context */ void *context; /* only used by imapd and nntpd */ struct protstream *clientin; /* input stream from client to proxy */ struct backend **current, **inbox; /* pointers to current/inbox be ptrs */ struct prot_waitevent *timeout; /* event for idle timeout */ sasl_conn_t *saslconn; sasl_callback_t *sasl_cb; sasl_ssf_t ext_ssf; #ifdef HAVE_SSL SSL *tlsconn; SSL_SESSION *tlssess; #endif /* HAVE_SSL */ unsigned long capability; int num_cap_params; struct backend_cap_params *cap_params; struct buf last_result; struct protstream *in; /* from the be server to me, the proxy */ struct protstream *out; /* to the be server */ }; /* if cache is NULL, returns a new struct backend, otherwise returns * cache on success (and returns NULL on failure, but leaves cache alone) */ struct backend *backend_connect(struct backend *cache, const char *server, struct protocol_t *prot, const char *userid, sasl_callback_t *cb, const char **auth_status, int logfd); /* returns a new struct backend, where the infd and outfd file descriptors * are used to open the backend's 'in' and 'out' protstreams. Note that piped * backends do not support authentication */ struct backend *backend_connect_pipe(int infd, int outfd, struct protocol_t *prot, int do_tls, int logfd); int backend_starttls( struct backend *s, struct tls_cmd_t *tls_cmd, const char *c_cert_file, const char *c_key_file); int backend_ping(struct backend *s, const char *userid); void backend_disconnect(struct backend *s); char *intersect_mechlists(char *config, char *server); char *backend_get_cap_params(const struct backend *, unsigned long capa); int backend_version(struct backend *); #define CAPA(s, c) ((s)->capability & (c)) #endif /* _INCLUDED_BACKEND_H */ |