int evnt_sc_read_send(struct Evnt *evnt, int fd, VSTR_AUTOCONF_uintmax_t *len)
int evnt_sc_read_send(struct Evnt *evnt, int fd, uintmax_t *len)
int evnt_sc_read_send(struct Evnt *evnt, int fd, VSTR_AUTOCONF_uintmax_t *len){  Vstr_base *out = evnt->io_w;  size_t orig_len = out->len;  size_t tmp = 0;  int ret = IO_OK;  ASSERT(len && *len);  if ((ret = io_get(out, fd)) == IO_FAIL)    return (EVNT_IO_READ_ERR);  if (ret == IO_EOF)    return (EVNT_IO_READ_EOF);      tmp = out->len - orig_len;  if (tmp >= *len)  { /* we might not be transfering to EOF, so reduce if needed */    vstr_sc_reduce(out, 1, out->len, tmp - *len);    ASSERT((out->len - orig_len) == *len);    *len = 0;    return (EVNT_IO_READ_FIN);  }  *len -= tmp;    if (!evnt_send(evnt))    return (EVNT_IO_SEND_ERR);    return (EVNT_IO_OK);}