|
ROOT 6.18/05 Reference Guide |
Definition at line 48 of file XrdProofConn.h.
Public Types | |
| enum | ESrvType { kSTError = -1 , kSTNone , kSTXProofd , kSTProofd } |
Public Member Functions | |
| XrdProofConn (const char *url, char mode='M', int psid=-1, char ver=-1, XrdClientAbsUnsolMsgHandler *uh=0, const char *logbuf=0) | |
| Constructor. More... | |
| virtual | ~XrdProofConn () |
| Destructor. More... | |
| virtual void | Close (const char *opt="") |
| Close connection. More... | |
| const char * | GetLastErr () |
| int | GetLogConnID () const |
| int | GetLowSocket () |
| Return the socket descriptor of the underlying connection. More... | |
| int | GetOpenError () const |
| int | GetServType () const |
| short | GetSessionID () const |
| const char * | GetUrl () |
| bool | IsValid () const |
| Test validity of this connection. More... | |
| XReqErrorType | LowWrite (XPClientRequest *, const void *, int) |
| Send request to server (NB: req is marshalled at this point, so we need also the plain reqDataLen) More... | |
| 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. More... | |
| virtual XrdClientMessage * | ReadMsg () |
| Pickup message from the queue. More... | |
| virtual int | ReadRaw (void *buf, int len, XrdClientPhyConnection *p=0) |
| Low level receive call. More... | |
| 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. More... | |
| virtual void | SetAsync (XrdClientAbsUnsolMsgHandler *uh, XrdProofConnSender_t=0, void *=0) |
| Set handler of unsolicited responses. More... | |
| void | SetSID (kXR_char *sid) |
| Set our stream id, to match against that one in the server's response. More... | |
| virtual int | WriteRaw (const void *buf, int len, XrdClientPhyConnection *p=0) |
| Low level write call. More... | |
Public Member Functions inherited from XrdClientAbsUnsolMsgHandler | |
| virtual | ~XrdClientAbsUnsolMsgHandler () |
| virtual UnsolRespProcResult | ProcessUnsolicitedMsg (XrdClientUnsolMsgSender *sender, XrdClientMessage *unsolmsg)=0 |
Static Public Member Functions | |
| static void | GetRetryParam (int &maxtry, int &timewait) |
| Retrieve current values of the retry control parameters, numer of retries and wait time between attempts (in seconds). More... | |
| static void | SetRetryParam (int maxtry=5, int timewait=2) |
| Change values of the retry control parameters, numer of retries and wait time between attempts (in seconds). More... | |
Private Member Functions | |
| XrdSecProtocol * | Authenticate (char *plist, int lsiz) |
| Negotiate authentication with the remote server. More... | |
| bool | CheckErrorStatus (XrdClientMessage *, int &, const char *, bool) |
| Check error status. More... | |
| bool | CheckResp (struct ServerResponseHeader *resp, const char *met, bool) |
| Checks if the server's response is ours. More... | |
| virtual void | Connect (int=-1) |
| Run the connection attempts: the result is stored in fConnected. More... | |
| bool | ConnectInterrupt () |
| Check if interrupted during connect. More... | |
| ESrvType | DoHandShake (XrdClientPhyConnection *p=0) |
| Performs initial hand-shake with the server in order to understand which kind of server is there at the other side. More... | |
| virtual bool | GetAccessToSrv (XrdClientPhyConnection *p=0) |
| Gets access to the connected server. More... | |
| virtual bool | Init (const char *url=0, int=-1) |
| Initialization. More... | |
| bool | Login () |
| This method perform the loggin-in into the server just after the hand-shake. More... | |
| bool | MatchStreamID (struct ServerResponseHeader *resp) |
| Check stream ID matching. More... | |
| void | ReConnect () |
| Perform a reconnection attempt when a connection is not valid any more. More... | |
| XrdClientMessage * | SendRecv (XPClientRequest *req, const void *reqData, char **answData) |
| SendRecv sends a command to the server and to get a response. More... | |
| void | SetConnectInterrupt () |
| Interrupt connection attempts. More... | |
| void | SetInterrupt () |
| Interrupt the underlying socket. More... | |
| virtual int | TryConnect (int=-1) |
| Connect to remote server. More... | |
Private Attributes | |
| char | fCapVer |
| bool | fConnected |
| bool | fConnectInterrupt |
| XrdSysRecMutex * | fConnectInterruptMtx |
| XrdOucString | fHost |
| XErrorCode | fLastErr |
| XrdOucString | fLastErrMsg |
| int | fLogConnID |
| XrdOucString | fLoginBuffer |
| char | fMode |
| XrdSysRecMutex * | fMutex |
| int | fOpenSockFD |
| XrdClientPhyConnection * | fPhyConn |
| int | fPort |
| int | fRemoteProtocol |
| XrdProofConnSender_t | fSender |
| void * | fSenderArg |
| int | fServerProto |
| ESrvType | fServerType |
| short | fSessionID |
| kXR_unt16 | fStreamid |
| XrdClientAbsUnsolMsgHandler * | fUnsolMsgHandler |
| XrdClientUrlInfo | fUrl |
| XrdOucString | fUser |
Static Private Attributes | |
| static XrdClientConnectionMgr * | fgConnMgr = 0 |
| static int | fgMaxTry = 5 |
| static void * | fgSecGetProtocol = 0 |
| static XrdSysPlugin * | fgSecPlugin = 0 |
| static int | fgTimeWait = 2 |
Friends | |
| class | TXSocket |
| class | TXUnixSocket |
| class | XrdProofPhyConn |
#include <XrdProofConn.h>
| Enumerator | |
|---|---|
| kSTError | |
| kSTNone | |
| kSTXProofd | |
| kSTProofd | |
Definition at line 56 of file XrdProofConn.h.
| XrdProofConn::XrdProofConn | ( | const char * | url, |
| char | m = 'M', |
||
| int | psid = -1, |
||
| char | capver = -1, |
||
| XrdClientAbsUnsolMsgHandler * | uh = 0, |
||
| const char * | logbuf = 0 |
||
| ) |
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.
|
virtual |
Destructor.
Definition at line 292 of file XrdProofConn.cxx.
|
private |
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.
|
private |
Check error status.
Definition at line 811 of file XrdProofConn.cxx.
|
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.
|
virtual |
Close connection.
Reimplemented in XrdProofPhyConn.
Definition at line 422 of file XrdProofConn.cxx.
|
privatevirtual |
Run the connection attempts: the result is stored in fConnected.
Reimplemented in XrdProofPhyConn.
Definition at line 201 of file XrdProofConn.cxx.
|
private |
Check if interrupted during connect.
Definition at line 1466 of file XrdProofConn.cxx.
|
private |
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.
|
privatevirtual |
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.
|
inline |
Definition at line 136 of file XrdProofConn.h.
|
inline |
Definition at line 130 of file XrdProofConn.h.
| int XrdProofConn::GetLowSocket | ( | ) |
Return the socket descriptor of the underlying connection.
Definition at line 1067 of file XrdProofConn.cxx.
|
inline |
Definition at line 132 of file XrdProofConn.h.
|
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.
|
inline |
Definition at line 133 of file XrdProofConn.h.
|
inline |
Definition at line 134 of file XrdProofConn.h.
|
inline |
Definition at line 135 of file XrdProofConn.h.
|
privatevirtual |
| bool XrdProofConn::IsValid | ( | ) | const |
Test validity of this connection.
Definition at line 1481 of file XrdProofConn.cxx.
|
private |
This method perform the loggin-in into the server just after the hand-shake.
It also calls the Authenticate() method
Definition at line 1076 of file XrdProofConn.cxx.
| XReqErrorType XrdProofConn::LowWrite | ( | XPClientRequest * | req, |
| const void * | reqData, | ||
| int | reqDataLen | ||
| ) |
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.
|
private |
Check stream ID matching.
Definition at line 756 of file XrdProofConn.cxx.
|
virtual |
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.
|
virtual |
Pickup message from the queue.
Reimplemented in XrdProofPhyConn.
Definition at line 515 of file XrdProofConn.cxx.
|
virtual |
Low level receive call.
Reimplemented in XrdProofPhyConn.
Definition at line 949 of file XrdProofConn.cxx.
|
private |
Perform a reconnection attempt when a connection is not valid any more.
Definition at line 316 of file XrdProofConn.cxx.
|
private |
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.
| XrdClientMessage * XrdProofConn::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.
Definition at line 636 of file XrdProofConn.cxx.
|
virtual |
Set handler of unsolicited responses.
Reimplemented in XrdProofPhyConn.
Definition at line 501 of file XrdProofConn.cxx.
|
private |
Interrupt connection attempts.
Definition at line 1457 of file XrdProofConn.cxx.
|
private |
Interrupt the underlying socket.
Definition at line 1448 of file XrdProofConn.cxx.
|
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.
| 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.
|
privatevirtual |
Connect to remote server.
Reimplemented in XrdProofPhyConn.
Definition at line 343 of file XrdProofConn.cxx.
|
virtual |
Low level write call.
Reimplemented in XrdProofPhyConn.
Definition at line 934 of file XrdProofConn.cxx.
|
friend |
Definition at line 50 of file XrdProofConn.h.
|
friend |
Definition at line 51 of file XrdProofConn.h.
|
friend |
Definition at line 52 of file XrdProofConn.h.
|
private |
Definition at line 74 of file XrdProofConn.h.
|
private |
Definition at line 61 of file XrdProofConn.h.
|
private |
Definition at line 81 of file XrdProofConn.h.
|
private |
Definition at line 80 of file XrdProofConn.h.
|
staticprivate |
Definition at line 94 of file XrdProofConn.h.
|
staticprivate |
Definition at line 96 of file XrdProofConn.h.
|
staticprivate |
Definition at line 100 of file XrdProofConn.h.
|
staticprivate |
Definition at line 99 of file XrdProofConn.h.
|
staticprivate |
Definition at line 97 of file XrdProofConn.h.
|
private |
Definition at line 70 of file XrdProofConn.h.
|
private |
Definition at line 73 of file XrdProofConn.h.
|
private |
Definition at line 72 of file XrdProofConn.h.
|
private |
Definition at line 62 of file XrdProofConn.h.
|
private |
Definition at line 76 of file XrdProofConn.h.
|
private |
Definition at line 60 of file XrdProofConn.h.
|
private |
Definition at line 78 of file XrdProofConn.h.
|
private |
Definition at line 85 of file XrdProofConn.h.
|
private |
Definition at line 83 of file XrdProofConn.h.
|
private |
Definition at line 71 of file XrdProofConn.h.
|
private |
Definition at line 64 of file XrdProofConn.h.
|
private |
Definition at line 89 of file XrdProofConn.h.
|
private |
Definition at line 90 of file XrdProofConn.h.
|
private |
Definition at line 65 of file XrdProofConn.h.
|
private |
Definition at line 66 of file XrdProofConn.h.
|
private |
Definition at line 68 of file XrdProofConn.h.
|
private |
Definition at line 63 of file XrdProofConn.h.
|
private |
Definition at line 87 of file XrdProofConn.h.
|
private |
Definition at line 92 of file XrdProofConn.h.
|
private |
Definition at line 69 of file XrdProofConn.h.