add support for OPTIONS http method
This commit is contained in:
@@ -160,6 +160,13 @@ void FunctionBase::MakeDelete()
|
||||
}
|
||||
|
||||
|
||||
void FunctionBase::MakeOptions()
|
||||
{
|
||||
cur->request->http_status = Header::status_204_no_content;
|
||||
cur->request->out_headers.add(Header::allow, L"OPTIONS, GET, HEAD, POST, DELETE");
|
||||
}
|
||||
|
||||
|
||||
void FunctionBase::Clear()
|
||||
{
|
||||
// do nothing by default
|
||||
@@ -183,6 +190,10 @@ void FunctionBase::ContinueMakeDelete()
|
||||
// do nothing by default
|
||||
}
|
||||
|
||||
void FunctionBase::ContinueMakeOptions()
|
||||
{
|
||||
// do nothing by default
|
||||
}
|
||||
|
||||
|
||||
} // namespace Winix
|
||||
|
||||
@@ -113,6 +113,7 @@ public:
|
||||
virtual void MakePost();
|
||||
virtual void MakeGet();
|
||||
virtual void MakeDelete();
|
||||
virtual void MakeOptions();
|
||||
virtual void Clear();
|
||||
|
||||
/*
|
||||
@@ -122,6 +123,7 @@ public:
|
||||
virtual void ContinueMakePost();
|
||||
virtual void ContinueMakeGet();
|
||||
virtual void ContinueMakeDelete();
|
||||
virtual void ContinueMakeOptions();
|
||||
|
||||
|
||||
//void SetConfig(Config * pconfig);
|
||||
|
||||
@@ -505,6 +505,12 @@ void Functions::MakeFunction()
|
||||
cur->request->function->MakeDelete();
|
||||
}
|
||||
else
|
||||
if( cur->request->method == Request::options )
|
||||
{
|
||||
if( cur->request->redirect_to.empty() )
|
||||
cur->request->function->MakeOptions();
|
||||
}
|
||||
else
|
||||
{
|
||||
log << log1 << "Functions: unknown request method (skipping)" << logend;
|
||||
}
|
||||
@@ -557,6 +563,13 @@ void Functions::ContinueMakeFunction()
|
||||
cur->request->function->ContinueMakeDelete();
|
||||
}
|
||||
else
|
||||
if( cur->request->method == Request::options )
|
||||
{
|
||||
log << log4 << "Functions: continuing method options for request " << cur->request
|
||||
<< " for function " << cur->request->function->fun.url << logend;
|
||||
cur->request->function->ContinueMakeOptions();
|
||||
}
|
||||
else
|
||||
{
|
||||
log << log1 << "Functions: cannot continue a request, unknown request method (skipping)" << logend;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user