/**
* Constructor for the IdoSocket class.
*
- * @param role The role of the underlying TCP client.
+ * @param stream The stream this connection should use.
*/
IdoConnection::IdoConnection(const Stream::Ptr& stream)
: Connection(stream)
*/
void IdoConnection::SendMessage(const String& message)
{
- /*
- * write our message to the send queue
- * as we inherit all the functionality
- * of the tcpclient class
- */
GetStream()->Write(message.CStr(), message.GetLength());
}
+/******************************************************************************
+ * Icinga 2 *
+ * Copyright (C) 2012 Icinga Development Team (http://www.icinga.org/) *
+ * *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ******************************************************************************/
+
#include "i2-base.h"
using namespace icinga;
namespace icinga
{
-typedef enum
+enum TlsRole
{
TlsRoleClient,
TlsRoleServer
-} TlsRole;
+};
/**
* A TLS stream.
shared_ptr<X509> GetClientCertificate(void) const;
shared_ptr<X509> GetPeerCertificate(void) const;
- void Start(void);
+ virtual void Start(void);
virtual void Close(void);
virtual size_t GetAvailableBytes(void) const;
virtual size_t Read(void *buffer, size_t count);
virtual void Write(const void *buffer, size_t count);
-protected:
- void DataAvailableHandler(void);
- void ClosedHandler(void);
-
- void HandleIO(void);
-
private:
shared_ptr<SSL_CTX> m_SSLContext;
shared_ptr<SSL> m_SSL;
static int m_SSLIndex;
static bool m_SSLIndexInitialized;
- static void NullCertificateDeleter(X509 *certificate);
+ void DataAvailableHandler(void);
+ void ClosedHandler(void);
+ void HandleIO(void);
+
+ static void NullCertificateDeleter(X509 *certificate);
};
}