int send_loop()

in sample_app/onvif_camera_mock/artifacts/wsdd/src/net_utils.c [651:691]


int send_loop(int sd, char *buf, size_t buf_len, int timeout_in_usec, int count_loop)
{

    int   n, len;


    if( !buf || !buf_len )
    {
        errno = EINVAL;
        return -1;
    }


    len = buf_len;

    while( (len > 0) && (count_loop-- > 0) )
    {

        n = send(sd, buf, len, 0);

        if( (n == -1) && (errno != EAGAIN) )
            return -1;                       // error sending


        if( n > 0 )
        {
            buf += n;
            len -= n;
        }


        if(len <= 0)
            break;


        usleep(timeout_in_usec);
    }


    return (buf_len - len);  //return length of data sending
}