Fixed segfault on networked client.
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user