summaryrefslogtreecommitdiff
path: root/src/libunixonacid/textclient_end.c
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2017-12-22 14:46:04 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2017-12-22 14:46:04 +0000
commit3c1ff1523587881324fc540fece06412c29c66de (patch)
treeecd5431551ebe81793a33297b86f26d90e12047a /src/libunixonacid/textclient_end.c
parentf3c9c3c70187967a670f1c059f5461dce745d92e (diff)
downloadskalibs-3c1ff1523587881324fc540fece06412c29c66de.tar.xz
Add textclient, fix some textmessage issues
Diffstat (limited to 'src/libunixonacid/textclient_end.c')
-rw-r--r--src/libunixonacid/textclient_end.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/libunixonacid/textclient_end.c b/src/libunixonacid/textclient_end.c
new file mode 100644
index 0000000..58fc930
--- /dev/null
+++ b/src/libunixonacid/textclient_end.c
@@ -0,0 +1,22 @@
+/* ISC license. */
+
+#include <skalibs/djbunix.h>
+#include <skalibs/textmessage.h>
+#include <skalibs/textclient.h>
+
+void textclient_end (textclient_t *a)
+{
+ fd_close(textmessage_sender_fd(&a->syncout)) ;
+ if (textmessage_receiver_fd(&a->syncin) != textmessage_sender_fd(&a->syncout))
+ fd_close(textmessage_receiver_fd(&a->syncin)) ;
+ fd_close(textmessage_receiver_fd(&a->asyncin)) ;
+ textmessage_sender_free(&a->syncout) ;
+ textmessage_receiver_free(&a->syncin) ;
+ textmessage_receiver_free(&a->asyncin) ;
+ if (a->pid && a->options & TEXTCLIENT_OPTION_WAITPID)
+ {
+ int wstat ;
+ waitpid_nointr(a->pid, &wstat, 0) ;
+ }
+ *a = textclient_zero ;
+}