Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

GSISocketServer.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *  filename  : GSISocketServer.h
00003  *  authors   : Salvatore Monforte <salvatore.monforte@ct.infn.it>
00004  *  copyright : (C) 2001 by INFN
00005  ***************************************************************************/
00006 
00007 // $Id:
00008 
00018 #ifndef _GSISocketServer_h_
00019 #define _GSISocketServer_h_
00020 
00022 #include "edg/workload/common/socket++/SocketServer.h"
00024 #include <globus_gss_assist.h>
00025 
00026 namespace edg {   
00027 namespace workload { 
00028 namespace common {
00029 namespace socket_pp {
00030 
00032 class GSISocketAgent;
00034 struct GSIAuthenticationContext;
00035 
00044 class GSISocketServer : public SocketServer
00045 {
00046  public:
00047   enum limited_proxy_mode_t { normal, multi };  
00053   GSISocketServer(int, int=5);
00058   virtual ~GSISocketServer();
00059 
00063   virtual void Close();
00070   virtual GSISocketAgent* Listen();
00074   bool GSISocketServer::AuthenticateAgent(GSISocketAgent* sa);
00080   void RedirectGSIOutput(FILE *fp) { if(fp!=NULL) gsi_logfile = fp; }
00081  
00082   void LimitedProxyMode(limited_proxy_mode_t mode) { limited_proxy_mode = mode; }
00083                   
00084  private:
00091   gss_ctx_id_t AcceptGSIAuthentication(int sock, GSIAuthenticationContext&); 
00093   FILE *gsi_logfile;
00094   limited_proxy_mode_t limited_proxy_mode;
00095 };
00096 
00097 } // namespace socket_pp
00098 } // namespace common
00099 } // namespace workload
00100 } // namespace edg
00101 
00102 #endif
00103 
00104 /*
00105   Local Variables:
00106   mode: c++
00107   End:
00108 */
00109 
00110 
00111 

Generated on Wed Mar 1 00:37:55 2006 for COMMON API - configuration, jobid, ldif2classadi, logger, process, requestad, socket++i, task, utilities by doxygen 1.3.5