Commit graph

3772 commits

Author SHA1 Message Date
Michael James Gratton
aea90fd522 Doc comment and copyright updates. 2018-09-01 22:09:18 +10:00
Michael James Gratton
78dac45009 Avoid buffering when Imap.Serializer writes quoted strings. 2018-09-01 22:09:18 +10:00
Michael James Gratton
4890a0ef70 Add per-command response timeout so we get them for each individual command 2018-09-01 22:09:18 +10:00
Michael James Gratton
a5228edaa3 Ensure IDLE is not sent after is it is disabled for a connection.
Since the idle timer was not being cancelled, when idle_when_quiet was
set to false the connection would still send IDLE. This also removes the
need to send a NOOP to get in/out of IDLE.
2018-09-01 22:09:18 +10:00
Michael James Gratton
c24cba0516 Fix console app after recent ClientConnection API changes. 2018-09-01 22:09:18 +10:00
Michael James Gratton
f8e4c2ad93 Remove AUTHENTICATE-specific parameter and IMAP session code.
This is no longer needed now that AuthenticateCommand takes care of its
own continuations.
2018-09-01 22:09:18 +10:00
Michael James Gratton
b74190e010 Don't send commands while another has an active command continuation.
Issue #26 underscored Geary's buggy behaviour in sending commands while
an IDLE command was active - when a new command was queued, DONE would be
sent but then the new command would also be sent without waiting for the
status response for the IDLE command from the server, in violation of
RFC 3501 sections 2.2.1 and 5.5.

A quick fix was to ensure that the new command was held while DEIDLING,
but because of the way the synchronization process between
ClientConnection and the Serialiser works, there is a race that allows
any further commands added to be sent while the IDLE DONE had not yet
been flushed: DONE gets queued, additional command gets queued, then
both get flushed.

Fixing this required re-working how ClientConnection and Serializer
interacted, which was a major re-write. Serializer no longer buffers
any data - it simply writes it out to its underlying stream.
ClientConnection now queues commands and writes them out one by one,
requiring Command implementations to manage stalling the queue until
their expected completions have been received. Literals are hence
written by their command's serialisation process, which gets prompted
by an event from ClientConnection. The two commands that require
non-literal continuations, IDLE and AUTHENTICATE, now manage that
themselves.

As a result, only one command can be serialised at a time, and no
additional commands can be serialised while another is still waiting for
a continuation. Also, command-specific details can be implemented by
command itself, without needing workarounds in the serialiser,
connection, or session.
2018-09-01 22:09:18 +10:00
Michael James Gratton
ab9d0c27ad Make Imap.Command a top-level type rather than inherit from Parameter.
Instead, make the args property a parameter list, and add params to that.

This means Command's serialize method have a different signature compared
to Parameter's, letting us do some more interesting things with it.
2018-09-01 22:09:18 +10:00
Michael James Gratton
1de86f3316 Replace Imap.Parameter.serialize tag arg with a cancellable.
The tag arg was obsolete anyway, and this lets us cancel writes as soon
as they happen.
2018-09-01 22:09:18 +10:00
Michael James Gratton
8988a571bc Add Geary.Nonblocking.Queue.is_empty. 2018-09-01 22:09:18 +10:00
Joel Duncan
0d64fdaa6b Change starttls command to uppercase to support ProtonMail Bridge 2018-09-01 22:09:18 +10:00
Michael James Gratton
51b44f0f4b Remove ListParameter.parent property so lists can have multiple parents.
The ListParameter.parent property only existed to make the deserialier's
life easier, but is also why sketchy code was needed for appending search
criteria from a ServerSearchEmail replay op to the actual IMAP search
command sent to the server.

This removes the property altogether, and replaces its only use in
Deserialier with a stack, as nature intended. This means lists can be
added to more than one other list, and e.g. when a search is executed,
the search critera can be used for multiple requests.
2018-09-01 22:09:18 +10:00
Michael James Gratton
e11bdc863b Rename ListParameter.append to extend and make it work as expected.
I.e. Don't modify the list being appended from, so that when the
ServerSearchEmail replay op is re-executed after a network error, the
search criteria have not disappeared.
2018-09-01 22:09:18 +10:00
Mario Blättermann
d99e16e139 Update German translation 2018-08-31 19:03:49 +00:00
Kukuh Syafaat
8cf7bf9a10 Update Indonesian translation 2018-08-30 10:46:37 +00:00
Michael Gratton
b08eb3e361 Update copyright year in About dialog 2018-08-30 00:52:37 +10:00
Emin Tufan Çetin
88e44d096d Update Turkish translation 2018-08-27 08:41:24 +00:00
Kukuh Syafaat
ce0ad417b2 Update Indonesian translation 2018-08-27 07:07:06 +00:00
Piotr Drąg
3305e2594a Update Polish translation 2018-08-26 18:22:31 +02:00
Baurzhan Muftakhidinov
99997f9a6e Update Kazakh translation 2018-08-26 03:33:13 +00:00
Mario Blättermann
9426546dc8 Update German translation 2018-08-25 21:22:23 +00:00
Michael James Gratton
b9af50c005 Add translation comments to conversation email menu 2018-08-23 18:40:24 +10:00
Michael Gratton
ce9868d841 Fix a crash when detaching composer without focus.
Don't assume the focus'ed widget has a non-null parent.
2018-08-22 20:11:08 +10:00
Michael Gratton
4ccf463e16 Fix a crash when merging email email in DB.
Check that the DB's version of the email has flags before using them.
2018-08-22 20:08:26 +10:00
Michael James Gratton
77ce298aa3 Merge branch 'single-message-delete' into 'master'
Implement single-message deletion for messages in the current folder

