20#include <openssl/ssl.h> 
   40   if (!(
fSSLCtx = SSL_CTX_new(SSLv23_method()))) {
 
   41      Error(
"WrapWithSSL", 
"the context could not be created");
 
   46      Error(
"WrapWithSSL", 
"could not set the CA file and/or the CA path");
 
   51      Error(
"WrapWithSSL", 
"could not set the client certificate");
 
   56      Error(
"WrapWithSSL", 
"could not set the client private key");
 
   62      Error(
"WrapWithSSL", 
"cannot create the ssl struct");
 
   68      Error(
"WrapWithSSL", 
"cannot bind to the socket %d", 
fSocket);
 
   73   if (SSL_connect(
fSSL) != 1) {
 
   74      Error(
"WrapWithSSL", 
"cannot connect");
 
   92   : 
TSocket(addr, service, tcpwindowsize)
 
  100   : 
TSocket(addr, port, tcpwindowsize)
 
  108   : 
TSocket(host, service, tcpwindowsize)
 
  116   : 
TSocket(url, port, tcpwindowsize)
 
  175                          const char *ucert,  
const char *ukey)
 
  191   Error(
"Recv", 
"not implemented");
 
  203   if (
length == 0)   
return 0;
 
  214        n = SSL_peek(
fSSL, (
char*)buffer + 
offset, (
int)remain);
 
  216        n = SSL_read(
fSSL, (
char*)buffer + 
offset, (
int)remain);
 
  220           Error(
"RecvRaw", 
"failed to read from the socket");
 
  225           SSL_set_quiet_shutdown(
fSSL, 1); 
 
  238     if (opt == 
kPeek) 
return n;
 
  256   Error(
"Send", 
"not implemented");
 
  272   if ((nsent = SSL_write(
fSSL, buffer, (
int)
length)) <= 0) {
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h length
This class represents an Internet Protocol (IP) address.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Int_t SendRaw(const void *buffer, Int_t length, ESendRecvOptions opt=kDefault) override
Send a raw buffer of specified length.
Int_t RecvRaw(void *buffer, Int_t length, ESendRecvOptions opt=kDefault) override
Receive a raw buffer of specified length bytes.
void Close(Option_t *option="") override
Close the SSL connection.
static char fgSSLCAPath[]
Int_t Recv(TMessage *&mess) override
Receive a TMessage object.
void WrapWithSSL()
Wraps the socket with OpenSSL.
static char fgSSLCAFile[]
virtual ~TSSLSocket()
Close gracefully the connection, and free SSL structures.
Int_t Send(const TMessage &mess) override
Send a TMessage object.
static void SetUpSSL(const char *cafile, const char *capath, const char *ucert, const char *ukey)
Set up the static configuration variables.
static ULong64_t fgBytesRecv
virtual void Close(Option_t *opt="")
Close the socket.
static ULong64_t fgBytesSent
static void ResetErrno()
Static function resetting system error number.
#define SSL_ERROR_SYSCALL
#define SSL_ERROR_ZERO_RETURN