]> git.ipfire.org Git - thirdparty/mlmmj.git/log
thirdparty/mlmmj.git
2 years agomail-functions: allow to send an email from a FILE *
Baptiste Daroussin [Tue, 14 Feb 2023 10:52:26 +0000 (11:52 +0100)] 
mail-functions: allow to send an email from a FILE *

2 years agotests: use atf_utils_readline and deduplicate code
Baptiste Daroussin [Tue, 14 Feb 2023 09:12:31 +0000 (10:12 +0100)] 
tests: use atf_utils_readline and deduplicate code

2 years agotests: factorize some code
Baptiste Daroussin [Tue, 14 Feb 2023 08:34:23 +0000 (09:34 +0100)] 
tests: factorize some code

2 years agotests: move helpers out of the main c program
Baptiste Daroussin [Tue, 14 Feb 2023 08:19:01 +0000 (09:19 +0100)] 
tests: move helpers out of the main c program

2 years agomlmmj-bounce: use send_mail directly and stop executing mlmmj-send
Baptiste Daroussin [Tue, 14 Feb 2023 08:00:32 +0000 (09:00 +0100)] 
mlmmj-bounce: use send_mail directly and stop executing mlmmj-send

This makes mlmmj-send -l 5 obsolete

2 years agomlmmj-bounce: convert to stdbool
Baptiste Daroussin [Mon, 13 Feb 2023 21:26:43 +0000 (22:26 +0100)] 
mlmmj-bounce: convert to stdbool

2 years agoget_processed_text_line: add simple tests
Baptiste Daroussin [Mon, 13 Feb 2023 21:15:57 +0000 (22:15 +0100)] 
get_processed_text_line: add simple tests

2 years agosubstitute: simplify the code
Baptiste Daroussin [Mon, 13 Feb 2023 08:15:24 +0000 (09:15 +0100)] 
substitute: simplify the code

2 years agotest: remove unused variable
Baptiste Daroussin [Sun, 12 Feb 2023 21:32:02 +0000 (22:32 +0100)] 
test: remove unused variable

2 years agoget_processed_text_line: use stdbool
Baptiste Daroussin [Sun, 12 Feb 2023 21:31:09 +0000 (22:31 +0100)] 
get_processed_text_line: use stdbool

2 years agoget_processed_text_line: convert to struct ml
Baptiste Daroussin [Sun, 12 Feb 2023 21:26:42 +0000 (22:26 +0100)] 
get_processed_text_line: convert to struct ml

2 years agocleanup: remove clangd auto addition
Baptiste Daroussin [Sun, 12 Feb 2023 21:06:08 +0000 (22:06 +0100)] 
cleanup: remove clangd auto addition

2 years agomlmmj-send: reduce memory allocation by using file descriptors
Baptiste Daroussin [Sun, 12 Feb 2023 21:05:44 +0000 (22:05 +0100)] 
mlmmj-send: reduce memory allocation by using file descriptors

2 years agomlmmj-send: eliminate intermediary variable
Baptiste Daroussin [Sun, 12 Feb 2023 20:55:39 +0000 (21:55 +0100)] 
mlmmj-send: eliminate intermediary variable

2 years agomlmmj-send: replace some concatstr and deindent
Baptiste Daroussin [Sun, 12 Feb 2023 20:53:30 +0000 (21:53 +0100)] 
mlmmj-send: replace some concatstr and deindent

2 years agomlmmj-send: use asprintf instead of reinventing it
Baptiste Daroussin [Sun, 12 Feb 2023 15:16:25 +0000 (16:16 +0100)] 
mlmmj-send: use asprintf instead of reinventing it

2 years agogetlistaddr: remove now dead code
Baptiste Daroussin [Sun, 12 Feb 2023 15:04:59 +0000 (16:04 +0100)] 
getlistaddr: remove now dead code

2 years agomlmmj-send: convert to struct ml
Baptiste Daroussin [Sun, 12 Feb 2023 15:03:26 +0000 (16:03 +0100)] 
mlmmj-send: convert to struct ml

2 years agostrto*: fix crash if the pointer to the error pointer is NULL
Baptiste Daroussin [Sun, 12 Feb 2023 08:48:43 +0000 (09:48 +0100)] 
strto*: fix crash if the pointer to the error pointer is NULL

2 years agoheaders: cleanup unused headers
Baptiste Daroussin [Sat, 11 Feb 2023 21:44:56 +0000 (22:44 +0100)] 
headers: cleanup unused headers

2 years agoprepstdreply: convert to struct ml
Baptiste Daroussin [Sat, 11 Feb 2023 21:38:43 +0000 (22:38 +0100)] 
prepstdreply: convert to struct ml

