summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2016-02-02 07:36:22 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2016-02-02 07:36:22 +0000
commit6129e14bc76488f121c4557eb477886dd9dd2926 (patch)
treeea5a305a25d5fdb717b385e7beef075254d9ac6f /src
parentc9c7e241a7b68f67e0cc8a7d3874510dced532d6 (diff)
downloadskalibs-6129e14bc76488f121c4557eb477886dd9dd2926.tar.xz
Revert " Add support for advanced closing callbacks to unixmessage_sender_flush."
This reverts commit c9c7e241a7b68f67e0cc8a7d3874510dced532d6. (something is segfaulting, reverting until I find the fix)
Diffstat (limited to 'src')
-rw-r--r--src/include/skalibs/unixmessage.h10
-rw-r--r--src/libunixonacid/unixmessage_sender_closecb.c10
-rw-r--r--src/libunixonacid/unixmessage_sender_flush.c4
-rw-r--r--src/libunixonacid/unixmessage_sender_init.c9
-rw-r--r--src/libunixonacid/unixmessage_sender_init_withclosecb.c17
5 files changed, 11 insertions, 39 deletions
diff --git a/src/include/skalibs/unixmessage.h b/src/include/skalibs/unixmessage.h
index f971a65..51d48bc 100644
--- a/src/include/skalibs/unixmessage.h
+++ b/src/include/skalibs/unixmessage.h
@@ -49,9 +49,6 @@ extern unixmessage_v_t const unixmessage_v_zero ;
/* Sender */
-typedef void unixmessage_sender_closecb_func_t (int, void *) ;
-typedef unixmessage_sender_closecb_func_t *unixmessage_sender_closecb_func_t_ref ;
-
typedef struct unixmessage_sender_s unixmessage_sender_t, *unixmessage_sender_t_ref ;
struct unixmessage_sender_s
{
@@ -61,17 +58,12 @@ struct unixmessage_sender_s
genalloc offsets ; /* diuint */
unsigned int head ;
unsigned int shorty ;
- unixmessage_sender_closecb_func_t_ref closecb ;
- void *closecbdata ;
} ;
#define UNIXMESSAGE_SENDER_ZERO UNIXMESSAGE_SENDER_INIT(-1)
-#define UNIXMESSAGE_SENDER_INIT(s) UNIXMESSAGE_SENDER_INIT_WITHCLOSECB((s), &unixmessage_sender_closecb, 0)
-#define UNIXMESSAGE_SENDER_INIT_WITHCLOSECB(s, f, p) { .fd = (s), .data = STRALLOC_ZERO, .fds = GENALLOC_ZERO, .offsets = GENALLOC_ZERO, .head = 0, .shorty = 0, .closecb = (f), .closecbdata = (p) }
+#define UNIXMESSAGE_SENDER_INIT(s) { .fd = (s), .data = STRALLOC_ZERO, .fds = GENALLOC_ZERO, .offsets = GENALLOC_ZERO, .head = 0, .shorty = 0 }
extern unixmessage_sender_t const unixmessage_sender_zero ;
-extern unixmessage_sender_closecb_func_t unixmessage_sender_closecb ;
extern void unixmessage_sender_init (unixmessage_sender_t *, int) ;
-extern void unixmessage_sender_init_withclosecb (unixmessage_sender_t *, int, unixmessage_sender_closecb_func_t_ref, void *) ;
extern void unixmessage_sender_free (unixmessage_sender_t *) ;
#define unixmessage_sender_fd(b) ((b)->fd)
extern int unixmessage_sender_getfd (unixmessage_sender_t const *) gccattr_pure ;
diff --git a/src/libunixonacid/unixmessage_sender_closecb.c b/src/libunixonacid/unixmessage_sender_closecb.c
deleted file mode 100644
index 1234ff5..0000000
--- a/src/libunixonacid/unixmessage_sender_closecb.c
+++ /dev/null
@@ -1,10 +0,0 @@
-/* ISC license. */
-
-#include <skalibs/djbunix.h>
-#include <skalibs/unixmessage.h>
-
-void unixmessage_sender_closecb (int fd, void *p)
-{
- fd_close(fd) ;
- (void)p ;
-}
diff --git a/src/libunixonacid/unixmessage_sender_flush.c b/src/libunixonacid/unixmessage_sender_flush.c
index 6559083..75412fb 100644
--- a/src/libunixonacid/unixmessage_sender_flush.c
+++ b/src/libunixonacid/unixmessage_sender_flush.c
@@ -97,13 +97,13 @@ int unixmessage_sender_flush (unixmessage_sender_t *b)
while (r < 0 && errno == EINTR) ;
if (r <= 0) return 0 ;
#ifndef SKALIBS_HASANCILAUTOCLOSE
- if (nfds && b->closecb)
+ if (nfds)
{
register unsigned int i = 0 ;
for (; i < nfds ; i++)
{
register int fd = genalloc_s(int, &b->fds)[offsets[b->head].right + i] ;
- if (fd < 0) (*b->closecb)(-(fd+1), b->closecbdata) ;
+ if (fd < 0) fd_close(-(fd+1)) ;
}
}
#endif
diff --git a/src/libunixonacid/unixmessage_sender_init.c b/src/libunixonacid/unixmessage_sender_init.c
index 71a8b3b..d986f29 100644
--- a/src/libunixonacid/unixmessage_sender_init.c
+++ b/src/libunixonacid/unixmessage_sender_init.c
@@ -1,8 +1,15 @@
/* ISC license. */
+#include <skalibs/stralloc.h>
+#include <skalibs/genalloc.h>
#include <skalibs/unixmessage.h>
void unixmessage_sender_init (unixmessage_sender_t *b, int fd)
{
- unixmessage_sender_init_withclosecb(b, fd, &unixmessage_sender_closecb, 0) ;
+ b->fd = fd ;
+ b->data = stralloc_zero ;
+ b->fds = genalloc_zero ;
+ b->offsets = genalloc_zero ;
+ b->head = 0 ;
+ b->shorty = 0 ;
}
diff --git a/src/libunixonacid/unixmessage_sender_init_withclosecb.c b/src/libunixonacid/unixmessage_sender_init_withclosecb.c
deleted file mode 100644
index 32743ec..0000000
--- a/src/libunixonacid/unixmessage_sender_init_withclosecb.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* ISC license. */
-
-#include <skalibs/stralloc.h>
-#include <skalibs/genalloc.h>
-#include <skalibs/unixmessage.h>
-
-void unixmessage_sender_init_withclosecb (unixmessage_sender_t *b, int fd, unixmessage_sender_closecb_func_t_ref f, void *p)
-{
- b->fd = fd ;
- b->data = stralloc_zero ;
- b->fds = genalloc_zero ;
- b->offsets = genalloc_zero ;
- b->head = 0 ;
- b->shorty = 0 ;
- b->closecb = f ;
- b->closecbdata = 0 ;
-}