Definition at line 48 of file XrdProofConn.h.
|
| | XrdProofConn (const char *url, char mode='M', int psid=-1, char ver=-1, XrdClientAbsUnsolMsgHandler *uh=0, const char *logbuf=0) |
| | Constructor.
|
| |
| virtual | ~XrdProofConn () |
| | Destructor.
|
| |
| virtual void | Close (const char *opt="") |
| | Close connection.
|
| |
| const char * | GetLastErr () |
| |
| int | GetLogConnID () const |
| |
| int | GetLowSocket () |
| | Return the socket descriptor of the underlying connection.
|
| |
| int | GetOpenError () const |
| |
| int | GetServType () const |
| |
| short | GetSessionID () const |
| |
| const char * | GetUrl () |
| |
| bool | IsValid () const |
| | Test validity of this connection.
|
| |
| XReqErrorType | LowWrite (XPClientRequest *, const void *, int) |
| | Send request to server (NB: req is marshalled at this point, so we need also the plain reqDataLen)
|
| |
| virtual UnsolRespProcResult | ProcessUnsolicitedMsg (XrdClientUnsolMsgSender *s, XrdClientMessage *m) |
| | We are here if an unsolicited response comes from a logical conn The response comes in the form of an XrdClientMessage *, that must NOT be destroyed after processing.
|
| |
| virtual XrdClientMessage * | ReadMsg () |
| | Pickup message from the queue.
|
| |
| virtual int | ReadRaw (void *buf, int len, XrdClientPhyConnection *p=0) |
| | Low level receive call.
|
| |
| XrdClientMessage * | SendReq (XPClientRequest *req, const void *reqData, char **answData, const char *CmdName, bool notifyerr=1) |
| | SendReq tries to send a single command for a number of times.
|
| |
| virtual void | SetAsync (XrdClientAbsUnsolMsgHandler *uh, XrdProofConnSender_t=0, void *=0) |
| | Set handler of unsolicited responses.
|
| |
| void | SetSID (kXR_char *sid) |
| | Set our stream id, to match against that one in the server's response.
|
| |
| virtual int | WriteRaw (const void *buf, int len, XrdClientPhyConnection *p=0) |
| | Low level write call.
|
| |
Public Member Functions inherited from XrdClientAbsUnsolMsgHandler |
| virtual | ~XrdClientAbsUnsolMsgHandler () |
| |
#include <XrdProofConn.h>
◆ ESrvType
| Enumerator |
|---|
| kSTError | |
| kSTNone | |
| kSTXProofd | |
| kSTProofd | |
Definition at line 56 of file XrdProofConn.h.
◆ XrdProofConn()
Constructor.
Open the connection to a remote XrdProofd instance. The mode 'm' indicates the role of this connection: 'a' Administrator; used by an XPD to contact the head XPD 'i' Internal; used by a TXProofServ to call back its creator (see XrdProofUnixConn) 'M' Client contacting a top master 'm' Top master contacting a submaster 's' Master contacting a slave The buffer 'logbuf' is a null terminated string to be sent over at login. In case of need, internally it is overwritten with a token needed during redirection.
Definition at line 112 of file XrdProofConn.cxx.
◆ ~XrdProofConn()
| XrdProofConn::~XrdProofConn |
( |
| ) |
|
|
virtual |
◆ Authenticate()
Negotiate authentication with the remote server.
Tries in turn all available protocols proposed by the server (in plist), starting from the first.
Definition at line 1264 of file XrdProofConn.cxx.
◆ CheckErrorStatus()
◆ CheckResp()
| bool XrdProofConn::CheckResp |
( |
struct ServerResponseHeader * | resp, |
|
|
const char * | method, |
|
|
bool | notifyerr ) |
|
private |
Checks if the server's response is ours.
If the response's status is "OK" returns 1; if the status is "redirect", it means that the max number of redirections has been achieved, so returns 0.
Definition at line 727 of file XrdProofConn.cxx.
◆ Close()
| void XrdProofConn::Close |
( |
const char * | opt = "" | ) |
|
|
virtual |
◆ Connect()
| void XrdProofConn::Connect |
( |
int | = -1 | ) |
|
|
privatevirtual |
◆ ConnectInterrupt()
| bool XrdProofConn::ConnectInterrupt |
( |
| ) |
|
|
private |
◆ DoHandShake()
Performs initial hand-shake with the server in order to understand which kind of server is there at the other side.
Definition at line 965 of file XrdProofConn.cxx.
◆ GetAccessToSrv()
Gets access to the connected server.
The login and authorization steps are performed here.
Reimplemented in XrdProofPhyConn.
Definition at line 879 of file XrdProofConn.cxx.
◆ GetLastErr()
| const char * XrdProofConn::GetLastErr |
( |
| ) |
|
|
inline |
◆ GetLogConnID()
| int XrdProofConn::GetLogConnID |
( |
| ) |
const |
|
inline |
◆ GetLowSocket()
| int XrdProofConn::GetLowSocket |
( |
| ) |
|
Return the socket descriptor of the underlying connection.
Definition at line 1067 of file XrdProofConn.cxx.
◆ GetOpenError()
| int XrdProofConn::GetOpenError |
( |
| ) |
const |
|
inline |
◆ GetRetryParam()
| void XrdProofConn::GetRetryParam |
( |
int & | maxtry, |
|
|
int & | timewait ) |
|
static |
Retrieve current values of the retry control parameters, numer of retries and wait time between attempts (in seconds).
Definition at line 140 of file XrdProofConn.cxx.
◆ GetServType()
| int XrdProofConn::GetServType |
( |
| ) |
const |
|
inline |
◆ GetSessionID()
| short XrdProofConn::GetSessionID |
( |
| ) |
const |
|
inline |
◆ GetUrl()
| const char * XrdProofConn::GetUrl |
( |
| ) |
|
|
inline |
◆ Init()
◆ IsValid()
| bool XrdProofConn::IsValid |
( |
| ) |
const |
◆ Login()
| bool XrdProofConn::Login |
( |
| ) |
|
|
private |
◆ LowWrite()
Send request to server (NB: req is marshalled at this point, so we need also the plain reqDataLen)
Definition at line 777 of file XrdProofConn.cxx.
◆ MatchStreamID()
| bool XrdProofConn::MatchStreamID |
( |
struct ServerResponseHeader * | resp | ) |
|
|
private |
◆ ProcessUnsolicitedMsg()
We are here if an unsolicited response comes from a logical conn The response comes in the form of an XrdClientMessage *, that must NOT be destroyed after processing.
It is destroyed by the first sender. Remember that we are in a separate thread, since unsolicited responses are asynchronous by nature.
Implements XrdClientAbsUnsolMsgHandler.
Definition at line 452 of file XrdProofConn.cxx.
◆ ReadMsg()
◆ ReadRaw()
◆ ReConnect()
| void XrdProofConn::ReConnect |
( |
| ) |
|
|
private |
Perform a reconnection attempt when a connection is not valid any more.
Definition at line 316 of file XrdProofConn.cxx.
◆ SendRecv()
SendRecv sends a command to the server and to get a response.
The header of the last response is returned as pointer to a XrdClientMessage. The data, if any, are returned in *answData; if *answData == 0 in input, the buffer is internally allocated and must be freed by the caller. If (*answData != 0) the program assumes that the caller has allocated enough bytes to contain the reply.
Definition at line 528 of file XrdProofConn.cxx.
◆ SendReq()
SendReq tries to send a single command for a number of times.
Definition at line 636 of file XrdProofConn.cxx.
◆ SetAsync()
◆ SetConnectInterrupt()
| void XrdProofConn::SetConnectInterrupt |
( |
| ) |
|
|
private |
◆ SetInterrupt()
| void XrdProofConn::SetInterrupt |
( |
| ) |
|
|
private |
◆ SetRetryParam()
| void XrdProofConn::SetRetryParam |
( |
int | maxtry = 5, |
|
|
int | timewait = 2 ) |
|
static |
Change values of the retry control parameters, numer of retries and wait time between attempts (in seconds).
Definition at line 150 of file XrdProofConn.cxx.
◆ SetSID()
| void XrdProofConn::SetSID |
( |
kXR_char * | sid | ) |
|
Set our stream id, to match against that one in the server's response.
Definition at line 769 of file XrdProofConn.cxx.
◆ TryConnect()
| int XrdProofConn::TryConnect |
( |
int | = -1 | ) |
|
|
privatevirtual |
◆ WriteRaw()
◆ TXSocket
◆ TXUnixSocket
◆ XrdProofPhyConn
◆ fCapVer
| char XrdProofConn::fCapVer |
|
private |
◆ fConnected
| bool XrdProofConn::fConnected |
|
private |
◆ fConnectInterrupt
| bool XrdProofConn::fConnectInterrupt |
|
private |
◆ fConnectInterruptMtx
| XrdOucRecMutex* XrdProofConn::fConnectInterruptMtx |
|
private |
◆ fgConnMgr
◆ fgMaxTry
| int XrdProofConn::fgMaxTry = 5 |
|
staticprivate |
◆ fgSecGetProtocol
| void * XrdProofConn::fgSecGetProtocol = 0 |
|
staticprivate |
◆ fgSecPlugin
◆ fgTimeWait
| int XrdProofConn::fgTimeWait = 2 |
|
staticprivate |
◆ fHost
| XrdOucString XrdProofConn::fHost |
|
private |
◆ fLastErr
| XErrorCode XrdProofConn::fLastErr |
|
private |
◆ fLastErrMsg
| XrdOucString XrdProofConn::fLastErrMsg |
|
private |
◆ fLogConnID
| int XrdProofConn::fLogConnID |
|
private |
◆ fLoginBuffer
| XrdOucString XrdProofConn::fLoginBuffer |
|
private |
◆ fMode
◆ fMutex
| XrdOucRecMutex* XrdProofConn::fMutex |
|
private |
◆ fOpenSockFD
| int XrdProofConn::fOpenSockFD |
|
private |
◆ fPhyConn
◆ fPort
◆ fRemoteProtocol
| int XrdProofConn::fRemoteProtocol |
|
private |
◆ fSender
◆ fSenderArg
| void* XrdProofConn::fSenderArg |
|
private |
◆ fServerProto
| int XrdProofConn::fServerProto |
|
private |
◆ fServerType
◆ fSessionID
| short XrdProofConn::fSessionID |
|
private |
◆ fStreamid
| kXR_unt16 XrdProofConn::fStreamid |
|
private |
◆ fUnsolMsgHandler
◆ fUrl
◆ fUser
| XrdOucString XrdProofConn::fUser |
|
private |
proof/proofd/inc/XrdProofConn.h
proof/proofd/src/XrdProofConn.cxx