diff options
author | Jorge Arellano Cid <jcid@dillo.org> | 2009-11-01 16:31:59 -0300 |
---|---|---|
committer | Jorge Arellano Cid <jcid@dillo.org> | 2009-11-01 16:31:59 -0300 |
commit | c137de33ebf6ed4c8e23169f80fdb5ea3014dacc (patch) | |
tree | 885ac84cdb3509136304778c7015a54b109cb269 /dpi/dpiutil.c | |
parent | 615cd8c1fd4af77cfcea366af784058d86efca1d (diff) |
Removed the old sock_handler_* API
Diffstat (limited to 'dpi/dpiutil.c')
-rw-r--r-- | dpi/dpiutil.c | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/dpi/dpiutil.c b/dpi/dpiutil.c index ec51494d..e29d529f 100644 --- a/dpi/dpiutil.c +++ b/dpi/dpiutil.c @@ -163,130 +163,3 @@ char *Filter_smtp_hack(char *url) return url; } - -/* Streamed Sockets API (not mandatory) ----------------------------------*/ - -/* - * Create and initialize the SockHandler structure - */ -SockHandler *sock_handler_new(int fd_in, int fd_out, int flush_sz) -{ - SockHandler *sh = dNew(SockHandler, 1); - - /* init descriptors and streams */ - sh->fd_in = fd_in; - sh->fd_out = fd_out; - sh->out = fdopen(fd_out, "w"); - - /* init buffer */ - sh->buf_max = 8 * 1024; - sh->buf = dNew(char, sh->buf_max); - sh->buf_sz = 0; - sh->flush_sz = flush_sz; - - return sh; -} - -/* - * Streamed write to socket - * Return: 0 on success, 1 on error. - */ -int sock_handler_write(SockHandler *sh, int flush, - const char *Data, size_t DataSize) -{ - int ret = 1; - - /* append to buf */ - while (sh->buf_max < sh->buf_sz + DataSize) { - sh->buf_max <<= 1; - sh->buf = dRealloc(sh->buf, sh->buf_max); - } - memcpy(sh->buf + sh->buf_sz, Data, DataSize); - sh->buf_sz += DataSize; -/* - MSG("sh->buf=%p, sh->buf_sz=%d, sh->buf_max=%d, sh->flush_sz=%d\n", - sh->buf, sh->buf_sz, sh->buf_max, sh->flush_sz); -*/ -/**/ -#if 0 -{ - uint_t i; - /* Test dpip's stream handling by chopping data into characters */ - for (i = 0; i < sh->buf_sz; ++i) { - fputc(sh->buf[i], sh->out); - fflush(sh->out); - usleep(50); - } - if (i == sh->buf_sz) { - sh->buf_sz = 0; - ret = 0; - } -} -#else - /* flush data if necessary */ - if (flush || sh->buf_sz >= sh->flush_sz) { - if (sh->buf_sz && fwrite (sh->buf, sh->buf_sz, 1, sh->out) != 1) { - perror("[sock_handler_write]"); - } else { - fflush(sh->out); - sh->buf_sz = 0; - ret = 0; - } - - } else { - ret = 0; - } -#endif - return ret; -} - -/* - * Convenience function. - */ -int sock_handler_write_str(SockHandler *sh, int flush, const char *str) -{ - return sock_handler_write(sh, flush, str, strlen(str)); -} - -/* - * Return a newlly allocated string with the contents read from the socket. - */ -char *sock_handler_read(SockHandler *sh) -{ - ssize_t st; - char buf[16384]; - - /* can't use fread() */ - do - st = read(sh->fd_in, buf, 16384); - while (st < 0 && errno == EINTR); - - if (st == -1) - perror("[sock_handler_read]"); - - return (st > 0) ? dStrndup(buf, (uint_t)st) : NULL; -} - -/* - * Close this socket for reading and writing. - */ -void sock_handler_close(SockHandler *sh) -{ - /* flush before closing */ - sock_handler_write(sh, 1, "", 0); - - fclose(sh->out); - close(sh->fd_out); -} - -/* - * Free the SockHandler structure - */ -void sock_handler_free(SockHandler *sh) -{ - dFree(sh->buf); - dFree(sh); -} - -/* ------------------------------------------------------------------------ */ - |