mirror of
https://github.com/clangen/musikcube.git
synced 2024-10-02 13:02:35 +00:00
HttpServer audio and thumbnail lookups explicitly only support GET -- I
think we were doing some unnecessary process with HEAD (and potentially OPTIONS) requests.
This commit is contained in:
parent
2f7fa348bf
commit
41f1020ac9
@ -318,33 +318,35 @@ int HttpServer::HandleRequest(
|
|||||||
int status = MHD_HTTP_NOT_FOUND;
|
int status = MHD_HTTP_NOT_FOUND;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (!isAuthenticated(connection, server->context)) {
|
if (method && std::string(method) == "GET") {
|
||||||
status = 401; /* unauthorized */
|
if (!isAuthenticated(connection, server->context)) {
|
||||||
static const char* error = "unauthorized";
|
status = 401; /* unauthorized */
|
||||||
response = MHD_create_response_from_buffer(strlen(error), (void*) error, MHD_RESPMEM_PERSISTENT);
|
static const char* error = "unauthorized";
|
||||||
|
response = MHD_create_response_from_buffer(strlen(error), (void*)error, MHD_RESPMEM_PERSISTENT);
|
||||||
|
|
||||||
#ifdef ENABLE_DEBUG
|
#ifdef ENABLE_DEBUG
|
||||||
std::cerr << "unauthorized\n";
|
std::cerr << "unauthorized\n";
|
||||||
#endif
|
#endif
|
||||||
}
|
|
||||||
else {
|
|
||||||
/* if we get here we're authenticated */
|
|
||||||
std::string urlStr(url);
|
|
||||||
|
|
||||||
if (urlStr[0] == '/') {
|
|
||||||
urlStr = urlStr.substr(1);
|
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
/* if we get here we're authenticated */
|
||||||
|
std::string urlStr(url);
|
||||||
|
|
||||||
std::vector<std::string> parts;
|
if (urlStr[0] == '/') {
|
||||||
boost::split(parts, urlStr, boost::is_any_of("/"));
|
urlStr = urlStr.substr(1);
|
||||||
if (parts.size() > 0) {
|
|
||||||
/* /audio/id/<id> OR /audio/external_id/<external_id> */
|
|
||||||
if (parts.at(0) == fragment::audio && parts.size() == 3) {
|
|
||||||
status = HandleAudioTrackRequest(server, response, connection, parts);
|
|
||||||
}
|
}
|
||||||
/* /thumbnail/<id> */
|
|
||||||
else if (parts.at(0) == fragment::thumbnail && parts.size() == 2) {
|
std::vector<std::string> parts;
|
||||||
status = HandleThumbnailRequest(server, response, connection, parts);
|
boost::split(parts, urlStr, boost::is_any_of("/"));
|
||||||
|
if (parts.size() > 0) {
|
||||||
|
/* /audio/id/<id> OR /audio/external_id/<external_id> */
|
||||||
|
if (parts.at(0) == fragment::audio && parts.size() == 3) {
|
||||||
|
status = HandleAudioTrackRequest(server, response, connection, parts);
|
||||||
|
}
|
||||||
|
/* /thumbnail/<id> */
|
||||||
|
else if (parts.at(0) == fragment::thumbnail && parts.size() == 2) {
|
||||||
|
status = HandleThumbnailRequest(server, response, connection, parts);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user