Revert "Fixed partial send data offset and memory leak"

This reverts commit f34eabd55a.
This commit is contained in:
M66B 2019-05-05 19:20:27 +02:00
parent 76fe5d9c2c
commit 697b7bdf2d
1 changed files with 10 additions and 16 deletions

View File

@ -485,26 +485,20 @@ void check_tcp_socket(const struct arguments *args,
fwd = 1; fwd = 1;
buffer_size -= sent; buffer_size -= sent;
s->tcp.sent += sent; s->tcp.sent += sent;
s->tcp.remote_seq = s->tcp.forward->seq + sent; s->tcp.forward->seq += sent;
s->tcp.forward->len -= sent;
if (sent != s->tcp.forward->len) { s->tcp.remote_seq = s->tcp.forward->seq;
log_android(ANDROID_LOG_WARN, "%s partial send %u/%u",
session, sent, s->tcp.forward->len);
struct segment *n = malloc(sizeof(struct segment));
n->seq = s->tcp.forward->seq + sent;
n->len = s->tcp.forward->len - (uint16_t) sent;
n->data = malloc(n->len);
memcpy(n->data, s->tcp.forward->data + sent, n->len);
n->psh = s->tcp.forward->psh;
n->next = s->tcp.forward->next;
s->tcp.forward->next = n;
}
if (s->tcp.forward->len == 0) {
struct segment *p = s->tcp.forward; struct segment *p = s->tcp.forward;
s->tcp.forward = s->tcp.forward->next; s->tcp.forward = s->tcp.forward->next;
free(p->data); free(p->data);
free(p); free(p);
} else {
log_android(ANDROID_LOG_WARN, "%s partial send %u/%u",
session, sent, s->tcp.forward->len);
break;
}
} }
} }