summaryrefslogtreecommitdiff
path: root/httpd/tnt
diff options
context:
space:
mode:
authorDieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>2015-02-10 22:25:17 +0100
committerDieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>2015-02-10 22:25:17 +0100
commit948c21d5907c78adf00b382d4dc7010b1db5346b (patch)
tree8714ae7008c00ef66f7d89503e1e6c55aa1c968e /httpd/tnt
parent02268e8249893d99ebf903425788e580d12a4cda (diff)
downloadvdr-plugin-live-948c21d5907c78adf00b382d4dc7010b1db5346b.tar.gz
vdr-plugin-live-948c21d5907c78adf00b382d4dc7010b1db5346b.tar.bz2
Remove included old 'tntnet' sources.
The LIVE plugin must now be built agains a correctly installed libtntnet and libcxxtools and their development headers.
Diffstat (limited to 'httpd/tnt')
-rw-r--r--httpd/tnt/dispatcher.h121
-rw-r--r--httpd/tnt/gcryptinit.h37
-rw-r--r--httpd/tnt/gnutls.h146
-rw-r--r--httpd/tnt/job.h201
-rw-r--r--httpd/tnt/listener.h78
-rw-r--r--httpd/tnt/openssl.h121
-rw-r--r--httpd/tnt/poller.h61
-rw-r--r--httpd/tnt/regex.h79
-rw-r--r--httpd/tnt/ssl.h52
-rw-r--r--httpd/tnt/tntnet.h99
-rw-r--r--httpd/tnt/worker.h91
11 files changed, 0 insertions, 1086 deletions
diff --git a/httpd/tnt/dispatcher.h b/httpd/tnt/dispatcher.h
deleted file mode 100644
index 218efcb..0000000
--- a/httpd/tnt/dispatcher.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* tnt/dispatcher.h
- * Copyright (C) 2003-2005 Tommi Maekitalo
- *
- * 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
- * is provided AS IS, WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, and
- * NON-INFRINGEMENT. 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef TNT_DISPATCHER_H
-#define TNT_DISPATCHER_H
-
-#include <cxxtools/thread.h>
-#include <tnt/urlmapper.h>
-#include <vector>
-#include <map>
-#include "tnt/regex.h"
-
-namespace tnt
-{
- // Dispatcher - one per host
- class Dispatcher : public Urlmapper
- {
- public:
- class CompidentType : public Compident
- {
- public:
- typedef std::vector<std::string> args_type;
-
- private:
- std::string pathinfo;
- args_type args;
- bool pathinfo_set;
-
- public:
- CompidentType()
- : pathinfo_set(false)
- { }
-
- explicit CompidentType(const std::string& ident)
- : Compident(ident),
- pathinfo_set(false)
- { }
-
- bool hasPathInfo() const
- { return pathinfo_set; }
- void setPathInfo(const std::string& p)
- { pathinfo = p; pathinfo_set = true; }
- void setArgs(const args_type& a)
- { args = a; }
- const std::string& getPathInfo() const
- { return pathinfo; }
- const args_type& getArgs() const
- { return args; }
- args_type& getArgsRef()
- { return args; }
- };
-
- private:
- typedef std::vector<std::pair<regex, CompidentType> > urlmap_type;
- urlmap_type urlmap; // map url to soname/compname
- mutable cxxtools::RWLock rwlock;
-
- typedef std::map<std::pair<std::string, urlmap_type::const_iterator>,
- CompidentType> urlMapCacheType;
- mutable urlMapCacheType urlMapCache;
- static urlMapCacheType::size_type maxUrlMapCache;
-
- // don't make this public - it's not threadsafe:
- CompidentType mapCompNext(const std::string& compUrl,
- urlmap_type::const_iterator& pos) const;
-
- public:
- virtual ~Dispatcher() { }
-
- void addUrlMapEntry(const std::string& url, const CompidentType& ci);
-
- Compident mapComp(const std::string& compUrl) const;
-
- static urlMapCacheType::size_type getMaxUrlMapCache()
- { return maxUrlMapCache; }
- static void setMaxUrlMapCache(urlMapCacheType::size_type s)
- { maxUrlMapCache = s; }
-
- friend class PosType;
-
- class PosType
- {
- const Dispatcher& dis;
- cxxtools::RdLock lock;
- urlmap_type::const_iterator pos;
- std::string url;
- bool first;
-
- public:
- PosType(const Dispatcher& d, const std::string& u)
- : dis(d),
- lock(dis.rwlock),
- pos(dis.urlmap.begin()),
- url(u),
- first(true)
- { }
-
- CompidentType getNext();
- };
- };
-
-}
-
-#endif // TNT_DISPATCHER_H
-
diff --git a/httpd/tnt/gcryptinit.h b/httpd/tnt/gcryptinit.h
deleted file mode 100644
index 3b6ee33..0000000
--- a/httpd/tnt/gcryptinit.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* tnt/gcryptinit.h
- * Copyright (C) 2003-2005 Tommi Maekitalo
- *
- * 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
- * is provided AS IS, WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, and
- * NON-INFRINGEMENT. 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef TNT_GCRYPTINIT_H
-#define TNT_GCRYPTINIT_H
-
-#include <gcrypt.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-gcry_error_t gcrypt_init();
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // TNT_GCRYPTINIT_H
-
diff --git a/httpd/tnt/gnutls.h b/httpd/tnt/gnutls.h
deleted file mode 100644
index 8d8811c..0000000
--- a/httpd/tnt/gnutls.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* tnt/gnutls.h
- * Copyright (C) 2006 Tommi Maekitalo
- *
- * 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
- * is provided AS IS, WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, and
- * NON-INFRINGEMENT. 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef TNT_GNUTLS_H
-#define TNT_GNUTLS_H
-
-#include <cxxtools/tcpstream.h>
-#include <gnutls/gnutls.h>
-
-namespace tnt
-{
- class GnuTlsException : public std::runtime_error
- {
- unsigned long code;
- static std::string formatMessage(const std::string& function, int code_);
-
- public:
- GnuTlsException(const std::string& function, int code_)
- : std::runtime_error(formatMessage(function, code_)),
- code(code_)
- { }
-
- unsigned long getCode() const
- { return code; }
- };
-
- class GnuTlsInit
- {
- static unsigned initCount;
- static gnutls_dh_params dhParams;
-
- public:
- GnuTlsInit();
- ~GnuTlsInit();
-
- gnutls_dh_params getDhParams() const { return dhParams; }
- };
-
- class GnuTlsX509Cred
- {
- gnutls_certificate_credentials x509_cred;
- GnuTlsInit init;
-
- public:
- GnuTlsX509Cred(const char* certificateFile, const char* privateKeyFile);
- ~GnuTlsX509Cred();
-
- operator gnutls_certificate_credentials() const { return x509_cred; }
- };
-
- class GnuTlsServer : public cxxtools::net::Server
- {
- GnuTlsX509Cred cred;
-
- public:
- GnuTlsServer(const char* certificateFile, const char* privateKeyFile);
-
- gnutls_certificate_credentials getCred() const { return cred; }
- };
-
- class GnuTlsStream : public cxxtools::net::Stream
- {
- gnutls_session session;
-
- public:
- GnuTlsStream()
- : session(0)
- { }
-
- explicit GnuTlsStream(int fd)
- : cxxtools::net::Stream(fd)
- { }
-
- explicit GnuTlsStream(const GnuTlsServer& server)
- { accept(server); }
-
- ~GnuTlsStream();
-
- void accept(const GnuTlsServer& server);
- int sslRead(char* buffer, int bufsize) const;
- int sslWrite(const char* buffer, int bufsize) const;
- void shutdown() const;
- };
-
- class GnuTls_streambuf : public std::streambuf
- {
- GnuTlsStream& m_stream;
- char_type* m_buffer;
- unsigned m_bufsize;
-
- public:
- explicit GnuTls_streambuf(GnuTlsStream& stream, unsigned bufsize = 256, int timeout = -1);
- ~GnuTls_streambuf()
- { delete[] m_buffer; }
-
- void setTimeout(int t) { m_stream.setTimeout(t); }
- int getTimeout() const { return m_stream.getTimeout(); }
-
- /// overload std::streambuf
- int_type overflow(int_type c);
- /// overload std::streambuf
- int_type underflow();
- /// overload std::streambuf
- int sync();
- };
-
- class GnuTls_iostream : public GnuTlsStream, public std::iostream
- {
- GnuTls_streambuf m_buffer;
-
- public:
- explicit GnuTls_iostream(unsigned bufsize = 256, int timeout = -1)
- : GnuTlsStream(-1),
- std::iostream(&m_buffer),
- m_buffer(*this, bufsize, timeout)
- { }
-
- explicit GnuTls_iostream(const GnuTlsServer& server, unsigned bufsize = 256, int timeout = -1)
- : GnuTlsStream(server),
- std::iostream(&m_buffer),
- m_buffer(*this, bufsize, timeout)
- { }
-
- void setTimeout(int timeout) { m_buffer.setTimeout(timeout); }
- int getTimeout() const { return m_buffer.getTimeout(); }
- };
-}
-
-#endif // TNT_GNUTLS_H
-
diff --git a/httpd/tnt/job.h b/httpd/tnt/job.h
deleted file mode 100644
index 5e839fd..0000000
--- a/httpd/tnt/job.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/* tnt/job.h
- * Copyright (C) 2003-2005 Tommi Maekitalo
- *
- * 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
- * is provided AS IS, WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, and
- * NON-INFRINGEMENT. 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef TNT_JOB_H
-#define TNT_JOB_H
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <deque>
-#include <cxxtools/thread.h>
-#include <cxxtools/tcpstream.h>
-#include <tnt/httprequest.h>
-#include <tnt/httpparser.h>
-#include <tnt/pointer.h>
-#include <time.h>
-#include "tnt/ssl.h"
-
-/**
-// in tntnet (mainthread):
-Jobqueue queue;
-void mainloop()
-{
- while (1)
- {
- Jobqueue::JobPtr j = new Tcpjob();
- j->accept(poller.get());
- queue.put(j);
- }
-}
-
-// in server (workerthread):
-void Server::run()
-{
- while (1)
- {
- Jobqueue::JobPtr j = queue.get();
- std::iostream& socket = j->getStream();
- processRequest(socket);
- }
-}
-*/
-
-namespace tnt
-{
- /** Job - one per request */
- class Job
- {
- unsigned keepAliveCounter;
-
- HttpRequest request;
- HttpMessage::Parser parser;
- time_t lastAccessTime;
-
- unsigned refs;
-
- static unsigned socket_read_timeout;
- static unsigned socket_write_timeout;
- static unsigned keepalive_max;
- static unsigned socket_buffer_size;
-
- public:
- Job()
- : keepAliveCounter(keepalive_max),
- parser(request),
- lastAccessTime(0),
- refs(0)
- { }
-
- protected:
- virtual ~Job();
-
- public:
- unsigned addRef() { return ++refs; }
- unsigned release()
- {
- if (--refs == 0)
- {
- delete this;
- return 0;
- }
- else
- return refs;
- }
-
- virtual std::iostream& getStream() = 0;
- virtual int getFd() const = 0;
- virtual void setRead() = 0;
- virtual void setWrite() = 0;
-
- HttpRequest& getRequest() { return request; }
- HttpMessage::Parser& getParser() { return parser; }
-
- unsigned decrementKeepAliveCounter()
- { return keepAliveCounter > 0 ? --keepAliveCounter : 0; }
- void clear();
- void touch() { time(&lastAccessTime); }
- int msecToTimeout(time_t currentTime) const;
-
- static void setSocketReadTimeout(unsigned ms) { socket_read_timeout = ms; }
- static void setSocketWriteTimeout(unsigned ms) { socket_write_timeout = ms; }
- static void setKeepAliveMax(unsigned n) { keepalive_max = n; }
- static void setSocketBufferSize(unsigned b) { socket_buffer_size = b; }
-
- static unsigned getSocketReadTimeout() { return socket_read_timeout; }
- static unsigned getSocketWriteTimeout() { return socket_write_timeout; }
- static unsigned getKeepAliveTimeout();
- static unsigned getKeepAliveMax() { return keepalive_max; }
- static unsigned getSocketBufferSize() { return socket_buffer_size; }
- };
-
- class Tcpjob : public Job
- {
- cxxtools::net::iostream socket;
-
- public:
- Tcpjob()
- : socket(getSocketBufferSize(), getSocketReadTimeout())
- { }
-
- void accept(const cxxtools::net::Server& listener);
-
- std::iostream& getStream();
- int getFd() const;
- void setRead();
- void setWrite();
- };
-
-#ifdef USE_SSL
- class SslTcpjob : public Job
- {
- ssl_iostream socket;
-
- public:
- SslTcpjob()
- : socket(getSocketBufferSize(), getSocketReadTimeout())
- { }
-
- void accept(const SslServer& listener);
-
- std::iostream& getStream();
- int getFd() const;
- void setRead();
- void setWrite();
- };
-#endif // USE_SSL
-
- /** Jobqueue - one per process */
- class Jobqueue
- {
- public:
- typedef Pointer<Job> JobPtr;
-
- cxxtools::Condition noWaitThreads;
-
- private:
- std::deque<JobPtr> jobs;
- cxxtools::Mutex mutex;
- cxxtools::Condition notEmpty;
- cxxtools::Condition notFull;
- unsigned waitThreads;
- unsigned capacity;
-
- public:
- explicit Jobqueue(unsigned capacity_)
- : waitThreads(0),
- capacity(capacity_)
- { }
-
- void put(JobPtr j);
- JobPtr get();
-
- void setCapacity(unsigned c)
- { capacity = c; }
- unsigned getCapacity() const
- { return capacity; }
- unsigned getWaitThreadCount() const
- { return waitThreads; }
- bool empty() const
- { return jobs.empty(); }
- };
-}
-
-#endif // TNT_JOB_H
-
diff --git a/httpd/tnt/listener.h b/httpd/tnt/listener.h
deleted file mode 100644
index 4991763..0000000
--- a/httpd/tnt/listener.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* tnt/listener.h
- * Copyright (C) 2003 Tommi Maekitalo
- *
- * 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
- * is provided AS IS, WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, and
- * NON-INFRINGEMENT. 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef TNT_LISTENER_H
-#define TNT_LISTENER_H
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <cxxtools/thread.h>
-#include "tnt/job.h"
-
-namespace tnt
-{
- class ListenerBase : public cxxtools::AttachedThread
- {
- std::string ipaddr;
- unsigned short int port;
-
- public:
- ListenerBase(const std::string& ipaddr_, unsigned short int port_)
- : ipaddr(ipaddr_),
- port(port_)
- { }
-
- void doStop();
- };
-
- class Listener : public ListenerBase
- {
- cxxtools::net::Server server;
- Jobqueue& queue;
- static int backlog;
- static unsigned listenRetry;
-
- public:
- Listener(const std::string& ipaddr, unsigned short int port, Jobqueue& q);
- virtual void run();
-
- static void setBacklog(int backlog_) { backlog = backlog_; }
- static int getBacklog() { return backlog; }
- static void setListenRetry(unsigned listenRetry_) { listenRetry = listenRetry_; }
- static unsigned getListenRetry() { return listenRetry; }
- };
-
-#ifdef USE_SSL
- class Ssllistener : public ListenerBase
- {
- SslServer server;
- Jobqueue& queue;
-
- public:
- Ssllistener(const char* certificateFile, const char* keyFile,
- const std::string& ipaddr, unsigned short int port, Jobqueue& q);
- virtual void run();
- };
-#endif // USE_SSL
-
-}
-
-#endif // TNT_LISTENER_H
-
diff --git a/httpd/tnt/openssl.h b/httpd/tnt/openssl.h
deleted file mode 100644
index 863782f..0000000
--- a/httpd/tnt/openssl.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* tnt/openssl.h
- * Copyright (C) 2003 Tommi Maekitalo
- *
- * 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
- * is provided AS IS, WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, and
- * NON-INFRINGEMENT. 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef TNT_OPENSSL_H
-#define TNT_OPENSSL_H
-
-#include <cxxtools/tcpstream.h>
-#include <openssl/ssl.h>
-
-namespace tnt
-{
- class OpensslException : public std::runtime_error
- {
- unsigned long code;
-
- public:
- OpensslException(const std::string& what, unsigned long code_)
- : std::runtime_error(what),
- code(code_)
- { }
-
- unsigned long getCode() const
- { return code; }
- };
-
- class OpensslServer : public cxxtools::net::Server
- {
- SSL_CTX* ctx;
- void installCertificates(const char* certificateFile, const char* privateKeyFile);
-
- public:
- OpensslServer(const char* certificateFile);
- OpensslServer(const char* certificateFile, const char* privateKeyFile);
- ~OpensslServer();
-
- SSL_CTX* getSslContext() const { return ctx; }
- };
-
- class OpensslStream : public cxxtools::net::Stream
- {
- SSL* ssl;
-
- public:
- OpensslStream();
-
- explicit OpensslStream(int fd)
- : cxxtools::net::Stream(fd)
- { }
-
- explicit OpensslStream(const OpensslServer& server);
- ~OpensslStream();
-
- void accept(const OpensslServer& server);
-
- int sslRead(char* buffer, int bufsize) const;
- int sslWrite(const char* buffer, int bufsize) const;
- void shutdown() const;
- };
-
- class openssl_streambuf : public std::streambuf
- {
- OpensslStream& m_stream;
- char_type* m_buffer;
- unsigned m_bufsize;
-
- public:
- explicit openssl_streambuf(OpensslStream& stream, unsigned bufsize = 256, int timeout = -1);
- ~openssl_streambuf()
- { delete[] m_buffer; }
-
- void setTimeout(int t) { m_stream.setTimeout(t); }
- int getTimeout() const { return m_stream.getTimeout(); }
-
- /// overload std::streambuf
- int_type overflow(int_type c);
- /// overload std::streambuf
- int_type underflow();
- /// overload std::streambuf
- int sync();
- };
-
- class openssl_iostream : public OpensslStream, public std::iostream
- {
- openssl_streambuf m_buffer;
-
- public:
- explicit openssl_iostream(unsigned bufsize = 256, int timeout = -1)
- : OpensslStream(-1),
- std::iostream(&m_buffer),
- m_buffer(*this, bufsize, timeout)
- { }
-
- explicit openssl_iostream(const OpensslServer& server, unsigned bufsize = 256, int timeout = -1)
- : OpensslStream(server),
- std::iostream(&m_buffer),
- m_buffer(*this, bufsize, timeout)
- { }
-
- void setTimeout(int timeout) { m_buffer.setTimeout(timeout); }
- int getTimeout() const { return m_buffer.getTimeout(); }
- };
-}
-
-#endif // TNT_OPENSSL_H
-
diff --git a/httpd/tnt/poller.h b/httpd/tnt/poller.h
deleted file mode 100644
index d9b12e9..0000000
--- a/httpd/tnt/poller.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* tnt/poller.h
- * Copyright (C) 2005 Tommi Maekitalo
- *
- * 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
- * is provided AS IS, WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, and
- * NON-INFRINGEMENT. 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef TNT_POLLER_H
-#define TNT_POLLER_H
-
-#include "tnt/job.h"
-#include <cxxtools/dynbuffer.h>
-#include <cxxtools/thread.h>
-#include <sys/poll.h>
-
-namespace tnt
-{
- class Poller : public cxxtools::AttachedThread
- {
- Jobqueue& queue;
- int notify_pipe[2];
-
- typedef std::deque<Jobqueue::JobPtr> jobs_type;
-
- jobs_type current_jobs;
- cxxtools::Dynbuffer<pollfd> pollfds;
-
- jobs_type new_jobs;
-
- cxxtools::Mutex mutex;
- int poll_timeout;
-
- void append_new_jobs();
- void append(Jobqueue::JobPtr& job);
- void dispatch();
- void remove(jobs_type::size_type n);
-
- public:
- Poller(Jobqueue& q);
-
- virtual void run();
- void doStop();
- void addIdleJob(Jobqueue::JobPtr job);
- };
-
-}
-
-#endif // TNT_POLLER_H
-
diff --git a/httpd/tnt/regex.h b/httpd/tnt/regex.h
deleted file mode 100644
index b2a30e8..0000000
--- a/httpd/tnt/regex.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* tnt/regex.h
- * Copyright (C) 2005 Tommi Maekitalo
- *
- * 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
- * is provided AS IS, WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, and
- * NON-INFRINGEMENT. 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef TNT_REGEX_H
-#define TNT_REGEX_H
-
-#include <string>
-#include <sys/types.h>
-#include <regex.h>
-
-namespace tnt
-{
- /// collects matches in a regex
- class regex_smatch
- {
- friend class regex;
-
- std::string str;
- regmatch_t matchbuf[10];
-
- public:
- unsigned size() const;
- std::string get(unsigned n) const;
- std::string format(const std::string& s) const;
- };
-
- /// regex(3)-wrapper.
- /// Warning: incomplete, but sufficient for tntnet.
- /// Regular expression is not automatically freed. Tntnet needs to
- /// put regex into a stl-container, so it needs to be copyable.
- /// For this class to be complete, the regex_t needs to be
- /// reference-counted. This is unneeded for tntnet, because the regex is
- /// never freed anyway.
- class regex
- {
- regex_t expr;
-
- void checkerr(int ret) const;
-
- public:
- explicit regex(const char* ex, int cflags = REG_EXTENDED)
- {
- checkerr(::regcomp(&expr, ex, cflags));
- }
-
- explicit regex(const std::string& ex, int cflags = REG_EXTENDED)
- {
- checkerr(::regcomp(&expr, ex.c_str(), cflags));
- }
-
- bool match(const std::string& str_, regex_smatch& smatch, int eflags = 0) const;
- bool match(const std::string& str_, int eflags = 0) const;
-
- void free();
-
- private:
- friend class value_type;
- };
-
-}
-
-#endif // TNT_REGEX_H
-
diff --git a/httpd/tnt/ssl.h b/httpd/tnt/ssl.h
deleted file mode 100644
index 6660d2f..0000000
--- a/httpd/tnt/ssl.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* tnt/ssl.h
- * Copyright (C) 2006 Tommi Maekitalo
- *
- * 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
- * is provided AS IS, WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, and
- * NON-INFRINGEMENT. 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef TNT_SSL_H
-#define TNT_SSL_H
-
-#ifdef WITH_GNUTLS
-# include "tnt/gnutls.h"
-# define USE_SSL
-#endif
-
-#ifdef WITH_OPENSSL
-# include "tnt/openssl.h"
-# define USE_SSL
-#endif
-
-namespace tnt
-{
-#ifdef WITH_GNUTLS
-
- typedef GnuTlsServer SslServer;
- typedef GnuTls_iostream ssl_iostream;
-
-#endif
-
-#ifdef WITH_OPENSSL
-
- typedef OpensslServer SslServer;
- typedef openssl_iostream ssl_iostream;
-
-#endif
-
-}
-
-#endif // TNT_SSL_H
-
diff --git a/httpd/tnt/tntnet.h b/httpd/tnt/tntnet.h
deleted file mode 100644
index a83784e..0000000
--- a/httpd/tnt/tntnet.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* tnt/tntnet.h
- * Copyright (C) 2003-2005 Tommi Maekitalo
- *
- * 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
- * is provided AS IS, WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, and
- * NON-INFRINGEMENT. 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef TNT_TNTNET_H
-#define TNT_TNTNET_H
-
-#include <cxxtools/arg.h>
-#include "tnt/tntconfig.h"
-#include "tnt/job.h"
-#include "tnt/poller.h"
-#include "tnt/dispatcher.h"
-#include <tnt/scopemanager.h>
-#include <set>
-
-namespace tnt
-{
- class ListenerBase;
-
- class Tntnet
- {
- std::string configFile;
- Tntconfig config;
- cxxtools::Arg<const char*> propertyfilename;
- cxxtools::Arg<bool> debug;
- bool isDaemon;
-
- unsigned minthreads;
- unsigned maxthreads;
- unsigned long threadstartdelay;
-
- Jobqueue queue;
-
- static bool stop;
- static int ret;
- typedef std::set<ListenerBase*> listeners_type;
- listeners_type listeners;
-
- Poller pollerthread;
- Dispatcher d_dispatcher;
-
- static std::string pidFileName;
-
- ScopeManager scopemanager;
-
- // helper methods
- void setUser() const;
- void setGroup() const;
- void setDir(const char* def) const;
- int mkDaemon() const; // returns pipe
- void closeStdHandles() const;
-
- // noncopyable
- Tntnet(const Tntnet&);
- Tntnet& operator= (const Tntnet&);
-
- void initLogging();
- void writePidfile(int pid);
- void monitorProcess(int workerPid);
- void initWorkerProcess();
- void workerProcess(int filedes = -1);
-
- void timerTask();
- void loadConfiguration();
-
- public:
- Tntnet(int& argc, char* argv[]);
- int run();
-
- static void shutdown();
- static void restart();
- static bool shouldStop() { return stop; }
-
- Jobqueue& getQueue() { return queue; }
- Poller& getPoller() { return pollerthread; }
- const Dispatcher& getDispatcher() const { return d_dispatcher; }
- const Tntconfig& getConfig() const { return config; }
- ScopeManager& getScopemanager() { return scopemanager; }
- };
-
-}
-
-#endif // TNT_TNTNET_H
-
diff --git a/httpd/tnt/worker.h b/httpd/tnt/worker.h
deleted file mode 100644
index be42841..0000000
--- a/httpd/tnt/worker.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* tnt/worker.h
- * Copyright (C) 2003-2005 Tommi Maekitalo
- *
- * 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
- * is provided AS IS, WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, and
- * NON-INFRINGEMENT. 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef TNT_WORKER_H
-#define TNT_WORKER_H
-
-#include <string>
-#include <cxxtools/tcpstream.h>
-#include <cxxtools/thread.h>
-#include <cxxtools/pool.h>
-#include <tnt/comploader.h>
-#include <tnt/tntnet.h>
-#include <tnt/scope.h>
-
-namespace tnt
-{
- class HttpRequest;
- class HttpReply;
-
- class Worker : public cxxtools::DetachedThread
- {
- static cxxtools::Mutex mutex;
- static unsigned nextThreadNumber;
-
- Tntnet& application;
-
- typedef cxxtools::Pool<Comploader> ComploaderPoolType;
- static ComploaderPoolType comploaderPool;
-
- ComploaderPoolType::objectptr_type comploaderObject;
- Comploader& comploader;
-
- Scope threadScope;
-
- pthread_t threadId;
- const char* state;
- time_t lastWaitTime;
-
- typedef std::set<Worker*> workers_type;
- static workers_type workers;
-
- static unsigned maxRequestTime;
- static unsigned minThreads;
- static bool enableCompression;
-
- bool processRequest(HttpRequest& request, std::iostream& socket,
- unsigned keepAliveCount);
- void healthCheck(time_t currentTime);
-
- ~Worker();
-
- public:
- Worker(Tntnet& app);
-
- virtual void run();
-
- void dispatch(HttpRequest& request, HttpReply& reply);
-
- static void timer();
-
- /// Sets a hard limit for request-time.
- /// When the time is exceeded, this process exits.
- static void setMaxRequestTime(unsigned sec) { maxRequestTime = sec; }
- static unsigned getMaxRequestTime() { return maxRequestTime; }
-
- static workers_type::size_type getCountThreads();
- static void setMinThreads(unsigned n) { minThreads = n; }
-
- static void setEnableCompression(bool sw = true) { enableCompression = sw; }
- static unsigned getEnableCompression() { return enableCompression; }
- };
-}
-
-#endif // TNT_WORKER_H
-