diff options
author | Olivier CrĂȘte <olivier.crete@collabora.com> | 2014-01-30 20:38:15 -0500 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@collabora.com> | 2014-01-31 01:49:08 -0500 |
commit | 5c235a86dc7ca1e7c9cc01c20ad5b0370c31d1f3 (patch) | |
tree | 5e3faddd755577eb4ff9b3f98851162f2cd01da9 | |
parent | a5c8a1415af6b3bf83a425b30c9118089e6a1adb (diff) |
Remove the "to" parameter from NiceOutputMessage
We never send multiple messages to separate targets in practice, so
this will simplify the code
-rw-r--r-- | agent/agent.c | 15 | ||||
-rw-r--r-- | agent/agent.h | 11 | ||||
-rw-r--r-- | agent/outputstream.c | 6 | ||||
-rw-r--r-- | socket/http.c | 29 | ||||
-rw-r--r-- | socket/pseudossl.c | 23 | ||||
-rw-r--r-- | socket/socket.c | 10 | ||||
-rw-r--r-- | socket/socket.h | 8 | ||||
-rw-r--r-- | socket/socks5.c | 23 | ||||
-rw-r--r-- | socket/tcp-bsd.c | 14 | ||||
-rw-r--r-- | socket/tcp-turn.c | 14 | ||||
-rw-r--r-- | socket/turn.c | 40 | ||||
-rw-r--r-- | socket/udp-bsd.c | 19 | ||||
-rw-r--r-- | tests/test-bsd.c | 7 | ||||
-rw-r--r-- | tests/test-send-recv.c | 1 |
14 files changed, 101 insertions, 119 deletions
diff --git a/agent/agent.c b/agent/agent.c index 986dfb8..db88f7e 100644 --- a/agent/agent.c +++ b/agent/agent.c @@ -1316,10 +1316,9 @@ pseudo_tcp_socket_write_packet (PseudoTcpSocket *socket, local_buf.size = len; local_message.buffers = &local_buf; local_message.n_buffers = 1; - local_message.to = addr; local_message.length = len; - if (nice_socket_send_messages (sock, &local_message, 1)) { + if (nice_socket_send_messages (sock, addr, &local_message, 1)) { return WR_SUCCESS; } } else { @@ -3264,7 +3263,6 @@ nice_agent_send_messages_nonblocking ( } else if (component->selected_pair.local != NULL) { NiceSocket *sock; NiceAddress *addr; - guint i; #ifndef NDEBUG gchar tmpbuf[INET6_ADDRSTRLEN]; @@ -3278,13 +3276,8 @@ nice_agent_send_messages_nonblocking ( sock = component->selected_pair.local->sockptr; addr = &component->selected_pair.remote->addr; - /* Set the destination address. FIXME: This is ugly. */ - for (i = 0; i < n_messages; i++) { - NiceOutputMessage *message = (NiceOutputMessage *) &messages[i]; - message->to = addr; - } - - n_sent_messages = nice_socket_send_messages (sock, messages, n_messages); + n_sent_messages = nice_socket_send_messages (sock, addr, messages, + n_messages); if (n_sent_messages < 0) { g_set_error (&child_error, G_IO_ERROR, G_IO_ERROR_FAILED, @@ -3327,7 +3320,7 @@ nice_agent_send ( const gchar *buf) { GOutputVector local_buf = { buf, len }; - NiceOutputMessage local_message = { &local_buf, 1, NULL, len }; + NiceOutputMessage local_message = { &local_buf, 1, len }; gint n_sent_messages; n_sent_messages = nice_agent_send_messages_nonblocking (agent, stream_id, diff --git a/agent/agent.h b/agent/agent.h index 3f34506..cc025ec 100644 --- a/agent/agent.h +++ b/agent/agent.h @@ -176,14 +176,12 @@ typedef struct { * which contain data to transmit for this message * @n_buffers: number of #GOutputVectors in @buffers, or -1 to indicate @buffers * is %NULL-terminated - * @to: (allow-none): address of the peer to transmit the message to, or %NULL - * to use the default address for the outbound socket * @length: total number of valid bytes contiguously stored in @buffers * - * Represents a single message to transmit on the network. For reliable - * connections, this is essentially just an array of buffers (specifically, - * @to can be ignored). for non-reliable connections, it represents a single - * packet to send to the OS. + * Represents a single message to transmit on the network. For + * reliable connections, this is essentially just an array of + * buffer. for non-reliable connections, it represents a single packet + * to send to the OS. * * @n_buffers may be -1 to indicate that @buffers is terminated by a * #GOutputVector with a %NULL buffer pointer. @@ -199,7 +197,6 @@ typedef struct { typedef struct { GOutputVector *buffers; gint n_buffers; - const NiceAddress *to; gsize length; } NiceOutputMessage; diff --git a/agent/outputstream.c b/agent/outputstream.c index f96e190..f8109b6 100644 --- a/agent/outputstream.c +++ b/agent/outputstream.c @@ -403,9 +403,7 @@ nice_output_stream_write (GOutputStream *stream, const void *buffer, gsize count do { GOutputVector local_buf = { (const guint8 *) buffer + len, count - len }; - NiceOutputMessage local_message = { - &local_buf, 1, NULL, count - len - }; + NiceOutputMessage local_message = {&local_buf, 1, count - len}; /* Have to unlock while calling into the agent because * it will take the agent lock which will cause a deadlock if one of @@ -525,7 +523,7 @@ nice_output_stream_write_nonblocking (GPollableOutputStream *stream, NiceOutputStreamPrivate *priv = NICE_OUTPUT_STREAM (stream)->priv; NiceAgent *agent; /* owned */ GOutputVector local_buf = { buffer, count }; - NiceOutputMessage local_message = { &local_buf, 1, NULL, count }; + NiceOutputMessage local_message = { &local_buf, 1, count }; gint n_sent_messages; /* Closed streams are not writeable. */ diff --git a/socket/http.c b/socket/http.c index c0ec4a8..e2cde3e 100644 --- a/socket/http.c +++ b/socket/http.c @@ -92,12 +92,12 @@ struct to_be_sent { static void socket_close (NiceSocket *sock); static gint socket_recv_messages (NiceSocket *sock, NiceInputMessage *recv_messages, guint n_recv_messages); -static gint socket_send_messages (NiceSocket *sock, +static gint socket_send_messages (NiceSocket *sock, const NiceAddress *to, const NiceOutputMessage *messages, guint n_messages); static gboolean socket_is_reliable (NiceSocket *sock); -static void add_to_be_sent (NiceSocket *sock, const NiceOutputMessage *messages, - guint n_messages); +static void add_to_be_sent (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *messages, guint n_messages); static void free_to_be_sent (struct to_be_sent *tbs); @@ -165,10 +165,9 @@ nice_http_socket_new (NiceSocket *base_socket, local_bufs.size = strlen (msg); local_messages.buffers = &local_bufs; local_messages.n_buffers = 1; - local_messages.to = NULL; local_messages.length = local_bufs.size; - nice_socket_send_messages (priv->base_socket, &local_messages, 1); + nice_socket_send_messages (priv->base_socket, NULL, &local_messages, 1); priv->state = HTTP_STATE_INIT; g_free (msg); } @@ -547,8 +546,7 @@ retry: /* Send the pending data */ while ((tbs = g_queue_pop_head (&priv->send_queue))) { - nice_socket_send (priv->base_socket, &tbs->to, - tbs->length, tbs->buf); + nice_socket_send (priv->base_socket, &tbs->to, tbs->length, tbs->buf); g_free (tbs->buf); g_slice_free (struct to_be_sent, tbs); } @@ -576,8 +574,8 @@ retry: } static gint -socket_send_messages (NiceSocket *sock, const NiceOutputMessage *messages, - guint n_messages) +socket_send_messages (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *messages, guint n_messages) { HttpPriv *priv = sock->priv; @@ -586,11 +584,12 @@ socket_send_messages (NiceSocket *sock, const NiceOutputMessage *messages, if (!priv->base_socket) return -1; - return nice_socket_send_messages (priv->base_socket, messages, n_messages); + return nice_socket_send_messages (priv->base_socket, to, messages, + n_messages); } else if (priv->state == HTTP_STATE_ERROR) { return -1; } else { - add_to_be_sent (sock, messages, n_messages); + add_to_be_sent (sock, to, messages, n_messages); } return n_messages; @@ -605,8 +604,8 @@ socket_is_reliable (NiceSocket *sock) static void -add_to_be_sent (NiceSocket *sock, const NiceOutputMessage *messages, - guint n_messages) +add_to_be_sent (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *messages, guint n_messages) { HttpPriv *priv = sock->priv; guint i; @@ -628,8 +627,8 @@ add_to_be_sent (NiceSocket *sock, const NiceOutputMessage *messages, tbs = g_slice_new0 (struct to_be_sent); tbs->buf = g_malloc (message->length); tbs->length = message->length; - if (message->to) - tbs->to = *message->to; + if (to) + tbs->to = *to; g_queue_push_tail (&priv->send_queue, tbs); for (j = 0; diff --git a/socket/pseudossl.c b/socket/pseudossl.c index 005bdec..8128719 100644 --- a/socket/pseudossl.c +++ b/socket/pseudossl.c @@ -91,12 +91,12 @@ static const gchar SSL_CLIENT_HANDSHAKE[] = { static void socket_close (NiceSocket *sock); static gint socket_recv_messages (NiceSocket *sock, NiceInputMessage *recv_messages, guint n_recv_messages); -static gint socket_send_messages (NiceSocket *sock, +static gint socket_send_messages (NiceSocket *sock, const NiceAddress *to, const NiceOutputMessage *messages, guint n_messages); static gboolean socket_is_reliable (NiceSocket *sock); -static void add_to_be_sent (NiceSocket *sock, const NiceOutputMessage *messages, - guint n_messages); +static void add_to_be_sent (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *messages, guint n_messages); static void free_to_be_sent (struct to_be_sent *tbs); @@ -190,8 +190,8 @@ socket_recv_messages (NiceSocket *sock, } static gint -socket_send_messages (NiceSocket *sock, const NiceOutputMessage *messages, - guint n_messages) +socket_send_messages (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *messages, guint n_messages) { PseudoSSLPriv *priv = sock->priv; @@ -201,9 +201,10 @@ socket_send_messages (NiceSocket *sock, const NiceOutputMessage *messages, if (priv->base_socket == NULL) return FALSE; - return nice_socket_send_messages (priv->base_socket, messages, n_messages); + return nice_socket_send_messages (priv->base_socket, to, messages, + n_messages); } else { - add_to_be_sent (sock, messages, n_messages); + add_to_be_sent (sock, to, messages, n_messages); } return TRUE; } @@ -217,8 +218,8 @@ socket_is_reliable (NiceSocket *sock) static void -add_to_be_sent (NiceSocket *sock, const NiceOutputMessage *messages, - guint n_messages) +add_to_be_sent (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *messages, guint n_messages) { PseudoSSLPriv *priv = sock->priv; guint i; @@ -234,8 +235,8 @@ add_to_be_sent (NiceSocket *sock, const NiceOutputMessage *messages, /* Compact the buffer. */ tbs->buf = g_malloc (message->length); tbs->length = message->length; - if (message->to != NULL) - tbs->to = *message->to; + if (to != NULL) + tbs->to = *to; g_queue_push_tail (&priv->send_queue, tbs); for (j = 0; diff --git a/socket/socket.c b/socket/socket.c index 8a7537f..afd5037 100644 --- a/socket/socket.c +++ b/socket/socket.c @@ -129,13 +129,13 @@ nice_socket_recv_messages (NiceSocket *sock, * Since: 0.1.5 */ gint -nice_socket_send_messages (NiceSocket *sock, const NiceOutputMessage *messages, - guint n_messages) +nice_socket_send_messages (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *messages, guint n_messages) { g_return_val_if_fail (sock != NULL, -1); g_return_val_if_fail (n_messages == 0 || messages != NULL, -1); - return sock->send_messages (sock, messages, n_messages); + return sock->send_messages (sock, to, messages, n_messages); } /* Convenience wrapper around nice_socket_send_messages(). Returns the number of @@ -146,10 +146,10 @@ nice_socket_send (NiceSocket *sock, const NiceAddress *to, gsize len, const gchar *buf) { GOutputVector local_buf = { buf, len }; - NiceOutputMessage local_message = { &local_buf, 1, to, len }; + NiceOutputMessage local_message = { &local_buf, 1, len }; gint ret; - ret = nice_socket_send_messages (sock, &local_message, 1); + ret = sock->send_messages (sock, to, &local_message, 1); if (ret == 1) return len; return ret; diff --git a/socket/socket.h b/socket/socket.h index 3342eb1..54c542e 100644 --- a/socket/socket.h +++ b/socket/socket.h @@ -64,8 +64,8 @@ struct _NiceSocket gint (*recv_messages) (NiceSocket *sock, NiceInputMessage *recv_messages, guint n_recv_messages); /* As above, @n_messages may be zero. Iff so, @messages may be %NULL. */ - gint (*send_messages) (NiceSocket *sock, const NiceOutputMessage *messages, - guint n_messages); + gint (*send_messages) (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *messages, guint n_messages); gboolean (*is_reliable) (NiceSocket *sock); void (*close) (NiceSocket *sock); void *priv; @@ -77,8 +77,8 @@ nice_socket_recv_messages (NiceSocket *sock, NiceInputMessage *recv_messages, guint n_recv_messages); gint -nice_socket_send_messages (NiceSocket *sock, const NiceOutputMessage *messages, - guint n_messages); +nice_socket_send_messages (NiceSocket *sock, const NiceAddress *addr, + const NiceOutputMessage *messages, guint n_messages); gssize nice_socket_send (NiceSocket *sock, const NiceAddress *addr, gsize len, const gchar *buf); diff --git a/socket/socks5.c b/socket/socks5.c index fd769f5..563ef25 100644 --- a/socket/socks5.c +++ b/socket/socks5.c @@ -78,12 +78,12 @@ struct to_be_sent { static void socket_close (NiceSocket *sock); static gint socket_recv_messages (NiceSocket *sock, NiceInputMessage *recv_messages, guint n_recv_messages); -static gint socket_send_messages (NiceSocket *sock, +static gint socket_send_messages (NiceSocket *sock, const NiceAddress *to, const NiceOutputMessage *messages, guint n_messages); static gboolean socket_is_reliable (NiceSocket *sock); -static void add_to_be_sent (NiceSocket *sock, const NiceOutputMessage *messages, - guint n_messages); +static void add_to_be_sent (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *messages, guint n_messages); static void free_to_be_sent (struct to_be_sent *tbs); @@ -419,8 +419,8 @@ socket_recv_messages (NiceSocket *sock, } static gint -socket_send_messages (NiceSocket *sock, const NiceOutputMessage *messages, - guint n_messages) +socket_send_messages (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *messages, guint n_messages) { Socks5Priv *priv = sock->priv; @@ -429,11 +429,12 @@ socket_send_messages (NiceSocket *sock, const NiceOutputMessage *messages, if (priv->base_socket == NULL) return FALSE; - return nice_socket_send_messages (priv->base_socket, messages, n_messages); + return nice_socket_send_messages (priv->base_socket, to, messages, + n_messages); } else if (priv->state == SOCKS_STATE_ERROR) { return FALSE; } else { - add_to_be_sent (sock, messages, n_messages); + add_to_be_sent (sock, to, messages, n_messages); } return TRUE; } @@ -447,8 +448,8 @@ socket_is_reliable (NiceSocket *sock) static void -add_to_be_sent (NiceSocket *sock, const NiceOutputMessage *messages, - guint n_messages) +add_to_be_sent (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *messages, guint n_messages) { Socks5Priv *priv = sock->priv; guint i; @@ -464,8 +465,8 @@ add_to_be_sent (NiceSocket *sock, const NiceOutputMessage *messages, /* Compact the buffer. */ tbs->buf = g_malloc (message->length); tbs->length = message->length; - if (message->to != NULL) - tbs->to = *message->to; + if (to != NULL) + tbs->to = *to; g_queue_push_tail (&priv->send_queue, tbs); for (j = 0; diff --git a/socket/tcp-bsd.c b/socket/tcp-bsd.c index 5792129..64b2d46 100644 --- a/socket/tcp-bsd.c +++ b/socket/tcp-bsd.c @@ -72,7 +72,7 @@ struct to_be_sent { static void socket_close (NiceSocket *sock); static gint socket_recv_messages (NiceSocket *sock, NiceInputMessage *recv_messages, guint n_recv_messages); -static gint socket_send_messages (NiceSocket *sock, +static gint socket_send_messages (NiceSocket *sock, const NiceAddress *to, const NiceOutputMessage *messages, guint n_messages); static gboolean socket_is_reliable (NiceSocket *sock); @@ -316,8 +316,8 @@ socket_send_message (NiceSocket *sock, const NiceOutputMessage *message) * 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 NiceOutputMessage *messages, - guint n_messages) +socket_send_messages (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *messages, guint n_messages) { guint i; @@ -389,9 +389,7 @@ socket_send_more ( if (gerr != NULL && g_error_matches (gerr, G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK)) { GOutputVector local_buf = { tbs->buf, tbs->length }; - NiceOutputMessage local_message = { - &local_buf, 1, NULL, local_buf.size - }; + NiceOutputMessage local_message = {&local_buf, 1, local_buf.size}; add_to_be_sent (sock, &local_message, 0, TRUE); free_to_be_sent (tbs); @@ -401,9 +399,7 @@ socket_send_more ( g_error_free (gerr); } else if (ret < (int) tbs->length) { GOutputVector local_buf = { tbs->buf + ret, tbs->length - ret }; - NiceOutputMessage local_message = { - &local_buf, 1, NULL, local_buf.size - }; + NiceOutputMessage local_message = {&local_buf, 1, local_buf.size}; add_to_be_sent (sock, &local_message, 0, TRUE); free_to_be_sent (tbs); diff --git a/socket/tcp-turn.c b/socket/tcp-turn.c index aa24a24..58be7b1 100644 --- a/socket/tcp-turn.c +++ b/socket/tcp-turn.c @@ -69,7 +69,7 @@ typedef struct { static void socket_close (NiceSocket *sock); static gint socket_recv_messages (NiceSocket *sock, NiceInputMessage *recv_messages, guint n_recv_messages); -static gint socket_send_messages (NiceSocket *sock, +static gint socket_send_messages (NiceSocket *sock, const NiceAddress *to, const NiceOutputMessage *messages, guint n_messages); static gboolean socket_is_reliable (NiceSocket *sock); @@ -223,7 +223,8 @@ socket_recv_messages (NiceSocket *socket, } static gssize -socket_send_message (NiceSocket *sock, const NiceOutputMessage *message) +socket_send_message (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *message) { TurnTcpPriv *priv = sock->priv; guint8 padbuf[3] = {0, 0, 0}; @@ -249,7 +250,6 @@ socket_send_message (NiceSocket *sock, const NiceOutputMessage *message) local_bufs = g_malloc_n (n_bufs + 2, sizeof (GOutputVector)); local_message.buffers = local_bufs; local_message.n_buffers = n_bufs + 2; - local_message.to = message->to; local_message.length = message->length; /* Copy the existing buffers across. */ @@ -284,7 +284,7 @@ socket_send_message (NiceSocket *sock, const NiceOutputMessage *message) local_message.n_buffers--; } - ret = nice_socket_send_messages (priv->base_socket, &local_message, 1); + ret = nice_socket_send_messages (priv->base_socket, to, &local_message, 1); g_free (local_bufs); @@ -294,8 +294,8 @@ socket_send_message (NiceSocket *sock, const NiceOutputMessage *message) } static gint -socket_send_messages (NiceSocket *sock, const NiceOutputMessage *messages, - guint n_messages) +socket_send_messages (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *messages, guint n_messages) { guint i; @@ -303,7 +303,7 @@ socket_send_messages (NiceSocket *sock, const NiceOutputMessage *messages, const NiceOutputMessage *message = &messages[i]; gssize len; - len = socket_send_message (sock, message); + len = socket_send_message (sock, to, message); if (len < 0) { /* Error. */ diff --git a/socket/turn.c b/socket/turn.c index 3245e3a..46ce895 100644 --- a/socket/turn.c +++ b/socket/turn.c @@ -116,7 +116,7 @@ typedef struct { static void socket_close (NiceSocket *sock); static gint socket_recv_messages (NiceSocket *sock, NiceInputMessage *recv_messages, guint n_recv_messages); -static gint socket_send_messages (NiceSocket *sock, +static gint socket_send_messages (NiceSocket *sock, const NiceAddress *to, const NiceOutputMessage *messages, guint n_messages); static gboolean socket_is_reliable (NiceSocket *sock); @@ -548,7 +548,8 @@ socket_dequeue_all_data (TurnPriv *priv, const NiceAddress *to) static gssize -socket_send_message (NiceSocket *sock, const NiceOutputMessage *message) +socket_send_message (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *message) { TurnPriv *priv = (TurnPriv *) sock->priv; StunMessage msg; @@ -564,13 +565,13 @@ socket_send_message (NiceSocket *sock, const NiceOutputMessage *message) for (; i; i = i->next) { ChannelBinding *b = i->data; - if (nice_address_equal (&b->peer, message->to)) { + if (nice_address_equal (&b->peer, to)) { binding = b; break; } } - nice_address_copy_to_sockaddr (message->to, &sa.addr); + nice_address_copy_to_sockaddr (to, &sa.addr); if (binding) { if (priv->compatibility == NICE_TURN_SOCKET_COMPATIBILITY_DRAFT9 || @@ -608,11 +609,11 @@ socket_send_message (NiceSocket *sock, const NiceOutputMessage *message) } } else { NiceOutputMessage local_message = { - message->buffers, message->n_buffers, &priv->server_addr, - message->length + message->buffers, message->n_buffers, message->length }; - ret = nice_socket_send_messages (priv->base_socket, &local_message, 1); + ret = nice_socket_send_messages (priv->base_socket, &priv->server_addr, + &local_message, 1); if (ret == 1) return message->length; return ret; @@ -651,7 +652,7 @@ socket_send_message (NiceSocket *sock, const NiceOutputMessage *message) if (priv->compatibility == NICE_TURN_SOCKET_COMPATIBILITY_GOOGLE && priv->current_binding && - nice_address_equal (&priv->current_binding->peer, message->to)) { + nice_address_equal (&priv->current_binding->peer, to)) { stun_message_append32 (&msg, STUN_ATTRIBUTE_OPTIONS, 1); } } @@ -695,23 +696,22 @@ socket_send_message (NiceSocket *sock, const NiceOutputMessage *message) if (msg_len > 0) { if (priv->compatibility == NICE_TURN_SOCKET_COMPATIBILITY_RFC5766 && - !priv_has_permission_for_peer (priv, message->to)) { - if (!priv_has_sent_permission_for_peer (priv, message->to)) { - priv_send_create_permission (priv, NULL, message->to); + !priv_has_permission_for_peer (priv, to)) { + if (!priv_has_sent_permission_for_peer (priv, to)) { + priv_send_create_permission (priv, NULL, to); } /* enque data */ nice_debug ("enqueuing data"); - socket_enqueue_data(priv, message->to, msg_len, (gchar *)buffer); + socket_enqueue_data(priv, to, msg_len, (gchar *)buffer); return msg_len; } else { GOutputVector local_buf = { buffer, msg_len }; - NiceOutputMessage local_message = { - &local_buf, 1, &priv->server_addr, msg_len - }; + NiceOutputMessage local_message = {&local_buf, 1, msg_len}; - ret = nice_socket_send_messages (priv->base_socket, &local_message, 1); + ret = nice_socket_send_messages (priv->base_socket, &priv->server_addr, + &local_message, 1); if (ret == 1) return msg_len; return ret; @@ -720,15 +720,15 @@ socket_send_message (NiceSocket *sock, const NiceOutputMessage *message) send: /* Error condition pass through to the base socket. */ - ret = nice_socket_send_messages (priv->base_socket, message, 1); + ret = nice_socket_send_messages (priv->base_socket, to, message, 1); if (ret == 1) return message->length; return ret; } static gint -socket_send_messages (NiceSocket *sock, const NiceOutputMessage *messages, - guint n_messages) +socket_send_messages (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *messages, guint n_messages) { guint i; @@ -736,7 +736,7 @@ socket_send_messages (NiceSocket *sock, const NiceOutputMessage *messages, const NiceOutputMessage *message = &messages[i]; gssize len; - len = socket_send_message (sock, message); + len = socket_send_message (sock, to, message); if (len < 0) { /* Error. */ diff --git a/socket/udp-bsd.c b/socket/udp-bsd.c index b886817..27191f8 100644 --- a/socket/udp-bsd.c +++ b/socket/udp-bsd.c @@ -59,7 +59,7 @@ static void socket_close (NiceSocket *sock); static gint socket_recv_messages (NiceSocket *sock, NiceInputMessage *recv_messages, guint n_recv_messages); -static gint socket_send_messages (NiceSocket *sock, +static gint socket_send_messages (NiceSocket *sock, const NiceAddress *to, const NiceOutputMessage *messages, guint n_messages); static gboolean socket_is_reliable (NiceSocket *sock); @@ -225,33 +225,32 @@ socket_recv_messages (NiceSocket *sock, } static gssize -socket_send_message (NiceSocket *sock, const NiceOutputMessage *message) +socket_send_message (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *message) { struct UdpBsdSocketPrivate *priv = sock->priv; GError *child_error = NULL; gssize len; if (!nice_address_is_valid (&priv->niceaddr) || - !nice_address_equal (&priv->niceaddr, message->to)) { + !nice_address_equal (&priv->niceaddr, to)) { union { struct sockaddr_storage storage; struct sockaddr addr; } sa; GSocketAddress *gaddr; - g_assert (message->to != NULL); - if (priv->gaddr) g_object_unref (priv->gaddr); - nice_address_copy_to_sockaddr (message->to, &sa.addr); + nice_address_copy_to_sockaddr (to, &sa.addr); gaddr = g_socket_address_new_from_native (&sa.addr, sizeof(sa)); priv->gaddr = gaddr; if (gaddr == NULL) return -1; - priv->niceaddr = *message->to; + priv->niceaddr = *to; } len = g_socket_send_message (sock->fileno, priv->gaddr, message->buffers, @@ -268,8 +267,8 @@ socket_send_message (NiceSocket *sock, const NiceOutputMessage *message) } static gint -socket_send_messages (NiceSocket *sock, const NiceOutputMessage *messages, - guint n_messages) +socket_send_messages (NiceSocket *sock, const NiceAddress *to, + const NiceOutputMessage *messages, guint n_messages) { guint i; @@ -277,7 +276,7 @@ socket_send_messages (NiceSocket *sock, const NiceOutputMessage *messages, const NiceOutputMessage *message = &messages[i]; gssize len; - len = socket_send_message (sock, message); + len = socket_send_message (sock, to, message); if (len < 0) { /* Error. */ diff --git a/tests/test-bsd.c b/tests/test-bsd.c index 937a096..50c2b42 100644 --- a/tests/test-bsd.c +++ b/tests/test-bsd.c @@ -144,9 +144,9 @@ test_zero_send_recv (void) g_assert_cmpint (socket_recv (sock, &tmp, 0, NULL), ==, 0); /* And again with messages. */ - g_assert_cmpint (nice_socket_send_messages (sock, + g_assert_cmpint (nice_socket_send_messages (sock, &tmp, &local_out_message, 0), ==, 0); - g_assert_cmpint (nice_socket_send_messages (sock, NULL, 0), ==, 0); + g_assert_cmpint (nice_socket_send_messages (sock, &tmp, NULL, 0), ==, 0); g_assert_cmpint (nice_socket_recv_messages (sock, &local_in_message, 0), ==, 0); @@ -273,7 +273,6 @@ test_multi_message_recv (guint n_sends, guint n_receives, send_messages[i].buffers = send_bufs + i * n_bufs_per_message; send_messages[i].n_buffers = n_bufs_per_message; - send_messages[i].to = &tmp; send_messages[i].length = 0; } @@ -301,7 +300,7 @@ test_multi_message_recv (guint n_sends, guint n_receives, /* Send multiple packets. */ g_assert_cmpint ( - nice_socket_send_messages (client, send_messages, n_sends), ==, + nice_socket_send_messages (client, &tmp, send_messages, n_sends), ==, expected_n_sent_messages); /* Receive things. */ diff --git a/tests/test-send-recv.c b/tests/test-send-recv.c index 4650ba1..8fac9de 100644 --- a/tests/test-send-recv.c +++ b/tests/test-send-recv.c @@ -554,7 +554,6 @@ generate_messages_to_transmit (TestIOStreamThreadData *data, generate_buffer_count (test_data->transmit.buffer_count_strategy, test_data->transmit_size_rand, buffer_offset); message->buffers = g_malloc_n (message->n_buffers, sizeof (GOutputVector)); - message->to = NULL; message->length = 0; /* Limit the overall message size to the smaller of (n_bytes / n_messages) |