2 years agomlmmj-maintd: convert to struct ml
Baptiste Daroussin [Sat, 11 Feb 2023 18:14:36 +0000 (19:14 +0100)] 
mlmmj-maintd: convert to struct ml

2 years agomlmmj-bounce: convert to struct ml
Baptiste Daroussin [Sat, 11 Feb 2023 17:38:11 +0000 (18:38 +0100)] 
mlmmj-bounce: convert to struct ml

2 years agoRevert "tests: use atf_utils_readline"
Baptiste Daroussin [Sat, 11 Feb 2023 17:25:40 +0000 (18:25 +0100)] 
Revert "tests: use atf_utils_readline"

This reverts commit f7080bb3a54b8f9cf6f7aa9c01101f249bbe2173.

2 years agotests: use atf_utils_readline
Baptiste Daroussin [Sat, 11 Feb 2023 07:14:55 +0000 (08:14 +0100)] 
tests: use atf_utils_readline

2 years agomlmmj-maintd: deduplicate code by using ctrltimet
Baptiste Daroussin [Sat, 11 Feb 2023 06:52:03 +0000 (07:52 +0100)] 
mlmmj-maintd: deduplicate code by using ctrltimet

2 years agomlmmj-maintd: use ctrlvalue to reduce code duplication
Baptiste Daroussin [Sat, 11 Feb 2023 06:48:41 +0000 (07:48 +0100)] 
mlmmj-maintd: use ctrlvalue to reduce code duplication

2 years agoprepstdreply: use getline(3)
Baptiste Daroussin [Sat, 11 Feb 2023 06:38:36 +0000 (07:38 +0100)] 
prepstdreply: use getline(3)

2 years agomlmmj: remove unused headers
Baptiste Daroussin [Sat, 11 Feb 2023 06:14:09 +0000 (07:14 +0100)] 
mlmmj: remove unused headers

2 years agotests: use atf_utils_create_file
Baptiste Daroussin [Sat, 11 Feb 2023 06:08:59 +0000 (07:08 +0100)] 
tests: use atf_utils_create_file

2 years agonotify-sub: use the same function from subscribtion and unsubscribtion
Baptiste Daroussin [Fri, 10 Feb 2023 17:03:07 +0000 (18:03 +0100)] 
notify-sub: use the same function from subscribtion and unsubscribtion

2 years agonotify-sub: remove useless memory allocation
Baptiste Daroussin [Fri, 10 Feb 2023 16:53:01 +0000 (17:53 +0100)] 
notify-sub: remove useless memory allocation

2 years agonotify-sub: add a unit test
Baptiste Daroussin [Fri, 10 Feb 2023 16:51:12 +0000 (17:51 +0100)] 
notify-sub: add a unit test

2 years agonotify_sub: move to the library
Baptiste Daroussin [Fri, 10 Feb 2023 13:54:36 +0000 (14:54 +0100)] 
notify_sub: move to the library

2 years agomlmmj-process: eliminate concatstr
Baptiste Daroussin [Fri, 10 Feb 2023 13:03:47 +0000 (14:03 +0100)] 
mlmmj-process: eliminate concatstr

2 years agois_moderator: rewrite
Baptiste Daroussin [Fri, 10 Feb 2023 12:55:37 +0000 (13:55 +0100)] 
is_moderator: rewrite

rewrite using getline(3) and xstring to simplify code

2 years agoxstring: add a wrapper around open_memstream
Baptiste Daroussin [Fri, 10 Feb 2023 12:54:40 +0000 (13:54 +0100)] 
xstring: add a wrapper around open_memstream

2 years agosend_help: convert to struct ml
Baptiste Daroussin [Fri, 10 Feb 2023 12:39:30 +0000 (13:39 +0100)] 
send_help: convert to struct ml

2 years agolist_sub: refactoring
Baptiste Daroussin [Fri, 10 Feb 2023 12:00:15 +0000 (13:00 +0100)] 
list_sub: refactoring

Rework to use getline(3), to work with file descriptors and reduce
memory allocation

2 years agolist_subs: add unit test
Baptiste Daroussin [Fri, 10 Feb 2023 11:33:05 +0000 (12:33 +0100)] 
list_subs: add unit test

2 years agolist_subs: move prototype to make the functions testable
Baptiste Daroussin [Fri, 10 Feb 2023 11:05:00 +0000 (12:05 +0100)] 
list_subs: move prototype to make the functions testable

2 years agosend_list: convert to struct ml
Baptiste Daroussin [Fri, 10 Feb 2023 10:55:13 +0000 (11:55 +0100)] 
send_list: convert to struct ml

