+ stats: Track also wall clock time for commands.
+ pop3_migration plugin improvements to try harder to match the UIDLs
correctly.
- - imap: SEARCH/SORT PARTIAL reponses may have been too large.
+ - imap: SEARCH/SORT PARTIAL responses may have been too large.
- doveadm backup: Fixed assert-crash when syncing mailbox deletion.
v2.2.10 2013-11-25 Timo Sirainen <tss@iki.fi>
quota recalculation ignored the box).
- Index file handling fixes
- mbox syncing fixes
- - Wrong endianess index files still weren't silently rebuilt
+ - Wrong endianness index files still weren't silently rebuilt
- IMAP quota plugin: GETQUOTAROOT returned the mailbox name wrong the
namespace had a prefix or if its separator was non-default
- IMAP: If client was appending multiple messages with MULTIAPPEND
X-IMAP header crashed deliver.
- deliver: If mail_debug=yes, drop out DEBUG environment before
calling sendmail binary. Postfix's sendmail didn't really like it.
- - mbox: X-UID brokeness fixes broke rc25 even with valid X-UID headers.
+ - mbox: X-UID brokenness fixes broke rc25 even with valid X-UID headers.
Now the code should finally work right.
- Maildir: When syncing a huge maildir, touch dovecot-uidlist.lock file
once in a while to make sure it doesn't get overwritten by another
- Maildir++ quota: We didn't handle NUL bytes in maildirsize files very
well. Now the file is rebuilt when they're seen (NFS problem).
- Index/view handling fix should fix some crashes/errors
- - If index files were moved to a different endianess machine, Dovecot
+ - If index files were moved to a different endianness machine, Dovecot
logged all sorts of errors instead of silently rebuilding them.
- Convert plugin didn't change hierarchy separators in mailbox names.
- PostgreSQL authentication could have lost requests once in a while
#args = dovecot
}
-# System users (NSS, /etc/passwd, or similiar).
+# System users (NSS, /etc/passwd, or similar).
# In many systems nowadays this uses Name Service Switch, which is
# configured in /etc/nsswitch.conf. <doc/wiki/AuthDatabase.Passwd.txt>
#passdb {
#args =
#}
-# Shadow passwords for system users (NSS, /etc/shadow or similiar).
+# Shadow passwords for system users (NSS, /etc/shadow or similar).
# Deprecated by PAM nowadays.
# <doc/wiki/PasswordDatabase.Shadow.txt>
#passdb {
## User databases
##
-# System users (NSS, /etc/passwd, or similiar). In many systems nowadays this
+# System users (NSS, /etc/passwd, or similar). In many systems nowadays this
# uses Name Service Switch, which is configured in /etc/nsswitch.conf.
userdb {
# <doc/wiki/AuthDatabase.Passwd.txt>
# settings, like: host=sql1.host.org host=sql2.host.org
#
# pgsql:
-# For available options, see the PostgreSQL documention for the
+# For available options, see the PostgreSQL documentation for the
# PQconnectdb function of libpq.
# Use maxconns=n (default 5) to change how many connections Dovecot can
# create to pgsql.
.\"-------------------------------------
.TP
.I binary arguments
-options and arguments, wich will be passed through to the
+options and arguments, which will be passed through to the
.IR binary .
.\"------------------------------------------------------------------------
.SH EXAMPLE
There are a few ways to avoid most free() calls however: data stack and
memory pools.
-Data stack works in somewhat similiar way to C's control stack. alloca() is
+Data stack works in somewhat similar way to C's control stack. alloca() is
quite near to what it does, but there's one major difference: Stack frames
are explicitly defined, so functions can return values allocated from data
stack. t_strdup_printf() call is an excellent example of why this is
AC_SUBST(RUN_TEST)
])
-# Substitute every var in the given comma seperated list
+# Substitute every var in the given comma separated list
AC_DEFUN([AX_SUBST_L],[
m4_foreach([__var__], [$@], [AC_SUBST(__var__)])
])
dnl **
-dnl ** Endianess
+dnl ** Endianness
dnl **
dnl At least Apple's gcc supports __BIG_ENDIAN__ and __LITTLE_ENDIAN__
const unsigned char *raw_password, size_t size,
const char **error_r);
-/* check wich of the algorithms Blowfisch, SHA-256 and SHA-512 are
+/* check which of the algorithms Blowfisch, SHA-256 and SHA-512 are
supported by the used libc's/glibc's crypt() */
void password_scheme_register_crypt(void);
config_filter_match_local_name(const struct config_filter *mask,
const char *filter_local_name)
{
- /* Handle multiple names seperated by spaces in local_name
+ /* Handle multiple names separated by spaces in local_name
* Ex: local_name "mail.domain.tld domain.tld mx.domain.tld" { ... } */
const char *const *local_name = t_strsplit_spaces(mask->local_name, " ");
break;
}
}
- /* skip parameters if error has already occured */
+ /* skip parameters if error has already occurred */
if (!found || conn->method_err != 0) {
json_parse_skip_next(conn->json_parser);
conn->json_state = JSON_STATE_COMMAND_PARAMETER_KEY;
a worker, the imap-urlauth service establishes a control connection to the
imap-urlauth-worker service. In the handshake phase of the control protocol,
the connection of the client is passed to the worker. Once the worker
- finishes, a new worker is started and the client connection is tranfered to
+ finishes, a new worker is started and the client connection is transfered to
it, unless the client is disconnected.
- imap-urlauth-worker:
}
if (ret == 0) {
/* CATENATE contained only URLs. Finish it and see if there
- are more messsages. */
+ are more messages. */
cmd_append_finish_catenate(cmd);
imap_parser_reset(ctx->save_parser);
return cmd_append_parse_new_msg(cmd);
return 0;
if (count == 1 && !root) {
- /* only one child - special case to avoid extra paranthesis */
+ /* only one child - special case to avoid extra parenthesis */
node = mail_thread_iterate_next(iter, &child_iter);
str_printfa(str, "%u", node->uid);
if (child_iter != NULL) {
o_stream_unref(&output);
/* we could have already handled LOGOUT, or we might need to continue
- pending ambigious commands. */
+ pending ambiguous commands. */
if (client->disconnected)
client_destroy(client, NULL);
else
return -1;
}
- /* MAC algoritm is used for PBKDF2 and keydata hashing */
+ /* MAC algorithm is used for PBKDF2 and keydata hashing */
return o_stream_encrypt_keydata_create_v2(estream, malg);
}
}
return 0;
}
-/* TODO: Arrange array searches roughly in order of likelyhood of a match.
+/* TODO: Arrange array searches roughly in order of likelihood of a match.
TODO: Make some array of the arrays, so this can be a foreach loop.
TODO: Check for Hangul.
TODO: Add Hyphens U+002D HYPHEN-MINUS, U+2010 HYPHEN, possibly also
/* Generic email content tokenizer. Cuts text into tokens. */
/* Settings:
- "maxlen" Maximum length of token, before an arbitary cut off is made.
+ "maxlen" Maximum length of token, before an arbitrary cut off is made.
Defaults to FTS_DEFAULT_TOKEN_MAX_LENGTH.
"algorithm", accepted values are "simple" or "tr29". Defines the
array_append(&failed_requests, &reqs[i], 1);
}
- /* update timout */
+ /* update timeout */
if (i < count)
new_to = reqs[i]->timeout_time;
return ret;
}
- /* sort by minumum attempts for fairness */
+ /* sort by minimum attempts for fairness */
return ((*req2)->attempts - (*req1)->attempts);
}
/* Copyright (c) 2002-2017 Dovecot authors, see the included COPYING file */
-/* Implementated against draft-ietf-imapext-sort-10 and
+/* Implemented against draft-ietf-imapext-sort-10 and
draft-ietf-imapext-thread-12 */
#include "lib.h"
messages. The caller will then just have to
fallback to generating the value itself.
- We can't simply reopen the cache flie, because
+ We can't simply reopen the cache file, because
using it requires also having updated file
offsets. */
if (errno != ESTALE)
*/
/* Returns TRUE if this message part has content-type "text/plain",
- chaset "us-ascii" and content-tranfer-encoding "7bit" */
+ chaset "us-ascii" and content-transfer-encoding "7bit" */
bool message_part_data_is_plain_7bit(const struct message_part *part)
ATTR_PURE;
program_client_net_connect_again(pclient);
}
-/* see if connect suceeded or not, if it did, then proceed
+/* see if connect succeeded or not, if it did, then proceed
normally, otherwise try reconnect to next address */
static
void program_client_net_connected(struct program_client *pclient)
const char **error_r);
/* Call for setting extra parameters for authentication, these are mechanism
- dependant. -1 = error, 0 = not found, 1 = ok
+ dependent. -1 = error, 0 = not found, 1 = ok
value can be NULL. */
int dsasl_client_set_parameter(struct dsasl_client *client,
const char *param, const char *value,
/* now make sure that we read everything already buffered in OpenSSL
into the stream (without reading anything more). this makes I/O loop
- behave similary for ssl-istream as file-istream. */
+ behave similarly for ssl-istream as file-istream. */
sstream->ssl_io->input_handler = FALSE;
stream->max_buffer_size = (size_t)-1;
while ((ret = SSL_read(ssl_io->ssl, buffer, sizeof(buffer))) > 0) {
/* Copyright (c) 2006-2017 Dovecot authors, see the included COPYING file */
-/* The idea is that we use 32bit integers for string sort IDs which specifiy
+/* The idea is that we use 32bit integers for string sort IDs which specify
the sort order for primary sort condition. The whole 32bit integer space is
used and whenever adding a string, the available space is halved and the new
ID is added in the middle. For example if we add one mail the first time, it
if (list->set.control_dir == NULL && list->set.inbox_path == NULL &&
(ns->flags & NAMESPACE_FLAG_INBOX_ANY) != 0) {
- /* put the temp files into tmp/ directory preferrably */
+ /* put the temp files into tmp/ directory preferably */
storage->temp_prefix = p_strconcat(_storage->pool, "tmp/",
storage->temp_prefix, NULL);
dir = mailbox_list_get_root_forced(list, MAILBOX_LIST_PATH_TYPE_DIR);
struct maildir_index_header *mhdr = uidlist->mhdr;
if (mhdr->uidlist_mtime == 0 && uidlist->version != UIDLIST_VERSION) {
- /* upgrading from older verson. don't update the
+ /* upgrading from older version. don't update the
uidlist times until it uses the new format */
uidlist->recreate = TRUE;
return;
fsdir = opendir(path);
if (fsdir == NULL) {
if (ENOTFOUND(errno)) {
- /* root) user gave invalid hiearchy, ignore
+ /* root) user gave invalid hierarchy, ignore
sub) probably just race condition with other client
deleting the mailbox. */
return 0;
*
* priv/<GUID>/vendor/vendor.dovecot/pvt/server/foo
*
- * would be refered to as:
+ * would be referred to as:
*
* vendor/vendor.dovecot/pvt/server/foo
*
if (fd == -1)
return -1;
if (fdatasync(fd) < 0) {
- /* Some OSes/FSes don't allow fsyncing directores. Silently
+ /* Some OSes/FSes don't allow fsyncing directories. Silently
ignore the problem. */
if (errno == EBADF) {
/* e.g. NetBSD */
extern void sha1_result(struct sha1_ctxt *, void *);
-/* compatibilty with other SHA1 source codes */
+/* compatibility with other SHA1 source codes */
typedef struct sha1_ctxt SHA1_CTX;
#define SHA1Init(x) sha1_init((x))
#define SHA1Update(x, y, z) sha1_loop((x), (y), (z))
}
}
-/* *************************** Public Inteface ************************ */
+/* *************************** Public Interface ************************ */
void sha3_256_init(void *context)
{
return FATAL_TEST_ABORT; /* abort, things are messed up with t_pop */
*undo_ptr = undo_data;
undo_ptr = NULL;
- /* t_pop musn't abort, that would cause recursion */
+ /* t_pop mustn't abort, that would cause recursion */
things_are_messed_up = TRUE;
if (t_id != NONEXISTENT_STACK_FRAME_ID && !t_pop(&t_id))
return FATAL_TEST_ABORT; /* abort, things are messed up with us */
/* Log a warning after 1 secs when we've been all the time busy writing the
log connection. */
#define LOG_WARN_PENDING_COUNT (1000 / MAX_MSECS_PER_CONNECTION)
-/* If we keep beeing busy, log a warning every 60 seconds. */
+/* If we keep being busy, log a warning every 60 seconds. */
#define LOG_WARN_PENDING_INTERVAL (60 * LOG_WARN_PENDING_COUNT)
struct log_client {