We need a very simple apache module that
1) maps the HTTP request to an XML Structure
2) calls a c++ function with the XML structure as an argument (the actual function will be given)
3) maps what the c++ function returns (which is another XML structure) to an HTTP Response.
Prototype versions of the mapper functions will be also given. Your task is primarily to fit everything together and create a DLL that can be installed to Apache 2.2 as a new module.
If you have every developed an apache module, the task is quite simple. Otherwise, you will need to learn how to write apache modules (there are reference implementations and descriptions available online)
See deliverables section for more info
## Deliverables
Here is more info:
1) The XML Request structure is as follows
method requestURI HTTP/1.1
header1: value
header2: value
hello
will map to
<XMLRequest method="method" requestURI="requestURI" version="HTTP/1.1">
<headers>
<header name="header1" value="value" />
<header name="header2" value="value" />
</headers>
<body>
<string>hello</string>
</body>
</XMLRequest>
2) The function you will call is defined as
XMLResponse MyApp::dispatch(XMLRequest request)
3) The XMLResponse should be converted to HTTP Response as
<XMLResponse status="statusCode" statusText="statusText">
<headers>
<header name="header1" value="value" />
<header name="header2" value="value" />
</headers>
<body>
<string>message</string>
</body>
</XMLResponse>
should map to
version statusCode statusText
header1: value
header2: value
message
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
Windows and Linux