2 years agolistcontrol: convert to struct ml
Baptiste Daroussin [Fri, 10 Feb 2023 10:49:19 +0000 (11:49 +0100)] 
listcontrol: convert to struct ml

2 years agoinit_file_lines: rework using getline(3)
Baptiste Daroussin [Fri, 10 Feb 2023 10:23:33 +0000 (11:23 +0100)] 
init_file_lines: rework using getline(3)

2 years agoinit_file_lines: add unit test
Baptiste Daroussin [Fri, 10 Feb 2023 10:14:00 +0000 (11:14 +0100)] 
init_file_lines: add unit test

2 years agoinit_file_lines: remove unused function
Baptiste Daroussin [Fri, 10 Feb 2023 09:06:19 +0000 (10:06 +0100)] 
init_file_lines: remove unused function

Actually merge into init_truncated_file_lines and rename it

2 years agoinit_truncated_file_lines: remove never used case
Baptiste Daroussin [Fri, 10 Feb 2023 09:04:55 +0000 (10:04 +0100)] 
init_truncated_file_lines: remove never used case

init_truncated_file_lines is called only once and never with open_now
set to true

2 years agoprepstdreply: convert formatted to tll
Baptiste Daroussin [Fri, 10 Feb 2023 08:54:27 +0000 (09:54 +0100)] 
prepstdreply: convert formatted to tll

2 years agoRemove useless typedef
Baptiste Daroussin [Fri, 10 Feb 2023 08:44:27 +0000 (09:44 +0100)] 
Remove useless typedef

2 years agotext: use tlllist for substitutions
Baptiste Daroussin [Fri, 10 Feb 2023 08:41:15 +0000 (09:41 +0100)] 
text: use tlllist for substitutions

2 years agoprepstdreply: use normal register_unformatted to register default substitutions
Baptiste Daroussin [Fri, 10 Feb 2023 08:33:02 +0000 (09:33 +0100)] 
prepstdreply: use normal register_unformatted to register default substitutions

2 years agotext: remove usage of concatstr
Baptiste Daroussin [Thu, 9 Feb 2023 15:49:54 +0000 (16:49 +0100)] 
text: remove usage of concatstr

2 years agoopen_text: add simple tests
Baptiste Daroussin [Thu, 9 Feb 2023 15:16:28 +0000 (16:16 +0100)] 
open_text: add simple tests

2 years agoFix prototype
Baptiste Daroussin [Thu, 9 Feb 2023 15:14:57 +0000 (16:14 +0100)] 
Fix prototype

2 years agoprepstdreply: split the function to make it more testable
Baptiste Daroussin [Thu, 9 Feb 2023 14:40:20 +0000 (15:40 +0100)] 
prepstdreply: split the function to make it more testable

2 years agoopen_text: accept fd for list
Baptiste Daroussin [Thu, 9 Feb 2023 14:24:38 +0000 (15:24 +0100)] 
open_text: accept fd for list

while here add a new open_text_fd which will help for testing purpose

2 years agoopen_text: use calloc to initiize most of the variables
Baptiste Daroussin [Thu, 9 Feb 2023 14:13:17 +0000 (15:13 +0100)] 
open_text: use calloc to initiize most of the variables

2 years agomemory_lines: simplify the code and fully test it
Baptiste Daroussin [Thu, 9 Feb 2023 13:31:11 +0000 (14:31 +0100)] 
memory_lines: simplify the code and fully test it

2 years agomlmmj-process: convert to struct ml
Baptiste Daroussin [Thu, 9 Feb 2023 13:03:58 +0000 (14:03 +0100)] 
mlmmj-process: convert to struct ml

2 years agomlmmj-unsub: convert to use struct ml
Baptiste Daroussin [Thu, 9 Feb 2023 11:50:17 +0000 (12:50 +0100)] 
mlmmj-unsub: convert to use struct ml

2 years agogen_addr*: make the macro generic and test them
Baptiste Daroussin [Thu, 9 Feb 2023 11:49:53 +0000 (12:49 +0100)] 
gen_addr*: make the macro generic and test them

2 years agomlmmj-sub: convert to struct ml
Baptiste Daroussin [Thu, 9 Feb 2023 11:30:46 +0000 (12:30 +0100)] 
mlmmj-sub: convert to struct ml

2 years agomlmmj: introduc struct ml storage
Baptiste Daroussin [Thu, 9 Feb 2023 10:59:37 +0000 (11:59 +0100)] 
mlmmj: introduc struct ml storage

