History log of /dovecot/src/lib/nfs-workarounds.h
Revision Date Author Comments Expand
e34d170f8f0e084bd94bfbc1a7085ece67e508df 25-Jun-2012 Timo Sirainen <tss@iki.fi>

Make sure we check all the functions' return values. Minor API changes to simplify this. Checked using a patched clang that adds attribute(warn_unused_result) to all functions. This commit fixes several error handling mistakes.

/dovecot/src/anvil/main.c /dovecot/src/auth/auth-request.c /dovecot/src/auth/mech-digest-md5.c /dovecot/src/auth/mech-scram-sha1.c /dovecot/src/auth/passdb-blocking.c /dovecot/src/auth/password-scheme-otp.c /dovecot/src/auth/userdb-blocking.c /dovecot/src/auth/userdb-sql.c /dovecot/src/config/doveconf.c /dovecot/src/config/main.c /dovecot/src/config/old-set-parser.c /dovecot/src/dict/dict-commands.c /dovecot/src/dict/main.c /dovecot/src/director/director-connection.c /dovecot/src/director/director-host.c /dovecot/src/director/director.c /dovecot/src/director/doveadm-connection.c /dovecot/src/director/mail-host.c /dovecot/src/director/main.c /dovecot/src/director/test-user-directory.c /dovecot/src/doveadm/doveadm-dump-dbox.c /dovecot/src/doveadm/doveadm-mail-server.c /dovecot/src/doveadm/doveadm-mailbox-list-iter.c /dovecot/src/doveadm/doveadm-mount.c /dovecot/src/doveadm/doveadm-penalty.c /dovecot/src/doveadm/doveadm-stats.c /dovecot/src/doveadm/dsync/doveadm-dsync.c /dovecot/src/doveadm/dsync/dsync-brain-mailbox-tree.c /dovecot/src/doveadm/dsync/dsync-brain-mailbox.c /dovecot/src/doveadm/dsync/dsync-brain-mails.c /dovecot/src/doveadm/dsync/dsync-mailbox-import.c /dovecot/src/doveadm/dsync/dsync-mailbox-tree.c /dovecot/src/doveadm/dsync/dsync-slave.c /dovecot/src/doveadm/dsync/dsync-slave.h /dovecot/src/doveadm/server-connection.c /dovecot/src/doveadm/server-connection.h /dovecot/src/imap-login/client.c /dovecot/src/imap/cmd-fetch.c /dovecot/src/imap/cmd-idle.c /dovecot/src/imap/cmd-list.c /dovecot/src/imap/imap-client.c /dovecot/src/imap/imap-client.h /dovecot/src/imap/imap-fetch-body.c /dovecot/src/imap/imap-sync.c /dovecot/src/imap/main.c /dovecot/src/indexer/master-connection.c /dovecot/src/lib-auth/auth-client.c /dovecot/src/lib-imap/imap-parser.c /dovecot/src/lib-imap/imap-quote.c /dovecot/src/lib-index/mail-cache-compress.c /dovecot/src/lib-index/mail-cache-transaction.c /dovecot/src/lib-index/mail-cache.c /dovecot/src/lib-index/mail-index-fsck.c /dovecot/src/lib-index/mail-index-map-hdr.c /dovecot/src/lib-index/mail-index-modseq.c /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/mail-index-strmap.c /dovecot/src/lib-index/mail-index-sync-update.c /dovecot/src/lib-index/mail-index-transaction-private.h /dovecot/src/lib-index/mail-index-transaction-sort-appends.c /dovecot/src/lib-index/mail-index-transaction-update.c /dovecot/src/lib-index/mail-index-view-sync.c /dovecot/src/lib-index/mail-index-write.c /dovecot/src/lib-index/mail-index.c /dovecot/src/lib-index/mail-transaction-log-file.c /dovecot/src/lib-index/test-mail-index-transaction-update.c /dovecot/src/lib-index/test-mail-transaction-log-append.c /dovecot/src/lib-mail/message-header-decode.c /dovecot/src/lib-mail/message-part-serialize.c /dovecot/src/lib-mail/rfc822-parser.c /dovecot/src/lib-mail/test-istream-dot.c /dovecot/src/lib-ntlm/ntlm-des.c /dovecot/src/lib-ntlm/ntlm-des.h /dovecot/src/lib-ntlm/ntlm-encrypt.c /dovecot/src/lib-ntlm/ntlm-encrypt.h /dovecot/src/lib-otp/otp-hash.c /dovecot/src/lib-otp/otp-hash.h /dovecot/src/lib-storage/index/dbox-common/dbox-file-fix.c /dovecot/src/lib-storage/index/dbox-common/dbox-file.c /dovecot/src/lib-storage/index/dbox-common/dbox-sync-rebuild.c /dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c /dovecot/src/lib-storage/index/dbox-single/sdbox-copy.c /dovecot/src/lib-storage/index/imapc/imapc-mail.c /dovecot/src/lib-storage/index/imapc/imapc-storage.c /dovecot/src/lib-storage/index/index-mail.c /dovecot/src/lib-storage/index/index-search.c /dovecot/src/lib-storage/index/index-sort-string.c /dovecot/src/lib-storage/index/index-sort.c /dovecot/src/lib-storage/index/index-status.c /dovecot/src/lib-storage/index/index-storage.h /dovecot/src/lib-storage/index/index-sync-changes.c /dovecot/src/lib-storage/index/index-sync.c /dovecot/src/lib-storage/index/index-thread.c /dovecot/src/lib-storage/index/maildir/maildir-uidlist.c /dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c /dovecot/src/lib-storage/index/mbox/mbox-mail.c /dovecot/src/lib-storage/index/mbox/mbox-save.c /dovecot/src/lib-storage/index/mbox/mbox-storage.c /dovecot/src/lib-storage/index/mbox/mbox-storage.h /dovecot/src/lib-storage/index/mbox/mbox-sync.c /dovecot/src/lib-storage/index/pop3c/pop3c-client.c /dovecot/src/lib-storage/index/raw/raw-mail.c /dovecot/src/lib-storage/mail-search-build.c /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail.c /dovecot/src/lib-storage/mailbox-get.c /dovecot/src/lib-storage/mailbox-uidvalidity.c data-stack.c hash.c hostpid.c iostream-rawlog.c md4.c md5.c mountpoint.c nfs-workarounds.c nfs-workarounds.h seq-range-array.c seq-range-array.h test-base64.c test-network.c test-ostream-file.c test-seq-range-array.c /dovecot/src/log/log-connection.c /dovecot/src/log/log-connection.h /dovecot/src/login-common/client-common-auth.c /dovecot/src/login-common/login-proxy-state.c /dovecot/src/login-common/login-proxy.c /dovecot/src/login-common/ssl-proxy-openssl.c /dovecot/src/master/main.c /dovecot/src/master/service-anvil.c /dovecot/src/master/service-process.c /dovecot/src/master/service-process.h /dovecot/src/plugins/autocreate/autocreate-plugin.c /dovecot/src/plugins/expire/doveadm-expire.c /dovecot/src/plugins/expire/expire-plugin.c /dovecot/src/plugins/fts-lucene/fts-backend-lucene.c /dovecot/src/plugins/fts-squat/squat-trie.c /dovecot/src/plugins/fts-squat/squat-uidlist.c /dovecot/src/plugins/fts/fts-storage.c /dovecot/src/plugins/imap-acl/imap-acl-plugin.c /dovecot/src/plugins/imap-quota/imap-quota-plugin.c /dovecot/src/plugins/imap-zlib/imap-zlib-plugin.c /dovecot/src/plugins/quota/quota-maildir.c /dovecot/src/plugins/quota/quota.c /dovecot/src/plugins/stats/stats-connection.c /dovecot/src/plugins/virtual/virtual-mail.c /dovecot/src/plugins/virtual/virtual-sync.c /dovecot/src/plugins/zlib/doveadm-zlib.c /dovecot/src/plugins/zlib/ostream-zlib.c /dovecot/src/pop3/main.c /dovecot/src/pop3/pop3-client.c /dovecot/src/pop3/pop3-client.h /dovecot/src/pop3/pop3-commands.c /dovecot/src/replication/aggregator/notify-connection.c /dovecot/src/replication/replicator/notify-connection.c /dovecot/src/stats/main.c /dovecot/src/util/rawlog.c
04b8a90af181cc4c7959266855e8ed50a22ed413 25-Nov-2007 Timo Sirainen <tss@iki.fi>

