From 5b74bda58f47e7894a83643b86d24f0c78e60285 Mon Sep 17 00:00:00 2001 From: mataes2007 Date: Thu, 24 Nov 2011 16:55:09 +0000 Subject: added HTTPServer git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@206 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- HTTPServer/HttpUser.h | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 HTTPServer/HttpUser.h (limited to 'HTTPServer/HttpUser.h') diff --git a/HTTPServer/HttpUser.h b/HTTPServer/HttpUser.h new file mode 100644 index 0000000..00b43a7 --- /dev/null +++ b/HTTPServer/HttpUser.h @@ -0,0 +1,70 @@ +//This file is part of HTTPServer a Miranda IM plugin +//Copyright (C)2002 Kennet Nielsen +// +//This program is free software; you can redistribute it and/or +//modify it under the terms of the GNU General Public License +//as published by the Free Software Foundation; either +//version 2 of the License, or (at your option) any later version. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License +//along with this program; if not, write to the Free Software +//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#ifndef HTTP_USER_H +#define HTTP_USER_H + +#include +#include "m_HTTPServer.h" +#include "FileShareNode.h" + +enum ENParamTypes { + eFirstParam = 0, + eRange = 0, + eIfRange, + eUnlessModifiedSince, + eIfModifiedSince, + eUserAgent, + eHost, + eLastParam +}; + +static char * szParmStr[eLastParam] = { + "Range: ", + "If-Range: ", + "Unless-Modified-Since: ", + "If-Modified-Since: ", + "User-Agent: ", + "Host: " +}; + + +class CLHttpUser : public CLShareUser { +public: + CLHttpUser(HANDLE hCon, in_addr stAdd); + virtual ~CLHttpUser(); + + bool bReadGetParameters(char * pszRequest); + + //bool bSendFile( HANDLE hFile , + bool bCloseTransfers() { + return true; + } + bool bProcessGetRequest(char * pszRequest, bool bIsGetCommand); + const char * pszCustomInfo() { + return apszParam[eUserAgent]; + } + void HandleNewConnection(); +private: + HANDLE hFile; + char *apszParam[eLastParam]; + + void SendError(int iErrorCode, const char * pszError, const char * pszDescription = NULL); + void SendRedir(int iErrorCode, const char * pszError, const char * pszDescription = NULL, const char * pszRedirect = NULL); +}; + +#endif \ No newline at end of file -- cgit v1.2.3