diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-04-24 15:44:01 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-04-24 15:44:01 +0000 |
commit | 23c190d057f68de84cb17bf8555397642fc6f6a9 (patch) | |
tree | 48272c668c3c1986fefd49ab657396b8a2976247 /gacopyz/gacopyz.c | |
parent | 2e708415a056624b4845467c9eebbbab7c1ef0f2 (diff) | |
download | mailfromd-23c190d057f68de84cb17bf8555397642fc6f6a9.tar.gz mailfromd-23c190d057f68de84cb17bf8555397642fc6f6a9.tar.bz2 |
* src/lex.l (parse_require): Bugfix
* src/bi_mail.m4: Bugfix
* src/mtasim.c: Implement help, fix directory removal at exit,
implement readline history file. Bugfixes in smtp()
* tests/testsuite.at, tests/accept.at, tests/greylist.at,
tests/arg.at, tests/reject.at, tests/numrcpt.at,
tests/tempfail.at: Use mtasim -Xauto when necessary
* configure.ac, NEWS: Raise patchlevel to 92
* doc/mailfromd.texi: Update
* doc/mtasim.texi: mtasim documentation
* doc/Makefile.am: Add mtasim.texi
* gacopyz/gacopyz_priv.h (struct gacopyz_conn): Keep information
about children pids
* gacopyz/proc.c (gacopyz_register_child)
(gacopyz_unregister_child): New functions
(cleanup_children): Call gacopyz_unregister_child
(gacopyz_cleanup_conn): Terminate children individualy instead of
sending TERM to the whole process group, because we might be not
the group leader.
* gacopyz/gacopyz.c (gacopyz_handle_connection): Register child
pid after startup.
* bootstrap: Require save-cwd. Test if lib/daemon.c exists before
attempting to create it.
git-svn-id: file:///svnroot/mailfromd/trunk@1379 7a8a7f39-df28-0410-adc6-e0d955640f24
Diffstat (limited to 'gacopyz/gacopyz.c')
-rw-r--r-- | gacopyz/gacopyz.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gacopyz/gacopyz.c b/gacopyz/gacopyz.c index f61673cc..a7a50177 100644 --- a/gacopyz/gacopyz.c +++ b/gacopyz/gacopyz.c @@ -68,7 +68,10 @@ gacopyz_init(gacopyz_conn_t *pconn, struct smfiDesc *desc) void gacopyz_free(gacopyz_conn_t conn) { - free(conn); + if (conn) { + free(conn->pidtab); + free(conn); + } } int @@ -1361,6 +1364,7 @@ gacopyz_handle_connection(gacopyz_conn_t conn) return MI_FAILURE; } if (pid > 0) { + gacopyz_register_child(conn, pid); close(fd); return MI_SUCCESS; } |