NFS cache flushing updates. --HG-- branch : HEAD

bc564f1d3d953cf724828322b11ae89e0f59ffc9 18-Nov-2007 Timo Sirainen <tss@iki.fi>

NFS cache flushing APIs changed and backend implements it a bit differently. Hopefully this works now more correctly. --HG-- branch : HEAD

/dovecot/src/lib-index/mail-cache-compress.c /dovecot/src/lib-index/mail-cache-private.h /dovecot/src/lib-index/mail-cache-sync-update.c /dovecot/src/lib-index/mail-cache.c /dovecot/src/lib-index/mail-hash.c /dovecot/src/lib-index/mail-index-lock.c /dovecot/src/lib-index/mail-index-map.c /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/mail-index.c /dovecot/src/lib-index/mail-transaction-log-file.c /dovecot/src/lib-index/mail-transaction-log.c /dovecot/src/lib-index/mailbox-list-index-sync.c /dovecot/src/lib-index/mailbox-list-index.c /dovecot/src/lib-storage/index/maildir/maildir-keywords.c /dovecot/src/lib-storage/index/maildir/maildir-uidlist.c /dovecot/src/lib-storage/index/mbox/mbox-lock.c /dovecot/src/lib-storage/mailbox-list.c file-dotlock.c nfs-workarounds.c nfs-workarounds.h
4ee5b0b6c14f1f839e54e9d2c13a3c151e8caec0 16-Nov-2007 Timo Sirainen <tss@iki.fi>

