ROOT 6.12/07 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 () |
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.