Definition at line 58 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. 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 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...
|
|
#include <XrdProofConn.h>
Enumerator |
---|
kSTError |
|
kSTNone |
|
kSTXProofd |
|
kSTProofd |
|
Definition at line 66 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.
XrdProofConn::~XrdProofConn |
( |
| ) |
|
|
virtual |
XrdSecProtocol * XrdProofConn::Authenticate |
( |
char * |
plist, |
|
|
int |
plsiz |
|
) |
| |
|
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.
bool XrdProofConn::CheckErrorStatus |
( |
XrdClientMessage * |
mex, |
|
|
int & |
Retry, |
|
|
const char * |
CmdName, |
|
|
bool |
notifyerr |
|
) |
| |
|
private |
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.
void XrdProofConn::Close |
( |
const char * |
opt = "" | ) |
|
|
virtual |
void XrdProofConn::Connect |
( |
int |
= -1 | ) |
|
|
privatevirtual |
bool XrdProofConn::ConnectInterrupt |
( |
| ) |
|
|
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.
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.
const char* XrdProofConn::GetLastErr |
( |
| ) |
|
|
inline |
int XrdProofConn::GetLogConnID |
( |
| ) |
const |
|
inline |
int XrdProofConn::GetLowSocket |
( |
| ) |
|
Return the socket descriptor of the underlying connection.
Definition at line 1067 of file XrdProofConn.cxx.
int XrdProofConn::GetOpenError |
( |
| ) |
const |
|
inline |
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.
int XrdProofConn::GetServType |
( |
| ) |
const |
|
inline |
short XrdProofConn::GetSessionID |
( |
| ) |
const |
|
inline |
const char* XrdProofConn::GetUrl |
( |
| ) |
|
|
inline |
bool XrdProofConn::Init |
( |
const char * |
url = 0 , |
|
|
int |
= -1 |
|
) |
| |
|
privatevirtual |
bool XrdProofConn::IsValid |
( |
| ) |
const |
bool XrdProofConn::Login |
( |
| ) |
|
|
private |
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.
bool XrdProofConn::MatchStreamID |
( |
struct ServerResponseHeader * |
resp | ) |
|
|
private |
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.
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 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 tries to send a single command for a number of times.
Definition at line 636 of file XrdProofConn.cxx.
void XrdProofConn::SetConnectInterrupt |
( |
| ) |
|
|
private |
void XrdProofConn::SetInterrupt |
( |
| ) |
|
|
private |
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.
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.
int XrdProofConn::TryConnect |
( |
int |
= -1 | ) |
|
|
privatevirtual |
char XrdProofConn::fCapVer |
|
private |
bool XrdProofConn::fConnected |
|
private |
bool XrdProofConn::fConnectInterrupt |
|
private |
int XrdProofConn::fgMaxTry = 5 |
|
staticprivate |
void * XrdProofConn::fgSecGetProtocol = 0 |
|
staticprivate |
int XrdProofConn::fgTimeWait = 2 |
|
staticprivate |
XrdOucString XrdProofConn::fHost |
|
private |
XErrorCode XrdProofConn::fLastErr |
|
private |
XrdOucString XrdProofConn::fLastErrMsg |
|
private |
int XrdProofConn::fLogConnID |
|
private |
XrdOucString XrdProofConn::fLoginBuffer |
|
private |
int XrdProofConn::fOpenSockFD |
|
private |
int XrdProofConn::fRemoteProtocol |
|
private |
void* XrdProofConn::fSenderArg |
|
private |
int XrdProofConn::fServerProto |
|
private |
short XrdProofConn::fSessionID |
|
private |
kXR_unt16 XrdProofConn::fStreamid |
|
private |
XrdOucString XrdProofConn::fUser |
|
private |
The documentation for this class was generated from the following files: