X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d63d2c3c6cbbd574dda4f8b00ebe6c661735edd5..6d3b1b7d7daa7d6383a7c02275d8b410f822e4d2:/lib/network/http_dyn.cpp diff --git a/lib/network/http_dyn.cpp b/lib/network/http_dyn.cpp deleted file mode 100644 index ea47019b..00000000 --- a/lib/network/http_dyn.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include - -eHTTPDyn::eHTTPDyn(eHTTPConnection *c, eString result): eHTTPDataSource(c), result(result) -{ - wptr=0; - char buffer[10]; - snprintf(buffer, 10, "%d", size=result.length()); - c->local_header["Content-Length"]=std::string(buffer); - if (c->code == -1) - { - c->code=200; - c->code_descr="OK"; - } -} - -eHTTPDyn::~eHTTPDyn() -{ -} - -int eHTTPDyn::doWrite(int hm) -{ - int tw=size-wptr; - if (tw>hm) - tw=hm; - if (tw<=0) - return -1; - connection->writeBlock(result.c_str()+wptr, tw); - wptr+=tw; - return (size > wptr) ? 1 : -1; -} - -eHTTPDynPathResolver::eHTTPDynPathResolver() -{ - dyn.setAutoDelete(true); -} - -void eHTTPDynPathResolver::addDyn(eString request, eString path, eString (*function)(eString, eString, eString, eHTTPConnection*)) -{ - dyn.push_back(new eHTTPDynEntry(request, path, function)); -} - -eHTTPDataSource *eHTTPDynPathResolver::getDataSource(eString request, eString path, eHTTPConnection *conn) -{ - eString p, opt; - if (path.find('?')!=eString::npos) - { - p=path.left(path.find('?')); - opt=path.mid(path.find('?')+1); - } else - { - p=path; - opt=""; - } - for (ePtrList::iterator i(dyn); i != dyn.end(); ++i) - if ((i->path==p) && (i->request==request)) - { - conn->code=-1; - eString s=i->function(request, path, opt, conn); - - if (s) - return new eHTTPDyn(conn, s); - - return new eHTTPError(conn, 500); - } - return 0; -}