mirror of
https://github.com/SuperBFG7/ympd
synced 2024-06-25 22:23:16 +00:00
Fix: #30 Redirect to https with original host header
This commit is contained in:
parent
e150369726
commit
ee9939e270
|
@ -681,7 +681,7 @@ void mympd_idle(struct mg_mgr *s, int timeout) {
|
||||||
|
|
||||||
int mympd_get_updatedb_state(char *buffer) {
|
int mympd_get_updatedb_state(char *buffer) {
|
||||||
struct mpd_status *status;
|
struct mpd_status *status;
|
||||||
int len;
|
int len, update_id;
|
||||||
struct json_out out = JSON_OUT_BUF(buffer, MAX_SIZE);
|
struct json_out out = JSON_OUT_BUF(buffer, MAX_SIZE);
|
||||||
|
|
||||||
status = mpd_run_status(mpd.conn);
|
status = mpd_run_status(mpd.conn);
|
||||||
|
@ -690,10 +690,14 @@ int mympd_get_updatedb_state(char *buffer) {
|
||||||
mpd.conn_state = MPD_FAILURE;
|
mpd.conn_state = MPD_FAILURE;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (mpd_status_get_update_id(status) == 1)
|
update_id = mpd_status_get_update_id(status);
|
||||||
len = json_printf(&out, "{type: update_started, data: {}}");
|
#ifdef DEBUG
|
||||||
|
fprintf(stderr, "Update database ID: %d\n", update_id);
|
||||||
|
#endif
|
||||||
|
if ( update_id > 0)
|
||||||
|
len = json_printf(&out, "{type: update_started, data: {jobid: %d}}", update_id);
|
||||||
else
|
else
|
||||||
len = json_printf(&out, "{type: update_finished, data: {}}");
|
len = json_printf(&out, "{type: update_finished}");
|
||||||
|
|
||||||
mpd_status_free(status);
|
mpd_status_free(status);
|
||||||
|
|
||||||
|
|
11
src/mympd.c
11
src/mympd.c
|
@ -36,7 +36,7 @@
|
||||||
|
|
||||||
static sig_atomic_t s_signal_received = 0;
|
static sig_atomic_t s_signal_received = 0;
|
||||||
static struct mg_serve_http_opts s_http_server_opts;
|
static struct mg_serve_http_opts s_http_server_opts;
|
||||||
char s_redirect[250];
|
|
||||||
|
|
||||||
static void signal_handler(int sig_num) {
|
static void signal_handler(int sig_num) {
|
||||||
signal(sig_num, signal_handler); // Reinstantiate signal handler
|
signal(sig_num, signal_handler); // Reinstantiate signal handler
|
||||||
|
@ -97,6 +97,10 @@ static void ev_handler(struct mg_connection *nc, int ev, void *ev_data) {
|
||||||
static void ev_handler_http(struct mg_connection *nc_http, int ev, void *ev_data) {
|
static void ev_handler_http(struct mg_connection *nc_http, int ev, void *ev_data) {
|
||||||
switch(ev) {
|
switch(ev) {
|
||||||
case MG_EV_HTTP_REQUEST: {
|
case MG_EV_HTTP_REQUEST: {
|
||||||
|
struct http_message *hm = (struct http_message *) ev_data;
|
||||||
|
struct mg_str *host_hdr = mg_get_http_header(hm, "Host");
|
||||||
|
char s_redirect[250];
|
||||||
|
snprintf(s_redirect, 250, "https://%.*s:%s/", host_hdr->len, host_hdr->p, config.sslport);
|
||||||
printf("Redirecting to %s\n", s_redirect);
|
printf("Redirecting to %s\n", s_redirect);
|
||||||
mg_http_send_redirect(nc_http, 301, mg_mk_str(s_redirect), mg_mk_str(NULL));
|
mg_http_send_redirect(nc_http, 301, mg_mk_str(s_redirect), mg_mk_str(NULL));
|
||||||
break;
|
break;
|
||||||
|
@ -162,10 +166,6 @@ int main(int argc, char **argv) {
|
||||||
struct mg_bind_opts bind_opts;
|
struct mg_bind_opts bind_opts;
|
||||||
const char *err;
|
const char *err;
|
||||||
|
|
||||||
char hostname[1024];
|
|
||||||
hostname[1023] = '\0';
|
|
||||||
gethostname(hostname, 1023);
|
|
||||||
|
|
||||||
//defaults
|
//defaults
|
||||||
config.mpdhost = "127.0.0.1";
|
config.mpdhost = "127.0.0.1";
|
||||||
config.mpdport = 6600;
|
config.mpdport = 6600;
|
||||||
|
@ -215,7 +215,6 @@ int main(int argc, char **argv) {
|
||||||
mg_mgr_init(&mgr, NULL);
|
mg_mgr_init(&mgr, NULL);
|
||||||
|
|
||||||
if (config.ssl == true) {
|
if (config.ssl == true) {
|
||||||
snprintf(s_redirect, 250, "https://%s:%s/", hostname, config.sslport);
|
|
||||||
nc_http = mg_bind(&mgr, config.webport, ev_handler_http);
|
nc_http = mg_bind(&mgr, config.webport, ev_handler_http);
|
||||||
if (nc_http == NULL) {
|
if (nc_http == NULL) {
|
||||||
printf("Error listening on port %s\n", config.webport);
|
printf("Error listening on port %s\n", config.webport);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user