Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/Networking/HttpResponder.cpp')
-rw-r--r--src/Networking/HttpResponder.cpp37
1 files changed, 15 insertions, 22 deletions
diff --git a/src/Networking/HttpResponder.cpp b/src/Networking/HttpResponder.cpp
index c39bcf1c..905bf6ad 100644
--- a/src/Networking/HttpResponder.cpp
+++ b/src/Networking/HttpResponder.cpp
@@ -670,10 +670,7 @@ bool HttpResponder::SendFileInfo(bool quitEarly) noexcept
"Content-Type: application/json\r\n"
);
outBuf->catf("Content-Length: %u\r\n", (jsonResponse != nullptr) ? jsonResponse->Length() : 0);
- if (reprap.GetNetwork().GetCorsSite() != nullptr)
- {
- outBuf->catf("Access-Control-Allow-Origin: %s\r\n", reprap.GetNetwork().GetCorsSite());
- }
+ AddCorsHeader();
outBuf->cat("Connection: close\r\n\r\n");
outBuf->Append(jsonResponse);
if (outBuf->HadOverflow())
@@ -862,10 +859,7 @@ void HttpResponder::SendFile(const char* nameOfFileToSend, bool isWebFile) noexc
"Pragma: no-cache\r\n"
"Expires: 0\r\n"
);
- if (reprap.GetNetwork().GetCorsSite() != nullptr)
- {
- outBuf->catf("Access-Control-Allow-Origin: %s\r\n", reprap.GetNetwork().GetCorsSite());
- }
+ AddCorsHeader();
}
const char* contentType;
@@ -953,10 +947,7 @@ void HttpResponder::SendGCodeReply() noexcept
"Content-Type: text/plain\r\n"
);
outBuf->catf("Content-Length: %u\r\n", gcodeReply.DataLength());
- if (reprap.GetNetwork().GetCorsSite() != nullptr)
- {
- outBuf->catf("Access-Control-Allow-Origin: %s\r\n", reprap.GetNetwork().GetCorsSite());
- }
+ AddCorsHeader();
outBuf->cat("Connection: close\r\n\r\n");
outStack.Append(gcodeReply);
@@ -1061,10 +1052,7 @@ void HttpResponder::SendJsonResponse(const char* command) noexcept
);
const unsigned int replyLength = (jsonResponse != nullptr) ? jsonResponse->Length() : 0;
outBuf->catf("Content-Length: %u\r\n", replyLength);
- if (reprap.GetNetwork().GetCorsSite() != nullptr)
- {
- outBuf->catf("Access-Control-Allow-Origin: %s\r\n", reprap.GetNetwork().GetCorsSite());
- }
+ AddCorsHeader();
outBuf->catf("Connection: %s\r\n\r\n", keepOpen ? "keep-alive" : "close");
outBuf->Append(jsonResponse);
@@ -1153,8 +1141,8 @@ void HttpResponder::ProcessRequest() noexcept
);
if (reprap.GetNetwork().GetCorsSite() != nullptr)
{
- outBuf->catf("Access-Control-Allow-Headers: Content-Type\r\n"
- "Access-Control-Allow-Origin: %s\r\n", reprap.GetNetwork().GetCorsSite());
+ outBuf->catf("Access-Control-Allow-Headers: Content-Type\r\n");
+ AddCorsHeader();
}
if (outBuf->HadOverflow())
{
@@ -1282,10 +1270,7 @@ void HttpResponder::RejectMessage(const char* response, unsigned int code) noexc
{
outBuf->printf("HTTP/1.1 %u %s\r\n"
"Connection: close\r\n", code, response);
- if (reprap.GetNetwork().GetCorsSite() != nullptr)
- {
- outBuf->catf("Access-Control-Allow-Origin: %s\r\n", reprap.GetNetwork().GetCorsSite());
- }
+ AddCorsHeader();
outBuf->catf("\r\n%s%s%s", ErrorPagePart1, response, ErrorPagePart2);
Commit();
}
@@ -1519,6 +1504,14 @@ void HttpResponder::Diagnostics(MessageType mt) const noexcept
GetPlatform().MessageF(mtype, "HTTP sessions: %u of %u\n", numSessions, MaxHttpSessions);
}
+void HttpResponder::AddCorsHeader() noexcept
+{
+ if (reprap.GetNetwork().GetCorsSite() != nullptr)
+ {
+ outBuf->catf("Access-Control-Allow-Origin: %s\r\n", reprap.GetNetwork().GetCorsSite());
+ }
+}
+
// Static data
HttpResponder::HttpSession HttpResponder::sessions[MaxHttpSessions];