will this return the full line read before the bufsize is filled?
char *partial_read(int fd, int op) {
    char *buf = malloc(sizeof(char) * BUFSIZE);
    buf[BUFSIZE - 1] = '\0';
    int inbuf = 0;
    int room = sizeof(buf);
    char *after = buf;
    int nbytes;
    while ((nbytes = read(fd, after, room)) > 0) {
        inbuf += nbytes;
        int where;
        while ((where = find_network_newline(buf, inbuf)) > 0) {
            buf[where - 2] = '\0';
            printf("hello%s", buf);

            inbuf -= where;
            memmove(buf, buf + where, inbuf);
        }
        after = buf + inbuf;
        room = sizeof(buf) - inbuf;
    }
    return buf;
}