nfs_flush_attr_cache() doesn't take flush_dir paramter anymore. Instead the directory is always flushed now. --HG-- branch : HEAD

9716b2665ee3938d3dfe64bda44d7c3ae3b55d30 16-Nov-2007 Timo Sirainen <tss@iki.fi>

nfs_safe_link(): Support linking files without original link count=1. Use it when copying maildir files, but only if mail_nfs_storage=yes. --HG-- branch : HEAD

e5ca66eb3527f7ec0b74f3ab4242ea89d5a89573 15-Nov-2007 Timo Sirainen <tss@iki.fi>

Added nfs_safe_link(). --HG-- branch : HEAD

dec85d9856c33f427a06dda01e0e50de0bc8fa7d 14-Nov-2007 Timo Sirainen <tss@iki.fi>

NFS attribute cache flushing fixes. nfs_flush_attr_cache() takes now flush_dir parameter and nfs_flush_attr_cache_fd() returns FALSE if file handle is already stale. --HG-- branch : HEAD

c25356d5978632df6203437e1953bcb29e0c736f 16-Sep-2007 Timo Sirainen <tss@iki.fi>

Changed .h ifdef/defines to use <NAME>_H format. --HG-- branch : HEAD

/dovecot/src/auth/auth-cache.h /dovecot/src/auth/auth-client-connection.h /dovecot/src/auth/auth-client-interface.h /dovecot/src/auth/auth-master-connection.h /dovecot/src/auth/auth-master-interface.h /dovecot/src/auth/auth-master-listener.h /dovecot/src/auth/auth-request-handler.h /dovecot/src/auth/auth-request.h /dovecot/src/auth/auth-stream.h /dovecot/src/auth/auth-worker-client.h /dovecot/src/auth/auth-worker-server.h /dovecot/src/auth/auth.h /dovecot/src/auth/common.h /dovecot/src/auth/db-ldap.h /dovecot/src/auth/db-passwd-file.h /dovecot/src/auth/db-sql.h /dovecot/src/auth/mech.h /dovecot/src/auth/mycrypt.h /dovecot/src/auth/otp-skey-common.h /dovecot/src/auth/passdb-blocking.h /dovecot/src/auth/passdb-cache.h /dovecot/src/auth/passdb.h /dovecot/src/auth/password-scheme.h /dovecot/src/auth/plain-common.h /dovecot/src/auth/userdb-blocking.h /dovecot/src/auth/userdb-static.h /dovecot/src/auth/userdb-vpopmail.h /dovecot/src/auth/userdb.h /dovecot/src/deliver/auth-client.h /dovecot/src/deliver/deliver.h /dovecot/src/deliver/duplicate.h /dovecot/src/deliver/mail-send.h /dovecot/src/deliver/smtp-client.h /dovecot/src/dict/dict-cache.h /dovecot/src/dict/dict-server.h /dovecot/src/imap-login/client-authenticate.h /dovecot/src/imap-login/client.h /dovecot/src/imap-login/imap-proxy.h /dovecot/src/imap/client.h /dovecot/src/imap/commands-util.h /dovecot/src/imap/commands.h /dovecot/src/imap/common.h /dovecot/src/imap/imap-expunge.h /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-messageset.h /dovecot/src/imap/imap-search.h /dovecot/src/imap/imap-sort.h /dovecot/src/imap/imap-status.h /dovecot/src/imap/imap-sync.h /dovecot/src/imap/imap-thread.h /dovecot/src/lib-auth/auth-client.h /dovecot/src/lib-auth/auth-server-connection.h /dovecot/src/lib-auth/auth-server-request.h /dovecot/src/lib-charset/charset-utf8.h /dovecot/src/lib-dict/dict-client.h /dovecot/src/lib-dict/dict-private.h /dovecot/src/lib-dict/dict-sql.h /dovecot/src/lib-dict/dict.h /dovecot/src/lib-imap/imap-base-subject.h /dovecot/src/lib-imap/imap-bodystructure.h /dovecot/src/lib-imap/imap-date.h /dovecot/src/lib-imap/imap-envelope.h /dovecot/src/lib-imap/imap-match.h /dovecot/src/lib-imap/imap-parser.h /dovecot/src/lib-imap/imap-quote.h /dovecot/src/lib-imap/imap-util.h /dovecot/src/lib-index/mail-cache-private.h /dovecot/src/lib-index/mail-cache.h /dovecot/src/lib-index/mail-hash.h /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/mail-index-sync-private.h /dovecot/src/lib-index/mail-index-transaction-private.h /dovecot/src/lib-index/mail-index-view-private.h /dovecot/src/lib-index/mail-index.h /dovecot/src/lib-index/mail-transaction-log-private.h /dovecot/src/lib-index/mail-transaction-log.h /dovecot/src/lib-index/mailbox-list-index-private.h /dovecot/src/lib-index/mailbox-list-index.h /dovecot/src/lib-mail/istream-header-filter.h /dovecot/src/lib-mail/mail-types.h /dovecot/src/lib-mail/message-address.h /dovecot/src/lib-mail/message-date.h /dovecot/src/lib-mail/message-decoder.h /dovecot/src/lib-mail/message-header-decode.h /dovecot/src/lib-mail/message-header-parser.h /dovecot/src/lib-mail/message-id.h /dovecot/src/lib-mail/message-parser.h /dovecot/src/lib-mail/message-part-serialize.h /dovecot/src/lib-mail/message-search.h /dovecot/src/lib-mail/message-send.h /dovecot/src/lib-mail/message-size.h /dovecot/src/lib-mail/quoted-printable.h /dovecot/src/lib-mail/rfc822-parser.h /dovecot/src/lib-ntlm/ntlm-byteorder.h /dovecot/src/lib-ntlm/ntlm-des.h /dovecot/src/lib-ntlm/ntlm-encrypt.h /dovecot/src/lib-ntlm/ntlm-flags.h /dovecot/src/lib-ntlm/ntlm-message.h /dovecot/src/lib-ntlm/ntlm-types.h /dovecot/src/lib-ntlm/ntlm.h /dovecot/src/lib-otp/otp-dictionary.h /dovecot/src/lib-otp/otp-hash.h /dovecot/src/lib-otp/otp-parity.h /dovecot/src/lib-otp/otp-parse.h /dovecot/src/lib-otp/otp.h /dovecot/src/lib-settings/settings.h /dovecot/src/lib-sql/sql-api-private.h /dovecot/src/lib-sql/sql-api.h /dovecot/src/lib-storage/index/cydir/cydir-storage.h /dovecot/src/lib-storage/index/cydir/cydir-sync.h /dovecot/src/lib-storage/index/dbox/dbox-file.h /dovecot/src/lib-storage/index/dbox/dbox-index.h /dovecot/src/lib-storage/index/dbox/dbox-storage.h /dovecot/src/lib-storage/index/dbox/dbox-sync.h /dovecot/src/lib-storage/index/index-mail.h /dovecot/src/lib-storage/index/index-sort.h /dovecot/src/lib-storage/index/index-storage.h /dovecot/src/lib-storage/index/index-sync-changes.h /dovecot/src/lib-storage/index/maildir/maildir-filename.h /dovecot/src/lib-storage/index/maildir/maildir-keywords.h /dovecot/src/lib-storage/index/maildir/maildir-storage.h /dovecot/src/lib-storage/index/maildir/maildir-sync.h /dovecot/src/lib-storage/index/maildir/maildir-uidlist.h /dovecot/src/lib-storage/index/mbox/istream-raw-mbox.h /dovecot/src/lib-storage/index/mbox/mbox-file.h /dovecot/src/lib-storage/index/mbox/mbox-from.h /dovecot/src/lib-storage/index/mbox/mbox-lock.h /dovecot/src/lib-storage/index/mbox/mbox-md5.h /dovecot/src/lib-storage/index/mbox/mbox-storage.h /dovecot/src/lib-storage/index/mbox/mbox-sync-private.h /dovecot/src/lib-storage/list/index-mailbox-list.h /dovecot/src/lib-storage/list/mailbox-list-fs.h /dovecot/src/lib-storage/list/mailbox-list-maildir.h /dovecot/src/lib-storage/list/mailbox-list-subscriptions.h /dovecot/src/lib-storage/list/subscription-file.h /dovecot/src/lib-storage/mail-copy.h /dovecot/src/lib-storage/mail-error.h /dovecot/src/lib-storage/mail-namespace.h /dovecot/src/lib-storage/mail-search.h /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mailbox-list-private.h /dovecot/src/lib-storage/mailbox-list.h /dovecot/src/lib-storage/mailbox-tree.h array-decl.h array.h backtrace-string.h base64.h bsearch-insert-pos.h buffer.h close-keep-errno.h compat.h crc32.h data-stack.h env-util.h failures.h fd-close-on-exec.h fd-set-nonblock.h fdpass.h file-cache.h file-copy.h file-dotlock.h file-lock.h file-set-size.h hash.h hex-binary.h hex-dec.h hmac-md5.h home-expand.h hostpid.h imem.h ioloop-internal.h ioloop-iolist.h ioloop-notify-fd.h ioloop.h iostream-internal.h istream-internal.h istream-seekable.h istream-tee.h istream.h lib-signals.h lib.h macros.h md4.h md5.h mempool.h mkdir-parents.h mmap-util.h module-context.h module-dir.h mountpoint.h network.h nfs-workarounds.h ostream-crlf.h ostream-internal.h ostream.h primes.h printf-format-fix.h process-title.h randgen.h read-full.h restrict-access.h restrict-process-size.h safe-memset.h safe-mkdir.h safe-mkstemp.h sendfile-util.h seq-range-array.h sha1.h str-find.h str-sanitize.h str.h strescape.h strfuncs.h unichar.h unix-socket-create.h unlink-directory.h unlink-lockfiles.h utc-mktime.h utc-offset.h var-expand.h write-full.h /dovecot/src/login-common/client-common.h /dovecot/src/login-common/common.h /dovecot/src/login-common/login-proxy.h /dovecot/src/login-common/master.h /dovecot/src/login-common/sasl-server.h /dovecot/src/login-common/ssl-proxy.h /dovecot/src/master/askpass.h /dovecot/src/master/auth-process.h /dovecot/src/master/capabilities.h /dovecot/src/master/child-process.h /dovecot/src/master/common.h /dovecot/src/master/dict-process.h /dovecot/src/master/dup2-array.h /dovecot/src/master/listener.h /dovecot/src/master/log.h /dovecot/src/master/login-process.h /dovecot/src/master/mail-process.h /dovecot/src/master/master-login-interface.h /dovecot/src/master/master-settings.h /dovecot/src/master/ssl-init.h /dovecot/src/master/syslog-util.h /dovecot/src/plugins/acl/acl-api-private.h /dovecot/src/plugins/acl/acl-api.h /dovecot/src/plugins/acl/acl-backend-vfile.h /dovecot/src/plugins/acl/acl-cache.h /dovecot/src/plugins/acl/acl-plugin.h /dovecot/src/plugins/convert/convert-plugin.h /dovecot/src/plugins/convert/convert-storage.h /dovecot/src/plugins/expire/auth-client.h /dovecot/src/plugins/expire/expire-env.h /dovecot/src/plugins/expire/expire-plugin.h /dovecot/src/plugins/fts-lucene/fts-lucene-plugin.h /dovecot/src/plugins/fts-lucene/lucene-wrapper.h /dovecot/src/plugins/fts-squat/fts-squat-plugin.h /dovecot/src/plugins/fts-squat/squat-trie-private.h /dovecot/src/plugins/fts-squat/squat-trie.h /dovecot/src/plugins/fts-squat/squat-uidlist.h /dovecot/src/plugins/fts/fts-api-private.h /dovecot/src/plugins/fts/fts-api.h /dovecot/src/plugins/fts/fts-plugin.h /dovecot/src/plugins/imap-quota/imap-quota-plugin.h /dovecot/src/plugins/lazy-expunge/lazy-expunge-plugin.h /dovecot/src/plugins/mail-log/mail-log-plugin.h /dovecot/src/plugins/mbox-snarf/mbox-snarf-plugin.h /dovecot/src/plugins/quota/quota-fs.h /dovecot/src/plugins/quota/quota-plugin.h /dovecot/src/plugins/quota/quota-private.h /dovecot/src/plugins/quota/quota.h /dovecot/src/plugins/trash/trash-plugin.h /dovecot/src/plugins/zlib/istream-zlib.h /dovecot/src/plugins/zlib/zlib-plugin.h /dovecot/src/pop3-login/client-authenticate.h /dovecot/src/pop3-login/client.h /dovecot/src/pop3-login/pop3-proxy.h /dovecot/src/pop3/capability.h /dovecot/src/pop3/client.h /dovecot/src/pop3/commands.h /dovecot/src/pop3/common.h
4f49b5cbfa6b9e6e4a213009ea6bb84337cb106a 12-Jul-2007 Timo Sirainen <tss@iki.fi>

Added nfs_flush_attr_cache() and nfs_flush_read_cache(). --HG-- branch : HEAD

c32823063d8050bd4c9b300e267f3eacf34d018d 12-Jul-2007 Timo Sirainen <tss@iki.fi>

Added nfs_safe_lstat() --HG-- branch : HEAD

49e358eebea107aad9919dcc4bd88cee8519ba2e 30-May-2006 Timo Sirainen <tss@iki.fi>

Include <sys/stat.h> before using struct stat, because some systems may use a macro to define struct stat to something else. --HG-- branch : HEAD

6143fece58262865ce89b5012b73ef08f2ad6abc 25-Apr-2006 Timo Sirainen <timo.sirainen@movial.fi>

Added nfs_safe_stat() to transparently work around ESTALE with stat(). --HG-- branch : HEAD

89b548af722113acb5d63dfffb44423cb60f91e4 25-Feb-2006 Timo Sirainen <tss@iki.fi>

Renamed safe-open.* to nfs-workarounds.*, safe_open() to nfs_safe_open() and added a new global NFS_ESTALE_RETRY_COUNT which everyone uses instead of defining their own. --HG-- branch : HEAD