socket.c 644 Bytes
/*
 * Creator: Naman Dixit
 * Notice: © Copyright 2020 Naman Dixit
 */

internal_function
void socketWrite (Char *output, Size output_len,
                  int sock_fd)
{
    ssize_t nsent = 0;
    Size output_cursor = 0;
    while (true) {
        nsent = write(sock_fd, output + output_cursor, output_len - output_cursor);

        if (nsent == -1) {
            if (errno == EAGAIN || errno == EWOULDBLOCK) {
                continue;
            } else {
                exit(-1);
            }
        } else if ((Size)nsent < output_len) {
            output_cursor += (Size)nsent;
        } else {
            break;
        }
    }
}