Return OPTIONS when requested for toradio

1.2-legacy
Jm Casler 2020-10-16 17:41:08 -07:00
rodzic b9df2c00fa
commit ba549d8fcd
1 zmienionych plików z 11 dodań i 1 usunięć

Wyświetl plik

@ -207,6 +207,7 @@ void initWebServer()
// For every resource available on the server, we need to create a ResourceNode
// The ResourceNode links URL and HTTP method to a handler function
ResourceNode *nodeAPIv1ToRadioOptions = new ResourceNode("/api/v1/toradio", "OPTIONS", &handleAPIv1ToRadio);
ResourceNode *nodeAPIv1ToRadio = new ResourceNode("/api/v1/toradio", "PUT", &handleAPIv1ToRadio);
ResourceNode *nodeAPIv1FromRadio = new ResourceNode("/api/v1/fromradio", "GET", &handleAPIv1FromRadio);
ResourceNode *nodeCSS = new ResourceNode("/css/style.css", "GET", &handleStyleCSS);
@ -217,6 +218,7 @@ void initWebServer()
ResourceNode *node404 = new ResourceNode("", "GET", &handle404);
// Secure nodes
secureServer->registerNode(nodeAPIv1ToRadioOptions);
secureServer->registerNode(nodeAPIv1ToRadio);
secureServer->registerNode(nodeAPIv1FromRadio);
secureServer->registerNode(nodeCSS);
@ -229,6 +231,7 @@ void initWebServer()
secureServer->addMiddleware(&middlewareSpeedUp240);
// Insecure nodes
insecureServer->registerNode(nodeAPIv1ToRadioOptions);
insecureServer->registerNode(nodeAPIv1ToRadio);
insecureServer->registerNode(nodeAPIv1FromRadio);
insecureServer->registerNode(nodeCSS);
@ -378,7 +381,14 @@ void handleAPIv1ToRadio(HTTPRequest *req, HTTPResponse *res)
// Status code is 200 OK by default.
res->setHeader("Content-Type", "application/x-protobuf");
res->setHeader("Access-Control-Allow-Origin", "*");
res->setHeader("Access-Control-Allow-Methods", "PUT, GET");
res->setHeader("Access-Control-Allow-Methods", "PUT, OPTIONS");
if (req->getMethod() == "OPTIONS") {
res->setStatusCode(204);
res->print("");
return;
}
byte buffer[MAX_TO_FROM_RADIO_SIZE];
size_t s = req->readBytes(buffer, MAX_TO_FROM_RADIO_SIZE);