Implement irc_try_write()
This commit is contained in:
parent
5ad2781681
commit
ccb2e4006d
22
src/kike.c
22
src/kike.c
|
@ -456,7 +456,27 @@ irc_try_read_ssl (struct connection *conn)
|
|||
static bool
|
||||
irc_try_write (struct connection *conn)
|
||||
{
|
||||
// TODO
|
||||
struct str *buf = &conn->write_buffer;
|
||||
ssize_t n_written;
|
||||
|
||||
while (buf->len)
|
||||
{
|
||||
n_written = send (conn->socket_fd, buf->str, buf->len, 0);
|
||||
if (n_written >= 0)
|
||||
{
|
||||
str_remove_slice (buf, 0, n_written);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (errno == EAGAIN)
|
||||
return true;
|
||||
if (errno == EINTR)
|
||||
continue;
|
||||
|
||||
print_debug ("%s: %s: %s", __func__, "send", strerror (errno));
|
||||
connection_kill (conn, strerror (errno));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue