*/
int
-linebuf_flush(int fd, buf_head_t * bufhead)
+linebuf_flush(fde_t *fd, buf_head_t * bufhead)
{
buf_line_t *bufline;
int retval;
}
/* Now, try writing data */
- retval = send(fd, bufline->buf + bufhead->writeofs, bufline->len - bufhead->writeofs, 0);
+ retval = fd->write_impl(fd, bufline->buf + bufhead->writeofs, bufline->len - bufhead->writeofs);
if(retval <= 0)
return retval;
#define __LINEBUF_H__
#include "tools.h"
+#include "commio.h"
/* How big we want a buffer - 510 data bytes, plus space for a '\0' */
#define BUF_DATA_SIZE 511
extern int linebuf_parse(buf_head_t *, char *, int, int);
extern int linebuf_get(buf_head_t *, char *, int, int, int);
extern void linebuf_putmsg(buf_head_t *, const char *, va_list *, const char *, ...);
-extern int linebuf_flush(int, buf_head_t *);
+extern int linebuf_flush(fde_t *, buf_head_t *);
extern void linebuf_attach(buf_head_t *, buf_head_t *);
extern void count_linebuf_memory(size_t *, size_t *);
#endif
#ifdef USE_IODEBUG_HOOKS
hook_data_int hd;
#endif
+ fde_t *F = comm_lookup_fd(to->localClient->fd);
+ if (!F)
+ return;
+
/* cant write anything to a dead socket. */
if(IsIOError(to))
return;
if(linebuf_len(&to->localClient->buf_sendq))
{
while ((retlen =
- linebuf_flush(to->localClient->fd, &to->localClient->buf_sendq)) > 0)
+ linebuf_flush(F, &to->localClient->buf_sendq)) > 0)
{
/* We have some data written .. update counters */
#ifdef USE_IODEBUG_HOOKS