mirror of
https://github.com/matrix-construct/construct
synced 2024-11-29 02:02:38 +01:00
linebuf_flush(): use fde_t's.
This commit is contained in:
parent
d877759f5b
commit
5cd74a3b6c
3 changed files with 9 additions and 4 deletions
|
@ -623,7 +623,7 @@ linebuf_putmsg(buf_head_t * bufhead, const char *format, va_list * va_args,
|
|||
*/
|
||||
|
||||
int
|
||||
linebuf_flush(int fd, buf_head_t * bufhead)
|
||||
linebuf_flush(fde_t *fd, buf_head_t * bufhead)
|
||||
{
|
||||
buf_line_t *bufline;
|
||||
int retval;
|
||||
|
@ -652,7 +652,7 @@ linebuf_flush(int fd, buf_head_t * bufhead)
|
|||
}
|
||||
|
||||
/* 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;
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#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
|
||||
|
@ -80,7 +81,7 @@ extern void linebuf_donebuf(buf_head_t *);
|
|||
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
|
||||
|
|
|
@ -168,6 +168,10 @@ send_queued_write(int fd, void *data)
|
|||
#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;
|
||||
|
@ -182,7 +186,7 @@ send_queued_write(int fd, void *data)
|
|||
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
|
||||
|
|
Loading…
Reference in a new issue