27 ClassImp(TXUnixSocket);
32 TXUnixSocket::TXUnixSocket(
const char *url,
33 Int_t psid, Char_t capver, TXHandler *handler,
int fd)
34 : TXSocket(0,
'i',psid,capver,0,-1,handler)
40 fConn =
new XrdProofPhyConn(url, psid, capver,
this, 0, fd);
41 if (!(fConn->IsValid())) {
42 Error(
"TXUnixSocket",
"severe error occurred while opening a connection"
43 " to server [%s]", fUrl.Data());
48 fUser = fConn->fUser.c_str();
49 fHost = fConn->fHost.c_str();
51 fXrdProofdVersion = fConn->fRemoteProtocol;
52 fRemoteProtocol = fConn->fRemoteProtocol;
55 TSocket::fUrl = fConn->fUrl.GetUrl().c_str();
58 fPid = gSystem->GetPid();
65 Int_t TXUnixSocket::Reconnect()
68 Info(
"Reconnect",
"%p: %p: %d: trying to reconnect on %s",
this,
69 fConn, (fConn ? fConn->IsValid() : 0), fUrl.Data());
72 Int_t tryreconnect = gEnv->GetValue(
"TXSocket.Reconnect", 0);
73 if (tryreconnect == 0 || fXrdProofdVersion < 1005) {
74 if (tryreconnect == 0)
75 Info(
"Reconnect",
"%p: reconnection attempts explicitly disabled!",
this);
77 Info(
"Reconnect",
"%p: server does not support reconnections (protocol: %d < 1005)",
78 this, fXrdProofdVersion);
82 if (fConn && !fConn->IsValid()) {
85 XrdSysMutexHelper l(fConn->fMutex);
89 XrdProofConn::GetRetryParam(maxtry, timewait);
90 XrdProofConn::SetRetryParam(300, 1);
92 XrdProofConn::SetRetryParam();
96 Info(
"Reconnect",
"%p: %p: attempt %s",
this, fConn,
97 ((fConn && fConn->IsValid()) ?
"succeeded!" :
"failed"));
101 return ((fConn && fConn->IsValid()) ? 0 : -1);