Close every socket created, not just every socket that can be connected. Alter some of the result codes.

This commit is contained in:
Mike Brady
2017-12-21 15:22:54 +00:00
parent dcb928d63c
commit 7bc91dd383
+10 -6
View File
@@ -117,7 +117,7 @@ int dacp_send_command(const char *command, char **body, size_t *bodysize) {
response.body = NULL;
response.malloced_size = 0;
response.size = 0;
response.code = 400; // client error
response.code = 400; // 400 is client error
char portstring[10], server[256], message[1024];
memset(&portstring, 0, sizeof(portstring));
@@ -148,14 +148,16 @@ int dacp_send_command(const char *command, char **body, size_t *bodysize) {
sockfd = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
if (sockfd == -1) {
debug(1, "Could not create socket");
debug(1, "Could not create socket.");
} else {
// connect!
debug(1, "DACP socket created.");
if (connect(sockfd, res->ai_addr, res->ai_addrlen) < 0) {
debug(1, "connect failed. Error");
debug(1, "DACP connect failed.");
response.code = 503; // Server code for Service Unavailable
} else {
debug(1,"DACP connect succeeded.");
sprintf(message, "GET /ctrl-int/1/%s HTTP/1.1\r\nHost: %s:%u\r\nActive-Remote: %u\r\n\r\n",
command, dacp_server.ip_string, dacp_server.port, dacp_server.active_remote_id);
@@ -204,9 +206,11 @@ int dacp_send_command(const char *command, char **body, size_t *bodysize) {
}
http_free(&rt);
close(sockfd);
}
}
}
close(sockfd);
debug(1,"DACP socket closed.");
}
pthread_mutex_unlock(&dacp_conversation_lock);
} else {