summaryrefslogtreecommitdiff
path: root/src/libstddjb/mininetstring_read.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstddjb/mininetstring_read.c')
-rw-r--r--src/libstddjb/mininetstring_read.c43
1 files changed, 0 insertions, 43 deletions
diff --git a/src/libstddjb/mininetstring_read.c b/src/libstddjb/mininetstring_read.c
deleted file mode 100644
index 34f7a75..0000000
--- a/src/libstddjb/mininetstring_read.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* ISC license. */
-
-#include <errno.h>
-#include <skalibs/allreadwrite.h>
-#include <skalibs/stralloc.h>
-#include <skalibs/mininetstring.h>
-
-int mininetstring_read (int fd, stralloc *sa, uint32_t *w)
-{
- if (!*w)
- {
- char pack[2] ;
- switch (fd_read(fd, pack, 2))
- {
- case -1 : return -1 ;
- case 0 : return 0 ;
- case 1 : *w = ((uint32_t)pack[0] << 8) | (1U << 31) ; break ;
- case 2 : *w = ((uint32_t)pack[0] << 8) | (uint32_t)pack[1] | (1U << 30) ; break ;
- default : return (errno = EDOM, -1) ;
- }
- }
- if (*w & (1U << 31))
- {
- unsigned char c ;
- switch (fd_read(fd, (char *)&c, 1))
- {
- case -1 : return -1 ;
- case 0 : return (errno = EPIPE, -1) ;
- case 1 : *w |= (uint32_t)c | (1U << 30) ; *w &= ~(1U << 31) ; break ;
- default : return (errno = EDOM, -1) ;
- }
- }
- if (*w & (1U << 30))
- {
- if (!stralloc_readyplus(sa, *w & ~(1U << 30))) return -1 ;
- *w &= ~(1U << 30) ;
- }
- {
- size_t r = allread(fd, sa->s + sa->len, *w) ;
- sa->len += r ; *w -= r ;
- }
- return *w ? -1 : 1 ;
-}