Manos Pitsidianakis
df638cceec
melib/connections: remove stale failing doc code example
...
This leftover doc test/example was failing to compile, so remove it.
2023-08-16 19:50:48 +03:00
Manos Pitsidianakis
97d3686815
melib/connections: use Happy Eyeballs algorithm Ꙭ
...
This commit adds a Happy Eyeballs [1] implementation taken from the
happy-eyeballs crate, which is in public domain.
While the function lookup_ip[0] iterates through the addresses returned by
A and AAAA records from a DNS lookup, it returns the first one which
always is an IPv4 address, unless there only is an AAAA record.
RFC6555 [1] recommends an algorithm for choosing the fastest address to
connect to, called "Happy Eyeballs". Ꙭ
[0]: melib/src/utils/connections.rs:497
[1]: https://www.rfc-editor.org/rfc/rfc6555
Fixes #268
2023-08-15 09:55:46 +03:00
kdwarn
6578a56668
Update cargo install directions
...
The release available on crates.io is 2 years old and would not compile ("enum `TokenTree` is private"), but installing from repo works.
2023-08-14 18:35:09 +00:00
Manos Pitsidianakis
0f60009ea9
Makefile: add RUSTFLAGS with -D warnings
2023-08-11 19:15:14 +03:00
Manos Pitsidianakis
5c2b04719b
Normalize std::fmt::* imports
2023-08-11 13:16:47 +03:00
Manos Pitsidianakis
7c9a4b4b7c
meli: Move components/mail -> mail
2023-08-11 13:01:32 +03:00
Manos Pitsidianakis
64ab65ddff
meli: Move components/contacts -> contacts
2023-08-11 12:49:06 +03:00
Manos Pitsidianakis
005bf3881e
meli: Move components/utilities -> utilities
2023-08-11 12:46:16 +03:00
Manos Pitsidianakis
a5446975c2
terminal: move braille and screen to their own module files
2023-08-11 11:00:59 +03:00
Manos Pitsidianakis
7c7f6e1923
melib/thread: don't increase Thread length for duplicates
...
If an envelope that was already in the Threads object was inserted,
the only modification would be to erroneously increase the Thread len by
one.
2023-08-10 18:48:53 +03:00
Manos Pitsidianakis
84081f4ed7
melib/nntp: minor style fix
2023-08-10 18:48:36 +03:00
Manos Pitsidianakis
bf543855dc
melib/email: add PartialEq<str> for MessageID
2023-08-10 18:45:44 +03:00
Manos Pitsidianakis
448e0635e0
melib/nntp: log error when command length exceeds 512 octets
...
According to RFC 3977:
> Command lines MUST NOT exceed 512 octets, which includes the
> terminating CRLF pair
This commit adds a log::error entry when any sent command exceeds that
limit and recommends the user to report this as a bug.
2023-08-10 18:31:22 +03:00
Manos Pitsidianakis
4e654d2d02
melib/nntp: limit LIST ACTIVE command length to 512 octets
...
According to RFC 3977:
> Command lines MUST NOT exceed 512 octets, which includes the
> terminating CRLF pair
Sending a `LIST ACTIVE` command with lots of newgroups and passing the
512 byte limit is therefore invalid. This commit splits the mailboxes in
chunks and sends a separate command for each maximal chunk that has
a valid length.
Fixes #269 .
Reported-by: r3k2
2023-08-10 18:30:59 +03:00
Manos Pitsidianakis
40d4ecefa0
melib/nntp: accept invalid (non-ascii) address comment text
...
NNTP servers may return addresses that are not RFC 5322 compliant. An
address with a comment with non-ascii characters will make the parser loop indefinitely.
Fixes #269 .
2023-08-10 18:29:58 +03:00
Manos Pitsidianakis
0ee1b6e018
account: start background watch job in init
...
When IsOnline was introduced, the background watch job stopped being
created when the connection was initialized. Restore that behavior.
2023-07-28 19:34:56 +03:00
Manos Pitsidianakis
8cb2a515e1
melib/smtp: use localhost in lieu of 127.0.0.1 for CI
2023-07-26 12:40:32 +03:00
Manos Pitsidianakis
6e27edcb77
ci: use cargo-nextest
2023-07-24 14:14:48 +03:00
Manos Pitsidianakis
ae25ffba43
melib/smtp: don't do plain EHLO before starting Tls connection
2023-07-24 10:57:35 +03:00
Manos Pitsidianakis
1e084c1d85
melib: move backends out of the backends module
...
No reason to have such a deep module tree.
2023-07-22 22:17:01 +03:00
Manos Pitsidianakis
9216e7bc65
melib/connections: add opt id string for tracing
2023-07-22 22:17:01 +03:00
Manos Pitsidianakis
8ecdb6df31
melib/imap: add imap-trace feature
2023-07-22 21:27:05 +03:00
Manos Pitsidianakis
b65934facc
melib/nntp: add nntp-trace feature
2023-07-22 21:15:59 +03:00
Manos Pitsidianakis
89c90f224a
melib: add nntp
feature
2023-07-22 21:01:42 +03:00
Manos Pitsidianakis
7db930cabd
melib: rename jmap_backend
feature to jmap
2023-07-22 20:54:55 +03:00
Manos Pitsidianakis
e9f09a153c
melib: rename mbox_backend
feature to mbox
2023-07-22 20:52:37 +03:00
Manos Pitsidianakis
fe7dcc508e
melib: rename notmuch_backend
feature to notmuch
2023-07-22 20:51:12 +03:00
Manos Pitsidianakis
fe027fa300
melib: rename maildir_backend
feature to maildir
2023-07-22 20:48:09 +03:00
Manos Pitsidianakis
129f10911b
melib: rename imap_backend
feature to imap
2023-07-22 20:46:23 +03:00
Manos Pitsidianakis
51e9fbe8f2
sqlite3: add account_name identifier to sqlite3 index database name
2023-07-22 20:43:08 +03:00
Manos Pitsidianakis
4874e30f3c
melib: add smtp-trace feature
...
If it's enabled, every read/write in an SMTP transaction will be logged
on TRACE level.
2023-07-22 16:25:54 +03:00
Manos Pitsidianakis
073d43b9b8
melib/test: move data files to data subdir
2023-07-21 18:12:39 +03:00
Manos Pitsidianakis
8e698cabcf
Fix unreachable-pub and disjoint-capture lint errors
2023-07-20 00:19:42 +03:00
Manos Pitsidianakis
1d0405ed5b
ci: add env vars
2023-07-19 23:23:05 +03:00
Manos Pitsidianakis
bb7e119ade
Add gitea CI workflows
2023-07-19 17:12:15 +03:00
Manos Pitsidianakis
29b43e2c88
melib/datetime: replace mktime with timegm
2023-07-19 15:53:30 +03:00
Manos Pitsidianakis
2df7354751
mail/{listing,view}: fix overflow substracts
2023-07-19 10:19:11 +03:00
Manos Pitsidianakis
6280bc75e5
melib/jmap: fix blob download URL formatting
2023-07-18 16:13:58 +03:00
Manos Pitsidianakis
48a10f7241
melib: remove unused BackendOp::fetch_flags() method
2023-07-18 16:13:58 +03:00
Manos Pitsidianakis
0219dc8707
melib/jmap: respect max_objects_in_get when fetching email
...
Fixes #144
2023-07-18 16:13:44 +03:00
Manos Pitsidianakis
c4c245ee19
melib/jmap: respect danger_accept_invalid_certs setting
2023-07-18 16:13:41 +03:00
Manos Pitsidianakis
53cba4beee
Update README.md relative file paths
2023-07-16 20:06:44 +03:00
Manos Pitsidianakis
561ba9c87b
listing: add relative_list_indices setting for thread listing
2023-07-16 14:13:55 +03:00
Manos Pitsidianakis
8abc9358a7
mail/pgp: add newline after Version: 1 header
2023-07-16 11:46:45 +03:00
Manos Pitsidianakis
e9cd800f49
melib/nntp: add support for storing read status locally
2023-07-16 11:46:33 +03:00
Manos Pitsidianakis
519257b08f
listing: add relative_menu_indices setting for menubar
2023-07-15 20:29:25 +03:00
Manos Pitsidianakis
ab418c1d39
pgp: refresh documentation, fix encryption/signing
...
Closes #259
2023-07-15 19:33:20 +03:00
Manos Pitsidianakis
cf9a04a591
Add metadata to Jobs, and add JobManager tab
...
Opened with command `manage-jobs`
2023-07-14 00:24:38 +03:00
Manos Pitsidianakis
369c1dbdac
view/html: show open
command in status bar
2023-07-13 23:02:10 +03:00
Manos Pitsidianakis
4e55fbc90d
nntp: add SEEN flag to all envs, since NNTP has no flags
2023-07-13 21:03:55 +03:00