12 #ifndef ROOT_TServerSocket
13 #define ROOT_TServerSocket
33 typedef Int_t (*SrvAuth_t)(TSocket *sock,
const char *,
const char *,
34 std::string&, Int_t &, Int_t &, std::string &,
36 typedef Int_t (*SrvClup_t)(TSeqCollection *);
39 const UChar_t kSrvAuth = 0x1;
40 const UChar_t kSrvNoAuth = (kSrvAuth<<4);
42 class TServerSocket :
public TSocket {
45 TSeqCollection *fSecContexts;
46 static SrvAuth_t fgSrvAuthHook;
47 static SrvClup_t fgSrvAuthClupHook;
48 static UChar_t fgAcceptOpt;
50 TServerSocket() : fSecContexts(0) { }
51 TServerSocket(
const TServerSocket &);
52 void operator=(
const TServerSocket &);
53 Bool_t Authenticate(TSocket *);
56 enum { kDefaultBacklog = 10 };
58 TServerSocket(Int_t port, Bool_t reuse = kFALSE, Int_t backlog = kDefaultBacklog,
59 Int_t tcpwindowsize = -1);
60 TServerSocket(
const char *service, Bool_t reuse = kFALSE,
61 Int_t backlog = kDefaultBacklog, Int_t tcpwindowsize = -1);
62 virtual ~TServerSocket();
64 virtual TSocket *Accept(UChar_t Opt = 0);
65 virtual TInetAddress GetLocalInetAddress();
66 virtual Int_t GetLocalPort();
68 Int_t Send(
const TMessage &)
69 { MayNotUse(
"Send(const TMessage &)");
return 0; }
71 { MayNotUse(
"Send(Int_t)");
return 0; }
72 Int_t Send(Int_t, Int_t)
73 { MayNotUse(
"Send(Int_t, Int_t)");
return 0; }
74 Int_t Send(
const char *, Int_t = kMESS_STRING)
75 { MayNotUse(
"Send(const char *, Int_t)");
return 0; }
76 Int_t SendObject(
const TObject *, Int_t = kMESS_OBJECT)
77 { MayNotUse(
"SendObject(const TObject *, Int_t)");
return 0; }
78 Int_t SendRaw(
const void *, Int_t, ESendRecvOptions = kDefault)
79 { MayNotUse(
"SendRaw(const void *, Int_t, ESendRecvOptions)");
return 0; }
80 Int_t Recv(TMessage *&)
81 { MayNotUse(
"Recv(TMessage *&)");
return 0; }
82 Int_t Recv(Int_t &, Int_t &)
83 { MayNotUse(
"Recv(Int_t &, Int_t &)");
return 0; }
84 Int_t Recv(
char *, Int_t)
85 { MayNotUse(
"Recv(char *, Int_t)");
return 0; }
86 Int_t Recv(
char *, Int_t, Int_t &)
87 { MayNotUse(
"Recv(char *, Int_t, Int_t &)");
return 0; }
88 Int_t RecvRaw(
void *, Int_t, ESendRecvOptions = kDefault)
89 { MayNotUse(
"RecvRaw(void *, Int_t, ESendRecvOptions)");
return 0; }
91 static UChar_t GetAcceptOptions();
92 static void SetAcceptOptions(UChar_t Opt);
93 static void ShowAcceptOptions();
95 ClassDef(TServerSocket, 0);