Tree @debian/3.0.12-1 (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
- 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_sphinxmgr.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_client.c
- http_client.h
- http_dav.c
- http_dav.h
- http_dblookup.c
- http_err.et
- http_ischedule.c
- http_proxy.c
- http_proxy.h
- http_rss.c
- http_tzdist.c
- http_webdav.c
- httpd.c
- httpd.h
- ical_support.c
- ical_support.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
- json_support.h
- lmtp_sieve.c
- lmtp_sieve.h
- lmtpd.c
- lmtpd.h
- lmtpengine.c
- lmtpengine.h
- lmtpstats.c
- lmtpstats.h
- lmtpstats.snmp
- mailbox.c
- mailbox.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
- 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
- protocol.h
- proxy.c
- proxy.h
- pushstats.c
- pushstats.h
- pushstats.snmp
- 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_sphinx.c
- search_squat.c
- search_test.c
- search_xapian.c
- seen.h
- seen_db.c
- sequence.c
- sequence.h
- setproctitle.c
- smmapd.c
- smtpclient.c
- smtpclient.h
- sphinxmgr_client.c
- sphinxmgr_client.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
cyr_userseen.c @debian/3.0.12-1 — 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 | /* ctl_userseen.c - tool to remove seen records for owners. * * 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. */ #include <config.h> #ifdef HAVE_UNISTD_H #include <unistd.h> #endif #include <stdlib.h> #include <stdio.h> #include <string.h> #include <fcntl.h> #include <sys/stat.h> #include "global.h" #include "exitcodes.h" #include "libcyr_cfg.h" #include "mailbox.h" #include "mboxlist.h" #include "seen.h" #include "util.h" #include "xmalloc.h" /* config.c stuff */ static int do_remove = 0; static void usage(void) { fprintf(stderr, "cyr_userseen [-C <altconfig>] -d\n"); exit(-1); } /* Callback for use by delete_seen */ static int deluserseen(const mbentry_t *mbentry, void *rock __attribute__((unused))) { struct mailbox *mailbox = NULL; int r = 0; r = mailbox_open_irl(mbentry->name, &mailbox); if (r) goto done; char *userid = mboxname_to_userid(mbentry->name); if (userid) { printf("removing seen for %s on %s\n", userid, mailbox->name); if (do_remove) seen_delete_mailbox(userid, mailbox); free(userid); } mailbox_close(&mailbox); done: return r; } int main(int argc, char *argv[]) { extern char *optarg; int opt; char *alt_config = NULL; while ((opt = getopt(argc, argv, "C:d")) != EOF) { switch (opt) { case 'C': /* alt config file */ alt_config = optarg; break; case 'd': do_remove = 1; break; default: usage(); break; } } cyrus_init(alt_config, "cyr_userseen", 0, 0); mboxlist_init(0); mboxlist_open(NULL); /* build a list of mailboxes - we're using internal names here */ mboxlist_allmbox("", deluserseen, NULL, /*incdel*/0); mboxlist_close(); mboxlist_done(); return 0; } |