mox/imapserver
Mechiel Lukkien 141637df43
when creating a mailbox subscription, don't just try to insert a record into the database and handle bstore.ErrUnique, the transaction will have been marked as botched
behaviour around failing DB calls that change data (insert/update) was changed
in bstore quite some time ago. the tx state in bstore would become inconsistent
when one or more (possibly unique) indexes had been modified, but then an
ErrUnique would occur for the next index. bstore doesn't know how to roll back
the partial changes during a transaction, so it marks the tx as botched and
refuses further operations. so, we cannot just try to insert, wait for a
possible ErrUnique, but then still try to continue with the transaction.
instead, we check if the record exists and only insert it if we couldn't find
it.

found while working on webmail.
2023-08-01 10:14:02 +02:00
..
append_test.go implement storing non-system/well-known flags (keywords) for messages and mailboxes, with imap 2023-06-24 00:24:43 +02:00
authenticate_test.go imap continuations must have a space after the "+" 2023-07-24 19:54:55 +02:00
condstore_test.go add condstore & qresync imap extensions 2023-07-24 21:25:50 +02:00
copy_test.go improve training of junk filter 2023-02-11 23:00:12 +01:00
create_test.go mox! 2023-01-30 14:27:06 +01:00
delete_test.go only send \NonExistent for IMAP4rev2, and automatically subscribe to imported mailboxes 2023-02-17 18:35:11 +01:00
error.go for imap/smtp syntax errors, only echo the remaining buffer if the connection is authenticated 2023-03-10 11:32:34 +01:00
expunge_test.go mox! 2023-01-30 14:27:06 +01:00
fetch.go add condstore & qresync imap extensions 2023-07-24 21:25:50 +02:00
fetch_test.go mox! 2023-01-30 14:27:06 +01:00
fuzz_test.go add condstore & qresync imap extensions 2023-07-24 21:25:50 +02:00
idle_test.go imap continuations must have a space after the "+" 2023-07-24 19:54:55 +02:00
list.go mox! 2023-01-30 14:27:06 +01:00
list_test.go mox! 2023-01-30 14:27:06 +01:00
lsub_test.go mox! 2023-01-30 14:27:06 +01:00
move_test.go mox! 2023-01-30 14:27:06 +01:00
pack.go add two new log levels for tracing sensitive auth protocol messages, and bulk data messages 2023-02-03 20:33:19 +01:00
parse.go add condstore & qresync imap extensions 2023-07-24 21:25:50 +02:00
prefixconn.go mox! 2023-01-30 14:27:06 +01:00
protocol.go add condstore & qresync imap extensions 2023-07-24 21:25:50 +02:00
protocol_test.go add condstore & qresync imap extensions 2023-07-24 21:25:50 +02:00
rename_test.go fix bug in imapserver with rename of inbox, and add consistency checks 2023-06-30 17:19:29 +02:00
search.go implement decoding charsets (other than ascii and utf-8) while reading textual message parts, and improve search 2023-07-28 22:15:23 +02:00
search_test.go add condstore & qresync imap extensions 2023-07-24 21:25:50 +02:00
selectexamine_test.go implement storing non-system/well-known flags (keywords) for messages and mailboxes, with imap 2023-06-24 00:24:43 +02:00
server.go when creating a mailbox subscription, don't just try to insert a record into the database and handle bstore.ErrUnique, the transaction will have been marked as botched 2023-08-01 10:14:02 +02:00
server_test.go add condstore & qresync imap extensions 2023-07-24 21:25:50 +02:00
starttls_test.go mox! 2023-01-30 14:27:06 +01:00
status_test.go mox! 2023-01-30 14:27:06 +01:00
store_test.go add condstore & qresync imap extensions 2023-07-24 21:25:50 +02:00
subscribe_test.go mox! 2023-01-30 14:27:06 +01:00
unselect_test.go mox! 2023-01-30 14:27:06 +01:00
unsubscribe_test.go mox! 2023-01-30 14:27:06 +01:00
utf7.go mox! 2023-01-30 14:27:06 +01:00
utf7_test.go mox! 2023-01-30 14:27:06 +01:00