12014-05-23  Sergey Poznyakoff  <gray@gnu.org>
2
3	Version 4.2
4
52014-05-22  Sergey Poznyakoff  <gray@gnu.org>
6
7	Minor fixes.
8	* src/rcfile.c (control_parser): Fix argument to assign_string.
9
10	* src/headers.h (anubis_db_open_t, anubis_db_open): Last
11	argument is
12	const char *.
13	* src/anubisdb.c (anubis_db_open): Last argument is const char *.
14	* src/anubisadm.c: Use const char * as a last argument to
15	anubis_db_open.
16	* src/authmode.c: Likewise.
17	* src/dbtext.c: Likewise.
18	* src/gdbm.c: Likewise.
19	* src/mysql.c: Likewise.
20	* src/pgsql.c: Likewise.
21
222014-05-19  Sergey Poznyakoff  <gray@gnu.org>
23
24	Improve docs.
25	* doc/anubis.texi: Update.
26	* doc/mime.texi: Update.
27
282014-05-18  Sergey Poznyakoff  <gray@gnu.org>
29
30	Support for MySQL options file.
31	* NEWS: Document the use of MySQL options file.
32	* doc/anubis.texi: Document all anubisusr options.
33	Describe the use of MySQL options file.
34	* src/mysql.c (mysql_db_open): Use MySQL options file.
35	Two new URL parameters: options-file and options-group.
36	* src/usr.opt: New option --tls-priorities.
37
38	More fixes.
39	* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Enable everything.
40	* src/anubisusr.c [USE_GNUTLS] (tls_cafile): Remove.
41	[USE_GNUTLS] (secure): New global.
42	(starttls): Update start_ssl_client invocation.
43	* src/usr.opt (tls-cafile option): Set secure.cafile.
44	* src/authmode.c (asmtp_ehlo): Update call to start_ssl_server.
45	* src/getopt.m4 (version_etc_copyright): Update copyright years.
46	* src/gpg.c (gpg_proc): Remove useless preprocessor checks.
47	* src/headers.h: Likewise.
48	* src/rc-gram.y (yyerror): Argument is const char *.
49	* testsuite/mta.c: Remove the use of deprecated gnutls types and
50	functions.
51
522014-05-16  Sergey Poznyakoff  <gray@gnu.org>
53
54	Fix tls code.
55	* doc/anubis.texi: Document ssl-priorities.
56	* src/extern.h (secure_struct) <prio>: New member.
57	* src/headers.h (start_ssl_client, start_ssl_server): Change
58	signature.
59	* src/rcfile.c (tls_parser): Handle the ssl-priorities statement.
60	* src/tls.c: Remove the use of obsolete types and functions.
61	(start_ssl_client, start_ssl_server): Remove
62	spurious parameters. Use the "secure" global instead.
63	* src/tunnel.c: Update uses of start_ssl_client, start_ssl_server.
64
65	Update copyright years.
66
67	Compatibility fixes.
68	* build/bootstrap (gnulib_extra_files): Remove 'missing'
69	* configure.ac: Add -lgpg-error when using GPGME
70	* src/tls.c (verify_certificate): Use
71	gnutls_certificate_verify_peers2.
72
73	Update for the recent automake version
74	* gint: Upgrade.
75	* lib/.gitignore: Add new files.
76	* src/Makefile.am: Use AM_CPPFLAGS instead of the obsolete
77	INCLUDES.
78	* testsuite/Makefile.am: Likewise.
79
802013-03-08  Wojciech Polak  <polak@gnu.org>
81
82	Update THANKS file.
83
842011-01-13  Sergey Poznyakoff  <gray@gnu.org.ua>
85
86	Implement `elif' branches.
87	* src/rc-gram.y: Rewrite the cond_stmt rule to allow for `elif'
88	branches.
89	* src/rc-lex.l: New keyword ELSE.
90	* doc/anubis.texi: Document the elif statement.
91	* NEWS: Likewise.
92
932011-01-13  Sergey Poznyakoff  <gray@gnu.org.ua>
94
95	Delayed ESMTP authentication: initial implementation.
96	Anubis can be instructed to postpone ESMTP authentication
97	until MAIL
98	command is issued by the client.  This allows for changing
99	authentication
100	credentials in the SMTP section, depending on the envelope
101	information
102	supplied by the client.
103
104	* src/headers.h (T_ESMTP_AUTH_DELAYED): New flag.
105	(rcfile_call_section): Change signature.
106	* src/mda.c: Update calls to rcfile_call_section.
107	* src/rc-gram.y (rc_run_section): Take additional argument
108	specifying the class of the section to run.
109	(rc_call_section): Remove. All callers changed to use
110	rc_call_section
111	instead.
112	(rc_run_section_list): Remove unused function.
113	* src/rcfile.c (parse_esmtp_kv): New static.
114	(control_parser): Call parse_esmtp_kv as a part of the
115	default handling.
116	(control_kw): New keyword esmtp-auth-delayed.
117	(smtp_rule_parser,smtp_rule_section_init): New functions.
118	(rc_system_init): Call smtp_rule_section_init.
119	(rcfile_call_section): Take additional argument
120	specifying the class of the section to run.
121	* src/rcfile.h (rc_run_section): Change signature.
122	(rc_call_section): Remove.
123	* src/smtprepl.c (smtp_reply_free): Do nothing if argument is
124	NULL.
125	* src/tunnel.c (ehlo_reply): New static.
126	(handle_ehlo): Save reply in ehlo_reply.
127	Don't attempt authentication if T_ESMTP_AUTH_DELAYED is set...
128	(transfer_command): ... do it here instead.
129	* configure.ac: Version 4.1.92
130	* NEWS: Update.
131	* doc/anubis.texi: Document esmtp-auth-delayed and the
132	use of esmtp-* statements in SMTP sections.
133
1342010-08-03  Sergey Poznyakoff  <gray@gnu.org.ua>
135
136	Fix detection of GNU TLS and the corresponding code.
137	* am/libgnutls.m4: Remove.
138	* am/gnutls.m4: New file.
139	* configure.ac: Set version number 4.1.91.
140	Remove gnutls checking, use ANUBIS_CHECK_TLS instead.
141	(TLS_COND): New condition.
142	* src/Makefile.am [TLS_COND] (TLS_C): New variable.
143	(libanubisdb_a_SOURCES): Use TLS_C.
144	(INCLUDES): Replace LIBGNUTLS_CFLAGS with LIBGNUTLS_INCLUDES.
145	* testsuite/Makefile.am (INCLUDES): Replace LIBGNUTLS_CFLAGS
146	with LIBGNUTLS_INCLUDES.
147	* testsuite/etc/Makefile.am: Add missing AM_V_GENs.
148
149	* src/anubisusr.c: Uniformly use USE_GNUTLS to protect
150	tls-specific
151	parts of code.
152	* src/anubisusr.h: Likewise.
153	* src/headers.h: Likewise.
154	* src/help.c: Likewise.
155	* src/main.c: Likewise.
156	* src/quit.c: Likewise.
157	* src/rcfile.c: Likewise.
158	* testsuite/mta.c: Likewise.
159	* src/tls.c: Likewise.
160	(print_x509_certificate_info): Use gnutls_fingerprint instead of
161	the deprecated gnutls_x509_fingerprint.
162	* src/smtprepl.c (smtp_reply_read): Fix coredump.
163
164	* NEWS: Update.
165
1662010-05-11  Sergey Poznyakoff  <gray@gnu.org.ua>
167
168	Update gint to a5774356.
169
170	Fix GINT_INIT usage.
171	* gint: Update to 4e48677eee5a
172	* configure.ac (--without-guile): Remove option. Handled by
173	GINT_INIT.
174	(GINT_INIT): Don't call it within a conditional.
175
1762010-04-19  Sergey Poznyakoff  <gray@gnu.org.ua>
177
178	Use GINT for integrating with Guile.
179	* gint: New module.
180	* Makefile.am, configure.ac: Use gint.
181	* bootstrap.conf: Initialize git submodules.
182	* src/Makefile.am: Include gint.mk
183	* am/guile.m4: Remove.
184	* src/guile.c (guile_safe_exec): Use scm_c_catch instead of
185	the deprecated scm_internal_lazy_catch.
186
1872010-04-01  Sergey Poznyakoff  <gray@gnu.org.ua>
188
189	Prepare for Guile 2.0: fix obsolete and deprecated calls in
190	Guile code.
191	* am/guile.m4: Import from Mailutils.
192	* configure.ac: Use AC_DEFINE_UNQUOTED to define
193	a replacement for socklen_t.
194	* src/guile.c (guile_debug): Protect calls to
195	SCM_DEVAL_P &c. by #ifdef GUILE_DEBUG_MACROS
196	(guile_process_proc_handler): Use scm_apply_3
197	to avoid unwanted evaluation of parameters.
198	(guile_load_path_append_handler)
199	(guile_to_anubis, guile_process_proc): Remove the uses of
200	deprecated Guile functions.
201	* src/logport.c [!HAVE_SCM_T_OFF](scm_t_off): New typedef.
202	(scm_tc16_anubis_error_port)
203	(scm_tc16_anubis_info_port): Change type to scm_t_bits.
204	(_make_anubis_log_port): Use scm_new_port_table_entry instead
205	of the deprecated scm_add_to_port_table.
206	(_anubis_error_port_seek): Fix signature and return type.
207
2082010-01-08  Sergey Poznyakoff  <gray@gnu.org.ua>
209
210	Minor fix.
211	* src/message.c (create_msgid): Do not allow seq to
212	overflow.
213
214	Improve logging.
215	* src/headers.h (MSGIDLEN, MSGIDBOUND): New defines.
216	(message_id): New proto.
217	* src/message.c (message_struct): New member id.
218	(create_msgid): New function.
219	(message_new,message_reset): Initialize message id.
220	(message_id): New function.
221	* src/smtprepl.h (smtp_reply_line_ptr): New proto.
222	* src/transmode.c (session_prologue): avoid coredump
223	if session.anubis is NULL.
224	* src/tunnel.c (transfer_command, process_data): log
225	session commands and server replies.
226
2272009-12-28  Sergey Poznyakoff  <gray@gnu.org.ua>
228
229	Initial implementation of SMTP command modification.
230	The special section SMTP is processed before transferring
231	each SMTP command to the remote server.  This section can
232	contain `modify command' actions which alter the command.
233
234	* src/extern.h (smtp_command_rule): New extern.
235	* src/list.c (list_head_item, list_tail_item): New functions.
236	* src/list.h (list_head_item, list_tail_item): New protos.
237	* src/main.c (smtp_command_rule): New global.
238	(main): Set smtp_command_rule.
239	* src/message.c (message_modify_command): New function.
240	* src/rc-gram.y (inst_eval): Implement command modification.
241	* src/tunnel.c (transfer_command): Remove second argument.
242	Always work on the last command stored in the assoc array.
243	Call smtp_command_rule to eventually modify the command.
244	All callers updated.
245	* src/rcfile.c: New keyword "smtp-command-rule" can be
246	used in the CONTROL section to modify the name of the
247	SMTP command section.
248	(rcfile_call_section): Issue 'No such section' warning in verbose
249	mode only.
250	* src/tunnel.c (save_command): Use case-insensitive comparison.
251	Convert command verb part to upper case.
252	(process_command): Convert buf to lowercase after saving command.
253	* NEWS, doc/anubis.texi: Update.
254
2552009-12-28  Sergey Poznyakoff  <gray@gnu.org.ua>
256
257	Bugfixes.
258	* configure.ac: Initialize WITH_GSASL.
259	* src/gpg.c (passphrase_cb): Fix non-ansi C code.
260
2612009-12-03  Sergey Poznyakoff  <gray@gnu.org.ua>
262
263	Bugfixes.
264	* src/net.c (swrite_n): Return immediately if nleft is 0.
265	* src/smtprepl.c (smtp_reply_replace_line): Add terminating
266	zero.
267
2682009-11-16  Sergey Poznyakoff  <gray@gnu.org.ua>
269
270	Bugfix
271	* src/esmtp.c [!WITH_GSASL] (emstp_auth): Fix signature.
272
2732009-11-14  Sergey Poznyakoff  <gray@gnu.org.ua>
274
275	Fix namespace, further improve mda mode.
276	* src/extern.h (struct message_struct): Remove.
277	* src/headers.h (MESSAGE): Change typedef. All uses updated.
278	(swrite_n): New proto.
279	(message_new, message_dup): New protos.
280	(assoc_list_dup, string_list_dup): New protos.
281
282	* src/map.c: In remote-mta mode, process each recipient
283	individually.
284	* src/message.c: Rewrite.
285	* src/net.c (swrite_n): New function.
286
287	* src/list.h (ANUBIS_LIST, ITERATOR): Change typedefs. All
288	uses updated.
289
290	* src/list.c: Update usage of ANUBIS_LIST, ITERATOR
291	and MESSAGE.
292	* src/anubisadm.c: Likewise.
293	* src/anubisdb.c: Likewise.
294	* src/anubisusr.c: Likewise.
295	* src/authmode.c: Likewise.
296	* src/dbtext.c: Likewise.
297	* src/esmtp.c: Likewise.
298	* src/gdbm.c: Likewise.
299	* src/gpg.c: Likewise.
300	* src/gsasl_srv.c: Likewise.
301	* src/guile.c: Likewise.
302	* src/map.c: Likewise.
303	* src/mime.c: Likewise.
304	* src/misc.c: Likewise.
305	* src/proclist.c: Likewise.
306	* src/rc-gram.y: Likewise.
307	* src/rcfile.c: Likewise.
308	* src/rcfile.h: Likewise.
309	* src/sql.c: Likewise.
310	* src/tunnel.c: Likewise.
311
312	* src/regex.c: Match functions take a const char * argument.
313
3142009-11-14  Sergey Poznyakoff  <gray@gnu.org.ua>
315
316	Implement functions for reading and parsing SMTP replies.
317	* src/smtprepl.h: New file.
318	* src/smtprepl.c: New file.
319	* src/Makefile.am (libanubisdb_a_SOURCES): Add smtprepl.c
320	and smtprepl.h
321	* src/headers.h: Include smtprepl.h
322	(T_ALLOW_LOCAL_MTA): Remove.
323	(ASSERT_MTA_CONFIG): New define.
324	(swrite): Third argument is const
325	(smtp_reply_get): New proto.
326	(set_ehlo_domain): Change signature.
327	(esmtp_auth): Second argument is const.
328	(auth_method_list): Argument is const.
329	(xdatabase_capability): Change signature.
330
331	* src/mda.c: Initial implementation of mda over
332	SMTP.
333	* src/rc-lex.l (escape): Use \033 instead of non-standard
334	\e.
335	* src/rcfile.c: Remove allow-local-mta.
336	* src/net.c (swrite): Third argument is const
337	(send_eol): Fix conditional,
338	(get_response_smtp): Remove.
339	(smtp_reply_get): New function.
340	* src/transmode.c (session_prologue)
341	(anubis_proxy_mode): Call ASSERT_MTA_CONFIG.
342	* src/anubisusr.c, src/esmtp.c,
343	src/gsasl_srv.c, src/tunnel.c,
344	src/xdatabase.c: Rewrite SMTP transactions
345	using ANUBIS_SMTP_REPLY.
346	* src/authmode.c: Update calls to set_ehlo_domain
347	* src/daemon.c (stdinout): Call ASSERT_MTA_CONFIG.
348	* src/env.opt (get_options): Move mda mode checks to mda.c
349	* po/POTFILES.in: Add headers.h
350	* doc/anubis.texi: Update.
351
3522009-11-12  Sergey Poznyakoff  <gray@gnu.org.ua>
353
354	Stylistic change.
355	* src/rc-gram.y: Fix indentation.
356
3572009-11-11  Sergey Poznyakoff  <gray@gnu.org.ua>
358
359	Command line overrides configuration statements.
360	* src/rcfile.h (RC_ERROR_PRINTER): New argument `pfx'.
361	* src/headers.h (rc_disable_keyword): New proto.
362	* src/rc-gram.y (default_error_printer): New argument `pfx'.
363	(rc_disable_keyword, rc_keyword_is_disabled): New functions.
364	(parse_error, eval_error, eval_warning): Pass pfx parameter
365	to rc_error_printer.
366	(asgn_eval): Return if the keyword is disabled (set from the
367	command line).
368	* src/xdatabase.c: Reflect changes to RC_ERROR_PRINTER.
369	* src/rcfile.c (control_parser): Remove the now superfluous
370	condition.
371	* src/env.opt: Call rc_disable_keyword for options
372	overriding configuration statements.
373	* NEWS: Update.
374	* doc/anubis.texi, doc/pixie-dixie.texi: Update.
375
3762009-11-11  Sergey Poznyakoff  <gray@gnu.org.ua>
377
378	Improve runtime diagnostics.
379	* bootstrap.conf (NLS_MARKERS): Add eval_error
380	and eval_warning.
381	* src/headers.h (EVAL_ENV): New typedef.
382	(eval_env_locus, eval_env_method)
383	(eval_env_message, eval_env_data)
384	(eval_error, eval_warning): New prototypes.
385	* src/rc-gram.y (eval_env_locus, eval_env_method)
386	(eval_env_message, eval_env_data)
387	(eval_error, eval_warning): New functions.
388	(asgn_eval): Update calls to p->parser.
389	* src/rcfile.h (RC_KW_HANDLED, RC_KW_UNKNOWN)
390	(RC_KW_ERROR): Remove.
391	(rc_kw_parser_t): Change signature.
392
393	* src/authmode.c, src/env.opt, src/gpg.c,
394	src/guile.c, src/map.c, src/rcfile.c: Reflect above changes.
395
3962009-11-11  Sergey Poznyakoff  <gray@gnu.org.ua>
397
398	Pacify gcc
399	* bootstrap.conf (NLS_MARKERS): Add parse_error and tracefile.
400	* src/log.c (tracefile): Take into account T_LOCATION_COLUMN bit.
401	* src/logport.c: Shut gcc warning.
402	* src/misc.c (get_port_number): Port is unsigned.
403	Improve error checking.
404	* src/rc-lex.l: Initialize column to 1.
405	* src/rcfile.h (parse_error,tracefile): Mark as printflike.
406	* src/tls.c, src/xdatabase.c, testsuite/mta.c: Shut up gcc
407	warnings.
408
409	Improve diagnostics.
410	* src/Makefile.am (AM_LFLAGS): Add -dvp
411	(INCLUDES): Remove obsolete path.
412	* src/env.opt: New option location-column.
413	* src/headers.h (T_LOCATION_COLUMN): New define.
414	* src/rc-gram.y: Use Bison location support. Improve diagnostics.
415	* src/rc-lex.l: Likewise.
416	* src/rcfile.h (struct rc_loc): New member `column'.
417	(rc_yyltype): New struct.
418	(YYLTYPE,RC_LOCUS_FILE_EQ,RC_LOCUS_EQ): New defines.
419	(RC_ERROR_PRINTER): Change signature.
420	* src/xdatabase.c (_xdb_error_printer): Change signature.
421
4222009-11-11  Sergey Poznyakoff  <gray@gnu.org.ua>
423
424	Housekeeping changes.
425	* build/ylwrap: Remove.
426	* src/rcfile.y: Remove to..
427	* src/rc-gram.y: .. this.
428	* src/rcfile.l: Remove to..
429	* src/rc-lex.l: .. this.
430	* po/POTFILES.in: Reflect the above changes.
431	* src/Makefile.am: Likewise.
432	(YLWRAP): Remove.
433	(EXTRA_DIST,BUILT_SOURCES): Remove rcfile.y rcfile.l and
434	the generated counterparts.
435	(rcfile-lex.c, rcfile-gram.c): Remove.
436	* src/getopt.m4 (print_help): Minor change.
437	* src/md5.c: Reindent.
438	(F1): Revert to the optimized version.
439
440	* .gitignore, build/.gitignore, src/.gitignore: Update.
441	* build/Makefile.am (EXTRA_DIST): Remove ylwrap.
442	* configure.ac (AM_INIT_AUTOMAKE): Add more options.
443	* doc/anubis.texi: Update.
444
4452009-11-10  Sergey Poznyakoff  <gray@gnu.org.ua>
446
447	Minor changes.
448	* doc/anubis.texi: Cleanup the wording, check the spelling.
449	* src/rcfile.l (escape): Bugfix: \r was handled as \t.
450
4512009-11-10  Sergey Poznyakoff  <gray@gnu.org.ua>
452
453	Improve docs.
454	* doc/Makefile.am (check-format, check-refs)
455	(check-fixmes, check-writeme)
456	(check-unrevised, all-check-docs)
457	(check-docs, master-menu, untabify): New rules
458	* doc/mastermenu.el: New file.
459	* doc/untabify.el: New file.
460	* doc/anubis.texi: Improve formatting. Rewrite the
461	`Mutt' chapter.
462	* doc/fdl.texi, doc/mime.texi,
463	doc/pixie-dixie.texi: Comment out the initial
464	sectioning command.
465	* doc/rendition.texi: Improved version.
466
467	* contrib/msg2smtp.pl: Remove hardcoded perl path.
468
4692009-11-10  Sergey Poznyakoff  <gray@gnu.org.ua>
470
471	Proxy mode.
472	* src/headers.h (enum anubis_mode): New mode anubis_proxy.
473	(anubis_proxy_mode): New proto.
474	* src/rcfile.c (parse_log_facility): Bugfix.
475	(control_parser): Always handle the mode statement.
476	* src/transmode.c (anubis_proxy_mode): New function.
477	* src/daemon.c (anubis_child_main): Handle proxy mode.
478	* src/env.opt (anubis_set_mode): Likewise.
479	* doc/anubis.texi: Initial documentation of proxy mode.
480
4812009-10-16  Wojciech Polak  <polak@gnu.org>
482
483	* THANKS: Add Jorma Karvonen.
484
485	Enable silent rules.
486	* configure.ac: Require Autoconf 2.63, Automake 1.11,
487	enable silent rules.
488	* Makefile.am: Remove AUTOMAKE_OPTIONS.
489
4902009-09-25  Sergey Poznyakoff  <gray@gnu.org.ua>
491
492	Minor changes
493	* bootstrap.conf: Read list of modules from gnulib.modules.
494	* configure.ac: Remove checks for sysexits.h, strdup, daemon
495	* src/headers.h: Remove unnecesary ifndefs
496
4972009-09-25  Sergey Poznyakoff  <gray@gnu.org.ua>
498
499	Redirect Scheme error and output to syslog.
500	* configure.ac: Remove checks for syslog. Raise version number
501	to 4.1.90.
502	* src/headers.h: Remove checks for syslog.
503	Include keyword.h
504	* src/log.c: Remove checks for syslog.
505	* src/quit.c: Likewise.
506	* src/rcfile.c: Handle new keywords log-facility and log-tag.
507	* src/daemon.c (log_tag, log_facility): New variables.
508	(daemonize): Remove HAVE_SYSLOG conditional.
509	Pass log_tag and log_facility to openlog.
510	* src/errs.c (anubis_verror_log): New function.
511	(anubis_verror, anubis_error): Rewrite using anubis_verror_log.
512	* src/extern.h (log_tag, log_facility): New externs.
513	* src/guile.c (eval_catch_body): Remove.
514	(init_guile): Initialize error and info output ports.
515	(guile_ports_open): Use error and info output ports unless
516	output file is given.
517	* lib/keyword.c: New file.
518	* lib/keyword.h: New file.
519	* lib/Makefile.am: Add new files.
520	* src/logport.c: New file.
521	* src/Makefile.am (anubis_SOURCES): Add new files.
522	* src/authmode.c (asmtp_kw): Use anubis_keyword functions.
523
524	* NEWS: Update.
525	* doc/anubis.texi: Document new features.
526
5272009-09-24  Sergey Poznyakoff  <gray@gnu.org.ua>
528
529	Improve Guile support.
530	* src/guile.c: Rewrite using "inline" approach.
531	(anubis_boot): Removed.
532	(guile_safe_exec): New function.
533	(init_guile): New function.
534	(guile_load_path_append, guile_load_program)
535	(guile_process_proc): Rewrite using guile_safe_exec.
536	(inner_catch_body): Call guile_ports_open before,
537	and guile_ports_close after execution of the function.
538	* src/headers.h (anubis_boot): Remove.
539	(init_guile): New proto.
540	* src/main.c (anubis_core): Remove.
541	(main) [WITH_GUILE]: Call init_guile.
542	Inline anubis() function.
543
5442009-07-01  Wojciech Polak  <polak@gnu.org>
545
546	Fix GSASL AUTH PLAIN. Thanks Thomas Zaech for the patch.
547
5482009-02-24  Wojciech Polak  <polak@gnu.org>
549
550	Update RPM spec.
551
5522008-12-20  Wojciech Polak  <polak@gnu.org>
553
554	Version 4.1.1
555
5562008-12-20  Sergey Poznyakoff  <gray@gnu.org.ua>
557
558	Update docs
559
5602008-12-19  Wojciech Polak  <polak@gnu.org>
561
562	Change message text.
563
5642008-12-18  Sergey Poznyakoff  <gray@gnu.org.ua>
565
566	Use new SASL callback interface.
567	* src/anubisusr.c: Use new SASL callback interface.
568	* src/esmtp.c: Likewise.
569	* src/gsasl_srv.c: Likewise.
570
571	* src/authmode.c: New keywords sasl-service, sasl-hostname,
572	sasl-realm
573	* src/extern.h (anubis_sasl_service,anubis_sasl_realm)
574	(anubis_sasl_hostname): New globals.
575
576	* usr.opt, adm.opt: Bugfix.
577
5782008-12-17  Wojciech Polak  <polak@gnu.org>
579
580	Fix typo.
581
582	Switched to Git repository.
583	* m4: Rename to am.
584	* README-alpha, README-hacking: Reflect the switch.
585	* */.cvsignore: Rename to .gitignore, update.
586	* ChangeLog: Rename to ChangeLog-CVS-old.
587
5882008-12-11  Wojciech Polak  <polak@gnu.org>
589
590	* configure.ac: Remove -Wno-deprecated-declarations.
591	* src/anubisusr.c, src/esmtp.c, src/gsasl.c, src/gsasl_srv.c,
592	src/headers.h: Update deprecated GSASL API calls.
593
5942008-12-11  Sergey Poznyakoff  <gray@gnu.org.ua>
595
596	* src/Makefile.am (anubisadm_SOURCES): Add new files.
597	(anubisusr_SOURCES): Add new files.
598	* src/anubisadm.h: New file.
599	* src/adm.opt: New file.
600	* src/anubisusr.h: New file.
601	* src/usr.opt: New file.
602	* src/anubisadm.c: Remove command line option parsing. See adm.opt.
603	* src/anubisusr.c: Remove command line option parsing. See
604	usr.opt.
605	(smtp_get_reply): Use stream_getline, this fixes buffer size
606	problems.
607	* src/env.opt: Fix argument quoting.
608	* src/errs.c (hostname_error): Argument is const.
609	* src/gdbm.c, src/gpg.c, src/guile.c, src/proclist.c,
610	src/transmode.c: Minor change.
611	* src/getopt.m4: Import from Dico.
612	* src/headers.h (stream_getline): New prototype.
613	(hostname_error): Argument is const.
614	* src/main.c (copyright): Remove.
615	(xalloc_die): Call abort to pacify gcc.
616	* src/net.c (recvline): Rewrite using stream_getline. This also fixes
617	memory leak.
618	* src/stream.c (stream_readline): Do not insert \r before \n. This
619	is impossible to do correctly without a proper buffering scheme.
620	(stream_getline): New function.
621	* src/tunnel.c: Remove CRLF after a call to recvline.
622	(transfer_command): Compensate for this.
623
6242008-12-09  Wojciech Polak  <polak@gnu.org>
625
626	* configure.ac: Use default CFLAGS.
627
6282008-10-13  Sergey Poznyakoff  <gray@gnu.org.ua>
629
630	* src/tunnel.c (transfer_command): Ensure outgoing mail from and
631	rcpt to commands don't have whitespace after the colon.
632	* NEWS, configure.ac: version 4.1.1
633	* doc/anubis.texi: Minor fix.
634	* guile/entire-msg.scm: Use (ice-9 rdelim)
635
636	* testsuite/mta.c (check_address_command): New function (ported
637	from mailfromd).
638	(smtp): Improve RFC compliance.
639	* testsuite/etc/add-body-file.pat:
640	* testsuite/etc/add-body.pat
641	* testsuite/etc/add1.pat
642	* testsuite/etc/add2.pat
643	* testsuite/etc/add3.pat
644	* testsuite/etc/cond.pat
645	* testsuite/etc/del1.pat
646	* testsuite/etc/del2.pat
647	* testsuite/etc/del3.pat
648	* testsuite/etc/del4.pat
649	* testsuite/etc/empty.pat
650	* testsuite/etc/gpgcrypt.pat
651	* testsuite/etc/gpgse.pat
652	* testsuite/etc/gpgsign.pat
653	* testsuite/etc/mime1.pat
654	* testsuite/etc/mime2.pat
655	* testsuite/etc/mod-body.pat
656	* testsuite/etc/mod-header.pat
657	* testsuite/etc/mult.pat
658	* testsuite/etc/no-backref.pat
659	* testsuite/etc/paolo.pat
660	* testsuite/etc/remail.pat
661	* testsuite/etc/rot-13.pat
662	* testsuite/etc/tlsoneway.pat
663	* testsuite/etc/trigger.pat
664
6652008-07-03  Sergey Poznyakoff  <gray@gnu.org.ua>
666
667	Fix loop-detection code, add some minor improvements.
668
669	* README-hacking: Update.
670	* bootstrap.conf: Add sysexits.
671	* build/bootstrap: Synch with gnulib repository.
672	* build/gnulib.modules: Remove.
673	* lib/.cvsignore, m4/.cvsignore, po/.cvsignore: Update.
674	* lib/Makefile.am: Remove unnecessary initializations.
675	* src/authmode.c (anubis_authenticate_mode): Remove a block of
676	code duplicated in transmode.c and replace it with a call to
677	session_prologue.
678	* src/transmode.c (anubis_transparent_mode): Likewise.
679	(string_to_ipaddr, session_prologue): New functions.
680	* src/env.opt: Fix Emacs mode marker.
681	* src/headers.h: Include sysexits.h unconditionally.
682	(session_prologue): New prototype.
683	* src/tls.c (cipher_info): Add missing newline.
684
6852007-11-04  Wojciech Polak  <polak@gnu.org>
686
687	======================
688	 Released version 4.1
689	======================
690
6912007-11-04  Sergey Poznyakoff  <gray@gnu.org.ua>
692
693	* src/guile.c: Switch to Guile 1.8.x
694	* m4/guile.m4: Require at least Guile 1.8.0
695	* NEWS: Update
696
6972007-11-03  Sergey Poznyakoff  <gray@gnu.org.ua>
698
699	* src/authmode.c (anubis_authenticate_mode): Fix indentation.
700	* src/daemon.c (_stdio_read): Fix return value.
701	* src/headers.h (xdatabase_capability): Change signature.
702	* src/tunnel.c (handle_ehlo): Update call to xdatabase_capability.
703	* src/xdatabase.c (xdatabase_capability): Expand reply buffer as
704	needed.
705
706	* configure.ac, NEWS: version 4.1.
707	* src/exec.c (exec_argv): Fix reading program's output.
708	* src/gdbm.c (gdbm_content_to_record): zero-terminate the key.
709	* src/getopt.m4 (print_help): Override bug in GNU M4.
710	* src/gpg.c (anubis_gpg_read): New function.
711	(gpg_sign, gpg_encrypt, gpg_sign_encrypt): Fix reading GPG
712	output.
713	* src/mime.c (message_append_signature_file): Remove useless
714	MAXPATHLEN limit.
715
7162007-11-02  Wojciech Polak
717
718	* bootstrap.conf (gnulib_modules): Add xalloc.
719	* po/POTFILES.in: Remove src/mem.c.
720
7212007-11-01  Sergey Poznyakoff  <gray@gnu.org.ua>
722
723	* NEWS: Update
724	* doc/anubis.texi: Update
725
7262007-10-31  Sergey Poznyakoff  <gray@gnu.org.ua>
727
728	* README: Clean up formatting.
729	* README-hacking: Update.
730	* doc/Makefile.am (manual): Use texi2html to create HTML sources.
731	* doc/gendocs_template: Likewise.
732	* doc/anubis.texi: Fix sectioning commands. Use @acronym when
733	needed.
734	* lib/Makefile.am: Initialize some variables before including
735	gnulib.mk.
736	* src/mem.c, src/mem.h: Remove.
737	* src/Makefile.am (libanubisdb_a_SOURCES): Remove mem.c and mem.h.
738	* src/anubisadm.c: Do not include getline.h.
739	Define xalloc_die instead of adm_memory_error.
740	* src/anubisusr.c: Likewise.
741	* src/headers.h: Remove mem.h.
742	Include xalloc.h.
743	* src/main.c: Define xalloc_die.
744
745	* src/list.c, src/pgsql.c, src/mysql.c, src/sql.c,
746	src/stream.c: Fix memory management .
747	* src/authmode.c, src/gpg.c, src/misc.c, src/rcfile.c,
748	src/tunnel.c: Use xstrdup instead of allocbuf.
749
750	* src/anubisdb.c, src/sql.h, src/tls.c: Minor change .
751
752	* src/rcfile.h (struct rc_expr): New member `sep'.
753	* src/rcfile.l: Return != as a token.
754	(string_add): Initialize next.
755	* src/rcfile.y: Handle optional concatentation directive in expr
756	statement. Handle != opcode.
757	Disallow placing regex modifiers before opcode (= or !=).
758	(rc_node_print): Reflect concatenation separator.
759	(re_eval_list): Take new argument: concatenation separator.
760	All uses updated.
761
762	* testsuite/lib/anubis.exp: Do not display "be patient"
763	warning. Things have become faster nowadays.
764	* testsuite/etc/mod-header.in, testsuite/etc/std.in: Remove
765	obsolete usage of regex flags before the equals sign.
766
7672007-08-06  Sergey Poznyakoff  <gray@gnu.org.ua>
768
769	Relicense everything under GPLv3+
770
7712007-08-06  Sergey Poznyakoff  <gray@gnu.org.ua>
772
773	* Makefile.am: Place src before po, to satisfy the dependency
774	POTFILES -> env.c
775	* configure.ac: Check for locale.h
776	* lib/argcv.c (argcv_string): Fix type mismatch in conditional
777	* src/daemon.c (anubis_child_main): Fix call to net_close_stream
778	* src/env.opt (anubis_changeowner): Argument is const
779	* src/exec.c (sig_local): Remove forward decl.
780	* src/headers.h (stream_io_t): Remove
781	(stream_read_t, stream_write_t): Introduce instead
782	All dependencies updated
783	(stream_write): Second argument is const
784	(anubis_changeowner): argument is const
785	* src/stream.c: Likewise
786	* src/gsasl.c (_gsasl_write): Fix signature
787	* src/tls.c (_tls_write) : Fix signature
788	* src/net.c (connect_directly_to): Fix error message
789	* src/rcfile.c (_anubis_hang): Fix type
790	* src/transmode.c: (anubis_transparent_mode): Fix calls to
791	service_unavailable
792	* src/tunnel.c (handle_starttls): Fix get_response_smtp invocation
793	(handle_ehlo): Fix calls to swrite
794	* src/xdatabase.c: Fix error message
795	* testsuite/findport.c: Include string.h
796
7972007-08-06  Sergey Poznyakoff  <gray@gnu.org.ua>
798
799	* bootstrap.conf: New file
800	* Makefile.am (SUBDIRS): Remove intl
801	* configure.ac: Use gnulib
802	* lib/Makefile.am: Likewise
803	* src/Makefile.am (EXTRA_DIST): Add getopt.m4 and env.opt
804	* src/env.c: Removed.
805	* src/env.opt, src/getopt.m4: New files
806	* src/headers.h (ANUBIS_PRINTFLIKE): New macro
807	(anubis_error,anubis_warning): Mark with ANUBIS_PRINTFLIKE
808	(print_version,print_usage): Removed
809	* src/help.c (print_version,print_usage): Remove functions
810
811	* lib/getline.c, lib/getline.h, lib/getopt.c, lib/getopt1.c,
812	lib/getpass.c, lib/gettext.h, lib/obstack.c, lib/obstack.h,
813	lib/setenv.c, lib/getopt.h: Remove
814
815	* m4/exitfail.m4, m4/getdelim.m4, m4/getline.m4, m4/getopt.m4,
816	m4/getpass.m4, m4/gnulib.m4, m4/inttypes_h_gl.m4,
817	m4/obstack.m4, m4/onceonly_2_57.m4, m4/uintmax_t_gl.m4,
818	m4/ulonglong_gl.m4, m4/unistd_h.m4, m4/stdbool.m4,
819	m4/stdint_h_gl.m4: Remove
820
821	* po/de.po, po/fr.po, po/ms.po, po/nb.po, po/nl.po, po/pl.po,
822	po/ro.po, po/ru.po, po/tr.po, po/uk.po, po/vi.po, po/LINGUAS,
823	po/Makevars: Remove
824
825	* build/bootstrap: Modified version from gnulib
826	* NEWS, README-alpha: Update
827	* README-hacking: New file
828
8292007-07-29  Wojciech Polak
830
831	* */*: OpenSSL support has been dropped.
832
8332006-06-27  Sergey Poznyakoff  <gray@gnu.org.ua>
834
835	* build/bootstrap: Auxiliary script to update anubis library from
836	gnulib.
837	* build/gnulib.modules: List of modules to use.
838
839	* configure.ac: Remove explicit checks for getopt_long, obstack,
840	snprintf, getline, getpass in favor of gnulib check.
841	* lib/Makefile.am: Rewritten for automatic updates
842
843	* lib/getline.c, lib/getline.h, lib/getopt.c, lib/getopt.h,
844	lib/getopt1.c, lib/getpass.c, lib/gettext.h, lib/obstack.c,
845	lib/obstack.h, lib/exit.h, lib/exitfail.c, lib/exitfail.h,
846	lib/getdelim.c, lib/getdelim.h, lib/getopt_.h, lib/getopt_int.h,
847	lib/getpass.h, lib/stdbool_.h: Update from gnulib
848
849	* m4/libgnutls.m4: Properly quote macro name.
850	* m4/exitfail.m4, m4/getdelim.m4, m4/getline.m4, m4/getopt.m4,
851	m4/getpass.m4, m4/gnulib.m4, m4/inttypes_h_gl.m4, m4/obstack.m4,
852	m4/onceonly_2_57.m4, m4/stdbool.m4, m4/stdint_h_gl.m4,
853	m4/uintmax_t_gl.m4, m4/ulonglong_gl.m4, m4/unistd_h.m4: Update
854	from gnulib
855	* m4/.cvsignore: Update
856
8572006-02-10  Sergey Poznyakoff  <gray@gnu.org.ua>
858
859	* configure.ac (WITH_GSASL): Default to no
860
8612006-01-18  Sergey Poznyakoff  <gray@gnu.org.ua>
862
863	* README-alpha: Update cvs co information.
864
865	* src/ident.c (ident_extract_username): Fix bug introduced 2005-04-18
866
8672005-08-22  Sergey Poznyakoff
868
869	* m4/gsasl.m4: Enable GSASL by default whenever possible.
870	* configure.ac: Display summary after configuring.
871
8722005-07-09  Wojciech Polak
873
874	* src/daemon.c (set_unprivileged_user): Copy an unprivileged
875	user name to session.clientname.
876	* src/rcfile.c (control_parser): Bugfix. Set T_USER_NOTPRIVIL
877	flag for KW_USER_NOTPRIVILEGED.
878	* src/authmode.c (anubis_authenticate_mode): Try to open user's
879	configuration file from default location if the CONFIG field
880	is null.
881
8822005-07-09  Sergey Poznyakoff
883
884	* src/Makefile.am (anubis.cflow): Do not process header
885	files, they will be included anyway.
886	* build/cflow.rc: New file
887	* build/Makefile.am: Add cflow.rc.
888
8892005-06-06  Sergey Poznyakoff
890
891	* src/gsasl_srv.c (auth_gsasl_capa_init): Make sure the list
892	of supported mechanisms preserves ordering of
893	sasl-allowed-mech variable.
894	* src/list.c (list_intersect): Give more detail in the comment.
895	* testsuite/etc/target.in.in (sasl-allowed-mech): Only CRAM-MD5
896	for testing purposes.
897
8982005-05-25  Sergey Poznyakoff
899
900	* TODO: Updated
901	* src/Makefile.am (flowchart,anubis.cflow): New rules
902	* src/authmode.c: Do not duplicate remote_client/remote_server as
903	parameters/autos.
904	* src/daemon.c: Likewise.
905	* src/extern.h: Likewise.
906	* src/gsasl_srv.c: Likewise.
907	* src/headers.h: Likewise.
908	* src/transmode.c: Likewise.
909
9102005-04-20  Sergey Poznyakoff
911
912	* configure.ac: Changed version number to 4.0.90.
913	* NEWS: Updated.
914	* src/proclist.c: New file. Subprocess database for Anubis.
915	* src/Makefile.am (anubis_SOURCES): Add proclist.c
916	* src/daemon.c: Rewritten using functions from proclist.c
917	* src/exec.c: Likewise
918	* src/gsasl_srv.c (anubis_name_cmp): Move to misc.c
919	* src/misc.c (anubis_name_cmp):" Moved from gsasl_srv.c
920	* src/headers.h (proclist_register,proclist_cleanup)
921	(proclist_init,proclist_count): New functions.
922	* src/list.c (_iterator_attach,_iterator_detach): New functions.
923	(iterator_create,iterator_destroy): Rewritten using the above
924	functions.
925	(list_remove): make sure to return actual data, an application
926	may well supply data==NULL.
927	(list_iterate): Do not use memory allocation functions. The
928	function is safe to be called from signal handlers.
929	* src/transmode.c (anubis_transparent_mode): Do not close pam
930	session if it was not open.
931
9322005-04-19  Sergey Poznyakoff
933
934	* src/guile.c (guile_ports_open): Make sure port name always
935	reflects actual file name.
936	(guile_parser): Bugfix. guile_ports_open() was called too early,
937	which led to coredump when processing guile-output statement.
938	Besides guile_ports_close() was not called before return.
939
9402005-04-18  Sergey Poznyakoff
941
942	* src/gpg.c (fail_if_err): Rewritten to avoid evaluating the
943	argument twice.
944	(passphrase_cb): Rewritten to work with GPGME 1.0.2. Patch
945	courtesy of Brian Dessent <brian@dessent.net>.
946	* src/ident.c (ident_extract_username): Skip any whitespace
947	after ':'. Patch courtesy of Brian Dessent <brian@dessent.net>.
948	* THANKS: Updated
949
9502005-03-02  Sergey Poznyakoff
951
952	* src/rcfile.c (control_parser): A couple of minor stylistic
953	fixes. Implemented ALLOW-HANG keyword.
954
9552005-02-26  Sergey Poznyakoff
956
957	* src/ident.c (auth_ident): Bugfix
958	* src/rcfile.c: New CONTROL statement "HANG". Instructs
959	child process to hang for a given number of seconds
960	before processing.
961	* src/guile.c (guile_load_path_append,guile_load_program): Changed
962	prototype.
963	(inner_catch_body): New function
964	(eval_catch_body): Removed
965	(guile_parser): Largely rewritten. Wherever guile internal functions
966	are called, do so by wrapping them in a lazy catch to prevent
967	guile from aborting the child process on error.
968	* src/headers.h (guile_load_path_append,guile_load_program)
969	(guile_rewrite_line): Removed.
970	* src/transmode.c (anubis_transparent_mode): Call auth_tunnel no
971	matter was the client recognized or not. Thus, even if Anubis
972	has switched to the unprivileged level, it executest appropriate
973	parts from the main configuration file.
974	* doc/anubis.texi: Document HANG statement
975
9762005-02-12  Sergey Poznyakoff
977
978	* TODO: Minor issue regarding session.execpath.
979	* lib/argcv.c: New file.
980	* lib/argcv.h: New file.
981	* lib/Makefile.am (libanubis_a_SOURCES): Add argcv.c and
982	argcv.h
983	* src/anubisusr.c: Use argcv_get/argcv_free
984	* src/message.c: Likewise.
985	* src/quit.c: Likewise.
986	* src/rcfile.c: Likewise.
987	* src/rcfile.y: Likewise.
988	* src/regex.c: Likewise.
989	* src/exec.c: Likewise.
990	(gen_execargs): Removed.
991	* src/env.c: Likewise.
992	(argcv_dup): Removed
993	* src/headers.h: Include argcv.h
994	* src/mem.c (free_pptr): Removed
995
9962005-02-07  Sergey Poznyakoff
997
998	* src/esmtp.c (get_reply): Changed declaration. All callers
999	updated
1000	* src/net.c (get_response_smtp): Minor correctrion;
1001	* src/tunnel.c (smtp_session_transparent): Bugfix
1002	(smtp_begin): Send EHLO, not HELO.
1003
10042005-02-03  Sergey Poznyakoff
1005
1006	Further cleanup as per TODO:5. Removed fixed-size
1007	buffers related to recvline calls.
1008
1009	* src/headers.h (get_response_smtp): New function
1010	(readline): Changed declaration
1011	(recvline_ptr): Removed
1012	* src/net.c (recvline): Removed
1013	(recvline_ptr): Renamed to recvline. All callers changed
1014	* src/authmode.c: Use new recvline.
1015	* src/gsasl_srv.c: Likewise.
1016	* src/ident.c: Likewise.
1017	* src/mda.c: Likewise.
1018	* src/tunnel.c: Likewise.
1019	* src/xdatabase.c: Likewise.
1020
10212005-01-21  Sergey Poznyakoff
1022
1023	* configure.ac: Raised version number to 4.1
1024	* src/env.c: New option --from
1025	* src/help.c: Document --from option
1026	* src/exec.c (make_local_connection_arg): Removed. Not needed
1027	any more.
1028	* src/extern.h (incoming_mail_rule,outgoing_mail_rule)
1029	(from_address): New variables.
1030	* src/headers.h (send_eol,mda)
1031	(anubis_set_encryption_mech_list): New prototype.
1032	(anubis_assoc_cmp): New function
1033	(collect_headers): Changed prototype
1034	(make_local_connection_arg): Removed.
1035	* src/main.c (incoming_mail_rule,outgoing_mail_rule): New
1036	variables.
1037	* src/mda.c (deliver): Expand macro notations in local mailer
1038	command line before invoking it.
1039	Use rcfile_call_section to process incoming mail rules.
1040	(mda): Ensure from_address is set.
1041	* src/misc.c (anubis_assoc_cmp): New function
1042	(assign_string, assign_string_n): Accept NULL argument.
1043	* src/rcfile.c (control_parser): Handle incoming-mail-rule
1044	and outgoing-mail-rule options.
1045	* src/tunnel.c (collect_headers): Take second argument, specifying
1046	the first header line (or NULL).
1047	(process_data): Use rcfile_call_section to process outgoing mail
1048	rules.
1049
1050	* doc/anubis.texi: Initial documentation for MDA mode
1051	* doc/Makefile.am: Rewritten to use gendocs.sh. Needs CVS
1052	version of the script.
1053	* doc/index.html.in: Removed.
1054	* doc/gendocs_template: New file.
1055	* doc/fdl.texi: Fixed sectioning.
1056	* doc/mime.texi: New file
1057
10582005-01-20  Sergey Poznyakoff
1059
1060	Initial implementation of MDA mode, allowing Anubis to
1061	process incoming mail.
1062	Some cleanup according to TODO:5
1063
1064	* configure.ac: Check for sysexits.h
1065	* src/mda.c: New file. Mail Delivery Agent mode support
1066	* src/Makefile.am: Add mda.c
1067
1068	* src/env.c (x_argc,x_argv): New globals
1069	--mode option does not depend on WITH_GSASL anymore.
1070	(get_options): Changed handling of non-optional arguments.
1071	Argument to -l option must be properly quoted.
1072	* src/exec.c (make_local_connection_arg): New function
1073
1074	* src/headers.h: Provide EX_ macros or include sysexits.h
1075	when available
1076	(enum anubis_mode.anubis_mda): New mode
1077	* src/extern.h (session_struct): Removed fixed-size strings.
1078	All referers updated.
1079	* src/anubisusr.c: Likewise
1080	* src/authmode.c: Likewise
1081	* src/daemon.c: Likewise
1082	* src/ident.c: Likewise
1083	* src/main.c: Likewise
1084	* src/map.c: Likewise
1085	* src/misc.c: Likewise
1086	* src/rcfile.c: Likewise
1087	* src/regex.c: Likewise
1088	* src/transmode.c: Likewise
1089
1090	* src/net.c (send_eol): New function.
1091	* src/tunnel.c: Use send_eol() when needed.
1092	(transfer_header,collect_header)
1093	(transfer_body, collect_body): Changed to extern
1094
10952005-01-02  Sergey Poznyakoff
1096
1097	* doc/anubis.texi: Documented read-entire-body and escape
1098	sequences.
1099	* src/rcfile.l (escape): Handle \b escape
1100	* src/rcfile.y (regex production): Bail out if regex compile
1101	failed.
1102	* src/regex.c (anubis_regex_replace): Bugfix
1103
1104	* testsuite/anubis/paolo.exp: New test
1105	* testsuite/etc/paolo.in: Likewise
1106	* testsuite/etc/paolo.pat: Likewise
1107	* testsuite/etc/Makefile.am: Updated
1108
11092004-12-18  Wojciech Polak
1110
1111	======================
1112	 Released version 4.0
1113	======================
1114
1115	* NEWS: Updated.
1116	* configure.ac: Raised version number to 4.0.
1117
11182004-12-17  Wojciech Polak
1119
1120	* doc/anubis.texi: Updated.
1121	* doc/anubis.1: Likewise.
1122	* elisp/anubis-mode.el: Added new keywords.
1123	* lib/obstack.c: Provide newer version.
1124	* lib/obstack.h: Likewise.
1125	* src/esmtp.c (do_gsasl_auth): Removed trailing \n in a verbose
1126	message.
1127
11282004-12-17  Sergey Poznyakoff
1129
1130	* README: Updated
1131	* configure.ac: Use -Wno-deprecated-declarations gcc flag
1132	if GSASL support is enabled.
1133	* src/authmode.c (rc_parser): Use anubis_set_server_mech_list()
1134	* src/esmtp.c (anubis_set_client_mech_list)
1135	(anubis_set_encryption_mech_list): New function
1136	(esmtp_auth): Support the list of mechanisms that can be used
1137	only over an encrypted channel.
1138	[!WITH_GSASL] (esmtp_auth): Provide function definition
1139	* src/extern.h (struct session_struct): Removed mta_username,
1140	mta_password
1141	* src/gsasl_srv.c (anubis_set_mech_list): Changed declaration
1142	(anubis_set_server_mech_list): New function
1143	* src/headers.h: Provide new prototypes
1144	* src/quit.c: Removed session_struct.mta_username, mta_password
1145	* src/tunnel.c: Likewise
1146	* src/rcfile.c (control_parser): Handle new statements
1147	* testsuite/mta.c: Minor fix
1148	* testsuite/etc/interface.in.in: Use WITH_GNUTLS instead of
1149	WITH_SSL
1150	* testsuite/etc/target.in.in: Likewise
1151	* testsuite/lib/anubis.exp (run_in_authmode): Fix message text
1152	* doc/anubis.texi: Documented new statements
1153
11542004-12-16  Sergey Poznyakoff
1155
1156	* TODO: updated
1157	* configure.ac: set "M4_DEFS -DWITH_GSASL"
1158	* src/esmtp.c: Completely rewritten using gsasl
1159	* src/extern.h (anon_token,authorization_id,authentication_id)
1160	(auth_password,auth_service,auth_hostname,generic_service_name)
1161	(auth_passcode,auth_realm): New variables.
1162	* src/gsasl_srv.c: Updated
1163	* src/headers.h: Updated
1164	* src/stream.c (stream_readline): Minor fix
1165	* src/tunnel.c (collect_body): delete AUTH part.
1166	* testsuite/mta.c: minor indentation fix
1167	* testsuite/etc/Makefile.am: Change $(RCFILES) std.pat:
1168	* Makefile.am: dependency to $(RCFILES) std.pat: Makefile.am
1169	* testsuite/etc/target.in.in: Conditionally include -c and -k.
1170	* testsuite/lib/anubis.exp (sanubis_pat): Fix TLS/GSASL usage
1171
11722004-12-15  Sergey Poznyakoff
1173
1174	* configure.ac: Bail out if required SQL libraries are not
1175	found. Strictly control arguments to --with-postgres/--with-mysql
1176	* src/anubisusr.c (smtp_get_reply): Minor fix: clear trailing \r
1177	in buf as well.
1178	(cb_service): Fixed typo
1179	* src/gsasl.c (write_chunk,_gsasl_read): Removed old usage of
1180	gsasl_decode/gsasl_encode.
1181	* src/help.c (config_opts): Reflect WITH_PGSQL
1182	* src/net.c (recvline_ptr): Fixed buffer reallocation condition
1183	(it didn't take null terminator into account).
1184	* src/sql.c (sql_db_get,sql_db_delete,sql_db_put): Fixed eventual
1185	sql injection.
1186	* THANKS: Added Daniel S. Haischt
1187
11882004-12-09  Wojciech Polak
1189
1190	* src/socks.c: Fixed possible buffer overflow.
1191
11922004-12-03  Sergey Poznyakoff
1193
1194	* contrib/Makefile.am: Use AM_INSTALLCHECK_STD_OPTIONS_EXEMPT
1195	for msg2smtp.pl
1196	* src/daemon.c (loop): Block SIGCHLD while incrementing
1197	nchild.
1198	* src/esmtp.c (esmtp_auth): Minor fix.
1199	* src/gpg.c (create_key_array): Dynamically allocate current_key.
1200	* src/gsasl.c (install_gsasl_stream): Use xmalloc
1201	* src/gsasl_srv.c (anubis_auth_gsasl): A bit of sugar for broken
1202	printfs: print NULLs explicitely.
1203	* src/net.c (get_response_smtp): Fix eventual buffer overflow
1204	* src/tunnel.c: Fix typo in comment
1205	* src/xdatabase.c (xdatabase): Handle NULL argument.
1206	* testsuite/etc/Makefile.am: Add dependency
1207	$(RCFILES) std.pat: Makefile.am
1208	* testsuite/lib/anubis.exp (anubis_init): Do not pass -s option
1209	to anubis.
1210
12112004-11-22  Wojciech Polak
1212
1213	Potential security fixes by Ulf H�rnhammar:
1214
1215	* src/anubisadm.c (adm_memory_error): Fixed wrong format strings.
1216	(op_add_or_modify): Likewise.
1217	* src/main.c (anubis_memory_error): Likewise.
1218	* src/authmode.c (anubis_authenticate_mode): Set the last element
1219	of `session.clientname' to '\0'.
1220
12212004-10-29  Sergey Poznyakoff
1222
1223	* src/regex.c (anubis_regex_replace): Fixed coredump
1224	* testsuite/anubis/no-backref.exp: New regression test. Test for
1225	'Paolo syndrome'.
1226	* testsuite/anubis/DISTFILES: Add no-backref.exp
1227	* testsuite/etc/no-backref.in: Data for testing 'Paolo syndrome'
1228	* testsuite/etc/no-backref.pat: Likewise
1229	* testsuite/etc/Makefile.am: Add no-backref.pat and no-backref.in
1230
1231	* THANKS: Updated
1232
12332004-10-16  Wojciech Polak
1234
1235	* configure.ac: Require GPGME 1.0.0.
1236
12372004-09-24  Sergey Poznyakoff
1238
1239	Released version 3.9.96
1240
1241	* Makefile.am: Use gnits
1242	* NEWS: Updated
1243	* doc/Makefile.am ($(PROJECT).text): Explicitely pass info file
1244	from cwd (breaks builds from a separate directory but we never use
1245	them when making docs, anyway).
1246
12472004-09-22  Sergey Poznyakoff
1248
1249	* src/anubisusr.c: Got read of secure.client and secure.server
1250	globals
1251	* src/extern.h: Likewise
1252	* src/quit.c: Likewise
1253	* src/transmode.c: Likewise
1254	* src/tunnel.c: Likewise
1255
1256	* src/rcfile.c: Allow use of `logfiles' and `loglevel' in main
1257	configuration file, provided that the uid is not 0.
1258	* src/headers.h: New macro T_DISABLE_SYSLOG
1259	* src/log.c: Do not use syslog if T_DISABLE_SYSLOG is set
1260
1261	* src/daemon.c (daemonize): Use info() instead of syslog().
1262	(sig_cld): Improved diagnostics.
1263	* src/stream.c (stream_destroy): Use xfree() for consistency
1264
1265	* src/errs.c: Minor formatting fix.
1266	* src/message.c: Likewise
1267
1268	* testsuite/etc/interface.in.in: Use logfile directive
1269	* testsuite/etc/target.in.in: Likewise
1270
12712004-09-17  Sergey Poznyakoff
1272
1273	* testsuite/lib/anubis.exp (anubis_pat): Updated to
1274	support the recent changes (2004-09-13)
1275
1276	* src/errs.c (anubis_error): Rewritten
1277	(anubis_warning): New function (for future use).
1278
1279	* src/headers.h (T_ERROR): Removed.
1280	(SOFT,HARD,SYNTAX): Removed
1281	(anubis_error,anubis_warning): New declaration
1282
1283	* src/anubisusr.c (anubis_error): Updated definition
1284	Issue QUIT command before normal exiting.
1285
1286	* src/authmode.c: Do not use T_ERROR. Updated calls to
1287	anubis_error
1288	Issue 221 response on QUIT command
1289
1290	* src/daemon.c: Do not use T_ERROR. Updated calls to anubis_error
1291	* src/env.c: Likewise
1292	* src/esmtp.c: Likewise
1293	* src/exec.c: Likewise
1294	* src/gpg.c: Likewise
1295	* src/gsasl_srv.c: Likewise
1296	* src/guile.c: Likewise
1297	* src/ident.c: Likewise
1298	* src/main.c: Likewise
1299	* src/map.c: Likewise
1300	* src/mime.c: Likewise
1301	* src/net.c: Likewise
1302	* src/rcfile.c: Likewise
1303	* src/rcfile.l: Likewise
1304	* src/rcfile.y: Likewise
1305	* src/regex.c: Likewise
1306	* src/socks.c: Likewise
1307	* src/ssl.c: Likewise
1308	* src/tls.c: Likewise
1309	* src/transmode.c: Likewise
1310	* src/tunnel.c: Likewise
1311	* src/xdatabase.c: Likewise
1312
13132004-09-13  Sergey Poznyakoff
1314
1315	* src/authmode.c (anubis_smtp): Force T_SSL_ONEWAY if `ssl yes'
1316	is requested and SSL connection between the MUA and Anubis has been
1317	successfully established. Necessary for handle_ehlo() to
1318	work.
1319	(asmtp_capa_init) [HAVE_TLS]: Changed to USE_SSL.
1320	* src/tunnel.c (handle_ehlo): Comment updated.
1321
13222004-09-03  Sergey Poznyakoff
1323
1324	* src/authmode.c: Added missing pam_retval declaration.
1325	* src/transmode.c: Likewise
1326
13272004-09-02  Sergey Poznyakoff
1328
1329	* doc/anubis.texi (Mutt): New node documenting the existing
1330	methods of interfacing mutt with anubis.
1331
13322004-08-17  Wojciech Polak
1333
1334	* doc/anubis.texi (Sample Beginning): Removed text
1335	about IDENT protocol server.
1336	* TODO: Updated.
1337
13382004-08-14  Sergey Poznyakoff
1339
1340	* testsuite/anubis.authmode/abase.exp: New file
1341	* testsuite/anubis.authmode/DISTFILES: Updated
1342	* src/authmode.c (anubis_smtp,xdb_loop): Exit if T_ERROR
1343	bit is set.
1344
1345	* testsuite/lib/anubis.exp (update_config): Return -1 if
1346	res is an empty list. Set anubisusr verbose mode only if
1347	$verbose > 2
1348	(run_in_authmode): Declare unsupported test if anubis is
1349	configured without GSASL
1350	(default_anubis_stop,anubis_exit): New procedures
1351	(anubis_test_file): Call remote_close
1352	(anubis_pat): Call default_anubis_stop
1353
13542004-08-13  Sergey Poznyakoff
1355
1356	* src/anubisusr.c: New options --file and --netrc allow
1357	to override default file names for users' .anubisrc and
1358	.netrc files
1359	(diff): Proceed with the update if the remote rcfile does
1360	not exist.
1361	(main): Bail out on unknown options
1362	* src/authmode.c (asmtp_ehlo_reply): Save ehlo domain for
1363	further use in tunnel.c
1364	(anubis_authenticate_mode): Process rc file whenever it
1365	is present in ANUBIS_USER.
1366	* src/daemon.c (daemonize): Ignore SIGHUP before call to
1367	daemon(). Write pid file.
1368	* src/dbtext.c (dbtext_open): Minor fix
1369	* src/env.c: New option --pid-file
1370	(write_pid_file): New function
1371	* src/headers.h: New declarations.
1372	* src/tunnel.c (set_ehlo_domain): New function
1373	* src/xdatabase.c (xexamine): Issue reply 300 if rc file
1374	does not exist.
1375
1376	* testsuite/findport.c: New file
1377	* testsuite/anubis.authmode: New directory
1378	* testsuite/anubis.authmode/DISTFILE: New file
1379	* testsuite/anubis.authmode/base.exp: New file
1380	* testsuite/anubis.authmode/gpg.exp: New file
1381	* testsuite/anubis.authmode/guile.exp: New file
1382	* testsuite/anubis.authmode/mime.exp: New file
1383
1384	* testsuite/Makefile.am: Added new files
1385
1386	* testsuite/anubis/abase.exp: New file. It should be
1387	called before base.exp, hence its name.
1388	* testsuite/anubis/base.exp: Moved std.pat to abase.exp
1389	* testsuite/anubis/DISTFILES: Added new files
1390
1391	* testsuite/data/users: New file
1392	* testsuite/data/Makefile.am: Added new files
1393
1394	* testsuite/etc/interface.in.in: New file
1395	* testsuite/etc/target.in.in: New file
1396	* testsuite/etc/net.rc: New file
1397	* testsuite/etc/Makefile.am: Added new files
1398
1399	* testsuite/lib/anubis.exp: Added support for authmode testing.
1400
1401	* testsuite/.cvsignore: Updated
1402	* testsuite/data/.cvsignore: Updated
1403	* testsuite/etc/.cvsignore: Updated
1404
14052004-08-12  Sergey Poznyakoff
1406
1407	* src/dbtext.c: Changed format. Fields are separated by
1408	colons.
1409	* src/anubisadm.c: Use NONE to represent empty fields.
1410	* doc/anubis.texi: Updated.
1411
14122004-08-09  Sergey Poznyakoff
1413
1414	* configure.ac: Updated
1415	* src/env.c (change_privs): New function.
1416	(anubis_changeowner): Use change_privs to correctly switch
1417	privileges.
1418
14192004-08-07  Sergey Poznyakoff
1420
1421	* configure.ac: Raised version number to 3.9.96
1422	* src/md5.c: New file.
1423	* src/Makefile.am: Added md5.c
1424	* src/anubisusr.c: Use MD5 sums instead of comparing file
1425	contents.
1426	* src/xdatabase.c: Likewise.
1427	* src/authmode.c (anubis_authenticate_mode): Bugfix
1428	* src/transmode.c (anubis_transparent_mode): Bugfix
1429	* src/headers.h (anubis_md5_file)
1430	(string_bin_to_hex,string_hex_to_bin): New declarations
1431
14322004-08-06  Sergey Poznyakoff
1433
1434	* configure.ac: Require gpgme 0.9.0. Check for
1435	AC_SYS_LARGEFILE (needed by gpgme).
1436	* src/gpg.c: Rewritten for gpgme 0.9.0
1437
14382004-08-06  Sergey Poznyakoff
1439
1440	* src/anubisusr.c: Use XELO
1441	* src/authmode.c: Implemented XELO
1442	* src/tunnel.c (process_command): Minor change.
1443	* src/xdatabase.c (xdatabase)" Minor change.
1444
14452004-07-31  Sergey Poznyakoff
1446
1447	Released version 3.9.95
1448
1449	* NEWS: Updated time and version stamps.
1450
14512004-07-22  Wojciech Polak
1452
1453	* src/authmode.c: Added initial XELO implementation (the seed).
1454	(helo_count): Added new variable; in the future report possible
1455	SMTP attack.
1456	* src/headers.h (T_XELO): New flag.
1457
14582004-07-21  Wojciech Polak
1459
1460	* src/authmode.c (anubis_smtp): Clear the T_SSL_FINISHED
1461	flag after the for loop.
1462	* src/tls.c: Print all debug messages using the same style.
1463
14642004-07-18  Wojciech Polak
1465
1466	* src/anubisusr.c: Be more user friendly.
1467	(diff): As the result print text, not numbers.
1468
14692004-07-17  Wojciech Polak
1470
1471	* src/env.c (anubis_changeowner): Print also a user name.
1472	* src/main.c (main): Likewise.
1473
14742004-07-15  Sergey Poznyakoff
1475
1476	* configure.ac: Accomodate for incompatibilities of gnults 1.0.16
1477	(and eventually newer versions)
1478	* po/POTFILES.in: Updated
1479	* src/daemon.c (daemonize): Clear T_FOREGROUND flag.
1480	* src/authmode.c (asmtp_ehlo): Return correct state if TLS
1481	failed.
1482
14832004-07-13  Wojciech Polak
1484
1485	* src/tunnel.c (handle_starttls): Improved diagnostics.
1486	* src/authmode.c (asmtp_ehlo): Likewise.
1487	* src/misc.c (make_lowercase, make_uppercase): Return NULL
1488	if needed.
1489
1490	* src/auth.c: Renamed to ident.c.
1491	(auth_tunnel): Moved to rcfile.c.
1492	* src/headers.h: Updated.
1493	* src/Makefile.am: Updated.
1494
14952004-07-13  Sergey Poznyakoff
1496
1497	* src/gsasl_srv.c (anubis_set_mech_list): Convert mechanism
1498	names to uppercase
1499	* src/headers.h (make_uppercase): New function
1500	(make_lowercase): Return char* for symmetry with make_uppercase().
1501	* src/misc.c (make_lowercase): Rewritten in a more effective way.
1502	(make_uppercase): New function
1503	* src/rcfile.y (rc_set_debug_level): Check for valid input.
1504
1505	* doc/anubis.texi: Fixed rccol-rcfile confusion. The URL parameter
1506	name and its default value are now "rcfile".
1507	* src/mysql.c: Likewise.
1508	* src/pgsql.c: Likewise.
1509	* src/rcfile.c: Likewise.
1510	* src/sql.c: Likewise.
1511	* src/sql.h: Likewise.
1512
15132004-07-12  Sergey Poznyakoff
1514
1515	* src/authmode.c (make_help_message): Fixed mess created
1516	by the use of 'indent'.
1517	(asmtp_ehlo): Bail out on receiving second STARTTLS. Remove
1518	STARTTLS capability after successful initiation of TLS.
1519	(anubis_smtp): Clear T_SSL_FINISHED flag after successful
1520	authentication.
1521	* src/net.c (swrite): Do not try to write out zero bytes. This
1522	upsets gnutls.
1523	* src/stream.c (struct net_stream.state): New member
1524	(stream_set_io): Init ->state
1525	(stream_close): Do nothing if state != state_open
1526	* src/tunnel.c (get_ehlo_domain,save_ehlo_domain): New functions
1527	(smtp_begin): Use get_ehlo_domain()
1528	(handle_ehlo): Save user EHLO domain. Use get_ehlo_domain().
1529	Removed FIXME indicator
1530
15312004-07-11  Wojciech Polak
1532
1533	* src/authmode.c (anubis_authenticate_mode): Fixed the bug,
1534	where a specified config file was ignored.
1535	* src/tunnel.c (smtp_begin): Send the EHLO command to MTA.
1536	* THANKS: Added Jim Cheetham.
1537
1538	* src/*.[chly]: Indent all files using the GNU coding style.
1539	* src/tls.c: Improved diagnostics.
1540	* src/rcfile.c: Likewise.
1541	* src/esmtp.c: Likewise.
1542	* src/gsasl_srv.c: Likewise.
1543	* src/main.c: Likewise.
1544
15452004-06-19  Sergey Poznyakoff
1546
1547	* lib/lbuf.c (_auth_lb_writelines): Bugfix.
1548	* src/xdatabase.c (make_temp_file): Fixed diagnostic message.
1549
15502004-06-19  Wojciech Polak
1551
1552	* src/anubisusr.c (cb_password): Use getpass().
1553	(cb_passcode): Likewise.
1554	(parse_netrc): Be silent if .netrc doesn't exist.
1555	* configure.ac: Bump to 3.9.95.
1556
15572004-06-10  Sergey Poznyakoff
1558
1559	* TODO: Updated
1560	* src/authmode.c: Minor fixes to the diagnostic messages
1561	* src/esmtp.c: Likewise.
1562	* src/help.c: Likewise.
1563	* src/tunnel.c: Likewise.
1564
15652004-06-01  Wojciech Polak
1566
1567	Released version 3.9.94.
1568
15692004-06-01  Sergey Poznyakoff
1570
1571	* configure.ac: Install anubisusr into bindir.
1572	* src/Makefile.am: Likewise.
1573
1574	* m4/anubis.m4: Quote the defun name
1575	* m4/gpgme.m4: Likewise.
1576	* m4/gsasl.m4: Likewise.
1577	* m4/guile.m4: Likewise.
1578
15792004-05-31  Sergey Poznyakoff
1580
1581	* NEWS: Updated
1582	* doc/anubis.texi: Updated
1583	* doc/pixie-dixie.texi: Synchronised with the latest version
1584	of Pixie-Dixie.
1585
15862004-05-29  Wojciech Polak
1587
1588	* doc/Makefile.am: Changed date format to '%B %d, %Y'.
1589
15902004-05-29  Sergey Poznyakoff
1591
1592	* doc/Makefile.am: Added rules for generating web docs
1593	* doc/index.html.in: New file
1594	* doc/.cvsignore: Updated
1595
15962004-05-27  Wojciech Polak
1597
1598	* doc/anubis.texi: Updated (fixed some typos).
1599	* elisp/anubis-mode.el: Added new keywords.
1600
16012004-05-22  Wojciech Polak
1602
1603	* doc/pixie-dixie.txt: Moved to `pixie-dixie.pl.txt'.
1604	* Makefile.am: Updated.
1605
16062004-05-22  Sergey Poznyakoff
1607
1608	* doc/anubis.texi: Updated
1609	* doc/rendition.texi (macro FIXME): Rewritten
1610
16112004-05-21  Sergey Poznyakoff
1612
1613	* doc/pixie-dixie.txt: New file
1614	* doc/pixie-dixie.texi: New file
1615	* doc/rendition.texi: New file
1616	* doc/.cvsignore: Updated
1617	* doc/Makefile.am: Updated
1618	* doc/anubis.texi: Updated
1619
1620	* src/anubisadm.c: Changed LIST to ANUBIS_LIST to resolve
1621	name clash with the recent MySQL distributions
1622	* src/anubisdb.c: Likewise.
1623	* src/anubisusr.c: Likewise.
1624	* src/authmode.c: Likewise.
1625	* src/dbtext.c: Likewise.
1626	* src/extern.h: Likewise.
1627	* src/gdbm.c: Likewise.
1628	* src/gpg.c: Likewise.
1629	* src/gsasl_srv.c: Likewise.
1630	* src/guile.c: Likewise.
1631	* src/headers.h: Likewise.
1632	* src/list.c: Likewise.
1633	* src/list.h: Likewise.
1634	* src/map.c: Likewise.
1635	* src/misc.c: Likewise.
1636	* src/rcfile.c: Likewise.
1637	* src/rcfile.h: Likewise.
1638	* src/rcfile.y: Likewise.
1639	* src/sql.c: Likewise.
1640	* src/tunnel.c: Likewise.
1641
1642	* testsuite/etc/Makefile.am: Added cond.in
1643
16442004-05-20  Wojciech Polak
1645
1646	* testsuite/etc/cond.pat: New test.
1647	* testsuite/etc/cond.in: Added rules for cond.pat.
1648	* testsuite/etc/Makefile.am: Updated.
1649	* testsuite/anubis/base.exp: Added cond.pat.
1650
16512004-05-19  Sergey Poznyakoff
1652
1653	* src/tunnel.c (save_command): Fixed parsing of commands
1654	(process_command): remove CRLF from the command and flip
1655	it to lower case before parsing.
1656	(transfer_command): Reversed return code if handle_ehlo failed.
1657
16582004-05-14  Sergey Poznyakoff
1659
1660	* src/ssl.c: Rewritten to match new API.
1661
16622004-05-01  Wojciech Polak
1663
1664	* src/anubisadm.c (op_usage): Removed unused %s from error().
1665	* configure.ac: Be more verbose.
1666
16672004-04-22  Wojciech Polak
1668
1669	* configure.ac: Let's use GNU gettext 0.14.1.
1670	* Makefile.am: Let's use GNU Automake >= 1.8.3.
1671
16722004-04-22  Sergey Poznyakoff
1673
1674	* configure.ac: Added check for Postgres libraries.
1675	* guile/entire-msg.scm: New file.
1676	* guile/Makefile.am: Added guile/entire-msg.scm
1677	* src/sql.c: New file. General purpose interface to SQL databases.
1678	* src/sql.h: New file.
1679	* src/pgsql.c: New file. Postgres DB interface.
1680	* src/mysql.c: Rewritten using new SQL interface.
1681	* src/Makefile.am: Added new files.
1682	* src/anubisadm.c (op_list): Minor improvement.
1683	(main): Init postgres db, if required.
1684	* src/authmode.c: Minor stylistic fix. Removed misguiding comment.
1685	* src/main.c (main): Init postgres db, if required.
1686
1687	* src/headers.h: Added missing prototypes.
1688
1689	* src/anubisdb.c: Use const consistently.
1690	* src/dbtext.c: Likewise
1691	* src/gdbm.c: Likewise
1692
1693	* src/gsasl.c: Moved include <gsasl.h> to headers.h
1694	* src/gsasl_srv.c: Likewise
1695
16962004-03-15  Wojciech Polak
1697
1698	* src/authmode.c: Removed RSET support (where was my mind
1699	when I added it, dammit?).
1700
17012004-03-13  Wojciech Polak
1702
1703	* src/authmode.c (anubis_authenticate_mode): Don't read the
1704	"translation" section in the "authentication" mode.
1705	Call the set_unprivileged_user() when `usr.username' is null.
1706	TO DO: search a special rc-file directory and retrieve
1707	an appropriate client's run control file when `usr.username'
1708	is null.
1709
17102004-03-13  Wojciech Polak
1711
1712	* src/*: Namespace cleanup.
1713	* src/rc.c: Renamed to rcfile.c.
1714	* src/daemon.c (anubis_child_main): Bugfix.
1715
17162004-03-13  Sergey Poznyakoff
1717
1718	* src/auth.c (auth_ident): Use streams appropriately
1719	* src/exec.c (make_local_connection_fd): When closing
1720	pipes be careful not to destroy stdin/stdout.
1721
17222004-03-12  Sergey Poznyakoff
1723
1724	* po/POTFILES.in: Updated
1725
17262004-03-11  Sergey Poznyakoff
1727
1728	* src/anubisusr.c (smtp_auth): Use error() instead of info()
1729	(main): Minor fix
1730	(argcv_free): Correctly handle argc==0. Changed return type to
1731	void.
1732	(parse_netrc): Initialize p_argv.
1733	* src/authmode.c: Provide special section AUTH for configuring
1734	auth mode. Move sasl-password-db and sasl-allowed-mech
1735	to AUTH. New keywords smtp-greeting-message and smtp-help-message
1736	allow to set the corresponding SMTP messages.
1737	* src/env.c (get_options): Use anubis_set_mode().
1738	(anubis_set_mode): New function.
1739	* src/gsasl_srv.c: Protect inclusion of gsasl.h
1740	* src/headers.h: Added missing prototypes
1741	* src/rc.c (process_rcfile): Load AUTH section
1742	(control_parser): New keyword 'mode'. Equivalent to specifying
1743	--mode in the command line.
1744	* src/url.c: Removed debugging functions.
1745
17462004-03-08  Sergey Poznyakoff
1747
1748	* src/main.c: Fixed improper #ifdef'ing
1749
17502004-03-06  Sergey Poznyakoff
1751
1752	* src/anubisusr.c (hostcmp): Bugfix.
1753
17542004-03-06  Sergey Poznyakoff
1755
1756	* src/anubisusr.c: Consult .netrc file for the authentication
1757	credentials.
1758	Removed debugging hooks.
1759	* src/xdatabase.c (xexamine): Bugfix
1760
17612004-03-06  Sergey Poznyakoff
1762
1763	* configure.ac (ANUBISADM): Use Makefile variable dereference
1764	* src/Makefile.am: Added anubisusr.c Moved some tls.c and
1765	gsasl.c to libanubisdb.a (the name seems to be a misnomer
1766	now). Split gsasl.c to gsasl.c (library part) and gsasl_srv.c
1767	(server part)
1768	* src/.cvsignore: Updated
1769
1770	* src/anubisusr.c: New file. Synchronize local and remote copies
1771	of the user's RC file, using XDATABASE protocol.
1772	* src/authmode.c: Implemented TLS
1773
1774	* src/stream.c: New file. General-purpose streams
1775	* src/net.c: Rewritten using streams.
1776	* src/daemon.c: Likewise
1777	* src/esmtp.c: Likewise
1778	* src/exec.c: Likewise
1779	* src/extern.h: Likewise
1780	* src/headers.h: Likewise
1781	* src/main.c: Likewise
1782	* src/quit.c: Likewise
1783	* src/tls.c: Likewise
1784	* src/transmode.c: Likewise
1785	* src/tunnel.c: Likewise
1786
1787	* src/gsasl.c: Split off server-specific functions to a separate
1788	module
1789	* src/gsasl_srv.c: New file
1790
1791	* TODO: Updated
1792
17932004-02-22  Sergey Poznyakoff
1794
1795	* src/log.c: Bugfixes
1796
17972004-02-21  Wojciech Polak
1798
1799	* configure.ac: Added new option `--with-socks-proxy'.
1800	* src/files.c: Renamed to mime.c (for further MIME support).
1801	* src/proxy.c: Renamed to socks.c.
1802
18032004-02-19  Sergey Poznyakoff
1804
1805	Initial implementation of "XDATABASE" command
1806
1807	* src/xdatabase.c: New file
1808	* src/Makefile.am: Added xdatabase.c
1809	* src/authmode.c (anubis_smtp): On successful
1810	authentication add XDATABASE to the server capabilities
1811	(anubis_authenticate_mode): Save the retrieved rc file
1812	name in usr.rc_file_name.
1813	* src/extern.h (struct session_struct.rc_file_name): New
1814	member.
1815	* src/headers.h (user_rcfile_name, xdatabase)
1816	(xdatabase_capability): New functions
1817	* src/rc.c (user_rcfile_name): New function
1818	(open_rcfile): Use user_rcfile_name().
1819	* src/rcfile.h (RC_ERROR_PRINTER): New data type
1820	(rc_parse_ep): New function
1821	* src/rcfile.y (rc_error_printer,rc_error_printer_data): New
1822	variables.
1823	(parse_error): Use rc_error_printer variable
1824	to actually print the diagnostics.
1825	(yyerror): Call parse_error() instead of calling anubis_error()
1826	directly.
1827	(rc_parse_ep): New function
1828	* src/tunnel.c (process_command): Handle XDATABASE command
1829
18302004-02-18  Sergey Poznyakoff
1831
1832	* src/auth.c (auth_ident): Do not use sscanf.
1833	* src/errs.c: Fix improper format specs in syslog
1834	invocations.
1835	* src/ssl.c: Likewise.
1836
18372004-02-14  Wojciech Polak
1838
1839	* src/url.c (url_get_mech): Bugfix.
1840	* src/anubisadm.c (print_help): Split up the messages and use puts().
1841	(op_add_or_modify): Use getpass().
1842	* lib/getpass.c: New file.
1843	* configure.ac (AC_REPLACE_FUNCS): Added getpass.
1844
18452004-02-14  Sergey Poznyakoff
1846
1847	* src/mysql.c (mysql_db_put): Fixed query template
1848	* src/anubisadm.c (op_create): Initialize rec. Print input line
1849	number along with the error message.
1850
18512004-02-12  Sergey Poznyakoff
1852
1853	* src/mysql.c: Trivial fixes.
1854	* src/Makefile.am: Moved mem.[ch] to libanubisdb
1855	* src/anubisadm.c: Trivial fixes. Remove xmalloc duplication and
1856	provide memory error handler hook.
1857	* src/headers.h (memory_error): New external variable.
1858	* src/main.c: Provide memory error handler hook.
1859	* src/mem.c (xmalloc, xrealloc): Rely on user-defined hook
1860	to handle memory allocation errors.
1861
18622004-02-11  Sergey Poznyakoff
1863
1864	* configure.ac: AC_REPLACE getline. Define ANUBISADM if
1865	gsasl is requested.
1866	* doc/Makefile.am (TEXINFO_TEX): Removed. It prevented automake
1867	from copying texinfo.tex to build/
1868	* lib/getline.c: New file
1869	* lib/getline.h: New file
1870	* lib/Makefile.am: Added getline.c, getline.h
1871	* lib/lbuf.h: Removed leftover header dependency.
1872	* lib/lbuf.c: Minor changes.
1873	* src/anubisadm.c: New file. Interface for Anubis database
1874	administration.
1875	* src/Makefile.am (anubisadm, libanubisdb.a): New targets
1876	* src/.cvsignore: Updated
1877	* src/anubisdb.c: Added new operation: list
1878	* src/dbtext.c: Likewise.
1879	* src/gdbm.c: Likewise.
1880	* src/headers.h: Likewise.
1881	* src/mysql.c: Likewise. Also fixed potential coredumps in
1882	mysql_db_get.
1883	* src/url.c (anubis_url_full_path): Fixes for a case when URL does
1884	not have a host part.
1885
18862004-01-06  Wojciech Polak
1887
1888	* m4/Makefile.am: Removed.
1889	* configure.ac (AC_CONFIG_FILES): Removed m4/Makefile.
1890	(AC_PREREQ): Bump to 2.59.
1891	* Makefile.am: Removed m4. Require at least version 1.8.
1892
18932003-12-25  Sergey Poznyakoff
1894
1895        Synchronized with the backup repository on Mirddin
1896
18972003-12-22  Wojciech Polak
1898
1899	* testsuite/mta.c: Adapt to GnuTLS >= 1.0.0.
1900
19012003-12-17  Wojciech Polak
1902
1903	* src/tls.c: Adapt to GnuTLS >= 1.0.0.
1904	* src/headers.h: Include <gnutls/x509.h>.
1905
19062003-12-09  Wojciech Polak
1907
1908	* configure.ac: Set AM_GNU_GETTEXT_VERSION(0.13).
1909	Force to use GnuTLS >= 1.0.0.
1910	* m4/Makefile.am: Updated (gettext 0.13).
1911
19122003-11-30  Sergey Poznyakoff
1913
1914	* src/headers.h (N_): Define uncoditionally.
1915	(anubis_db_open_t): Extra parameter: pointer to textual error
1916	description.
1917	* src/anubisdb.c (anubis_db_open): Return textual error
1918	description.
1919	* src/mysql.c (mysql_db_open): Likewise
1920	* src/dbtext.c (dbtext_open): Likewise
1921	* src/gdbm.c (gdbm_db_open): Likewise
1922	(gdbm_db_strerror): Implemented.
1923	* src/authmode.c (anubis_get_db_record): Updated the invocation
1924	of anubis_db_open().
1925	* po/POTFILES.in: Updated
1926
19272003-11-30  Wojciech Polak
1928
1929	* src/misc.c (change_to_lower): Renamed to make_lowercase.
1930	* src/headers.h (change_to_lower): Changed prototype.
1931	* src/tunnel.c: Use make_lowercase().
1932	* src/help.c (config_opts): Added MYSQL.
1933	* po/POTFILES.in: Updated.
1934
19352003-11-30  Sergey Poznyakoff
1936
1937	* TODO: Updated
1938	* configure.ac: Removed useless AC_LIBOBJ. Added --with-mysql
1939	option and code to detect presence of MySQL
1940	* lib/Makefile.am: Added automake stuff
1941	* m4/anubis.m4: New file
1942	* m4/Makefile.am: Added anubis.m4
1943	* src/Makefile.am: Modified to fit the new directory layout
1944	* src/anubisdb.c: Protect the code by #ifdef
1945	* src/authmode.c: Likewise
1946	* src/dbtext.c: Likewise.
1947	* src/gdbm.c: Likewise.
1948	* src/gsasl.c: Likewise.
1949
1950	* src/url.c: New file.
1951	* src/mysql.c: New file.
1952	* src/headers.h (ANUBIS_URL): New data type.
1953	(anubis_url_destroy,anubis_url_parse,anubis_url_full_path)
1954	(anubis_url_get_arg): New functions.
1955	* src/main.c (main): Call mysql_db_init
1956	* src/rc.c (control_parser): sasl-password-db now takes
1957	only one argument: the database URL.
1958
19592003-11-29  Wojciech Polak
1960
1961	* configure.ac: Added lib
1962	* lib: added to the repository
1963	* lib/.cvsignore: New file
1964	* Makefile.am: Updated
1965	* src/Makefile.am: Updated
1966	* lib/Makefile.am: New file
1967	* src/getopt1.c,getopt.c,getopt.h,gettext.h
1968	  lbuf.c,lbuf.h,obstack.c,obstack.h,setenv.c,
1969	  snprintf.c: moved to ../lib
1970
19712003-11-26  Sergey Poznyakoff
1972
1973	* doc/anubis.texi: Fixed a couple of misspellings.
1974
19752003-11-22  Wojciech Polak
1976
1977	* src/net.c (_debug_printer): Invert debug arrows.
1978	(connect_directly_to): Removed poor debug message.
1979
19802003-11-22  Sergey Poznyakoff
1981
1982	* src/authmode.c (asmtp_ehlo,anubis_smtp,anubis_get_db_record)
1983	(anubis_authenticate_mode): Pass ANUBIS_USER as application-
1984	specific data.
1985	* src/gsasl.c: Use new GSASL functions instead of obsolete
1986	ones.
1987	* src/headers.h (anubis_auth_gsasl): Changed prototype
1988
19892003-11-22  Wojciech Polak
1990
1991	* src/authmode.c: Added preliminary RSET support.
1992	(asmtp_kw): Check the `name' before strcasecmp().
1993
19942003-11-22  Sergey Poznyakoff
1995
1996	* src/gsasl.c (auth_gsasl_capa_init): Removed calls to obsolete
1997	function gsasl_server_listmech. Use gsasl_server_mechlist instead.
1998
19992003-11-22  Wojciech Polak
2000
2001	* src/help.c (config_opts): Added GSASL.
2002
20032003-11-22  Sergey Poznyakoff
2004
2005	* src/dbtext.c (dbtext_open): Minor fix.
2006	* src/gsasl.c (anubis_set_mech_list): New function.
2007	(auth_gsasl_capa_init): Allow for terminating nul in
2008	gsasl_server_listmech output.
2009	Build the resulting capability list as an intersection
2010	between the one reported by GSASL and the list of
2011	allowed mechanisms.
2012	* src/headers.h (anubis_set_mech_list): New function.
2013	* src/list.c (list_intersect): New function
2014	* src/list.h: Likewise.
2015	* src/rc.c (control_parser): Handle sasl-allowed-mech keyword.
2016
20172003-11-21  Wojciech Polak
2018
2019	* src/env.c (get_options): Added missing "m:" to getopt_long().
2020	* src/authmode.c: Removed broken #include <anubisdb.h>.
2021
20222003-11-21  Sergey Poznyakoff
2023
2024	Initial implementation of "authentication mode".
2025
2026	* configure.ac: Check for libgsasl and gdbm
2027	* m4/gsasl.m4: New file (imported from mailutils)
2028	* m4/Makefile.am: Added gsasl.m4
2029
2030	* src/daemon.c (anubis_child_main): New function.
2031	(loop): Call anubis_child_main().
2032	* src/extern.h (anubis_domain, anubis_mode): New externals
2033	* src/headers.h: New declarations.
2034	* src/help.c: Reflect --mode option.
2035	* src/env.c: New option --mode.
2036	* src/main.c (anubis_domain, anubis_mode): New externals
2037	(anubis_core): Initialize various database formats.
2038	* src/misc.c (get_localname, get_localdomain): New functions.
2039	* src/net.c (net_io_get,net_io_read,net_io_write,net_io_close)
2040	(recvline_ptr): New functions.
2041	* src/rc.c: New keywords local-domain and sasl-password-db
2042	* src/tunnel.c (smtp_session_transparent): New function
2043	(smtp_begin): New function
2044
2045	* src/authmode.c: New file
2046	* src/transmode.c: New file
2047	* src/gsasl.c: New file
2048	* src/lbuf.c: New file
2049	* src/lbuf.h: New file
2050	* src/anubisdb.c: New file
2051	* src/dbtext.c: New file
2052	* src/gdbm.c: New file
2053
2054	* src/Makefile.am: Added new files
2055
20562003-11-08  Wojciech Polak
2057
2058	* src/tls.c (verify_certificate): Removed GNUTLS_CERT_CORRUPTED
2059	(missing in GnuTLS >= 0.9.95 ?!).
2060	Also GNUTLS_CERT_NOT_TRUSTED = GNUTLS_CERT_INVALID.
2061	* configure.ac: Changed AM_CONFIG_HEADER to AC_CONFIG_HEADERS.
2062
20632003-10-27  Wojciech Polak
2064
2065	* src/esmtp.c: Conform to libgcrypt >= 1.1.42 (a new API).
2066	* src/help.c (show_config_options): Removed. Keep only
2067	print_config_options().
2068
2069	* doc/anubis.1: Updated.
2070	* configure.ac: Bump to 3.9.94. Requires now GnuTLS >= 0.9.93.
2071	* src/main.c: Bump to 3.9.94.
2072
20732003-09-16  Wojciech Polak
2074
2075	* src/rcfile.y (_print_stars): Print only three stars.
2076	* testsuite/etc/std.in: Updated.
2077	* testsuite/etc/std.pat: Likewise.
2078
20792003-09-16  Sergey Poznyakoff
2080
2081	* src/rcfile.h (struct rc_kwdef.flags): New member
2082	(struct rc_asgn.flags): New member
2083	* src/rcfile.y: Take into account rc_kwdef.flags
2084	when parsing and printing.
2085	* src/rc.c (control_kw): Mark "esmtp-auth" with
2086	KWF_HIDDEN.
2087	* src/gpg.c (gpg_kw): Mark "gpg-passphrase" with
2088	KWF_HIDDEN.
2089	* testsuite/etc/std.pin: Modified to match the new debugging
2090	output style.
2091
20922003-09-09  Wojciech Polak
2093
2094	* src/rc.c (tls_parser): Removed T_SSL_CKCLIENT from
2095	KW_SSL_CERT case.
2096
20972003-09-02  Sergey Poznyakoff
2098
2099	* NEWS: Updated
2100
21012003-08-28  Wojciech Polak
2102
2103	* configure.ac: Added AM_PATH_GPGME.
2104	* m4/gpgme.m4: New file.
2105	* m4/Makefile.am: Added gpgme.m4.
2106	* src/gpg.c: Replaced puts(S) with fputs(S, stderr);.
2107	(gpg_sign, gpg_sign_encrypt): Added gpgme_key_release(key).
2108
21092003-08-28  Sergey Poznyakoff
2110
2111	* src/rcfile.h (error_sync_begin): Changed return type.
2112	* src/rcfile.l: Likewise.
2113	* src/rcfile.y (seclist production): Set yychar. Clear
2114	error state only if not at EOF, otherwise yylex will be
2115	called again and will coredump.
2116	(struct eval_env.traceable): New member. Controls whether
2117	tracing should be enabled for this section.
2118	(asgn_eval): Fixed printing of trigger rules.
2119
21202003-08-27  Wojciech Polak
2121
2122	* configure.ac: Bump to 3.9.93.
2123	Removed isatty from AC_CHECK_FUNCS.
2124	* src/main.c: Added SETVBUF(stderr, NULL, _IOLBF, 0);.
2125
21262003-08-26  Wojciech Polak
2127
2128	* examples/1anubisrc: Updated.
2129	* examples/2anubisrc: Likewise.
2130	* doc/anubis.texi: Likewise.
2131
2132	* elisp/anubis-mode.el: Added tracefile, gpg-sign-encrypt,
2133	and gpg-se.
2134
21352003-08-26  Sergey Poznyakoff
2136
2137	* src/rc.c (open_rcfile): Removed debugging hook. Thanks
2138	Dominique for reporting.
2139
21402003-08-25  Sergey Poznyakoff
2141
2142	* doc/anubis.texi: Updated
2143
21442003-08-24  Wojciech Polak
2145
2146	* testsuite/etc/gpgse.pat: Added new test
2147	(GPG signing and encryption).
2148	* testsuite/etc/gpg.in: Updated.
2149	* testsuite/etc/gpgcrypt.pat: Likewise.
2150	* testsuite/etc/gpgsign.pat: Likewise.
2151	* testsuite/etc/Makefile.am: Added gpgse.pat.
2152	* testsuite/anubis/gpg.exp: Likewise.
2153
2154	* doc/anubis.texi: Updated. Added gpg-sign-encrypt.
2155
21562003-08-24  Sergey Poznyakoff
2157
2158	* configure.ac: Determine signal handler return type.
2159	* src/headers.h (sig_exit,sig_timeout): Fixed protos.
2160	(cleanup_children): New function.
2161	(anubis_free_list_item): New function.
2162	* src/daemon.c (sig_cld): Fixed return type
2163	(loop,stdinout): Call cleanup_children()
2164	* src/exec.c (sig_local): Changed return type. Removed code.
2165	(cleanup_children): New function.
2166	* src/misc.c (_mem_free): Removed
2167	(anubis_free_list_item): New function.
2168	(destroy_string_list): Use anubis_free_list_item().
2169	* src/quit.c (sig_exit,sig_timeout): Fixed return types.
2170	* src/rc.c (open_rcfile): Prevent the same file from
2171	being read twice (as a system-wide and per-user config).
2172	* src/rcfile.y (_free_mem): Removed
2173	(rc_asgn_destroy,asgn_eval): Use anubis_free_list_item()
2174
21752003-08-24  Wojciech Polak
2176
2177	* src/gpg.c: General fixes and improvements.
2178
21792003-08-22  Wojciech Polak
2180
2181	New configuration file option `tracefile'.
2182
2183	* src/rcfile.y: Use tracefile instead of trace.
2184	* src/rcfile.h (trace): Renamed to `tracefile'.
2185	* src/rc.c (KW_TRACEFILE): New define.
2186	* src/log.c (trace): Renamed to `tracefile'.
2187	(tracefile): Added the support for `tracefile' option.
2188	* src/quit.c (free_mem): Added `options.tracefile'.
2189	* src/headers.h (T_TRACEFILE_SYS, T_TRACEFILE_USR): New defines.
2190	* src/extern.h (options_struct): Added `tracefile'.
2191
21922003-08-21  Wojciech Polak
2193
2194	* src/log.c (info): Removed `slogfile'.
2195	* src/errs.c (anubis_error): Likewise.
2196	* src/quit.c (free_mem): Likewise.
2197	* src/rc.c: Moved `logfile' to client_kw.
2198	* src/extern.h (options_struct): Removed `slogfile'.
2199
2200	* src/errs.c (anubis_error, socks_error): Changed prototype.
2201	* src/headers.h: Likewise.
2202
22032003-08-21  Sergey Poznyakoff
2204
2205	* src/exec.c (exec_argv): Extra argument: full path
2206	to the program to be executed.
2207	* src/headers.h: Likewise.
2208	* src/message.c: Updated calls to exec_argv
2209	* THANKS: Added Dominique Bordereaux.
2210	* src/env.c (get_options): Fixed definition of
2211	'c' option (needed double-colon).
2212
22132003-08-21  Wojciech Polak
2214
2215	* src/gpg.c (gpg_sign_encrypt): New function.
2216	Added support for `gpg-sign-encrypt' action.
2217	(gpg_encrypt_to_users): Renamed to `gpg_encrypt'.
2218
2219	* configure.ac: Bump to 3.9.92.
2220	* src/main.c: Likewise.
2221
22222003-08-17  Sergey Poznyakoff
2223
2224	* doc/anubis.texi: Document the proper way of escaping
2225	the & character in modify statements.
2226	* src/headers.h (T_SMTP_ERROR_CODES): New define.
2227	* src/daemon.c (stdinout): Set T_SMTP_ERROR_CODES bit.
2228	* src/errs.c (anubis_error): Honor T_SMTP_ERROR_CODES bit.
2229	* src/log.c (mprintf): Output to stderr.
2230	* src/main.c (anubis): Removed resetting termlevel to SILENT
2231	in --stdio mode.
2232	* src/message.c (expand_ampersand): Bugfix.
2233	* testsuite/etc/del.in: Fixed emacs mode indicator
2234	* testsuite/etc/mod-header.in: Fixed escaping the & character.
2235	* testsuite/etc/mult.pat: Minor change in wording.
2236	* testsuite/etc/add.in: Use new syntax (avoid using =)
2237	* testsuite/etc/empty.in: Likewise.
2238	* testsuite/etc/entire.in: Likewise.
2239	* testsuite/etc/gpg.in: Likewise.
2240	* testsuite/etc/mod-body.in: Likewise.
2241	* testsuite/etc/remail.in: Likewise.
2242	* testsuite/etc/simple.in: Likewise.
2243	* testsuite/etc/tlsoneway.in: Likewise.
2244	* testsuite/etc/trigger.in: Likewise.
2245
22462003-08-15  Wojciech Polak
2247
2248	* src/log.c: A few minor changes.
2249	* src/headers.h (mprintf, info): Changed prototypes.
2250
2251	* testsuite/etc/mod-header.in: Added new subtest (&).
2252	* testsuite/etc/mod-header.pat: Likewise.
2253
22542003-08-14  Sergey Poznyakoff
2255
2256	Added tracing the execution of config file sections.
2257
2258	* src/log.c (trace): New function.
2259	* src/message.c (expand_ampersand): Bugfix: missed terminating
2260	zero.
2261	* src/rc.c (open_rcfile): Destroy the previous parse tree only
2262	if we really are going to re-read the system config.
2263	(rule-priority, control-priority): Moved from init_kw to
2264	init_supervisor_k to allow for redefining their values.
2265	* src/rcfile.h (trace): New function.
2266	(struct rc_loc): New data type.
2267	(struct rc_section,rc_node,rc_stmt): Added RC_LOC member
2268	for execution tracing.
2269	* src/rcfile.y: Support for RC_LOC.
2270
22712003-08-09  Sergey Poznyakoff
2272
2273	* elisp/anubis-mode.el: Compatibility fix.
2274	* README: Updated
2275
2276	* testsuite/etc/add.in: Reformatted using anubis-mode.
2277	* testsuite/etc/del.in: Likewise.
2278	* testsuite/etc/empty.in: Likewise.
2279	* testsuite/etc/entire.in: Likewise.
2280	* testsuite/etc/gpg.in: Likewise.
2281	* testsuite/etc/mod-body.in: Likewise.
2282	* testsuite/etc/mod-header.in: Likewise.
2283	* testsuite/etc/remail.in: Likewise.
2284	* testsuite/etc/simple.in: Likewise.
2285	* testsuite/etc/std.in: Likewise.
2286	* testsuite/etc/tlsoneway.in: Likewise.
2287	* testsuite/etc/trigger.in: Likewise.
2288
22892003-08-08  Sergey Poznyakoff
2290
2291	* elisp/anubis-mode.el (anubis-keyword-dict): Added font-lock
2292	support.
2293	(anubis-check-syntax): New command.
2294	* src/rcfile.y (rc_set_debug_level): Default debugging level is 0.
2295	* testsuite/etc/std.pin: Provide an explicit argument to
2296	--check-config
2297	* doc/anubis.texi (Invoking Anubis): Improved the description of
2298	--check-config option.
2299	* README: Updated
2300
23012003-08-06  Sergey Poznyakoff
2302
2303	* elisp/Makefile.am: Bugfix, the el file was not compiled
2304	* elisp/anubis-mode.el (anubis-mode-map): Changed '?' mapping
2305	to '\e?'.
2306	* elisp/.cvsignore: Updated
2307
23082003-08-05  Sergey Poznyakoff
2309
2310	* Makefile.am (SUBDIRS): Added elisp
2311	* configure.ac: Detect the emacs lisp directory.
2312	* elisp: New directory
2313	* elisp/Makefile.am: New file
2314	* elisp/anubis-mode.el: New file
2315	* README: Updated
2316	* TODO: Updated
2317	* NEWS: Updated
2318
23192003-07-30  Sergey Poznyakoff
2320
2321	* doc/anubis.texi (Remailers): Document the ways of
2322	GPG signing/encrypting the messages being remailed.
2323
23242003-07-26  Sergey Poznyakoff
2325
2326	* src/tunnel.c (get_boundary): Bugfix. Operate on the unaltered
2327	boundary line.
2328
23292003-07-21  Sergey Poznyakoff
2330
2331	* testsuite/etc/add.in (body-append): Use TOP_SRCDIR.
2332
23332003-07-21  Wojciech Polak
2334
2335	* testsuite/etc/add-body-file.pat: New test.
2336	* testsuite/etc/add.in: Added rule for add-body-file.pat.
2337	* testsuite/etc/Makefile.am: Updated.
2338	* testsuite/data/append.txt: New auxiliary file.
2339	* testsuite/data/Makefile.am: Updated.
2340	* testsuite/anubis/base.exp: Added add-body-file.pat.
2341
23422003-07-21  Wojciech Polak
2343
2344	* src/files.c (message_append_signature_file): Bugfix.
2345	* src/headers.h (message_append_signature_file): Changed prototype.
2346	* src/rc.c: Test YES-OR-NO arguments with strcasecmp().
2347	* src/gpg.c: Likewise.
2348
2349	* configure.ac: Bump to 3.9.91.
2350	* src/main.c: Likewise.
2351
23522003-07-20  Wojciech Polak
2353
2354	* NEWS: Updated.
2355	* TODO: Likewise.
2356	* src/rc.c: Moved KW_DROP_UNKNOWN_USER to init_supervisor_kw.
2357	(KW_ALLOW_NOTPRIVILEGED): Renamed to KW_USER_NOTPRIVILEGED.
2358	* src/list.h: Clean up with prototypes.
2359	* src/gpg.c: Likewise.
2360
23612003-07-20  Sergey Poznyakoff
2362
2363	* NEWS: Updated
2364	* configure.ac: Check if u_char is defined.
2365	* src/env.c: Force the argument to ctype calls to be unsigned char.
2366	* src/exec.c: Likewise.
2367	* src/map.c: Likewise.
2368	* src/misc.c: Likewise.
2369	* src/proxy.c: Likewise.
2370	* src/rcfile.l: Likewise.
2371	* src/tunnel.c: Likewise.
2372	* testsuite/mta.c: Likewise.
2373
23742003-07-18  Wojciech Polak
2375
2376	* doc/anubis.texi: Updated.
2377	* examples/2anubisrc: Likewise.
2378	* examples/anubisrc.guile: Likewise.
2379
23802003-07-18  Sergey Poznyakoff
2381
2382	* src/message.c (message_modify_headers): Expand ampersands
2383	to the old header value.
2384	* src/rc.c: Added support for `control-priority' keyword.
2385	* src/rcfile.l: Added `trigger' keyword.
2386
2387	* TODO: Updated
2388	* doc/anubis.texi: Updated
2389	* examples/1anubisrc: Changed `rule' to `trigger'.
2390	* examples/anubisrc.guile: Likewise.
2391	* testsuite/etc/gpg.in: Likewise.
2392	* testsuite/etc/remail.in: Likewise.
2393	* testsuite/etc/std.in: Likewise.
2394	* testsuite/etc/trigger.in: Likewise.
2395
23962003-07-15  Sergey Poznyakoff
2397
2398	* src/rc.c (anubis_add_section): Initialize prio member.
2399	(open_rcfile): For CF_INIT and CF_SUPERVISOR: initialize
2400	parse_tree;
2401	(control_parser): Implementes user-only and system-only keywords.
2402	* src/rcfile.h (enum section_prio): New priorities.
2403	(rc_section_list_destroy,rc_section_destroy): Changed proto.
2404	* src/rcfile.y: Updated to new signatures of
2405	rc_section_list_destroy,rc_section_destroy
2406	(rc_section_link): Use new priorities.
2407
24082003-07-15  Wojciech Polak
2409
2410	* src/main.c: Bump to 3.9.90.
2411	* src/mem.c: Minor changes.
2412	* src/mem.h: Likewise.
2413	* doc/anubis.texi: Updated.
2414
24152003-07-15  Sergey Poznyakoff
2416
2417	* TODO: Updated
2418	* examples/1anubisrc: Updated to new syntax
2419	* examples/2anubisrc: Likewise.
2420	* src/rc.c (anubis_section_set_prio): New function.
2421	(open_rcfile): Do not destroy the saved tree before processing the
2422	new file.
2423	(control_parser): Handle new keyword rule-priority
2424	(rule_section_init): Initialize prio member
2425	(rcfile_process_section): Process all sections whose names match,
2426	not just the first of them.
2427	* src/rcfile.h (enum section_prio): New datatype
2428	(struct rc_secdef.prio): New member
2429	* src/rcfile.y (begin): Signal error if the section has already
2430	been declared.
2431	(rc_section_link): Honor section priority when linking.
2432	* src/regex.c (anubis_regex_free): May be called with NULL
2433	argument.
2434
24352003-07-13  Sergey Poznyakoff
2436
2437	* src/rcfile.h (lex_clear_state,error_sync_begin): New functions
2438	* src/rcfile.l (lex_clear_state,error_sync_begin): New functions
2439	Complain about invalid characters.
2440	* src/rcfile.y: Continue parsing after encountering errors.
2441
2442	* doc/anubis.texi: Updated
2443	* doc/Makefile.am: Added DISTCLEANFILES
2444
24452003-07-10  Wojciech Polak
2446
2447	* doc/anubis.texi: Updated
2448
24492003-07-10  Sergey Poznyakoff
2450
2451	* doc/anubis.texi: Updated
2452
24532003-07-06  Sergey Poznyakoff
2454
2455	* src/headers.h (SYNTAX): New error displaying method,
2456	used for syntax errors.
2457	* src/errs.c (anubis_error): Do not prefix the message
2458	with '>>' for SYNTAX method.
2459	* src/rc.c: Renamed ssl keywords.
2460	New command "body-clear".
2461	* src/rcfile.y: Use SYNTAX method for error messages.
2462	* testsuite/etc/tlsoneway.in: Use new ssl keywords.
2463
24642003-07-01  Sergey Poznyakoff
2465
2466	* configure.ac: Define M4_DEFS
2467	(--with-gpgme,--with-pcre,--with-pam,--with-tcp-wrappers): Bugfix:
2468	correctly handle both forms (with -- without).
2469	* src/Makefile.am: Add @LIBGNUTLS_LIBS@ and @LIBGNUTLS_CFLAGS@
2470	* testsuite/Makefile.am: Likewise.
2471	* src/headers.h: Fixed heuristics of defining HAVE_GNUTLS.
2472	* src/rcfile.y (parse_error): New function. Used instead of
2473	yyerror() wherever appropriate.
2474	* src/tls.c: Provide typecasts for gnutls_transport_ptr data.
2475	* testsuite/mta.c: Likewise.
2476	* testsuite/anubis/base.exp (std.pat): Provide full path.
2477	* testsuite/etc/std.pat: Removed.
2478	* testsuite/etc/std.pin: New file.
2479	* testsuite/etc/Makefile.am: Remove std.pat. Add std.pin
2480	* testsuite/etc/.cvsignore: Add std.pat.
2481	* testsuite/etc/std.in: Conditionally include parts of the
2482	file depending on the compilation settings.
2483	* testsuite/lib/anubis.exp (anubis_pat): Allow for full pathname
2484	of the pat-file.
2485	* doc/anubis.texi: Minor change
2486
24872003-07-01  Sergey Poznyakoff
2488
2489	* src/rc.c: Forgotten to commit
2490
24912003-06-30  Sergey Poznyakoff
2492
2493	* configure.ac: Use AM_PATH_LIBGNUTLS
2494	* m4/libgnutls.m4: New file.
2495	* m4/Makefile.am: Added libgnutls.m4
2496	* src/headers.h (anubis_regex_free): Changed prototype.
2497	* src/map.c (translate_section): Removed.
2498	* src/rc.c (anubis_add_section): Initialize allow_prog member
2499	* src/rcfile.h (struct rc_secdef.allow_prog): New
2500	member.
2501	* src/rcfile.y: Improved diagnostics.
2502	* src/regex.c (ASSERT_RE): New macro
2503	(anubis_regex_match,anubis_regex_replace)
2504	(anubis_regex_refcnt,anubis_regex_compile): Use ASSERT_RE
2505	(anubis_regex_free): Changed proto
2506	* testsuite/etc/std.in: Updated
2507	* testsuite/etc/std.pat: Updated
2508
25092003-06-29  Wojciech Polak
2510
2511	* src/daemon.c (loop): Added support for DROP-UNKNOWN-USER.
2512	* src/rc.c (control_parser): Likewise.
2513	* src/headers.h: Added T_DROP_UNKNOWN_USER.
2514	* TODO: Updated.
2515
25162003-06-29  Sergey Poznyakoff
2517
2518	* src/rcfile.y: Force R_EXACT on r_msgpart production.
2519	(rc_node_print,rc_inst_print): Use anubis_regex_print.
2520	* src/headers.h: Fixed two typos.
2521	(anubis_regex_print): New function.
2522	* src/regex.c (anubis_regex_print): New function.
2523	* testsuite/etc/std.pat: Updated
2524
25252003-06-29  Sergey Poznyakoff
2526
2527	* src/headers.h: Altered regexp modifiers.
2528	(re_set_type,re_typeof,re_set_flag,re_clear_flag): New macros
2529	(message_remove_headers,message_modify_headers): Changed
2530	declarations.
2531	* src/message.c (message_remove_headers)
2532	(message_modify_headers): Changed declarations.
2533	* src/rcfile.h (struct rc_inst.type): Changed type
2534	* src/rcfile.l: New keyword "regex"
2535	* src/rcfile.y: Lots of changes to allow for more
2536	flexible handling of regular expressions. Improved
2537	diagnostics.
2538	* src/regex.c: New pattern matching type R_EXACT.
2539
2540	* testsuite/etc/del.in: Use new syntax.
2541	* testsuite/etc/mod-body.in: Likewise.
2542	* testsuite/etc/mod-header.in: Likewise.
2543
25442003-06-27  Sergey Poznyakoff
2545
2546	* src/headers.h (message_modify_body): Added prototype.
2547	* src/mem.h (xfree,xfree_pptr): Made safer.
2548	* src/list.c: Standartize usage of xfree() and xfree_pptr().
2549	* src/message.c: Likewise.
2550	* src/rcfile.y: Likewise.
2551	* src/regex.c: Likewise.
2552	* src/tunnel.c: Likewise.
2553
25542003-06-27  Sergey Poznyakoff
2555
2556	* src/daemon.c: Get rid of the unneeded locals
2557	* src/headers.h (smtp_session): Changed proto.
2558	* src/rcfile.l: Allow the use of '\' to escape newlines
2559	* src/tunnel.c (process_command,transfer_command): Rewritten
2560	(rest of functions): Get rid of the unneded locals.
2561
2562	* TODO: Updated
2563	* doc/anubis.texi: Updated.
2564
25652003-06-22  Sergey Poznyakoff
2566
2567	* src/message.c (message_init): Create header and command
2568	lists.
2569	* src/tunnel.c: Fixed memory leaks.
2570
25712003-06-21  Sergey Poznyakoff
2572
2573	* src/daemon.c (_stdio_read): Minor fix.
2574	(set_nonblocking): Not needed anymore.
2575	(stdinout): Removed calls to set_nonbloking.
2576	* src/net.c (struct io_data): Use separate buffers for client
2577	and server.
2578	(mread): Likewise.
2579
25802003-06-20  Sergey Poznyakoff
2581
2582	* src/message.c (message_modify_body): Allow the NULL value
2583	(message_modify_headers): Allow regexp keys
2584	* src/rcfile.y: Likewise
2585	* src/regex.c (anubis_regex_replace): Replace all occurrences
2586	in the string.
2587	* testsuite/mta.c: Bugfix
2588	* testsuite/etc/mod-body.in: Test unenclosed patterns.
2589	* testsuite/etc/mod-header.in: Test new modify features.
2590	* testsuite/etc/mod-header.pat: Likewise.
2591
25922003-06-19  Wojciech Polak
2593
2594	* testsuite/etc/mod-header.pat: New file.
2595	  Testing the modify header mechanism.
2596	* testsuite/etc/mod-header.in: New file.
2597	* testsuite/etc/Makefile.am: Updated.
2598	* testsuite/anubis/base.exp: Added mod-header.pat.
2599	* TODO: Updated.
2600
26012003-06-19  Sergey Poznyakoff
2602
2603	* TODO: Updated
2604	* configure.ac: Add AC_PROG_YACC, AM_PROG_LEX
2605	* src/guile.c: use non-destructive eval
2606	* src/headers.h (anubis_regex_replace): New function
2607	* src/regex.c: Likewise.
2608	* src/message.c (message_modify_body): New function.
2609	Implements "modify body [key] text" statement.
2610	* src/rcfile.y: Minor cleanup
2611	(inst_eval): Call message_modify_body().
2612	* testsuite/anubis/base.exp: Run mod-body test
2613	* testsuite/anubis/gpg.exp: Add final newline
2614	* testsuite/etc/mod-body.pat: New file
2615	* testsuite/etc/mod-body.in: New file
2616	* testsuite/etc/Makefile.am: Added new files
2617
26182003-06-17  Wojciech Polak
2619
2620	* doc/anubis.texi: Updated. Reorganized a bit.
2621
26222003-06-11  Wojciech Polak
2623
2624	* configure.ac: Bump to 3.9.90 (pretest version).
2625	* NEWS: Added entry for 4.0.
2626	* Makefile.am (AUTOMAKE_OPTIONS): Added readme-alpha.
2627	* README-alpha: New file.
2628
26292003-06-07  Wojciech Polak
2630
2631	* examples/pam/anubis.allow: Added default unprivileged
2632	  user `nobody'.
2633	* po/POTFILES.in: Updated.
2634	* README: Likewise.
2635
26362003-06-07  Wojciech Polak
2637
2638	* src/Makefile.am: Bugfix. Added missing -I$(top_srcdir)/intl.
2639
26402003-06-07  Wojciech Polak
2641
2642	* src/gettext.h: New file.
2643	* src/headers.h: Include "gettext.h" instead of <libintl.h>.
2644	* src/Makefile.am (EXTRA_DIST): Added gettext.h.
2645
26462003-06-06  Wojciech Polak
2647
2648	* src/obstack.c: Provide newer version.
2649	* src/obstack.h: Likewise.
2650	* src/getopt1.c: Likewise.
2651	* src/getopt.c: Likewise.
2652	* src/getopt.h: Likewise.
2653
26542003-06-06  Wojciech Polak
2655
2656	* src/errs.c (anubis_error): Removed unneeded HAVE_VSNPRINTF.
2657	* src/log.c (mprintf): Likewise.
2658	* testsuite/mta.c: Clean up with prototypes.
2659
26602003-06-02  Sergey Poznyakoff
2661
2662	* src/net.c (_debug_printer): Avoid splitting debug transcript
2663	  lines.
2664
26652003-05-30  Wojciech Polak
2666
2667	* configure.ac: Added new option --with-unprivileged-user.
2668	  Use the AC_HELP_STRING where appropriate.
2669	* src/daemon.c (set_unprivileged_user): Support the new
2670	  DEFAULT_UNPRIVILEGED_USER.
2671
26722003-05-29  Wojciech Polak
2673
2674	* configure.ac: Set AM_GNU_GETTEXT_VERSION(0.12.1).
2675	* m4/Makefile.am: Added nls.m4 and po.m4.
2676	* po/Makevars: Added MSGID_BUGS_ADDRESS.
2677	* Makefile.am: Bumped to GNU Automake 1.7.5.
2678
26792003-05-28  Sergey Poznyakoff
2680
2681	* src/tls.c (start_ssl_server): Bugfix
2682	* testsuite/etc/tlsoneway.in: Use TOP_SRCDIR to access
2683	  PEM file.
2684
26852003-05-27  Sergey Poznyakoff
2686
2687	* TODO: Updated
2688	* src/auth.c: Removed superfluous return
2689	* src/log.c: Removed unneeded HAVE_VSNPRINTF
2690	* src/tls.c: Provide push/pull functions to work with local
2691	  mailers.
2692	* src/tunnel.c (transfer_command): TLS can be used with
2693	  local mailers.
2694	* testsuite/mta.c: Added TLS support (only with GnuTLS).
2695
2696	* testsuite/etc/tlsoneway.pat: New file.
2697	* testsuite/etc/tlsoneway.in: New file.
2698	* testsuite/etc/Makefile.am: Added new files.
2699	* testsuite/anubis/tls.exp: New file.
2700	* testsuite/anubis/DISTFILES: Added new files.
2701
2702	* testsuite/data/anubis.pem: New file
2703	* testsuite/data/Makefile.am: Added new file.
2704
27052003-05-11  Wojciech Polak
2706
2707	* src/help.c (print_usage): Added missing command line options.
2708	* scripts/redhat.init: Small fix.
2709
27102003-05-10  Sergey Poznyakoff
2711
2712	* src/tls.c: More diagnostics.
2713	* src/tunnel.c (process_command): Bugfix. Inform the client
2714	  that we are willing to handle TLS.
2715
27162003-05-10  Sergey Poznyakoff
2717
2718	Implemented iterators instead of non-reentrant
2719	list_first/list_next calls.
2720
2721	* src/list.h (list_first,list_next,list_remove_current)
2722	  (list_append_list): Removed.
2723	  (ITERATOR): New datatype.
2724	  (iterator_create,iterator_destroy,iterator_current)
2725	  (iterator_first,iterator_next): New functions.
2726	* src/list.c: Likewise.
2727
2728	* src/extern.h: Use iterator functions.
2729	* src/headers.h: Likewise.
2730	* src/daemon.c: Likewise.
2731	* src/gpg.c: Likewise.
2732	* src/guile.c: Likewise.
2733
2734	* src/map.c: Likewise.
2735	* src/message.c: Likewise.
2736	* src/misc.c: Likewise.
2737	* src/quit.c: Likewise.
2738	* src/rc.c: Likewise.
2739	* src/rcfile.h: Likewise.
2740	* src/rcfile.y: Likewise.
2741	* src/tunnel.c: Likewise.
2742
2743	* src/tls.c: More diagnostics.
2744
27452003-05-08  Wojciech Polak
2746
2747	* configure.ac: Fixed OpenSSL compilation (broken with_gnutls=no).
2748	* src/ssl.c (start_ssl_server): Added missing SESS *sd.
2749	  (_ssl_strerror): Changed return type to static const char *.
2750
27512003-05-02  Wojciech Polak
2752
2753	* headers.h: Clean up with prototypes. Moved some stuff
2754	  to extern.h and vice versa.
2755	* extern.h: Likewise.
2756	* list.h: Clean up with prototypes.
2757	* rcfile.h: Likewise.
2758	* rcfile.l: Likewise.
2759	* rcfile.y: Likewise.
2760	* rc.c: Likewise.
2761	* regex.c: Likewise
2762	* main.c: Likewise.
2763	* map.c: Likewise.
2764	* net.c: Likewise.
2765	* guile.c: Likewise.
2766	  (list_to_args): Put parentheses around assignment.
2767	* tunnel.c: (write_header_line): Put parentheses
2768	  around assignment.
2769	* misc.c (insert): Convert to a static function.
2770	* env.c (get_options): Added missing option `c'
2771	  to getopt_long().
2772
27732003-04-26  Wojciech Polak
2774
2775	* doc/anubis.texi: Changed @dircategory to Email.
2776	* TODO: Updated.
2777
27782003-04-08  Wojciech Polak
2779
2780	* doc/anubis.texi: Clean up. Removed some old stuff.
2781
27822003-04-06  Sergey Poznyakoff
2783
2784	* src/tunnel.c: Use new encryption wrappers.
2785	* src/daemon.c: Likewise.
2786	* src/net.c: Likewise.
2787	* src/errs.c (socket_error): Changed declaration.
2788	* src/extern.h (secure_struct): Removed implementation-dependent
2789	  members.
2790	* src/headers.h (T_SSL_CLIENT,T_SSL_SERVER): Not needed anymore.
2791	  (net_io_t,net_close_t,strerror_t): New data types.
2792	  (socket_error): Changed proto.
2793	  (net_set_io,net_close): New function.
2794	* src/main.c (main): Call init_ssl_libs.
2795
2796	* src/proxy.c: Reflect changes to the declaration of
2797	  socket_error().
2798	* src/quit.c (quit): Removed implementation-dependent calls.
2799	* src/ssl.c: Rewritten to make more modular.
2800	* src/tls.c: Likewise.
2801
28022003-03-10  Wojciech Polak
2803
2804	* testsuite/etc/trigger.pat: New file. Testing
2805	  the Trigger mechanism.
2806	* testsuite/etc/trigger.in: New file.
2807	* testsuite/etc/Makefile.am: Updated.
2808	* testsuite/anubis/base.exp: Added trigger.pat.
2809	* TODO: Updated.
2810
28112003-03-07  Wojciech Polak
2812
2813	* src/quit.c (free_mem): Removed unused variables.
2814	* src/main.c (struct rm_struct): Removed.
2815	* src/extern.h: Likewise.
2816
2817	* src/esmtp.c: Fixed preprocessor directives.
2818	* src/proxy.c: Likewise.
2819	* src/exec.c: Likewise.
2820	* src/net.c: Likewise.
2821	* src/ssl.c: Likewise.
2822
28232003-03-07  Sergey Poznyakoff
2824
2825	* po/POTFILES.in: Added missing files.
2826	* src/map.c (translate_parser): Synchronized with the
2827	  yesterday's changes.
2828
28292003-03-07  Sergey Poznyakoff
2830
2831	* TODO: Updated
2832	* examples/anubis.scm: Major changes.
2833	* guile/rot-13.scm (rot-13): A universal function for rotating
2834	  the message body, its subject, or both.
2835	* src/gpg.c: Removed obsolete kewords.
2836	* src/rc.c: Likewise.
2837	* testsuite/anubis/guile.exp: Added rot-13 test
2838	* testsuite/etc/rot-13.pat: New file.
2839	* testsuite/etc/Makefile.am: Added rot-13.pat
2840	* testsuite/etc/remail.in: Modified to support rot-13 test as
2841	  well.
2842	* testsuite/etc/remail.pat: Fixed remailer header.
2843
28442003-03-06  Sergey Poznyakoff
2845
2846	* guile: New subdirectory
2847	* guile/Makefile.am: New file.
2848	* guile/remailer.scm: New file.
2849	* guile/rot-13.scm: Moved from ...
2850	* examples/rot-13.scm: ... here
2851	* examples/Makefile.am: Updated.
2852	* Makefile.am: Added new subdir (guile)
2853	* configure.ac: Likewise.
2854	  Minor fix for handling --with-gnutls and --with-openssl options.
2855	* examples/anubis.scm: Added extra arguments to interface
2856	  functions.
2857	* src/daemon.c: Use ngettext wherever appropriate.
2858	* src/ssl.c: Likewise.
2859	* src/tls.c: Likewise.
2860
2861	* src/exec.c (exec_argv): new function.
2862	* src/guile.c (guile_process_proc): Pass any number of additional
2863	  parameters to the procedure.
2864	  (guile_parser): Reflect changes to the prototype.
2865
2866	* src/gpg.c (gpg_parser): Reflect changes to the prototype.
2867	* src/headers.h (message_external_proc): Changed proto
2868	  (exec_argv): New function.
2869	* src/list.c (list_iterate): Bugfix
2870	  (list_item): New function.
2871	* src/list.h: (list_item): New function.
2872	* src/message.c (message_external_proc): Changed proto
2873	* src/rc.c (control_parser,tls_parser,rule_parser): Reflect
2874	  changes to the prototype.
2875	* src/rcfile.h (struct rc_asgn): Changed type of 'rhs'
2876	  (rc_kw_parser_t): Changed third argument type.
2877	* src/rcfile.l: Lots of changes to make LIT state more
2878	  intellectual.
2879	* src/rcfile.y (asgn_stmt) production modified to collect
2880	  whitespace-separated arguments at the right of the keyword,
2881	  instead of just one line.
2882
2883	* testsuite/data/Makefile.am: Fixed creation gpg keyrings.
2884	* testsuite/etc/remail.pat: New file
2885	* testsuite/etc/remail.in: New file
2886	* testsuite/etc/Makefile.am: Added new files
2887	* testsuite/lib/anubis.exp (anubis_expect_list,anubis_test): Be
2888	  more stringent in testing.
2889	* testsuite/etc/gpgcrypt.pat: Modified to reflect recent changes
2890	  to anubis.exp.
2891	* testsuite/etc/gpgsign.pat: Likewise.
2892	* testsuite/anubis/guile.exp: New file
2893	* testsuite/anubis/DISTFILES: Updated
2894
28952003-03-03  Wojciech Polak
2896
2897	* examples/1anubisrc: Updated to the new syntax.
2898	* testsuite/etc/std.in: Updated.
2899	* testsuite/etc/std.pat: Likewise.
2900
29012003-03-03  Sergey Poznyakoff
2902
2903	* TODO: Updated
2904	* src/headers.h (rcfile_call_section): New function
2905	* src/rc.c: Likewise.
2906	* src/rcfile.h (inst_stop, inst_call): New instruction types.
2907	  (rc_call_section): New function.
2908	* src/rcfile.y: Allow regexp options to appear on both sides of
2909	  the equal sign.
2910	  Implemented "call" and "stop" statements.
2911	* testsuite/etc/std.in: Test for regexp option on the left from
2912	  the '='.
2913
29142003-03-03  Wojciech Polak
2915
2916	* src/gpg.c (gpg_free): New function. Free unused memory.
2917	* src/headers.h (gpg_free): Added prototype.
2918	* src/quit.c (free_mem): Call gpg_free().
2919
29202003-02-28  Wojciech Polak
2921
2922	* configure.ac: Bumped to 3.9.0 (unreleased, internal version).
2923	* src/main.h: Moved all the stuff to main.c. Removed main.h.
2924	* src/files.c (message_append_signature_file): Fixed prefix.
2925	* src/main.c: Removed unused ropt variable.
2926	* src/extern.h: Likewise.
2927	* src/list.h: Added missing copyright.
2928	* src/errs.c: Fixed preprocessor directives.
2929	* src/log.c: Likewise.
2930	* src/headers.h (message_append_text_file): Added prototype.
2931	  (message_append_signature_file): Likewise.
2932	* src/Makefile.am: Removed main.h.
2933
29342003-02-28  Sergey Poznyakoff
2935
2936	User-visible changes:
2937	  New syntactical entities:
2938
2939		add header[KEY] VALUE
2940		add body VALUE
2941		remove header[KEY]
2942		modify header[KEY] [NEW-KEY] VALUE
2943
2944	("header" may be omitted). KEY is (currently) the header name. It
2945	may be a regular expression matching a set of header names
2946	for "remove". [NEW-KEY] in "modify" statement is optional.
2947
2948	  Added support for "here document" (see testsuite/etc/add.in
2949	for a sample).
2950
2951	  Allow to select signer id with gpg-sign.
2952
2953	* configure.ac: Use -ggdb instead of -g if gcc is being used.
2954	* src/message.c: New file.
2955	* src/Makefile.am: Added message.c
2956	* src/extern.h (message): Removed.
2957	* src/main.h: Likewise.
2958	* src/headers.h (T_BOUNDARY): Removed macro.
2959	  (message_modify_headers): Changed declaration
2960	  (message_add_body,message_init,message_free): New functions.
2961	* src/gpg.c (struct gpg_struct): New member "inited".
2962	  (gpg_sign): Allow to select the signers IDs
2963	  (gpg_parser): Call gpgme_init whenever necessary.
2964	* src/misc.c: (header_assoc): Remove any leading whitespace from
2965	  the header field value.
2966	* src/quit.c (free_mem): Removed references to message.
2967	* src/rc.c (rule_parser et al.): Removed "add", "remove" and
2968	  "modify". These are reserved keywords and are handled by the
2969	  main parser code.
2970	* src/rcfile.h (RC_INST,enum rc_inst_opcode): New datatypes.
2971	  (struct rc_stmt): New member v.inst.
2972	* src/rcfile.l: Added new keywords: BODY, ADD, REMOVE, MODIFY,
2973	  STOP, CALL. The latter two are reserved for future use.
2974	  Removed support for unquoted regular expressions.
2975	  Do not try to interpret backslashes in front of numbers
2976	  (regexp backreferences).
2977	  Added shell-like "here document" construction.
2978	* src/rcfile.y: Support for ADD, REMOVE, and MODIFY instructions.
2979	  Removed support for unquoted regular expressions.
2980	* src/tunnel.c: Removed global variable "message".
2981	  Moved all message-specific functions to message.c
2982	* testsuite/anubis/base.exp: Added new test (append to the body).
2983	* testsuite/anubis/gpg.exp: Added new test (GPG signing)
2984	* testsuite/etc/add-body.pat: New file.
2985	* testsuite/etc/gpgsign.pat: New file.
2986 	* testsuite/etc/add.in: New file.
2987	* testsuite/etc/Makefile.am: Added add-body.pat, gpgsign.pat and
2988	  add.in.
2989	* testsuite/etc/del.in: Use the new syntax.
2990	* testsuite/etc/simple.in: Likewise
2991	* testsuite/etc/std.in: Likewise.
2992	* testsuite/etc/std.pat: Likewise.
2993	* testsuite/etc/gpg.in: Likewise. Added new rule
2994	* testsuite/lib/anubis.exp (anubis_pat): Allow use of -re and
2995	  -- prefixes within the :PATTERN block
2996
2997	* TODO: Updated
2998
29992003-02-26  Sergey Poznyakoff
3000
3001	Changed the message processing algorithm to process a
3002	message as a whole. The rcfile grammar is changed
3003	accordingly. The previous sources (with linie-by-line
3004	message processing) are tagged 'ver-3-with-per-line-proc'.
3005	TODO: remailer support.
3006
3007	* src/list.c: New files.
3008	* src/list.h: New files.
3009	* src/Makefile.am: Added new files
3010	* src/extern.h (struct line, struct message_struct)
3011	  (struct gpg_struct): Removed.
3012	  (struct session_struct): Removed unused members.
3013	  (gpg, mopt): Removed
3014	* src/headers.h (BODY,X_ANUBIS_RULE_HEADER): New define.
3015	  Removed M_.* defines
3016	  (ASSOC, MESSAGE): New aggregate types.
3017	  (new_element,destroy_list): Removed.
3018	  (rcfile_process_cond): Removed.
3019	  (destroy_assoc_list, destroy_string_list): New functions.
3020	  (rcfile_process_section): Changed declaration.
3021	* src/main.h (gpg, mopt): Removed.
3022	* src/map.c (parse_transmap): Updated call to
3023	  rcfile_process_section.
3024	  (translate_parser): Changed declaration
3025	* src/files.c (check_all_files): Removed.
3026	  (message_append_text_file)
3027	  (message_append_signature_file): New functions.
3028	* src/gpg.c (gpg_encrypt_to_remailer, check_gpg): Removed.
3029	  (gpg_proc): New function.
3030	  (gpg_parser): Rewritten.
3031	* src/guile.c (guile_rewrite_line): Temporarly removed.
3032	  (guile_to_anubis,anubis_to_guile): Rewritten.
3033	  (guile_process_proc): Rewritten.
3034	  (guile_process_list,guile_postprocess_list)
3035	  (guile_postprocess_list,guile_proclist_empty): Removed.
3036	  (guile_parser): Rewritten.
3037	* src/misc.c (new_element): Removed.
3038	  (destroy_string_list, destroy_assoc_list): New functions.
3039	  (header_assoc, assoc_to_header): New functions.
3040	* src/quit.c (free_mem): Updated.
3041	* src/rc.c (control_parser,tls_parser,rule_parser): Rewritten.
3042	  (all_parser): Removed.
3043	  (rule_section_init,rc_system_init): Removed ALL section.
3044	  (rcfile_process_cond): Removed.
3045	  (rcfile_process_section): Changed declaration.
3046	* src/rcfile.h (RC_EXPR): New data type.
3047	  (enum rc_node_type): Replaced rc_node_re with rc_node_expr.
3048	  (struct rc_node): Likewise.
3049	  (struct rc_expr): New data type.
3050	  (struct rc_cond): Removed method member.
3051	  (rc_kw_parser_t): Changed declaration.
3052	  (rc_run_section): Likewise.
3053	* src/rcfile.l: Added "NOT" token.
3054	* src/rcfile.y: Grammar rewritten. The support for old compatibility
3055	  syntax (if header =^Subject) has been removed. The new syntax
3056	  is
3057		if header[Subject] "regexp"
3058	  Multiple conditions are allowed:
3059
3060		if header[Subject] "Re: .*" and body ".*found.*"
3061	* src/tunnel.c: Rewritten.
3062
3063	* testsuite/etc/gpg.in: Updated to new syntax.
3064	* testsuite/etc/std.in: Likewise.
3065	* testsuite/etc/simple.in: Likewise.
3066	* testsuite/etc/std.pat: Likewise.
3067
30682003-02-20  Wojciech Polak
3069
3070	* configure.ac: Removed unused variables.
3071
30722003-02-20  Sergey Poznyakoff
3073
3074	* testsuite/Makefile.am: Removed erroneous distclean-local
3075	* testsuite/data/Makefile.am: Fixed rules for generating
3076	  *.gpg files.
3077	* testsuite/data/pubring.asc: Updated
3078	* testsuite/data/secring.asc: New file
3079
30802003-02-20  Sergey Poznyakoff
3081
3082	* configure.ac: Define ANUBIS_GPGFILES if GPG is enabled.
3083	* contrib/Makefile.am: Added msg2smtp.pl to EXTRA_DIST.
3084	* src/gpg.c: Moved configuration handler from rc.c. Added
3085	  new configuration keyword gpg-home for setting the GPG
3086	  home directory.
3087	* src/headers.h (gpg_section_init): New function.
3088	* src/rc.c: Moved gpg-specific functions to gpg.c
3089	* testsuite/data: New directory.
3090	* testsuite/data/Makefile.am:
3091	* testsuite/data/.cvsignore:
3092	* testsuite/data/pubring.asc:
3093	* testsuite/anubis/gpg.exp: New file. Tests GPG encryption
3094	* testsuite/anubis/DISTFILES: Added gpg.exp
3095	* testsuite/Makefile.am: Added data to SUBDIRS
3096	* testsuite/etc/gpgcrypt.pat: New file
3097	* testsuite/etc/gpg.in: New file.
3098	* testsuite/etc/Makefile.am: Added new files
3099	* testsuite/lib/anubis.exp (anubis_version): Renamed to
3100	  default_anubis_version to avoid name clashes.
3101	  (anubis_exec,anubis_expect_list,anubis_test): Improved handling
3102	  of pattern modifiers  (-re and --).
3103	  (anubis_check_capability): New function.
3104	  (anubis_test_file): New option -catprog.
3105	  (anubis_pat): Improved handling of :OPTIONS keyword,
3106	  Added new mode "CAT" for testing GPG encryption.
3107
31082003-02-19  Wojciech Polak
3109
3110	* src/main.h: Removed no longer used variable `submatch'.
3111	* src/extern.h: Likewise.
3112	* src/quit.c (free_mem): Likewise.
3113	* src/help.c (print_version): Minor change.
3114
3115	* testsuite/mta.c (smtp_reply): Added prototype.
3116
31172003-02-19  Wojciech Polak
3118
3119	* src/env.c (argv_dup): New static function.
3120	* src/headers.h (T_RCEXECARGS): Removed flag.
3121	* src/rc.c: Likewise.
3122	* src/quit.c: Likewise.
3123
31242003-02-18  Sergey Poznyakoff
3125
3126	* src/net.c: Fixed debugging diagnostics.
3127
31282003-02-17  Sergey Poznyakoff
3129
3130	* src/extern.h (struct message_struct): New member mime_hdr.
3131	* src/headers.h (T_ENTIRE_BODY): New flag.
3132	  (regex_match): Removed.
3133	* src/mem.c (free_pptr): Correctly handle null pointer.
3134	* src/rc.c (control_parser): New boolean flag `read-entire-body'.
3135	  When set to true causes the entire mime-encoded body to
3136	  be read in core. Otherwise, only the first mime part is
3137	  read, all the rest is passed to the server verbatim (default).
3138	* src/regex.c (regex_match,posixre_match): Removed
3139	* src/tunnel.c: Implemented new scheme of message processing.
3140
3141	Added new tests:
3142	* testsuite/lib/anubis.exp (anubis_pat): Handle :DEL keyword.
3143	* testsuite/anubis/base.exp: Test removal of headers.
3144	* testsuite/anubis/mime.exp: New file.
3145	* testsuite/anubis/DISTFILES: Added mime.exp
3146	* testsuite/etc/del1.pat: New file.
3147	* testsuite/etc/del2.pat: New file.
3148	* testsuite/etc/del3.pat: New file.
3149	* testsuite/etc/del4.pat: New file.
3150	* testsuite/etc/del.in: New file.
3151	* testsuite/etc/entire.in: New file.
3152	* testsuite/etc/mime1.pat: New file.
3153	* testsuite/etc/mime2.pat: New file.
3154	* testsuite/etc/Makefile.am: Added new files.
3155	* testsuite/etc/add1.pat: Minor change.
3156	* testsuite/etc/add2.pat: Likewise.
3157	* testsuite/etc/add3.pat: Likewise.
3158
31592003-02-15  Wojciech Polak
3160
3161	* configure.ac: Check apple-darwin by config.guess, not uname.
3162	  Added message info if disabling Guile support.
3163
31642003-02-11  Sergey Poznyakoff
3165
3166	* testsuite/mta.c: Prevent race condition on closing the diagnostic
3167	  file.
3168
31692003-02-11  Wojciech Polak
3170
3171	Removed ROT-13 support from main engine.
3172
3173	* src/misc.c (check_rot13): Removed function.
3174	* src/tunnel.c (transfer_header): Removed rot13 subject encoding.
3175	  (transform_body): Removed check_rot13() call.
3176	* src/headers.h: Removed check_rot13 prototype.
3177
3178	* examples/anubisrc.guile: Updated.
3179
31802003-02-11  Sergey Poznyakoff
3181
3182	* Makefile.am: Added testsuite
3183	* configure.ac: Check for obstack, provide replacement
3184	  if necessary.
3185	  Check for reversed arguments to setvbuf.
3186	  Generate Makefiles under testsuite/
3187
3188	* examples/anubis.scm: Split msg-process into two procedures:
3189	  one for rotating the subject header and another for rotating
3190	  the message body.
3191	* examples/anubisrc.guile: Updated.
3192
3193	* src/obstack.c: New file. Obstack replacement for systems
3194	  without it.
3195	* src/obstack.h: Likewise.
3196	* src/Makefile.am: Added obstack
3197	* src/env.c: New options: --show-config-options displays
3198	  configuration options for anubis, --relax-perm-check
3199	  relaxes permission check on user rc file. Both are useful
3200	  for testsuite.
3201	* src/guile.c (guile_process_proc): Removed call to remcrlf.
3202	  (guile_postprocess_list): New function.
3203
3204	* src/headers.h (T_RELAX_PERM_CHECK): New define. This bit
3205	  is set in topts when --relax-perm-check is given in the
3206	  command line.
3207	  (print_config_options): New function.
3208
3209	* src/help.c (show_config_options, print_config_options): New
3210	  functions.
3211	  (print_version): Use show_config_options.
3212	* src/rc.c (open_rcfile): Open only altrc if both --norc
3213	  and --altrc are given.
3214	* src/tunnel.c: Started implementing new approach for collecting
3215	  message header and body. Both are collected, processed and
3216	  only then fed to the MTA.
3217	  TODO: split off attachments to diminish memory consumption.
3218
3219	* testsuite/: New directory
3220	* testsuite/Makefile.am: New file
3221	* testsuite/mta.c: New file
3222	* testsuite/.cvsignore: New file
3223	* testsuite/lib/: New directory
3224	* testsuite/lib/anubis.exp: New file
3225	* testsuite/lib/DISTFILES: New file
3226	* testsuite/anubis/: New directory
3227	* testsuite/anubis/base.exp: New file
3228	* testsuite/anubis/DISTFILES: New file
3229	* testsuite/etc/: New directory
3230	* testsuite/etc/Makefile.am: New file
3231	* testsuite/etc/.cvsignore: New file
3232	* testsuite/etc/add1.pat: New file
3233	* testsuite/etc/add2.pat: New file
3234	* testsuite/etc/add3.pat: New file
3235	* testsuite/etc/empty.in: New file
3236	* testsuite/etc/empty.pat: New file
3237	* testsuite/etc/mult.pat: New file
3238	* testsuite/etc/simple.in: New file
3239	* testsuite/etc/std.in: New file
3240	* testsuite/etc/std.pat: New file
3241
32422003-02-08  Sergey Poznyakoff
3243
3244	* src/regex.c: Rewritten using "control table" approach.
3245
32462003-02-08  Wojciech Polak
3247
3248	* src/rc.c (gpg_parser): Fixed KW_GPG_SIGN case.
3249
3250	* configure.ac: Clean up.
3251	* README: Updated.
3252
32532003-02-08  Sergey Poznyakoff
3254
3255	* src/regex.c (_perl_match): Fixed allocation of ovector.
3256
32572003-02-07  Sergey Poznyakoff
3258
3259	* src/env.c (check_filename): Take an additional
3260	  argument: a pointer to the file modification time.
3261	* src/headers.h: Likewise.
3262	* src/exec.c: Updated calls to check_filename().
3263	* src/tunnel.c: Likewise.
3264	* src/net.c: Restored checking the modification time
3265	  of the global rcfile.
3266	* src/rc.c: Likewise.
3267	* src/rcfile.y: Improved readability of the diagnostic
3268	  output.
3269
3270	* src/map.c: Minor changes.
3271
32722003-02-07  Wojciech Polak
3273
3274	* src/map.c (translate_parser): Fixed a bug in `user name after into'
3275	  parser.
3276
32772003-02-07  Sergey Poznyakoff
3278
3279	* src/map.c: Fixed section name.
3280	* src/rcfile.y (rc_stmt_print): Display IFFALSE branch
3281	  only if it is non-null.
3282	  (rc_run_section): Check for sec==NULL.
3283
32842003-02-07  Sergey Poznyakoff
3285
3286	* src/guile.c (guile_parser): Removed kludge.
3287	* src/headers.h (anubis_regex_refcnt): New function.
3288	* src/regex.c: Likewise.
3289	* src/rcfile.l: A couple of bugfixes/improvements in
3290	  RX/RXM states.
3291	* src/rcfile.y (rc_parse): Fixed return value.
3292	  (node_eval): Check the number of backreferences in
3293	  regexp.
3294
32952003-02-06  Sergey Poznyakoff
3296
3297	* configure.ac: Provide a replacement for snprintf
3298	* examples/anubis.scm: Renamed postprocess to msg-process.
3299	* examples/anubisrc.guile: Likewise.
3300	* src/snprintf.c: New file. A replacement for snprintf function.
3301	* src/Makefile.am: Added snprintf.c
3302	* src/auth.c: Remove HAVE_SNPRINTF conditional
3303	* src/esmtp.c: Likewise.
3304	* src/exec.c: Likewise.
3305	* src/files.c: Likewise.
3306	* src/misc.c: Likewise.
3307	* src/ssl.c: Likewise.
3308	* src/tunnel.c: Likewise.
3309	* src/daemon.c: Likewise.
3310	  (stdinout): Removed call to process_rcfile().
3311
3312	* src/extern.h (struct options_struct): Removed guile_postprocess
3313	  member.
3314	* src/guile.c: Provide a placeholder for guile-postprocess
3315	  functions.
3316
3317	* src/headers.h: Removed inclusion of <regex.h> and <pcre.h>
3318	  (anubis_regex_match,anubis_regex_free,anubis_regex_source):
3319	  Added new prototypes.
3320	* src/rcfile.h (struct rc_regex,RC_REGEX): Removed. It is defined
3321	  elsewhere.
3322	  (struct rc_node): Changed type of 'v.re' member.
3323
3324	* src/rcfile.l: Fixed support for traditional syntax.
3325	* src/rcfile.y: Fixed support for traditional syntax.
3326	  Changed regular expression handling.
3327
3328	* src/regex.c: Modularized regular expressions. All implementation
3329	  dependent parts (regex,pcre) live in this file. The rest of
3330	  sources uses anubis_regex_.* interface.
3331
33322003-02-05  Sergey Poznyakoff
3333
3334	Rewritten RC file support using yacc and lex.
3335
3336	* configure.ac: Turn on guile support unless --without-guile
3337	  has been given.
3338
3339	* build/ylwrap: New file. A customized wrapper for yacc/lex
3340	  invocations.
3341	* build/Makefile.am: Added ylwrap
3342	* m4/guile.m4: Raised Guile version requirement to 1.6
3343
3344	* src/rcfile.l: New file. Lexical analizer for configuration
3345	  files.
3346	* src/rcfile.y: New file. Syntax analizer for configuration
3347	  files.
3348	* src/rcfile.h: New file.
3349	* src/Makefile.am: Added rcfile.[ylh]
3350	* src/map.c: Rewritten.
3351	* src/rc.c: Rewritten.
3352	* src/regex.c (anubis_regexp_match): New function.
3353
3354	* src/auth.c: Use new rc_ calls.
3355	* src/daemon.c: Likewise.
3356	* src/guile.c: Likewise.
3357	* src/main.c: Likewise.
3358	* src/quit.c: Likewise.
3359	* src/tunnel.c: Likewise.
3360
3361	* src/env.c: New option --check-config (-c).
3362	* src/extern.h: Removed obsolete declarations.
3363	* src/headers.h: Likewise.
3364	* src/main.h: Likewise.
3365
3366	* TODO: Updated.
3367
33682003-02-02  Wojciech Polak
3369
3370	* README: Updated.
3371	* TODO: Likewise.
3372
3373	* src/headers.h: Added conditional WITH_GUILE.
3374	* src/tunnel.c: Likewise.
3375	  (memory_reader): Removed compiler warning about `i'.
3376	* src/rc.c (match_action_guile): Added missing returns.
3377	* src/guile.c: Fixed copyright comment at top of the file.
3378
33792003-02-01  Sergey Poznyakoff
3380
3381	* examples/anubis.scm (postprocess): Escape quotes inside the
3382	  comment string
3383
33842003-02-01  Wojciech Polak
3385
3386	* AUTHORS: Added Sergey Poznyakoff.
3387
3388	* configure.ac: Don't use `uname' for SunOS.
3389	  Check -lsocket and -lnsl directly with AC_CHECK_LIB.
3390
3391	* src/headers.h: Fixed `guile_load_path_append' prototype.
3392	* src/help.c (print_version): Added info about GUILE.
3393	* src/tunnel.c (process_command): Removed file permissions
3394	  check for SSL certificate.
3395	* src/rc.c: Commented extra tokens at end of #endif directive.
3396
33972003-02-01  Sergey Poznyakoff
3398
3399	Added support for Guile
3400
3401	* configure.ac: Added --with-guile switch.
3402	  Determine if socklen_t is defined, define it if it is not.
3403	* m4/guile.m4: New file
3404	* m4/Makefile.am: Added guile.m4
3405	* build/guile-1.6: New directory.
3406	* build/guile-1.6/guile-doc-snarf: New file
3407	* build/guile-1.6/guile-doc-snarf.awk: New file
3408	* build/guile-1.6/Makefile.am: New file.
3409	* build/Makefile.am: Added subdirs.
3410	* src/daemon.c (loop): Removed `#ifdef __socklen_t_defined'
3411	  conditional'.
3412
3413	* src/guile.c: New file
3414	* src/Makefile.am: Added guile.c
3415	* src/auth.c [WITH_GUILE](auth_tunnel): Call read_rcfile_guile().
3416	* src/extern.h [WITH_GUILE](struct options_struct): New members
3417	  guile_logfile, guile_postprocess.
3418	  (guile_position): New global.
3419	* src/headers.h [WITH_GUILE]: Include libguile.h
3420	  [WITH_GUILE] (read_rcfile_guile): New function.
3421	  (read_action_block): Take an argument.
3422	  (BEGIN_GUILE): New define
3423	  (anubis,anubis_boot,guile_load_path,guile_load_program)
3424	  (guile_rewrite_line): New functions.
3425	* src/main.c [WITH_GUILE] (anubis_core): New
3426	  function. Bootstrapper for guile support.
3427	  (anubis_core): New define
3428	  (anubis): New function. Runs main anubis loop.
3429	  (main): Call anubis_core()
3430	* src/main.h (guile_position): New global
3431	* src/rc.c (read_action_block,match_action): Take additional
3432	  argument: the source line (command or header) that triggered
3433	  its invocation.
3434	  [WITH_GUILE] (match_action): Handle guile-rewrite-line keyword
3435	  [WITH_GUILE] (match_action_guile,read_rcfile_guile): New functions
3436	* src/tunnel.c: Updated invocations of read_action_block()
3437
3438	* examples/anubisrc.guile: New file
3439	* examples/anubis.scm: New file
3440	* examples/rot-13.scm:
3441	* examples/Makefile.am: Added new files.
3442
34432003-01-30  Wojciech Polak
3444
3445	* m4/Makefile.am: Added gettext m4 macros to EXTRA_DIST.
3446	* src/Makefile.am: Removed DEFAULT_INCLUDES.
3447
34482003-01-30  Wojciech Polak
3449
3450	* Initial CVS import, starting GNU Anubis 3.6.3.
3451
3452
3453Local Variables:
3454mode: change-log
3455version-control: never
3456buffer-read-only: t
3457End:
3458