int SrsSocket::writev(const iovec *iov, int iov_size, ssize_t* nwrite) { int ret = ERROR_SUCCESS; *nwrite = st_writev(stfd, iov, iov_size, send_timeout); if (*nwrite <= 0) { if (errno == ETIME) { return ERROR_SOCKET_TIMEOUT; } return ERROR_SOCKET_WRITE; } send_bytes += *nwrite; return ret; }
int SrsStSocket::writev(const iovec *iov, int iov_size, ssize_t* nwrite) { int ret = ERROR_SUCCESS; ssize_t nb_write = st_writev(stfd, iov, iov_size, send_timeout); if (nwrite) { *nwrite = nb_write; } // On success a non-negative integer equal to nbyte is returned. // Otherwise, a value of -1 is returned and errno is set to indicate the error. if (nb_write <= 0) { // @see https://github.com/simple-rtmp-server/srs/issues/200 if (nb_write < 0 && errno == ETIME) { return ERROR_SOCKET_TIMEOUT; } return ERROR_SOCKET_WRITE; } send_bytes += nb_write; return ret; }