2 years agomlmmj-unsub: get rid of concatstr
Baptiste Daroussin [Thu, 9 Feb 2023 10:00:04 +0000 (11:00 +0100)] 
mlmmj-unsub: get rid of concatstr

2 years agolistcontrol: remove last concatstr
Baptiste Daroussin [Thu, 9 Feb 2023 09:54:05 +0000 (10:54 +0100)] 
listcontrol: remove last concatstr

2 years agolistcontrol: prefer access family of function over stat
Baptiste Daroussin [Thu, 9 Feb 2023 09:46:28 +0000 (10:46 +0100)] 
listcontrol: prefer access family of function over stat

2 years agoget_subcookit_content: only chomp once
Baptiste Daroussin [Thu, 9 Feb 2023 09:31:26 +0000 (10:31 +0100)] 
get_subcookit_content: only chomp once

2 years agolistcontrol: deduplicate and test subscription cookit fetching
Baptiste Daroussin [Thu, 9 Feb 2023 09:28:08 +0000 (10:28 +0100)] 
listcontrol: deduplicate and test subscription cookit fetching

2 years agomlmmj-receive: partially revert 00758b2b74f274d3568e03f5a5916d459f049765
Baptiste Daroussin [Thu, 9 Feb 2023 08:58:46 +0000 (09:58 +0100)] 
mlmmj-receive: partially revert 00758b2b74f274d3568e03f5a5916d459f049765

we actually do not need to override mlmmj-process path for testing
purpose

2 years agomlmmj: factorize the code opening the list directory
Baptiste Daroussin [Thu, 9 Feb 2023 08:46:20 +0000 (09:46 +0100)] 
mlmmj: factorize the code opening the list directory

This unifies the errors thrown and deduplicate the code in many places

2 years agomlmmj-receive: remove now unneeded header
Baptiste Daroussin [Thu, 9 Feb 2023 08:21:05 +0000 (09:21 +0100)] 
mlmmj-receive: remove now unneeded header

2 years agomlmmj-receive: limit memory manupulation using file descriptors
Baptiste Daroussin [Thu, 9 Feb 2023 08:19:03 +0000 (09:19 +0100)] 
mlmmj-receive: limit memory manupulation using file descriptors

While here throw an error message in case of inability to open the
"incoming" directory

2 years agomlmmj-receive: remove useless call to fileno(3)
Baptiste Daroussin [Thu, 9 Feb 2023 08:10:15 +0000 (09:10 +0100)] 
mlmmj-receive: remove useless call to fileno(3)

2 years agomlmmj-receive: add basic tests
Baptiste Daroussin [Thu, 9 Feb 2023 08:07:32 +0000 (09:07 +0100)] 
mlmmj-receive: add basic tests

2 years agomlmmj-receive: add the ability change the mlmmj-process path
Baptiste Daroussin [Thu, 9 Feb 2023 08:04:07 +0000 (09:04 +0100)] 
mlmmj-receive: add the ability change the mlmmj-process path

This will allow to simplify the debugging

2 years agomlmmj-process: fix test when mlmmj is not locally installed
Baptiste Daroussin [Thu, 9 Feb 2023 07:44:53 +0000 (08:44 +0100)] 
mlmmj-process: fix test when mlmmj is not locally installed

2 years agomlmmj-process: add a simple test about the "tocc" tunable
Baptiste Daroussin [Wed, 8 Feb 2023 18:00:20 +0000 (19:00 +0100)] 
mlmmj-process: add a simple test about the "tocc" tunable

2 years agofunctional-tests.sh: define the mailing list valid address
Baptiste Daroussin [Wed, 8 Feb 2023 17:50:39 +0000 (18:50 +0100)] 
functional-tests.sh: define the mailing list valid address

Now that mlmmj-process dies on it, it is important to set it up

2 years agomlmmj-process: use boolean where appropriate
Baptiste Daroussin [Wed, 8 Feb 2023 17:44:21 +0000 (18:44 +0100)] 
mlmmj-process: use boolean where appropriate

2 years agomlmmj-process: ensure the listaddress is correctly defined
Baptiste Daroussin [Wed, 8 Feb 2023 17:22:41 +0000 (18:22 +0100)] 
mlmmj-process: ensure the listaddress is correctly defined

2 years agomlmmj-process: reduce memory allocation
Baptiste Daroussin [Wed, 8 Feb 2023 17:04:26 +0000 (18:04 +0100)] 
mlmmj-process: reduce memory allocation

If we already caught the recipient extra informations to not try to
extract it again later.

2 years agomlmmj-process: remove empty lines
Baptiste Daroussin [Wed, 8 Feb 2023 16:00:54 +0000 (17:00 +0100)] 
mlmmj-process: remove empty lines

