diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/settings.c | 3 | ||||
| -rw-r--r-- | src/settings.h | 1 | ||||
| -rw-r--r-- | src/ui.c | 7 | 
3 files changed, 8 insertions, 3 deletions
| diff --git a/src/settings.c b/src/settings.c index 54edba9..51c2400 100644 --- a/src/settings.c +++ b/src/settings.c @@ -121,6 +121,7 @@ void BarSettingsRead (BarSettings_t *settings) {  		#endif  	#endif  	settings->autoselect = true; +	settings->forceTls = false;  	settings->history = 5;  	settings->volume = 0;  	settings->sortOrder = BAR_SORT_NAME_AZ; @@ -245,6 +246,8 @@ void BarSettingsRead (BarSettings_t *settings) {  			settings->fifo = strdup (val);  		} else if (streq ("autoselect", key)) {  			settings->autoselect = atoi (val); +		} else if (streq ("force_tls", key)) { +			settings->forceTls = atoi (val);  		} else if (streq ("tls_fingerprint", key)) {  			/* expects 40 byte hex-encoded sha1 */  			if (strlen (val) == 40) { diff --git a/src/settings.h b/src/settings.h index 4c4205e..ce3732b 100644 --- a/src/settings.h +++ b/src/settings.h @@ -81,6 +81,7 @@ typedef struct {  typedef struct {  	bool autoselect; +	bool forceTls;  	unsigned int history;  	int volume;  	BarStationSorting_t sortOrder; @@ -134,14 +134,15 @@ void BarUiMsg (const BarSettings_t *settings, const BarUiMsg_t type,  /*	fetch http resource (post request)   *	@param waitress handle   *	@param piano request (initialized by PianoRequest()) + *	@param ignore libpiano TLS hint and use it always   */  static WaitressReturn_t BarPianoHttpRequest (WaitressHandle_t *waith, -		PianoRequest_t *req) { +		PianoRequest_t *req, bool forceTls) {  	waith->extraHeaders = "Content-Type: text/xml\r\n";  	waith->postData = req->postData;  	waith->method = WAITRESS_METHOD_POST;  	waith->url.path = req->urlPath; -	waith->url.tls = req->secure; +	waith->url.tls = req->secure || forceTls;  	return WaitressFetchBuf (waith, &req->responseData);  } @@ -172,7 +173,7 @@ int BarUiPianoCall (BarApp_t * const app, PianoRequestType_t type,  			return 0;  		} -		*wRet = BarPianoHttpRequest (&app->waith, &req); +		*wRet = BarPianoHttpRequest (&app->waith, &req, app->settings.forceTls);  		if (*wRet != WAITRESS_RET_OK) {  			BarUiMsg (&app->settings, MSG_NONE, "Network error: %s\n", WaitressErrorToStr (*wRet));  			if (req.responseData != NULL) { | 
