summaryrefslogtreecommitdiff
path: root/src/Sockets/HttpdCookies.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Sockets/HttpdCookies.cpp')
-rw-r--r--src/Sockets/HttpdCookies.cpp270
1 files changed, 0 insertions, 270 deletions
diff --git a/src/Sockets/HttpdCookies.cpp b/src/Sockets/HttpdCookies.cpp
deleted file mode 100644
index 9662f0d..0000000
--- a/src/Sockets/HttpdCookies.cpp
+++ /dev/null
@@ -1,270 +0,0 @@
-/** \file HttpdCookies.cpp
-*/
-/*
-Copyright (C) 2003-2007 Anders Hedstrom
-
-This library is made available under the terms of the GNU GPL.
-
-If you would like to use this library in a closed-source application,
-a separate license agreement is available. For information about
-the closed-source license agreement for the C++ sockets library,
-please visit http://www.alhem.net/Sockets/license.html and/or
-email license@alhem.net.
-
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
-#include "Parse.h"
-#include "Utility.h"
-#include "HTTPSocket.h"
-#include "HttpdCookies.h"
-
-#ifdef SOCKETS_NAMESPACE
-namespace SOCKETS_NAMESPACE {
-#endif
-
-#ifdef _DEBUG
-#define DEB(x) x; fflush(stderr);
-#else
-#define DEB(x)
-#endif
-
-
-HttpdCookies::HttpdCookies()
-{
-}
-
-HttpdCookies::HttpdCookies(const std::string& s)
-{
- Parse *pa = new Parse(s,";");
-
- std::string slask = pa -> getword();
- while (slask.size())
- {
- Parse *pa2 = new Parse(slask,"=");
- std::string name = pa2 -> getword();
- std::string value = pa2 -> getword();
- delete pa2;
- m_cookies.push_back(std::pair<std::string, std::string>(name, value));
- //
- slask = pa -> getword();
- }
- delete pa;
-}
-
-void HttpdCookies::add(const std::string& s)
-{
- Parse *pa = new Parse(s,";");
-DEB(fprintf(stderr, "Parse cookie: %s\n", s.c_str());)
- std::string slask = pa -> getword();
- while (slask.size())
- {
- Parse *pa2 = new Parse(slask,"=");
- std::string name = pa2 -> getword();
- std::string value = pa2 -> getword();
- delete pa2;
- m_cookies.push_back(std::pair<std::string, std::string>(name, value));
- //
- slask = pa -> getword();
- }
- delete pa;
-}
-
-HttpdCookies::~HttpdCookies()
-{
-}
-
-bool HttpdCookies::getvalue(const std::string& name,std::string& buffer) const
-{
- for (cookie_v::const_iterator it = m_cookies.begin(); it != m_cookies.end(); it++)
- {
- const std::pair<std::string, std::string>& ref = *it;
- if (!strcasecmp(ref.first.c_str(),name.c_str()))
- {
- buffer = ref.second;
- return true;
- }
- }
- buffer = "";
- return false;
-}
-
-void HttpdCookies::replacevalue(const std::string& name,const std::string& value)
-{
- for (cookie_v::iterator it = m_cookies.begin(); it != m_cookies.end(); it++)
- {
- std::pair<std::string, std::string>& ref = *it;
- if (!strcasecmp(ref.first.c_str(),name.c_str()))
- {
- ref.second = value;
- return;
- }
- }
- m_cookies.push_back(std::pair<std::string, std::string>(name, value));
-
-}
-
-void HttpdCookies::replacevalue(const std::string& name,long l)
-{
- replacevalue(name, Utility::l2string(l));
-}
-
-void HttpdCookies::replacevalue(const std::string& name,int i)
-{
- replacevalue(name, Utility::l2string(i));
-}
-
-size_t HttpdCookies::getlength(const std::string& name) const
-{
- for (cookie_v::const_iterator it = m_cookies.begin(); it != m_cookies.end(); it++)
- {
- const std::pair<std::string, std::string>& ref = *it;
- if (!strcasecmp(ref.first.c_str(),name.c_str()))
- {
- return ref.second.size();
- }
- }
- return 0;
-}
-
-void HttpdCookies::setcookie(HTTPSocket *sock, const std::string& domain, const std::string& path, const std::string& name, const std::string& value)
-{
- char *str = new char[name.size() + value.size() + domain.size() + path.size() + 100];
-
- // set-cookie response
- if (domain.size())
- {
- sprintf(str, "%s=%s; domain=%s; path=%s; expires=%s",
- name.c_str(), value.c_str(),
- domain.c_str(),
- path.c_str(),
- expiredatetime().c_str());
- }
- else
- {
- sprintf(str, "%s=%s; path=%s; expires=%s",
- name.c_str(), value.c_str(),
- path.c_str(),
- expiredatetime().c_str());
- }
- sock -> AddResponseHeader("Set-cookie", str);
- delete[] str;
-
- replacevalue(name, value);
-}
-
-void HttpdCookies::setcookie(HTTPSocket *sock, const std::string& domain, const std::string& path, const std::string& name, long value)
-{
- char *str = new char[name.size() + domain.size() + path.size() + 100];
- char dt[80];
-
- // set-cookie response
- if (domain.size())
- {
- sprintf(str, "%s=%ld; domain=%s; path=%s; expires=%s",
- name.c_str(), value,
- domain.c_str(),
- path.c_str(),
- expiredatetime().c_str());
- }
- else
- {
- sprintf(str, "%s=%ld; path=%s; expires=%s",
- name.c_str(), value,
- path.c_str(),
- expiredatetime().c_str());
- }
- sock -> AddResponseHeader("Set-cookie", str);
- delete[] str;
-
- sprintf(dt, "%ld", value);
- replacevalue(name, dt);
-}
-
-void HttpdCookies::setcookie(HTTPSocket *sock, const std::string& domain, const std::string& path, const std::string& name, int value)
-{
- char *str = new char[name.size() + domain.size() + path.size() + 100];
- char dt[80];
-
- // set-cookie response
- if (domain.size())
- {
- sprintf(str, "%s=%d; domain=%s; path=%s; expires=%s",
- name.c_str(), value,
- domain.c_str(),
- path.c_str(),
- expiredatetime().c_str());
- }
- else
- {
- sprintf(str, "%s=%d; path=%s; expires=%s",
- name.c_str(), value,
- path.c_str(),
- expiredatetime().c_str());
- }
- sock -> AddResponseHeader("Set-cookie", str);
- delete[] str;
-
- sprintf(dt, "%d", value);
- replacevalue(name, dt);
-}
-
-
-const std::string& HttpdCookies::expiredatetime() const
-{
- time_t t = time(NULL);
- struct tm tp;
-#ifdef _WIN32
- memcpy(&tp, gmtime(&t), sizeof(tp));
-#else
- gmtime_r(&t, &tp);
-#endif
- const char *days[7] = {"Sunday", "Monday",
- "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
- const char *months[12] = {"Jan", "Feb", "Mar", "Apr", "May",
- "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
- char dt[100];
-
- sprintf(dt, "%s, %02d-%s-%04d %02d:%02d:%02d GMT",
- days[tp.tm_wday],
- tp.tm_mday,
- months[tp.tm_mon],
- tp.tm_year + 1910,
- tp.tm_hour,
- tp.tm_min,
- tp.tm_sec);
- m_date = dt;
- return m_date;
-}
-
-
-void HttpdCookies::Reset()
-{
- while (!m_cookies.empty())
- {
- m_cookies.erase(m_cookies.begin());
- }
- m_date = "";
-}
-
-
-#ifdef SOCKETS_NAMESPACE
-}
-#endif
-
-