Fixed segfault on networked client.
This commit is contained in:
@ -29,7 +29,10 @@ errorret_t networkedClientConnect(
|
|||||||
// Create a socket
|
// Create a socket
|
||||||
client->networked.socket = socket(AF_INET, SOCK_STREAM, 0);
|
client->networked.socket = socket(AF_INET, SOCK_STREAM, 0);
|
||||||
if(client->networked.socket < 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
|
// Set ip address and port
|
||||||
@ -40,7 +43,11 @@ errorret_t networkedClientConnect(
|
|||||||
ret = inet_pton(AF_INET, ip, &client->networked.address.sin_addr);
|
ret = inet_pton(AF_INET, ip, &client->networked.address.sin_addr);
|
||||||
if(ret <= 0) {
|
if(ret <= 0) {
|
||||||
close(client->networked.socket);
|
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
|
// Connect to the server
|
||||||
@ -112,7 +119,10 @@ errorret_t networkedClientConnect(
|
|||||||
close(client->networked.socket);
|
close(client->networked.socket);
|
||||||
pthread_mutex_destroy(&client->networked.readLock);
|
pthread_mutex_destroy(&client->networked.readLock);
|
||||||
pthread_mutex_destroy(&client->networked.writeLock);
|
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
|
// Wait for the read thread to signal that it has started
|
||||||
@ -134,7 +144,10 @@ errorret_t networkedClientConnect(
|
|||||||
close(client->networked.socket);
|
close(client->networked.socket);
|
||||||
pthread_mutex_destroy(&client->networked.readLock);
|
pthread_mutex_destroy(&client->networked.readLock);
|
||||||
pthread_mutex_destroy(&client->networked.writeLock);
|
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;
|
return ERROR_OK;
|
||||||
@ -252,7 +265,10 @@ errorret_t networkedClientReadPacket(
|
|||||||
0
|
0
|
||||||
);
|
);
|
||||||
if(read != sizeof(packettype_t)) {
|
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;
|
packet->type = *(packettype_t *)buffer;
|
||||||
@ -265,7 +281,10 @@ errorret_t networkedClientReadPacket(
|
|||||||
0
|
0
|
||||||
);
|
);
|
||||||
if(read != sizeof(uint32_t)) {
|
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)) {
|
if(read > sizeof(packetdata_t)) {
|
||||||
return error("Packet length is too large");
|
return error("Packet length is too large");
|
||||||
@ -280,7 +299,10 @@ errorret_t networkedClientReadPacket(
|
|||||||
0
|
0
|
||||||
);
|
);
|
||||||
if(read != packet->length) {
|
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;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user