mirror of
https://github.com/SuperBFG7/ympd
synced 2025-07-07 04:12:52 +00:00
Fix: formating
This commit is contained in:
parent
f42bba550d
commit
e46c0b200f
@ -43,8 +43,7 @@ const char * mpd_cmd_strs[] = {
|
|||||||
MPD_CMDS(GEN_STR)
|
MPD_CMDS(GEN_STR)
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline enum mpd_cmd_ids get_cmd_id(const char *cmd)
|
static inline enum mpd_cmd_ids get_cmd_id(const char *cmd) {
|
||||||
{
|
|
||||||
for (int i = 0; i < sizeof(mpd_cmd_strs) / sizeof(mpd_cmd_strs[0]); i++)
|
for (int i = 0; i < sizeof(mpd_cmd_strs) / sizeof(mpd_cmd_strs[0]); i++)
|
||||||
if (!strncmp(cmd, mpd_cmd_strs[i], strlen(mpd_cmd_strs[i])))
|
if (!strncmp(cmd, mpd_cmd_strs[i], strlen(mpd_cmd_strs[i])))
|
||||||
return i;
|
return i;
|
||||||
@ -52,8 +51,7 @@ static inline enum mpd_cmd_ids get_cmd_id(const char *cmd)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void callback_mympd(struct mg_connection *nc, const struct mg_str msg)
|
void callback_mympd(struct mg_connection *nc, const struct mg_str msg) {
|
||||||
{
|
|
||||||
size_t n = 0;
|
size_t n = 0;
|
||||||
char *cmd;
|
char *cmd;
|
||||||
unsigned int uint_buf1, uint_buf2, uint_rc;
|
unsigned int uint_buf1, uint_buf2, uint_rc;
|
||||||
@ -454,7 +452,7 @@ void callback_mympd(struct mg_connection *nc, const struct mg_str msg)
|
|||||||
n = mympd_put_settings(mpd.buf);
|
n = mympd_put_settings(mpd.buf);
|
||||||
break;
|
break;
|
||||||
case MPD_API_GET_STATS:
|
case MPD_API_GET_STATS:
|
||||||
n = mympd_get_stats(mpd.buf);
|
n = mympd_put_stats(mpd.buf);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -504,7 +502,7 @@ static int mympd_notify_callback(struct mg_connection *c, const char *param) {
|
|||||||
/* error message? */
|
/* error message? */
|
||||||
n = snprintf(mpd.buf, MAX_SIZE, "{\"type\": \"error\", \"data\": \"%s\"}",param);
|
n = snprintf(mpd.buf, MAX_SIZE, "{\"type\": \"error\", \"data\": \"%s\"}",param);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf(stdout,"Error in mpd_notify_callback: %s\n",param);
|
fprintf(stderr, "Error in mpd_notify_callback: %s\n",param);
|
||||||
#endif
|
#endif
|
||||||
mg_send_websocket_frame(c, WEBSOCKET_OP_TEXT, mpd.buf, n);
|
mg_send_websocket_frame(c, WEBSOCKET_OP_TEXT, mpd.buf, n);
|
||||||
return 0;
|
return 0;
|
||||||
@ -661,7 +659,8 @@ int mympd_put_state(char *buffer, int *current_song_id, int *next_song_id, unsi
|
|||||||
*queue_version = mpd_status_get_queue_version(status);
|
*queue_version = mpd_status_get_queue_version(status);
|
||||||
mpd_status_free(status);
|
mpd_status_free(status);
|
||||||
|
|
||||||
if (len > MAX_SIZE) fprintf(stderr,"Buffer truncated\n");
|
if (len > MAX_SIZE)
|
||||||
|
fprintf(stderr,"Buffer truncated\n");
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -671,7 +670,8 @@ int mympd_put_welcome(char *buffer) {
|
|||||||
|
|
||||||
len = json_printf(&out, "{type: welcome, data: { version: %Q}}", MYMPD_VERSION);
|
len = json_printf(&out, "{type: welcome, data: { version: %Q}}", MYMPD_VERSION);
|
||||||
|
|
||||||
if (len > MAX_SIZE) fprintf(stderr,"Buffer truncated\n");
|
if (len > MAX_SIZE)
|
||||||
|
fprintf(stderr,"Buffer truncated\n");
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -734,7 +734,8 @@ int mympd_put_settings(char *buffer) {
|
|||||||
);
|
);
|
||||||
mpd_status_free(status);
|
mpd_status_free(status);
|
||||||
|
|
||||||
if (len > MAX_SIZE) fprintf(stderr,"Buffer truncated\n");
|
if (len > MAX_SIZE)
|
||||||
|
fprintf(stderr, "Buffer truncated\n");
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -765,7 +766,8 @@ int mympd_put_outputs(char *buffer) {
|
|||||||
|
|
||||||
len += json_printf(&out,"]}}");
|
len += json_printf(&out,"]}}");
|
||||||
|
|
||||||
if (len > MAX_SIZE) fprintf(stderr,"Buffer truncated\n");
|
if (len > MAX_SIZE)
|
||||||
|
fprintf(stderr, "Buffer truncated\n");
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -818,7 +820,8 @@ int mympd_put_current_song(char *buffer) {
|
|||||||
mpd_song_free(song);
|
mpd_song_free(song);
|
||||||
mpd_response_finish(mpd.conn);
|
mpd_response_finish(mpd.conn);
|
||||||
|
|
||||||
if (len > MAX_SIZE) fprintf(stderr,"Buffer truncated\n");
|
if (len > MAX_SIZE)
|
||||||
|
fprintf(stderr, "Buffer truncated\n");
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -850,7 +853,8 @@ int mympd_put_songdetails(char *buffer, char *uri) {
|
|||||||
}
|
}
|
||||||
len += json_printf(&out, "}}");
|
len += json_printf(&out, "}}");
|
||||||
|
|
||||||
if (len > MAX_SIZE) fprintf(stderr,"Buffer truncated\n");
|
if (len > MAX_SIZE)
|
||||||
|
fprintf(stderr, "Buffer truncated\n");
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -899,7 +903,8 @@ int mympd_put_queue(char *buffer, unsigned int offset) {
|
|||||||
mpd.queue_version
|
mpd.queue_version
|
||||||
);
|
);
|
||||||
|
|
||||||
if (len > MAX_SIZE) fprintf(stderr,"Buffer truncated\n");
|
if (len > MAX_SIZE)
|
||||||
|
fprintf(stderr, "Buffer truncated\n");
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1007,7 +1012,8 @@ int mympd_put_browse(char *buffer, char *path, unsigned int offset, char *filter
|
|||||||
filter
|
filter
|
||||||
);
|
);
|
||||||
|
|
||||||
if (len > MAX_SIZE) fprintf(stderr,"Buffer truncated\n");
|
if (len > MAX_SIZE)
|
||||||
|
fprintf(stderr, "Buffer truncated\n");
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1059,7 +1065,8 @@ int mympd_put_db_tag(char *buffer, unsigned int offset, char *mpdtagtype, char *
|
|||||||
filter
|
filter
|
||||||
);
|
);
|
||||||
|
|
||||||
if (len > MAX_SIZE) fprintf(stderr,"Buffer truncated\n");
|
if (len > MAX_SIZE)
|
||||||
|
fprintf(stderr, "Buffer truncated\n");
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1071,9 +1078,8 @@ int mympd_put_songs_in_album(char *buffer, char *albumartist, char *album) {
|
|||||||
char cover[500];
|
char cover[500];
|
||||||
struct json_out out = JSON_OUT_BUF(buffer, MAX_SIZE);
|
struct json_out out = JSON_OUT_BUF(buffer, MAX_SIZE);
|
||||||
|
|
||||||
if (mpd_search_db_songs(mpd.conn, true) == false) {
|
if (mpd_search_db_songs(mpd.conn, true) == false)
|
||||||
RETURN_ERROR_AND_RECOVER("mpd_search_db_songs");
|
RETURN_ERROR_AND_RECOVER("mpd_search_db_songs");
|
||||||
}
|
|
||||||
|
|
||||||
if (mpd_search_add_tag_constraint(mpd.conn, MPD_OPERATOR_DEFAULT, MPD_TAG_ALBUM_ARTIST, albumartist) == false)
|
if (mpd_search_add_tag_constraint(mpd.conn, MPD_OPERATOR_DEFAULT, MPD_TAG_ALBUM_ARTIST, albumartist) == false)
|
||||||
RETURN_ERROR_AND_RECOVER("mpd_search_add_tag_constraint");
|
RETURN_ERROR_AND_RECOVER("mpd_search_add_tag_constraint");
|
||||||
@ -1110,7 +1116,8 @@ int mympd_put_songs_in_album(char *buffer, char *albumartist, char *album) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (len > MAX_SIZE) fprintf(stderr,"Buffer truncated\n");
|
if (len > MAX_SIZE)
|
||||||
|
fprintf(stderr, "Buffer truncated\n");
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1156,7 +1163,8 @@ int mympd_put_playlists(char *buffer, unsigned int offset, char *filter) {
|
|||||||
entities_returned
|
entities_returned
|
||||||
);
|
);
|
||||||
|
|
||||||
if (len > MAX_SIZE) fprintf(stderr,"Buffer truncated\n");
|
if (len > MAX_SIZE)
|
||||||
|
fprintf(stderr, "Buffer truncated\n");
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1387,11 +1395,12 @@ int mympd_search_queue(char *buffer, char *mpdtagtype, unsigned int offset, char
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (len > MAX_SIZE) fprintf(stderr,"Buffer truncated\n");
|
if (len > MAX_SIZE)
|
||||||
|
fprintf(stderr, "Buffer truncated\n");
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mympd_get_stats(char *buffer) {
|
int mympd_put_stats(char *buffer) {
|
||||||
struct mpd_stats *stats = mpd_run_stats(mpd.conn);
|
struct mpd_stats *stats = mpd_run_stats(mpd.conn);
|
||||||
const unsigned *version = mpd_connection_get_server_version(mpd.conn);
|
const unsigned *version = mpd_connection_get_server_version(mpd.conn);
|
||||||
char mpd_version[20];
|
char mpd_version[20];
|
||||||
@ -1401,7 +1410,7 @@ int mympd_get_stats(char *buffer) {
|
|||||||
snprintf(mpd_version,20,"%i.%i.%i", version[0], version[1], version[2]);
|
snprintf(mpd_version,20,"%i.%i.%i", version[0], version[1], version[2]);
|
||||||
|
|
||||||
if (stats == NULL)
|
if (stats == NULL)
|
||||||
RETURN_ERROR_AND_RECOVER("mympd_get_stats");
|
RETURN_ERROR_AND_RECOVER("mympd_put_stats");
|
||||||
len = json_printf(&out, "{type: mpdstats, data: { artists: %d, albums: %d, songs: %d, "
|
len = json_printf(&out, "{type: mpdstats, data: { artists: %d, albums: %d, songs: %d, "
|
||||||
"playtime: %d, uptime: %d, dbupdated: %d, dbplaytime: %d, mympd_version: %Q, mpd_version: %Q}}",
|
"playtime: %d, uptime: %d, dbupdated: %d, dbplaytime: %d, mympd_version: %Q, mpd_version: %Q}}",
|
||||||
mpd_stats_get_number_of_artists(stats),
|
mpd_stats_get_number_of_artists(stats),
|
||||||
@ -1416,7 +1425,8 @@ int mympd_get_stats(char *buffer) {
|
|||||||
);
|
);
|
||||||
mpd_stats_free(stats);
|
mpd_stats_free(stats);
|
||||||
|
|
||||||
if (len > MAX_SIZE) fprintf(stderr,"Buffer truncated\n");
|
if (len > MAX_SIZE)
|
||||||
|
fprintf(stderr,"Buffer truncated\n");
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,7 +159,7 @@ int mympd_search_add(char *buffer, char *mpdtagtype, char *searchstr);
|
|||||||
int mympd_search_add_plist(char *plist, char *mpdtagtype, char *searchstr);
|
int mympd_search_add_plist(char *plist, char *mpdtagtype, char *searchstr);
|
||||||
int mympd_search_queue(char *buffer, char *mpdtagtype, unsigned int offset, char *searchstr);
|
int mympd_search_queue(char *buffer, char *mpdtagtype, unsigned int offset, char *searchstr);
|
||||||
int mympd_put_welcome(char *buffer);
|
int mympd_put_welcome(char *buffer);
|
||||||
int mympd_get_stats(char *buffer);
|
int mympd_put_stats(char *buffer);
|
||||||
int mympd_put_settings(char *buffer);
|
int mympd_put_settings(char *buffer);
|
||||||
int mympd_put_db_tag(char *buffer, unsigned int offset, char *mpdtagtype, char *mpdsearchtagtype, char *searchstr, char *filter);
|
int mympd_put_db_tag(char *buffer, unsigned int offset, char *mpdtagtype, char *mpdsearchtagtype, char *searchstr, char *filter);
|
||||||
int mympd_put_songs_in_album(char *buffer, char *albumartist, char *album);
|
int mympd_put_songs_in_album(char *buffer, char *albumartist, char *album);
|
||||||
|
18
src/mympd.c
18
src/mympd.c
@ -44,17 +44,17 @@ static void signal_handler(int sig_num) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void handle_api(struct mg_connection *nc, struct http_message *hm) {
|
static void handle_api(struct mg_connection *nc, struct http_message *hm) {
|
||||||
if (!is_websocket(nc)) {
|
if (!is_websocket(nc))
|
||||||
mg_printf(nc, "%s", "HTTP/1.1 200 OK\r\nTransfer-Encoding: chunked\r\nContent-Type: application/json\r\n\r\n");
|
mg_printf(nc, "%s", "HTTP/1.1 200 OK\r\nTransfer-Encoding: chunked\r\nContent-Type: application/json\r\n\r\n");
|
||||||
}
|
|
||||||
char buf[1000] = {0};
|
char buf[1000] = {0};
|
||||||
memcpy(buf, hm->body.p,sizeof(buf) - 1 < hm->body.len ? sizeof(buf) - 1 : hm->body.len);
|
memcpy(buf, hm->body.p,sizeof(buf) - 1 < hm->body.len ? sizeof(buf) - 1 : hm->body.len);
|
||||||
struct mg_str d = {buf, strlen(buf)};
|
struct mg_str d = {buf, strlen(buf)};
|
||||||
callback_mympd(nc, d);
|
callback_mympd(nc, d);
|
||||||
if (!is_websocket(nc)) {
|
|
||||||
|
if (!is_websocket(nc))
|
||||||
mg_send_http_chunk(nc, "", 0); /* Send empty chunk, the end of response */
|
mg_send_http_chunk(nc, "", 0); /* Send empty chunk, the end of response */
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
static void ev_handler(struct mg_connection *nc, int ev, void *ev_data) {
|
static void ev_handler(struct mg_connection *nc, int ev, void *ev_data) {
|
||||||
switch(ev) {
|
switch(ev) {
|
||||||
@ -166,7 +166,7 @@ int main(int argc, char **argv) {
|
|||||||
config.sslport = "443";
|
config.sslport = "443";
|
||||||
config.sslcert = "/etc/mympd/ssl/server.pem";
|
config.sslcert = "/etc/mympd/ssl/server.pem";
|
||||||
config.sslkey = "/etc/mympd/ssl/server.key";
|
config.sslkey = "/etc/mympd/ssl/server.key";
|
||||||
config.user = NULL;
|
config.user = "nobody";
|
||||||
config.streamport = 8000;
|
config.streamport = 8000;
|
||||||
config.coverimage = "folder.jpg";
|
config.coverimage = "folder.jpg";
|
||||||
config.statefile = "/var/lib/mympd/mympd.state";
|
config.statefile = "/var/lib/mympd/mympd.state";
|
||||||
@ -178,10 +178,11 @@ int main(int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
fprintf(stdout, "myMPD %d.%d.%d\n"
|
fprintf(stdout, "myMPD %s\n"
|
||||||
"Copyright (C) 2018 Juergen Mang <mail@jcgames.de>\n"
|
"Copyright (C) 2018 Juergen Mang <mail@jcgames.de>\n"
|
||||||
|
"https://github.com/jcorporation/myMPD\n"
|
||||||
"Built " __DATE__ " "__TIME__"\n\n",
|
"Built " __DATE__ " "__TIME__"\n\n",
|
||||||
MYMPD_VERSION_MAJOR, MYMPD_VERSION_MINOR, MYMPD_VERSION_PATCH);
|
MYMPD_VERSION);
|
||||||
printf("Usage: %s /path/to/mympd.conf\n", argv[0]);
|
printf("Usage: %s /path/to/mympd.conf\n", argv[0]);
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
@ -223,12 +224,15 @@ int main(int argc, char **argv) {
|
|||||||
struct passwd *pw;
|
struct passwd *pw;
|
||||||
if ((pw = getpwnam(config.user)) == NULL) {
|
if ((pw = getpwnam(config.user)) == NULL) {
|
||||||
printf("Unknown user\n");
|
printf("Unknown user\n");
|
||||||
|
mg_mgr_free(&mgr);
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
} else if (setgid(pw->pw_gid) != 0) {
|
} else if (setgid(pw->pw_gid) != 0) {
|
||||||
printf("setgid() failed\n");
|
printf("setgid() failed\n");
|
||||||
|
mg_mgr_free(&mgr);
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
} else if (setuid(pw->pw_uid) != 0) {
|
} else if (setuid(pw->pw_uid) != 0) {
|
||||||
printf("setuid() failed\n");
|
printf("setuid() failed\n");
|
||||||
|
mg_mgr_free(&mgr);
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user