while(!revent && handle->connected) {
esl_size_t len1;
- if ((len1 = esl_buffer_read_packet(handle->packet_buf, handle->socket_buf, sizeof(handle->socket_buf)))) {
+ if ((len1 = esl_buffer_read_packet(handle->packet_buf, handle->socket_buf, sizeof(handle->socket_buf) - 1))) {
char *data = (char *) handle->socket_buf;
char *p, *e;
+
+ *(data + len1) = '\0';
esl_event_create(&revent, ESL_EVENT_CLONE);
revent->event_id = ESL_EVENT_SOCKET_DATA;
esl_event_add_header_string(revent, ESL_STACK_BOTTOM, "Event-Name", "SOCKET_DATA");
hname = p = data;
+
while(p) {
hname = p;
p = NULL;
break;
}
- rrval = handle_recv(handle, handle->socket_buf, sizeof(handle->socket_buf));
+ rrval = handle_recv(handle, handle->socket_buf, sizeof(handle->socket_buf) - 1);
+ *((char *)handle->socket_buf + rrval) = '\0';
if (rrval == 0) {
if (++zc >= 100) {
if (s >= len) {
sofar = esl_buffer_read(handle->packet_buf, body, len);
} else {
- r = handle_recv(handle, handle->socket_buf, sizeof(handle->socket_buf));
+ r = handle_recv(handle, handle->socket_buf, sizeof(handle->socket_buf) - 1);
+ *((char *)handle->socket_buf + r) = '\0';
if (r < 0) {
strerror_r(handle->errnum, handle->err, sizeof(handle->err));