/* Data sent to this function must be a single entity because buffers can be * dropped if the bandwidth isn't fast enough. So do not send a message in * multiple chunks. */ static gint socket_send_messages (NiceSocket *sock, const NiceAddress *to, const NiceOutputMessage *messages, guint n_messages) { guint i; /* Socket has been closed: */ if (sock->priv == NULL) return -1; for (i = 0; i < n_messages; i++) { const NiceOutputMessage *message = &messages[i]; gssize len; len = socket_send_message (sock, message, FALSE); if (len < 0) { /* Error. */ if (i > 0) break; return len; } else if (len == 0) { /* EWOULDBLOCK. */ break; } } return i; }
static gint socket_send_messages_reliable (NiceSocket *sock, const NiceAddress *to, const NiceOutputMessage *messages, guint n_messages) { guint i; for (i = 0; i < n_messages; i++) { if (socket_send_message (sock, &messages[i], TRUE) < 0) { /* Error. */ return -1; } } return i; }
static gint socket_send_messages_reliable (NiceSocket *sock, const NiceAddress *to, const NiceOutputMessage *messages, guint n_messages) { guint i; for (i = 0; i < n_messages; i++) { const NiceOutputMessage *message = &messages[i]; gssize len; len = socket_send_message (sock, to, message, TRUE); if (len < 0) { /* Error. */ return len; } } return i; }
/* Data sent to this function must be a single entity because buffers can be * dropped if the bandwidth isn't fast enough. So do not send a message in * multiple chunks. */ static gint socket_send_messages (NiceSocket *sock, const NiceAddress *to, const NiceOutputMessage *messages, guint n_messages) { guint i; for (i = 0; i < n_messages; i++) { const NiceOutputMessage *message = &messages[i]; gssize len; len = socket_send_message (sock, message); if (len < 0) { /* Error. */ return len; } else if (len == 0) { /* EWOULDBLOCK. */ break; } } return i; }