whitespace cleanup

This commit is contained in:
F. Duncanh
2025-08-08 15:42:07 -04:00
parent c8ce350226
commit 32d5de23c8
6 changed files with 103 additions and 107 deletions

View File

@@ -58,7 +58,7 @@ int airplay_video_service_init(raop_t *raop, unsigned short http_port,
airplay_video_t *airplay_video = deregister_airplay_video(raop);
if (airplay_video) {
airplay_video_service_destroy(airplay_video);
airplay_video_service_destroy(airplay_video);
}
/* calloc guarantees that the 36-character strings apple_session_id and
@@ -74,11 +74,11 @@ int airplay_video_service_init(raop_t *raop, unsigned short http_port,
snprintf(ptr, 6, "%-5u", http_port);
ptr = strstr(airplay_video->local_uri_prefix, " ");
if (ptr) {
*ptr = '\0';
*ptr = '\0';
}
if (!register_airplay_video(raop, airplay_video)) {
return -2;
return -2;
}
//printf(" %p %p\n", airplay_video, get_airplay_video(raop));
@@ -118,7 +118,6 @@ airplay_video_service_destroy(airplay_video_t *airplay_video)
free (airplay_video->master_playlist);
}
free (airplay_video);
}
@@ -146,19 +145,19 @@ const char *get_playback_uuid(airplay_video_t *airplay_video) {
}
void set_uri_prefix(airplay_video_t *airplay_video, char *uri_prefix, int uri_prefix_len) {
if (airplay_video->uri_prefix) {
free (airplay_video->uri_prefix);
}
airplay_video->uri_prefix = (char *) calloc(uri_prefix_len + 1, sizeof(char));
memcpy(airplay_video->uri_prefix, uri_prefix, uri_prefix_len);
if (airplay_video->uri_prefix) {
free (airplay_video->uri_prefix);
}
airplay_video->uri_prefix = (char *) calloc(uri_prefix_len + 1, sizeof(char));
memcpy(airplay_video->uri_prefix, uri_prefix, uri_prefix_len);
}
char *get_uri_prefix(airplay_video_t *airplay_video) {
return airplay_video->uri_prefix;
return airplay_video->uri_prefix;
}
char *get_uri_local_prefix(airplay_video_t *airplay_video) {
return airplay_video->local_uri_prefix;
return airplay_video->local_uri_prefix;
}
char *get_master_uri(airplay_video_t *airplay_video) {
@@ -198,7 +197,7 @@ void destroy_media_data_store(airplay_video_t *airplay_video) {
media_item_t *media_data_store = airplay_video->media_data_store;
if (media_data_store) {
for (int i = 0; i < airplay_video->num_uri ; i ++ ) {
if (media_data_store[i].uri) {
if (media_data_store[i].uri) {
free (media_data_store[i].uri);
}
if (media_data_store[i].playlist) {
@@ -336,7 +335,7 @@ char *adjust_master_playlist (char *fcup_response_data, int fcup_response_datale
while (ptr != NULL) {
counter++;
ptr++;
ptr = strstr(ptr, uri_prefix);
ptr = strstr(ptr, uri_prefix);
}
size_t len = uri_local_prefix_len - uri_prefix_len;

View File

@@ -310,16 +310,16 @@ dnssd_register_raop(dnssd_t *dnssd, unsigned short port)
case 2:
case 3:
dnssd->TXTRecordSetValue(&dnssd->raop_record, "pw", strlen("true"), "true");
dnssd->TXTRecordSetValue(&dnssd->raop_record, "sf", 4, "0x84");
break;
dnssd->TXTRecordSetValue(&dnssd->raop_record, "sf", 4, "0x84");
break;
case 1:
dnssd->TXTRecordSetValue(&dnssd->raop_record, "pw", strlen("true"), "true");
dnssd->TXTRecordSetValue(&dnssd->raop_record, "sf", 3, "0x8c");
break;
dnssd->TXTRecordSetValue(&dnssd->raop_record, "sf", 3, "0x8c");
break;
default:
dnssd->TXTRecordSetValue(&dnssd->raop_record, "pw", strlen("false"), "false");
dnssd->TXTRecordSetValue(&dnssd->raop_record, "sf", strlen(RAOP_SF), RAOP_SF);
break;
dnssd->TXTRecordSetValue(&dnssd->raop_record, "sf", strlen(RAOP_SF), RAOP_SF);
break;
}
dnssd->TXTRecordSetValue(&dnssd->raop_record, "sr", strlen(RAOP_SR), RAOP_SR);
dnssd->TXTRecordSetValue(&dnssd->raop_record, "ss", strlen(RAOP_SS), RAOP_SS);
@@ -382,8 +382,8 @@ dnssd_register_airplay(dnssd_t *dnssd, unsigned short port)
switch (dnssd->pin_pw) {
case 1: // display onscreen pin
dnssd->TXTRecordSetValue(&dnssd->airplay_record, "pw", strlen("true"), "true");
dnssd->TXTRecordSetValue(&dnssd->airplay_record, "flags", 3, "0x4");
break;
dnssd->TXTRecordSetValue(&dnssd->airplay_record, "flags", 3, "0x4");
break;
case 2: // require password
case 3:
dnssd->TXTRecordSetValue(&dnssd->airplay_record, "pw", strlen("true"), "true");
@@ -476,13 +476,13 @@ dnssd_unregister_airplay(dnssd_t *dnssd)
}
uint64_t dnssd_get_airplay_features(dnssd_t *dnssd) {
uint64_t features = ((uint64_t) dnssd->features2) << 32;
features += (uint64_t) dnssd->features1;
return features;
uint64_t features = ((uint64_t) dnssd->features2) << 32;
features += (uint64_t) dnssd->features1;
return features;
}
void dnssd_set_pk(dnssd_t *dnssd, char * pk_str) {
dnssd->pk = pk_str;
dnssd->pk = pk_str;
}
void dnssd_set_airplay_features(dnssd_t *dnssd, int bit, int val) {
@@ -498,8 +498,8 @@ void dnssd_set_airplay_features(dnssd_t *dnssd, int bit, int val) {
features = &(dnssd->features1);
}
if (val) {
*features = *features | mask;
*features = *features | mask;
} else {
*features = *features & ~mask;
*features = *features & ~mask;
}
}

View File

@@ -124,7 +124,7 @@ http_handler_rate(raop_conn_t *conn, http_request_t *request, http_response_t *r
if (end && end != rate) {
rate_value = value;
logger_log(conn->raop->logger, LOGGER_DEBUG, "http_handler_rate: got rate = %.6f", rate_value);
}
}
}
conn->raop->callbacks.on_video_rate(conn->raop->callbacks.cls, rate_value);
}
@@ -142,7 +142,7 @@ http_handler_stop(raop_conn_t *conn, http_request_t *request, http_response_t *r
static void
http_handler_set_property(raop_conn_t *conn,
http_request_t *request, http_response_t *response,
char **response_data, int *response_datalen) {
char **response_data, int *response_datalen) {
const char *url = http_request_get_url(request);
const char *property = url + strlen("/setProperty?");
@@ -247,12 +247,12 @@ int create_playback_info_plist_xml(playback_info_t *playback_info, char **plist_
plist_t loaded_time_ranges_node = plist_new_array();
time_range_to_plist(playback_info->loadedTimeRanges, playback_info->num_loaded_time_ranges,
loaded_time_ranges_node);
loaded_time_ranges_node);
plist_dict_set_item(res_root_node, "loadedTimeRanges", loaded_time_ranges_node);
plist_t seekable_time_ranges_node = plist_new_array();
time_range_to_plist(playback_info->seekableTimeRanges, playback_info->num_seekable_time_ranges,
seekable_time_ranges_node);
seekable_time_ranges_node);
plist_dict_set_item(res_root_node, "seekableTimeRanges", seekable_time_ranges_node);
int len;
@@ -264,7 +264,6 @@ int create_playback_info_plist_xml(playback_info_t *playback_info, char **plist_
return len;
}
/* this handles requests from the Client for "Playback information" while the Media is playing on the
Media Player. (The Server gets this information by monitoring the Media Player). The Client could use
the information to e.g. update the slider it shows with progress to the player (0%-100%).
@@ -287,11 +286,11 @@ http_handler_playback_info(raop_conn_t *conn, http_request_t *request, http_resp
conn->raop->callbacks.on_video_acquire_playback_info(conn->raop->callbacks.cls, &playback_info);
if (playback_info.duration == -1.0) {
/* video has finished, reset */
logger_log(conn->raop->logger, LOGGER_DEBUG, "playback_info not available (finishing)");
//httpd_remove_known_connections(conn->raop->httpd);
http_response_set_disconnect(response,1);
conn->raop->callbacks.video_reset(conn->raop->callbacks.cls);
return;
logger_log(conn->raop->logger, LOGGER_DEBUG, "playback_info not available (finishing)");
//httpd_remove_known_connections(conn->raop->httpd);
http_response_set_disconnect(response,1);
conn->raop->callbacks.video_reset(conn->raop->callbacks.cls);
return;
} else if (playback_info.position == -1.0) {
logger_log(conn->raop->logger, LOGGER_DEBUG, "playback_info not available");
return;
@@ -345,9 +344,8 @@ http_handler_reverse(raop_conn_t *conn, http_request_t *request, http_response_t
if (type_PTTH == 1) {
logger_log(conn->raop->logger, LOGGER_DEBUG, "will use socket %d for %s connections", socket_fd, purpose);
http_response_init(response, "HTTP/1.1", 101, "Switching Protocols");
http_response_add_header(response, "Connection", "Upgrade");
http_response_add_header(response, "Upgrade", "PTTH/1.0");
http_response_add_header(response, "Connection", "Upgrade");
http_response_add_header(response, "Upgrade", "PTTH/1.0");
} else {
logger_log(conn->raop->logger, LOGGER_ERR, "multiple TPPH connections (%d) are forbidden", type_PTTH );
}
@@ -369,7 +367,6 @@ http_handler_action(raop_conn_t *conn, http_request_t *request, http_response_t
int fcup_response_statuscode = 0;
bool logger_debug = (logger_get_level(conn->raop->logger) >= LOGGER_DEBUG);
const char* session_id = http_request_get_header(request, "X-Apple-Session-ID");
if (!session_id) {
logger_log(conn->raop->logger, LOGGER_ERR, "Play request had no X-Apple-Session-ID");
@@ -405,7 +402,7 @@ http_handler_action(raop_conn_t *conn, http_request_t *request, http_response_t
/* determine type of data */
plist_t req_type_node = plist_dict_get_item(req_root_node, "type");
if (!PLIST_IS_STRING(req_type_node)) {
goto post_action_error;
goto post_action_error;
}
plist_t req_params_node = NULL;
@@ -431,15 +428,15 @@ http_handler_action(raop_conn_t *conn, http_request_t *request, http_response_t
}
plist_t req_params_item_uuid_node = plist_dict_get_item(req_params_item_node, "uuid");
char* remove_uuid = NULL;
plist_get_string_val(req_params_item_uuid_node, &remove_uuid);
plist_get_string_val(req_params_item_uuid_node, &remove_uuid);
const char *playback_uuid = get_playback_uuid(conn->raop->airplay_video);
if (strcmp(remove_uuid, playback_uuid)) {
if (strcmp(remove_uuid, playback_uuid)) {
logger_log(conn->raop->logger, LOGGER_ERR, "uuid of playlist removal action request did not match current playlist:\n"
" current: %s\n remove: %s", playback_uuid, remove_uuid);
} else {
logger_log(conn->raop->logger, LOGGER_DEBUG, "removal_uuid matches playback_uuid\n");
}
free (remove_uuid);
}
free (remove_uuid);
}
logger_log(conn->raop->logger, LOGGER_ERR, "FIXME: playlist removal not yet implemented");
goto finish;
@@ -531,11 +528,11 @@ http_handler_action(raop_conn_t *conn, http_request_t *request, http_response_t
if (logger_debug) {
logger_log(conn->raop->logger, LOGGER_DEBUG, "FCUP_Response datalen = %d", fcup_response_datalen);
char *data = malloc(fcup_response_datalen + 1);
memcpy(data, fcup_response_data, fcup_response_datalen);
data[fcup_response_datalen] = '\0';
logger_log(conn->raop->logger, LOGGER_DEBUG, "begin FCUP Response data:\n%s\nend FCUP Response data",data);
free (data);
char *data = malloc(fcup_response_datalen + 1);
memcpy(data, fcup_response_data, fcup_response_datalen);
data[fcup_response_datalen] = '\0';
logger_log(conn->raop->logger, LOGGER_DEBUG, "begin FCUP Response data:\n%s\nend FCUP Response data",data);
free (data);
}
@@ -543,24 +540,24 @@ http_handler_action(raop_conn_t *conn, http_request_t *request, http_response_t
if (ptr) {
/* this is a master playlist */
char *uri_prefix = get_uri_prefix(conn->raop->airplay_video);
char ** media_data_store = NULL;
char ** media_data_store = NULL;
int num_uri = 0;
char *uri_local_prefix = get_uri_local_prefix(conn->raop->airplay_video);
char *new_master = adjust_master_playlist (fcup_response_data, fcup_response_datalen, uri_prefix, uri_local_prefix);
store_master_playlist(conn->raop->airplay_video, new_master);
create_media_uri_table(uri_prefix, fcup_response_data, fcup_response_datalen, &media_data_store, &num_uri);
create_media_data_store(conn->raop->airplay_video, media_data_store, num_uri);
num_uri = get_num_media_uri(conn->raop->airplay_video);
set_next_media_uri_id(conn->raop->airplay_video, 0);
create_media_data_store(conn->raop->airplay_video, media_data_store, num_uri);
num_uri = get_num_media_uri(conn->raop->airplay_video);
set_next_media_uri_id(conn->raop->airplay_video, 0);
} else {
/* this is a media playlist */
assert(fcup_response_data);
char *playlist = (char *) calloc(fcup_response_datalen + 1, sizeof(char));
memcpy(playlist, fcup_response_data, fcup_response_datalen);
char *playlist = (char *) calloc(fcup_response_datalen + 1, sizeof(char));
memcpy(playlist, fcup_response_data, fcup_response_datalen);
int uri_num = get_next_media_uri_id(conn->raop->airplay_video);
--uri_num; // (next num is current num + 1)
store_media_playlist(conn->raop->airplay_video, playlist, uri_num);
--uri_num; // (next num is current num + 1)
store_media_playlist(conn->raop->airplay_video, playlist, uri_num);
float duration = 0.0f;
int count = analyze_media_playlist(playlist, &duration);
if (count) {
@@ -583,7 +580,7 @@ http_handler_action(raop_conn_t *conn, http_request_t *request, http_response_t
fcup_request((void *) conn, get_media_uri_by_num(conn->raop->airplay_video, uri_num),
apple_session_id,
get_next_FCUP_RequestID(conn->raop->airplay_video));
set_next_media_uri_id(conn->raop->airplay_video, ++uri_num);
set_next_media_uri_id(conn->raop->airplay_video, ++uri_num);
} else {
char * uri_local_prefix = get_uri_local_prefix(conn->raop->airplay_video);
conn->raop->callbacks.on_video_play(conn->raop->callbacks.cls,
@@ -599,7 +596,7 @@ http_handler_action(raop_conn_t *conn, http_request_t *request, http_response_t
http_response_init(response, "HTTP/1.1", 400, "Bad Request");
if (req_root_node) {
plist_free(req_root_node);
plist_free(req_root_node);
}
}
@@ -643,23 +640,23 @@ http_handler_play(raop_conn_t *conn, http_request_t *request, http_response_t *r
char *header_str = NULL;
http_request_get_header_string(request, &header_str);
logger_log(conn->raop->logger, LOGGER_DEBUG, "request header:\n%s", header_str);
data_is_binary_plist = (strstr(header_str, "x-apple-binary-plist") != NULL);
data_is_text = (strstr(header_str, "text/parameters") != NULL);
data_is_octet = (strstr(header_str, "octet-stream") != NULL);
free (header_str);
data_is_binary_plist = (strstr(header_str, "x-apple-binary-plist") != NULL);
data_is_text = (strstr(header_str, "text/parameters") != NULL);
data_is_octet = (strstr(header_str, "octet-stream") != NULL);
free (header_str);
}
if (!data_is_text && !data_is_octet && !data_is_binary_plist) {
goto play_error;
goto play_error;
}
if (data_is_text) {
logger_log(conn->raop->logger, LOGGER_ERR, "Play request Content is text (unsupported)");
goto play_error;
goto play_error;
}
if (data_is_octet) {
logger_log(conn->raop->logger, LOGGER_ERR, "Play request Content is octet-stream (unsupported)");
goto play_error;
goto play_error;
}
if (data_is_binary_plist) {
@@ -671,9 +668,9 @@ http_handler_play(raop_conn_t *conn, http_request_t *request, http_response_t *r
} else {
char* playback_uuid = NULL;
plist_get_string_val(req_uuid_node, &playback_uuid);
set_playback_uuid(conn->raop->airplay_video, playback_uuid);
set_playback_uuid(conn->raop->airplay_video, playback_uuid);
free (playback_uuid);
}
}
plist_t req_content_location_node = plist_dict_get_item(req_root_node, "Content-Location");
if (!req_content_location_node) {
@@ -696,18 +693,18 @@ http_handler_play(raop_conn_t *conn, http_request_t *request, http_response_t *r
plist_t req_start_position_seconds_node = plist_dict_get_item(req_root_node, "Start-Position-Seconds");
if (!req_start_position_seconds_node) {
logger_log(conn->raop->logger, LOGGER_INFO, "No Start-Position-Seconds in Play request");
} else {
} else {
double start_position = 0.0;
plist_get_real_val(req_start_position_seconds_node, &start_position);
start_position_seconds = (float) start_position;
start_position_seconds = (float) start_position;
}
set_start_position_seconds(conn->raop->airplay_video, (float) start_position_seconds);
set_start_position_seconds(conn->raop->airplay_video, (float) start_position_seconds);
}
char *ptr = strstr(playback_location, "/master.m3u8");
if (!ptr) {
logger_log(conn->raop->logger, LOGGER_ERR, "Content-Location has unsupported form:\n%s\n", playback_location);
goto play_error;
goto play_error;
}
int prefix_len = (int) (ptr - playback_location);
set_uri_prefix(conn->raop->airplay_video, playback_location, prefix_len);
@@ -760,7 +757,7 @@ http_handler_hls(raop_conn_t *conn, http_request_t *request, http_response_t *r
if (!strcmp(url, "/master.m3u8")){
char * master_playlist = get_master_playlist(conn->raop->airplay_video);
if (master_playlist) {
if (master_playlist) {
size_t len = strlen(master_playlist);
char * data = (char *) malloc(len + 1);
memcpy(data, master_playlist, len);

View File

@@ -81,11 +81,11 @@ on_header_field(llhttp_t *parser, const char *at, size_t length)
/* Allocate space in the current header string */
if (request->headers[request->headers_index] == NULL) {
request->headers[request->headers_index] = calloc(1, length+1);
request->headers[request->headers_index] = calloc(1, length + 1);
} else {
request->headers[request->headers_index] = realloc(
request->headers[request->headers_index],
strlen(request->headers[request->headers_index])+length+1
strlen(request->headers[request->headers_index]) + length + 1
);
}
assert(request->headers[request->headers_index]);
@@ -106,11 +106,11 @@ on_header_value(llhttp_t *parser, const char *at, size_t length)
/* Allocate space in the current header string */
if (request->headers[request->headers_index] == NULL) {
request->headers[request->headers_index] = calloc(1, length+1);
request->headers[request->headers_index] = calloc(1, length + 1);
} else {
request->headers[request->headers_index] = realloc(
request->headers[request->headers_index],
strlen(request->headers[request->headers_index])+length+1
strlen(request->headers[request->headers_index]) + length + 1
);
}
assert(request->headers[request->headers_index]);
@@ -124,7 +124,7 @@ on_body(llhttp_t *parser, const char *at, size_t length)
{
http_request_t *request = parser->data;
request->data = realloc(request->data, request->datalen+length);
request->data = realloc(request->data, request->datalen + length);
assert(request->data);
memcpy(request->data+request->datalen, at, length);
@@ -172,7 +172,7 @@ http_request_destroy(http_request_t *request)
if (request) {
free(request->url);
for (i=0; i<request->headers_size; i++) {
for (i = 0; i < request->headers_size; i++) {
free(request->headers[i]);
}
free(request->headers);
@@ -273,7 +273,7 @@ http_request_get_header(http_request_t *request, const char *name)
return NULL;
}
for (i=0; i<request->headers_size; i+=2) {
for (i = 0; i < request->headers_size; i += 2) {
if (!strcmp(request->headers[i], name)) {
return request->headers[i+1];
}
@@ -305,7 +305,7 @@ http_request_get_header_string(http_request_t *request, char **header_str)
int len = 0;
for (int i = 0; i < request->headers_size; i++) {
len += strlen(request->headers[i]);
if (i%2 == 0) {
if (i % 2 == 0) {
len += 2;
} else {
len++;
@@ -321,12 +321,12 @@ http_request_get_header_string(http_request_t *request, char **header_str)
snprintf(p, n, "%s", request->headers[i]);
n -= hlen;
p += hlen;
if (i%2 == 0) {
if (i % 2 == 0) {
snprintf(p, n, ": ");
n -= 2;
p += 2;
} else {
snprintf(p, n, "\n");
snprintf(p, n, "\n");
n--;
p++;
}

View File

@@ -225,8 +225,8 @@ conn_request(void *ptr, http_request_t *request, http_response_t **response) {
logger_log(conn->raop->logger, LOGGER_INFO, "\"nohold\" feature: switch to new connection request from %s", ipaddr);
if (conn->raop->callbacks.video_reset) {
conn->raop->callbacks.video_reset(conn->raop->callbacks.cls);
}
httpd_remove_known_connections(conn->raop->httpd);
}
httpd_remove_known_connections(conn->raop->httpd);
} else {
logger_log(conn->raop->logger, LOGGER_WARNING, "rejecting new connection request from %s", ipaddr);
*response = http_response_create();
@@ -245,7 +245,7 @@ conn_request(void *ptr, http_request_t *request, http_response_t **response) {
conn->client_session_id = (char *) malloc(len);
strncpy(conn->client_session_id, client_session_id, len);
/* airplay video has been requested: shut down any running RAOP udp services */
raop_conn_t *raop_conn = (raop_conn_t *) httpd_get_connection_by_type(conn->raop->httpd, CONNECTION_TYPE_RAOP, 1);
raop_conn_t *raop_conn = (raop_conn_t *) httpd_get_connection_by_type(conn->raop->httpd, CONNECTION_TYPE_RAOP, 1);
if (raop_conn) {
raop_rtp_mirror_t *raop_rtp_mirror = raop_conn->raop_rtp_mirror;
if (raop_rtp_mirror) {
@@ -273,7 +273,7 @@ conn_request(void *ptr, http_request_t *request, http_response_t **response) {
httpd_set_connection_type(conn->raop->httpd, ptr, CONNECTION_TYPE_HLS);
conn->connection_type = CONNECTION_TYPE_HLS;
} else {
logger_log(conn->raop->logger, LOGGER_WARNING, "connection from unknown connection type");
logger_log(conn->raop->logger, LOGGER_WARNING, "connection from unknown connection type");
}
}
@@ -310,9 +310,9 @@ conn_request(void *ptr, http_request_t *request, http_response_t **response) {
if (request_data && logger_debug) {
if (request_datalen > 0) {
/* logger has a buffer limit of 4096 */
if (data_is_plist) {
plist_t req_root_node = NULL;
plist_from_bin(request_data, request_datalen, &req_root_node);
if (data_is_plist) {
plist_t req_root_node = NULL;
plist_from_bin(request_data, request_datalen, &req_root_node);
char * plist_xml = NULL;
char * stripped_xml = NULL;
uint32_t plist_len;
@@ -353,7 +353,7 @@ conn_request(void *ptr, http_request_t *request, http_response_t **response) {
if (!strcmp(method, "POST")) {
if (!strcmp(url, "/feedback")) {
handler = &raop_handler_feedback;
} else if (!strcmp(url, "/pair-pin-start")) {
} else if (!strcmp(url, "/pair-pin-start")) {
handler = &raop_handler_pairpinstart;
} else if (!strcmp(url, "/pair-setup-pin")) {
handler = &raop_handler_pairsetup_pin;
@@ -388,7 +388,7 @@ conn_request(void *ptr, http_request_t *request, http_response_t **response) {
handler = &raop_handler_teardown;
} else {
http_response_init(*response, protocol, 501, "Not Implemented");
}
}
} else if (!hls_request && !strcmp(protocol, "HTTP/1.1")) {
if (!strcmp(method, "POST")) {
if (!strcmp(url, "/reverse")) {
@@ -415,9 +415,9 @@ conn_request(void *ptr, http_request_t *request, http_response_t **response) {
handler = &http_handler_playback_info;
}
} else if (!strcmp(method, "PUT")) {
if (!strncmp (url, "/setProperty?", strlen("/setProperty?"))) {
if (!strncmp (url, "/setProperty?", strlen("/setProperty?"))) {
handler = &http_handler_set_property;
}
}
}
} else if (hls_request) {
handler = &http_handler_hls;
@@ -426,8 +426,8 @@ conn_request(void *ptr, http_request_t *request, http_response_t **response) {
if (handler != NULL) {
handler(conn, request, *response, &response_data, &response_datalen);
} else {
logger_log(conn->raop->logger, LOGGER_INFO,
"Unhandled Client Request: %s %s %s", method, url, protocol);
logger_log(conn->raop->logger, LOGGER_INFO,
"Unhandled Client Request: %s %s %s", method, url, protocol);
}
finish:;
@@ -435,7 +435,7 @@ conn_request(void *ptr, http_request_t *request, http_response_t **response) {
http_response_add_header(*response, "Server", "AirTunes/"GLOBAL_VERSION);
if (cseq) {
http_response_add_header(*response, "CSeq", cseq);
}
}
}
http_response_finish(*response, response_data, response_datalen);
@@ -488,7 +488,7 @@ conn_request(void *ptr, http_request_t *request, http_response_t **response) {
}
if (response_data) {
free(response_data);
}
}
}
}
@@ -646,10 +646,10 @@ raop_destroy(raop_t *raop) {
pairing_destroy(raop->pairing);
httpd_destroy(raop->httpd);
logger_destroy(raop->logger);
if (raop->nonce) {
if (raop->nonce) {
free(raop->nonce);
}
if (raop->random_pw) {
if (raop->random_pw) {
free(raop->random_pw);
}

View File

@@ -312,20 +312,20 @@ char *utils_strip_data_from_plist_xml(char *plist_xml) {
nchars = eol + 1 - ptr1;
memcpy(ptr2, ptr1, nchars);
ptr2 += nchars;
ptr1 += nchars;
ptr1 += nchars;
end = strstr(ptr1, "</data>");
assert(end);
assert(end);
count = 0;
do {
eol_data = eol;
eol = strchr(eol + 1, '\n');
count++;
} while (eol < end);
count--; // last '\n' counted ends the first non-data line (contains "</data>")
if (count > 1) {
count--; // last '\n' counted ends the first non-data line (contains "</data>")
if (count > 1) {
snprintf(line, sizeof(line), " (%d lines data omitted, 64 chars/line)\n", count);
nchars = strlen(line);
memcpy(ptr2, line, nchars);
memcpy(ptr2, line, nchars);
ptr2 += nchars;
ptr1 = eol_data + 1;
} else {