ts->len = ret;
tip->data_read += ret;
if (subbuf_fifo_queue(tip, ts))
- return -1;
+ ret = -1;
+ }
+
+ if (ret <= 0) {
+ free(ts->buf);
+ free(ts);
}
return ret;
struct stat sb;
unsigned int ready;
- wait_for_data(tip, 250);
+ wait_for_data(tip, -1);
if (fstat(tip->fd, &sb) < 0) {
perror("trace stat");
memset(ch, 0, sizeof(*ch));
ch->cl_in_addr = addr->sin_addr;
net_add_client_host(ch);
+
+ printf("server: connection from %s\n", inet_ntoa(addr->sin_addr));
}
ch->net_connections = realloc(ch->net_connections, (ch->nconn + 1) * sizeof(*nc));
nc = &ch->net_connections[ch->nconn++];
memset(nc, 0, sizeof(*nc));
- printf("server: connection from %s\n", inet_ntoa(addr->sin_addr));
time(&nc->connect_time);
nc->ch = ch;
nc->in_fd = in_fd;