See merge request GNOME/geary!36
2018-08-22 20:06:43 +10:00
Alex Henrie
6c8bc2c580 Implement single-message deletion for messages in the current folder 2018-08-22 20:04:11 +10:00
Emin Tufan Çetin
f4825d7319 Update Turkish translation 2018-08-12 10:48:06 +00:00
Michael Gratton
ea77494219 Merge branch 'iso-codes' into 'master'
build: obtain iso-codes prefix from pkg-config

See merge request GNOME/geary!38
2018-08-09 13:36:52 +00:00
Jan Tojnar
beec7ff0fe
build: obtain iso-codes prefix from pkg-config 2018-08-09 15:18:33 +02:00
Rafael Fontenelle
71617bf9b2 Update Brazilian Portuguese translation 2018-08-06 18:38:42 +00:00
Jiri Grönroos
ca0ab11393 Update Finnish translation 2018-08-06 16:25:37 +00:00
Michael James Gratton
cf6b8ccc6d Fix brown-paper-bag build failure. 2018-08-04 15:35:01 +10:00
Michael James Gratton
f79927430e Fix scan error when loading a message with an invalid Date header.
Don't silently fail to parse Date headers that are actually longs, since
that will throw an error when the message is being loaded by the
conversation monitor. Handle cases where that error might be thrown
gracefully so we can attempt to save/load/display the message anyway.
2018-08-04 14:43:40 +10:00
Michael James Gratton
c8719a57e4 Fix mallard validation errors in manual pages. 2018-08-04 11:01:59 +10:00
Mario Blättermann
85921dfde1 Update German translation 2018-08-03 11:04:22 +00:00
Mario Blättermann
a8fdf3afa7 Update German translation 2018-08-03 08:23:44 +00:00
Michael James Gratton
f991fa5f46 Enable users to attempt to recover from a scan error.
Report an IMAP service problem when a scan error occurs instead of an
account problem, so a retry button is presented.
2018-08-02 20:27:14 +10:00
Michael James Gratton
9ba9417d72 Remove "%LATEST_RECORD_VERSION" from GnuTLS priority string.
Per advice on in GNOME/glib-networking#37
2018-08-02 20:20:51 +10:00
Michael James Gratton
66c41fba56 Fix a crash on exit when a search folder is open. 2018-08-02 20:20:51 +10:00
Michael James Gratton
d2ef122a94 Fix a crash when getting an unsolicited FETCH without any flags. 2018-08-02 20:20:51 +10:00
Michael James Gratton
19a1202062 Fix a crash when adding an attachment from a virtual folder. 2018-08-02 20:20:51 +10:00
Michael James Gratton
8dc2222b28 Add a missing cancellable to an engine call in the ConversationMonitor.
This may work around a crash reported on the mailing list:
https://mail.gnome.org/archives/geary-list/2018-August/msg00009.html
2018-08-02 20:20:51 +10:00
Michael Gratton
c43d86f35a Add contribution guide 2018-08-01 05:28:08 +00:00
Piotr Drąg
96faa6f1d1 Update Polish translation 2018-07-29 19:51:37 +02:00
Michael James Gratton
87b7e4daf6 Fix segfault when closing an account that's not open.
Don't call Engine.get_account_instance when closing an account, it may
try to re-open one that is already closed.
2018-07-29 12:54:26 +10:00
Michael James Gratton
69dfc09656 Remove errant print() call added by commit 06594188. 2018-07-29 12:54:26 +10:00
Michael Gratton
1f6f223e07 Merge branch 'wip/43-dialogs-not-focused' into 'master'
Fix dialogs not being focused when first shown

Closes #43

See merge request GNOME/geary!32
2018-07-29 01:28:30 +00:00
Michael Gratton
4860d84bbe Merge branch 'wip/fix-return-path-dot-quoting' into 'master'
Don't quote an RFC 822 mailbox local part if it has a '.' in the middle

See merge request GNOME/geary!34
2018-07-28 08:07:31 +00:00
Michael James Gratton
183a9f3e7a Don't quote an RFC 822 mailbox local part if it has a '.' in the middle.
This breaks sending mail via Yahoo since it doesn't like it if the SMTP
return path local part is quoted.

We can't use GMime.utils_quote_string since it's currently broken, so
implement our own quoter.
2018-07-28 17:57:48 +10:00
Michael Gratton
a682e17aa1 Merge branch 'paste-shortcuts' into 'master'
Fix context of "Paste Without Formatting"

See merge request GNOME/geary!30
2018-07-28 05:56:38 +00:00