summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libwaitress/waitress.c6
-rw-r--r--src/libwaitress/waitress.h1
-rw-r--r--src/main.c1
-rw-r--r--src/settings.c5
-rw-r--r--src/settings.h2
5 files changed, 13 insertions, 2 deletions
diff --git a/src/libwaitress/waitress.c b/src/libwaitress/waitress.c
index ee2926b..ce2a254 100644
--- a/src/libwaitress/waitress.c
+++ b/src/libwaitress/waitress.c
@@ -577,7 +577,11 @@ static bool WaitressFormatAuthorization (WaitressHandle_t *waith,
static const char *WaitressDefaultPort (const WaitressUrl_t * const url) {
assert (url != NULL);
- return url->port == NULL ? (url->tls ? "443" : "80") : url->port;
+ if (url->tls) {
+ return url->tlsPort == NULL ? "443" : url->tlsPort;
+ } else {
+ return url->port == NULL ? "80" : url->port;
+ }
}
/* get line from string
diff --git a/src/libwaitress/waitress.h b/src/libwaitress/waitress.h
index f91985d..0d69f0e 100644
--- a/src/libwaitress/waitress.h
+++ b/src/libwaitress/waitress.h
@@ -55,6 +55,7 @@ typedef struct {
const char *password;
const char *host;
const char *port;
+ const char *tlsPort;
const char *path; /* without leading '/' */
} WaitressUrl_t;
diff --git a/src/main.c b/src/main.c
index 2465334..f611706 100644
--- a/src/main.c
+++ b/src/main.c
@@ -430,6 +430,7 @@ int main (int argc, char **argv) {
WaitressInit (&app.waith);
app.waith.url.host = app.settings.rpcHost;
+ app.waith.url.tlsPort = app.settings.rpcTlsPort;
app.waith.tlsFingerprint = app.settings.tlsFingerprint;
/* init fds */
diff --git a/src/settings.c b/src/settings.c
index 014c561..68d2ef9 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -97,6 +97,7 @@ void BarSettingsDestroy (BarSettings_t *settings) {
free (settings->listSongFormat);
free (settings->fifo);
free (settings->rpcHost);
+ free (settings->rpcTlsPort);
free (settings->partnerUser);
free (settings->partnerPassword);
free (settings->device);
@@ -132,6 +133,7 @@ void BarSettingsRead (BarSettings_t *settings) {
settings->npStationFormat = strdup ("Station \"%n\" (%i)");
settings->listSongFormat = strdup ("%i) %a - %t%r");
settings->rpcHost = strdup (PIANO_RPC_HOST);
+ settings->rpcTlsPort = NULL;
settings->partnerUser = strdup ("android");
settings->partnerPassword = strdup ("AC7IBG09A3DTSYM4R41UJWL07VLN8JI7");
settings->device = strdup ("android-generic");
@@ -195,6 +197,9 @@ void BarSettingsRead (BarSettings_t *settings) {
} else if (streq ("rpc_host", key)) {
free (settings->rpcHost);
settings->rpcHost = strdup (val);
+ } else if (streq ("rpc_tls_port", key)) {
+ free (settings->rpcTlsPort);
+ settings->rpcTlsPort = strdup (val);
} else if (streq ("partner_user", key)) {
free (settings->partnerUser);
settings->partnerUser = strdup (val);
diff --git a/src/settings.h b/src/settings.h
index 30915c2..6ccad5d 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -99,7 +99,7 @@ typedef struct {
char *npStationFormat;
char *listSongFormat;
char *fifo;
- char *rpcHost, *partnerUser, *partnerPassword, *device, *inkey, *outkey;
+ char *rpcHost, *rpcTlsPort, *partnerUser, *partnerPassword, *device, *inkey, *outkey;
char tlsFingerprint[20];
char keys[BAR_KS_COUNT];
BarMsgFormatStr_t msgFormat[MSG_COUNT];