diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libwaitress/waitress.c | 6 | ||||
-rw-r--r-- | src/libwaitress/waitress.h | 1 | ||||
-rw-r--r-- | src/main.c | 1 | ||||
-rw-r--r-- | src/settings.c | 5 | ||||
-rw-r--r-- | src/settings.h | 2 |
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; @@ -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]; |