[Freeswitch-svn] [commit] r5883 - freeswitch/trunk/src
Freeswitch SVN
anthm at freeswitch.org
Mon Oct 15 19:49:05 EDT 2007
Author: anthm
Date: Mon Oct 15 19:49:05 2007
New Revision: 5883
Modified:
freeswitch/trunk/src/switch_apr.c
Log:
fix apr send func not sending all the bytes we asked it to.
Modified: freeswitch/trunk/src/switch_apr.c
==============================================================================
--- freeswitch/trunk/src/switch_apr.c (original)
+++ freeswitch/trunk/src/switch_apr.c Mon Oct 15 19:49:05 2007
@@ -561,7 +561,21 @@
SWITCH_DECLARE(switch_status_t) switch_socket_send(switch_socket_t * sock, const char *buf, switch_size_t *len)
{
- return apr_socket_send(sock, buf, len);
+ switch_status_t status;
+ switch_size_t req = *len, wrote = 0, need = 0;
+
+ status = apr_socket_send(sock, buf, len);
+ if (status == SWITCH_STATUS_SUCCESS) {
+ wrote = *len;
+ while (wrote < req && status == SWITCH_STATUS_SUCCESS) {
+ need = req - wrote;
+ status = apr_socket_send(sock, buf + wrote, &need);
+ wrote += need;
+ }
+ }
+ *len = wrote;
+ return status;
+
}
SWITCH_DECLARE(switch_status_t) switch_socket_sendto(switch_socket_t * sock, switch_sockaddr_t * where, int32_t flags, const char *buf, switch_size_t *len)
More information about the Freeswitch-svn
mailing list