Mbed asked me to commit the library. Probably because it's an older version

Dependents:   ece4180_project

Fork of HTTPServer by Sarah Marsh

Committer:
dotunhunter
Date:
Thu May 04 12:09:12 2017 +0000
Revision:
18:0d9ea97a13f9
Parent:
17:c690fb2de477
Commit for HTTPServer. Mbed asked me to commit it probably because it may be an old version. I'm not sure why.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
leihen 5:dc88012caef1 1 /* FsHandler.cpp */
leihen 5:dc88012caef1 2 #include "mbed.h"
leihen 5:dc88012caef1 3 #include "RpcHandler.h"
leihen 5:dc88012caef1 4 #include "mbed_rpc.h"
leihen 5:dc88012caef1 5
leihen 5:dc88012caef1 6
leihen 16:cc3f5c53d0d5 7 #define DEBUG 1
leihen 16:cc3f5c53d0d5 8 #include "hl_debug.h"
leihen 5:dc88012caef1 9
leihen 5:dc88012caef1 10 RPC rpc("rpc");
leihen 5:dc88012caef1 11
leihen 5:dc88012caef1 12
leihen 5:dc88012caef1 13 HTTPRpcRequestHandler::HTTPRpcRequestHandler(const char* rootPath, const char* localPath, HTTPConnection::HTTPMessage& Msg, TCPSocketConnection& Tcp)
leihen 5:dc88012caef1 14 : HTTPRequestHandler(Msg, Tcp)
leihen 5:dc88012caef1 15 {
leihen 5:dc88012caef1 16 m_rootPath = rootPath;
leihen 5:dc88012caef1 17 m_localPath = localPath;
leihen 5:dc88012caef1 18
leihen 5:dc88012caef1 19 handleRequest();
leihen 5:dc88012caef1 20 }
leihen 5:dc88012caef1 21
leihen 5:dc88012caef1 22
leihen 5:dc88012caef1 23 HTTPRpcRequestHandler::~HTTPRpcRequestHandler()
leihen 5:dc88012caef1 24 {
leihen 5:dc88012caef1 25 }
leihen 5:dc88012caef1 26
leihen 5:dc88012caef1 27
leihen 5:dc88012caef1 28 int HTTPRpcRequestHandler::handleGetRequest()
leihen 5:dc88012caef1 29 {
leihen 5:dc88012caef1 30 char outBuf[256] = {};
leihen 5:dc88012caef1 31 bool retval = false;
leihen 5:dc88012caef1 32 int err = 404;
leihen 5:dc88012caef1 33 string rpc_args("");
leihen 5:dc88012caef1 34
leihen 5:dc88012caef1 35 INFO("Handling RPC Get Requesst.");
leihen 5:dc88012caef1 36 // This version of the RPC handler does only accept native RPC commands in the format
leihen 5:dc88012caef1 37 // /<class>/<method> <argument1> [<argument2> [<argument3> ...]]
leihen 5:dc88012caef1 38 // So we can simply pass our local pathg to our rpc
leihen 5:dc88012caef1 39
leihen 5:dc88012caef1 40 // Append missing slash if needed
leihen 5:dc88012caef1 41 if (m_localPath.c_str()[0] != '/') {
leihen 5:dc88012caef1 42 rpc_args = "/";
leihen 5:dc88012caef1 43 }
leihen 5:dc88012caef1 44 // replace the HTTP strings with ascii strings
leihen 5:dc88012caef1 45 for (int i = 0 ; i < m_localPath.length() ; i++) {
leihen 5:dc88012caef1 46 if (m_localPath.substr(i,3) == "%20") {
leihen 5:dc88012caef1 47 rpc_args += " ";
leihen 5:dc88012caef1 48 i+=2;
leihen 5:dc88012caef1 49 }
leihen 5:dc88012caef1 50 else {
leihen 5:dc88012caef1 51 rpc_args += m_localPath.substr(i,1);
leihen 5:dc88012caef1 52 }
leihen 5:dc88012caef1 53 }
leihen 5:dc88012caef1 54 INFO("RPC to %s", rpc_args.c_str());
leihen 5:dc88012caef1 55 retval = rpc.call(rpc_args.c_str(),outBuf);
sarahmarshy 17:c690fb2de477 56 INFO("RPC Request returned %d with args : %s", retval==true ? 200 : 0, outBuf);
leihen 5:dc88012caef1 57 if (retval) {
leihen 5:dc88012caef1 58 // No error
sarahmarshy 17:c690fb2de477 59 startResponse(200, strlen(outBuf));
leihen 5:dc88012caef1 60 processResponse(strlen(outBuf), outBuf);
leihen 5:dc88012caef1 61 endResponse();
leihen 5:dc88012caef1 62 err = 0;
leihen 5:dc88012caef1 63 }
leihen 5:dc88012caef1 64
leihen 5:dc88012caef1 65 return err;
leihen 5:dc88012caef1 66 }
leihen 5:dc88012caef1 67
leihen 5:dc88012caef1 68 int HTTPRpcRequestHandler::handlePutRequest()
leihen 5:dc88012caef1 69 {
leihen 5:dc88012caef1 70 return 404;
leihen 5:dc88012caef1 71 }
leihen 5:dc88012caef1 72
leihen 5:dc88012caef1 73 int HTTPRpcRequestHandler::handlePostRequest()
leihen 5:dc88012caef1 74 {
leihen 5:dc88012caef1 75 return 404;
leihen 5:dc88012caef1 76 }