2 years agomlmmj-process: reduce memory allocation
Baptiste Daroussin [Wed, 8 Feb 2023 15:58:25 +0000 (16:58 +0100)] 
mlmmj-process: reduce memory allocation

When matching the mailing lists, addrmatch extracts the extra part of the
recipient. only allocate memory for it if there is actually something
there.

2 years agomlmmj-process: add tests for the function which matches the ml name
Baptiste Daroussin [Wed, 8 Feb 2023 15:56:26 +0000 (16:56 +0100)] 
mlmmj-process: add tests for the function which matches the ml name

While here use xstrndup where appropriate

2 years agomlmmj-process: rename addrtocc into addr_in_to_or_cc
Baptiste Daroussin [Wed, 8 Feb 2023 14:17:59 +0000 (15:17 +0100)] 
mlmmj-process: rename addrtocc into addr_in_to_or_cc

This ease code readability

2 years agomlmmj-process: add missing header
Baptiste Daroussin [Wed, 8 Feb 2023 13:54:23 +0000 (14:54 +0100)] 
mlmmj-process: add missing header

2 years agomlmmj-process: isolate function to extract recipextra from MTA
Baptiste Daroussin [Wed, 8 Feb 2023 13:32:28 +0000 (14:32 +0100)] 
mlmmj-process: isolate function to extract recipextra from MTA

2 years agoUse openat to reduce memory manipulation
Baptiste Daroussin [Wed, 8 Feb 2023 10:06:05 +0000 (11:06 +0100)] 
Use openat to reduce memory manipulation

2 years agomlmmj-process: add basic tests
Baptiste Daroussin [Wed, 8 Feb 2023 09:41:31 +0000 (10:41 +0100)] 
mlmmj-process: add basic tests

2 years agoAdd missing ')' in error message
Baptiste Daroussin [Wed, 8 Feb 2023 09:23:15 +0000 (10:23 +0100)] 
Add missing ')' in error message

2 years agolistcontrol: factorize the code which checks for the status of the list
Baptiste Daroussin [Tue, 7 Feb 2023 12:47:11 +0000 (13:47 +0100)] 
listcontrol: factorize the code which checks for the status of the list

2 years agolistcontrol: isolate the ctrl_command parser and test it
Baptiste Daroussin [Mon, 6 Feb 2023 14:25:44 +0000 (15:25 +0100)] 
listcontrol: isolate the ctrl_command parser and test it

2 years agoget_prepped_mailbody_from_map: fix null terminations issues
Baptiste Daroussin [Mon, 6 Feb 2023 08:50:05 +0000 (09:50 +0100)] 
get_prepped_mailbody_from_map: fix null terminations issues

Null terminate the returned string
mmap is not null terminated, pass the len to ensure the lookup is done
based on a length determined manner

2 years agoget_preppedhdrs_from_map: fix null terminations issues
Baptiste Daroussin [Mon, 6 Feb 2023 08:37:32 +0000 (09:37 +0100)] 
get_preppedhdrs_from_map: fix null terminations issues

Null terminate the returned string
mmap is not null terminated, pass the len to ensure the lookup is done
based on a length determined manner

2 years agotests: add simple test for get_preppedhdrs_from_map
Baptiste Daroussin [Mon, 6 Feb 2023 08:11:19 +0000 (09:11 +0100)] 
tests: add simple test for get_preppedhdrs_from_map

2 years agoRelease 1.4.0.a2 RELEASE_1_4_0_a2 RELEASE_1_4_0a2
Baptiste Daroussin [Wed, 18 Jan 2023 16:35:20 +0000 (17:35 +0100)] 
Release 1.4.0.a2

2 years agoFix missing argument
Baptiste Daroussin [Wed, 18 Jan 2023 16:08:04 +0000 (17:08 +0100)] 
Fix missing argument

2 years agoComplete the send_mail tests up to RSET to avoid sigpipe
Baptiste Daroussin [Wed, 18 Jan 2023 15:43:41 +0000 (16:43 +0100)] 
Complete the send_mail tests up to RSET to avoid sigpipe

2 years agoReplace all pipes by socketpair in tests
Baptiste Daroussin [Wed, 18 Jan 2023 14:42:54 +0000 (15:42 +0100)] 
Replace all pipes by socketpair in tests

2 years agoportability: replace pipe with socketpair which behaves consistently between linux...
Baptiste Daroussin [Wed, 18 Jan 2023 14:36:27 +0000 (15:36 +0100)] 
portability: replace pipe with socketpair which behaves consistently between linux and freebsd