Fixed segfault on networked client.

This commit is contained in:
2025-04-21 20:33:31 -05:00
parent 923726902b
commit 6b523301ab

View File

@ -29,7 +29,10 @@ errorret_t networkedClientConnect(
// Create a socket
client->networked.socket = socket(AF_INET, SOCK_STREAM, 0);
if(client->networked.socket < 0) {
return error("Failed to create socket %s", strerror(errno));
return error(
"Failed to create socket %s",
errno > 0 ? strerror(errno) : "Unknown error"
);
}
// Set ip address and port
@ -40,7 +43,11 @@ errorret_t networkedClientConnect(
ret = inet_pton(AF_INET, ip, &client->networked.address.sin_addr);
if(ret <= 0) {
close(client->networked.socket);
return error("Invalid or bad IP address %s: %s", ip, strerror(errno));
return error(
"Invalid or bad IP address %s: %s",
ip,
errno > 0 ? strerror(errno) : "Unknown error"
);
}
// Connect to the server
@ -112,7 +119,10 @@ errorret_t networkedClientConnect(
close(client->networked.socket);
pthread_mutex_destroy(&client->networked.readLock);
pthread_mutex_destroy(&client->networked.writeLock);
return error("Failed to create client read thread %s", strerror(errno));
return error(
"Failed to create client read thread %s",
errno > 0 ? strerror(errno) : "Unknown error"
);
}
// Wait for the read thread to signal that it has started
@ -134,7 +144,10 @@ errorret_t networkedClientConnect(
close(client->networked.socket);
pthread_mutex_destroy(&client->networked.readLock);
pthread_mutex_destroy(&client->networked.writeLock);
return error("Failed to create client write thread %s", strerror(errno)); // Updated error message
return error(
"Failed to create client write thread %s",
errno > 0 ? strerror(errno) : "Unknown error"
);
}
return ERROR_OK;
@ -252,7 +265,10 @@ errorret_t networkedClientReadPacket(
0
);
if(read != sizeof(packettype_t)) {
return error("Failed to read packet header %s", strerror(errno));
return error(
"Failed to read packet header %s",
errno > 0 ? strerror(errno) : "Unknown error"
);
}
packet->type = *(packettype_t *)buffer;
@ -265,7 +281,10 @@ errorret_t networkedClientReadPacket(
0
);
if(read != sizeof(uint32_t)) {
return error("Failed to read packet length %s", strerror(errno));
return error(
"Failed to read packet length %s",
errno > 0 ? strerror(errno) : "Unknown error"
);
}
if(read > sizeof(packetdata_t)) {
return error("Packet length is too large");
@ -280,7 +299,10 @@ errorret_t networkedClientReadPacket(
0
);
if(read != packet->length) {
return error("Failed to read packet data %s", strerror(errno));
return error(
"Failed to read packet data %s",
errno > 0 ? strerror(errno) : "Unknown error"
);
}
return ERROR_OK;
}