This commit is contained in:
MarcEricMartel
2023-11-01 16:40:33 -04:00
parent 408679433b
commit 2753e41d34
3 changed files with 16 additions and 6 deletions

View File

@@ -952,16 +952,25 @@ netprot::Packet netprot::makePack(void* ptr, PACKET_TYPE type) {
std::vector<char*> netprot::recvPacks(SOCKET sock, Buffer* buf) {
std::vector<char*> lsPck;
int len = 0, end = 0;
char * cursor = nullptr, * next = buf->ptr, * last = buf->ptr;
int len = buf->tmp? buf->tmp - buf->ptr: 0,
end = 0;
char * cursor = buf->tmp ? buf->tmp: nullptr ,
* next = buf->tmp ? buf->tmp + 1: buf->ptr,
* last = buf->tmp ? buf->tmp: buf->ptr;
bool ended = true;
while (true) {
int bytes = recv(sock, &buf->ptr[len], buf->len - len, 0);
if (bytes <= 0) // si recv() retourne -1 ou 0; ça veut dire qu'il y a plus rien a lire qui n'a pas déjà été traité.
if (bytes <= 0) { // si recv() retourne -1 ou 0; ça veut dire qu'il y a plus rien a lire qui n'a pas déjà été traité.
if (ended)
buf->tmp = nullptr;
return lsPck;
}
len += bytes;
end = len;
ended = false;
while (true) {
int cmp = 0;
@@ -986,6 +995,7 @@ std::vector<char*> netprot::recvPacks(SOCKET sock, Buffer* buf) {
}
}
else {
buf->tmp = last;
cursor = &buf->ptr[len];
next = cursor + 1;
break;