mirror of
https://github.com/owntone/owntone-server.git
synced 2025-05-23 02:21:55 -04:00
[airplay] Fix client name showing as blank when pairing with MacOS
Also include the X-Apple-HKP header in pair-pin-start like iOS does, just in case. Ref issue #1885
This commit is contained in:
parent
7193d0a243
commit
b88df4b4e8
@ -861,6 +861,7 @@ request_headers_add(struct evrtsp_request *req, struct airplay_session *rs, enum
|
||||
{
|
||||
char buf[64];
|
||||
const char *user_agent;
|
||||
const char *client_name;
|
||||
const char *method;
|
||||
const char *url;
|
||||
int ret;
|
||||
@ -873,6 +874,9 @@ request_headers_add(struct evrtsp_request *req, struct airplay_session *rs, enum
|
||||
user_agent = cfg_getstr(cfg_getsec(cfg, "general"), "user_agent");
|
||||
evrtsp_add_header(req->output_headers, "User-Agent", user_agent);
|
||||
|
||||
client_name = cfg_getstr(cfg_getsec(cfg, "library"), "name");
|
||||
evrtsp_add_header(req->output_headers, "X-Apple-Client-Name", client_name);
|
||||
|
||||
// If we have a realm + nonce it means that the device told us in the reply to
|
||||
// SETUP that www authentication with password is required
|
||||
if (rs->realm && rs->nonce)
|
||||
@ -2640,6 +2644,12 @@ static int
|
||||
payload_make_pin_start(struct evrtsp_request *req, struct airplay_session *rs, void *arg)
|
||||
{
|
||||
DPRINTF(E_LOG, L_AIRPLAY, "Starting device pairing for '%s', go to the web interface and enter PIN\n", rs->devname);
|
||||
|
||||
if (rs->pair_type == PAIR_CLIENT_HOMEKIT_NORMAL)
|
||||
evrtsp_add_header(req->output_headers, "X-Apple-HKP", "3");
|
||||
else if (rs->pair_type == PAIR_CLIENT_HOMEKIT_TRANSIENT)
|
||||
evrtsp_add_header(req->output_headers, "X-Apple-HKP", "4");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1109,6 +1109,7 @@ raop_add_headers(struct raop_session *rs, struct evrtsp_request *req, enum evrts
|
||||
const char *method;
|
||||
const char *url;
|
||||
const char *user_agent;
|
||||
const char *client_name;
|
||||
int ret;
|
||||
|
||||
method = evrtsp_method(req_method);
|
||||
@ -1121,6 +1122,9 @@ raop_add_headers(struct raop_session *rs, struct evrtsp_request *req, enum evrts
|
||||
user_agent = cfg_getstr(cfg_getsec(cfg, "general"), "user_agent");
|
||||
evrtsp_add_header(req->output_headers, "User-Agent", user_agent);
|
||||
|
||||
client_name = cfg_getstr(cfg_getsec(cfg, "library"), "name");
|
||||
evrtsp_add_header(req->output_headers, "X-Apple-Client-Name", client_name);
|
||||
|
||||
/* Add Authorization header */
|
||||
url = (req_method == EVRTSP_REQ_OPTIONS) ? "*" : rs->session_url;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user