summaryrefslogtreecommitdiff
path: root/src/libstddjb/mininetstring_write.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstddjb/mininetstring_write.c')
-rw-r--r--src/libstddjb/mininetstring_write.c36
1 files changed, 0 insertions, 36 deletions
diff --git a/src/libstddjb/mininetstring_write.c b/src/libstddjb/mininetstring_write.c
deleted file mode 100644
index c5b3aba..0000000
--- a/src/libstddjb/mininetstring_write.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* ISC license. */
-
-#include <errno.h>
-#include <skalibs/uint16.h>
-#include <skalibs/allreadwrite.h>
-#include <skalibs/mininetstring.h>
-
-int mininetstring_write (int fd, char const *s, uint16_t len, uint32_t *w)
-{
- if (!*w)
- {
- char pack[2] ;
- uint16_pack_big(pack, len) ;
- switch (fd_write(fd, pack, 2))
- {
- case -1 : return -1 ;
- case 0 : return (errno = EAGAIN, -1) ;
- case 1 : *w = (1U << 31) ; break ;
- case 2 : *w = len ; break ;
- default : return (errno = EDOM, -1) ;
- }
- }
- if (*w & (1U << 31))
- {
- unsigned char c = len & 0xFFU ;
- switch (fd_write(fd, (char const *)&c, 1))
- {
- case -1 : return -1 ;
- case 0 : return (errno = EAGAIN, -1) ;
- case 1 : *w = len ; break ;
- default : return (errno = EDOM, -1) ;
- }
- }
- *w -= allwrite(fd, s + len - *w, *w) ;
- return *w ? -1 : 1 ;
-}