-í
~:,>c       sû     d  Z    d k l Z  d k Z d k Z d k Z  d k Z  d k Z  d k Z  d k	 Z
  d d „ Z ! h  d „ Z 0 d „  Z Q d „  Z ` d „  Z 7d	 „  Z Id
 „  Z Ld d „ Z ke d j o le e i ƒ n d S(   s   Start the ZEO storage server.(   s   nested_scopesNi   c    s‰     t  i i |  ƒ }  x`  | oU  t  i i | ƒ d }  | p
 | d j o  t  i ƒ  } n  | d 8} q W | Sd  S(   Ni    s   .i   (   s   oss   paths   abspaths   ps   ds   ns   splits   getcwd(   s   ps   ns   d(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/start.pys	   directory s    
c    sõ   ! " t  i } # t i i |  ƒ \ } }  $ |  i d ƒ o % |  d  }  n & | i	 | |  f ƒ } ' | t j ok ( | o ) | g | } n * d  k } + | i |  | ƒ } , | i |  | Œ } - | | | |  f <n . t | | ƒ Sd  S(   Ns   .pyiýÿÿÿ(   s   syss   paths   ps   oss   splits   ms   ds   endswiths   caches   gets   ims   Nones   imps   find_modules   load_modules   getattrs   n(   s   ms   ns   caches   ds   imps   ps   im(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/start.pys   get_storage! s   
c    s‰  0 4 5 y 6 d k  } Wn4 7 t j
 o% 8 t d t d |  ƒ : d Sn X; y< t } = y > t |  ƒ }  Wn6 ? @ | i |  ƒ d } A | i |  ƒ d } n- XC | i
 |  ƒ d } D | i
 |  ƒ d } E | t j	 o7 F y G t i | ƒ Wn H t j
 o
 I n Xn J y K t i | ƒ Wn L t j
 o
 M n XWn- N t j
 o O t d t d |  ƒ n Xd S(   si   Try to set uid and gid based on -u argument.

    This will only work if this script is run by root.
    Ns   ZEO/start.pys0   Can't set uid to %s.pwd module is not available.i   i   s   can't find uid %s(   s   pwds   ImportErrors   LOGs   INFOs   args   Nones   gids   ints   getpwnams   uids   getpwuids   oss   setgids   OSErrors   setuids   KeyErrors   ERROR(   s   args   pwds   gids   uid(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/start.pys   set_uid0 s4   	c    sý   Q R y S d  k  } Wn T t j
 o U d  Sn XW t | d ƒ o X | i  | i | i ƒ n Y t | d ƒ o  Z | i  | i ‡  d †  ƒ n [ t | d ƒ o  \ | i  | i ‡  d †  ƒ n ] t | d ƒ o ^ | i  | i t ƒ n d  S(   Ns   SIGXFSZs   SIGTERMc    s   Z t  ˆ  ƒ S(   N(   s   shutdowns   storages(   s   sigs   frame(   s   storages(    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/start.pys   <lambda>Z s    s   SIGHUPc    s   \ t  ˆ  d ƒ S(   Ni    (   s   shutdowns   storages(   s   sigs   frame(   s   storages(    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/start.pys   <lambda>\ s    s   SIGUSR2(	   s   signals   ImportErrors   hasattrs   SIGXFSZs   SIG_IGNs   SIGTERMs   SIGHUPs   SIGUSR2s   rotate_logs_handler(   s   storagess   signal(    (   s   storagess1   /usr/pkg/lib/python2.2/site-packages/ZEO/start.pys   setup_signalsQ s     c "   sE  ` a |  d } b t i i d t | d ƒ ƒ d e d k l a l a l	 }
 l
 a
 l } f d k l } g | | ƒ } j l g  } m d } n x¢ |  d Dn ]“ } o | d  d j o  | i d ƒ d j o
 | d	 j o= p | i d ƒ } q d i | d ƒ t i | d <r qœ n s | i | ƒ t | } qœ Wv d
 | | i f } ¢ y £ t i | d ƒ \ }! } Wn; ¤ t i j
 o) } ¥ | GH¦ | GH§ t i d ƒ n X© t } ª d } « d } ¬ t a# ­ d } ® d } ¯ t } ° d } ± t } ² x|! D² ]ú \ } }  ³ | d j o ´ t* |  ƒ } nÌ µ | d j o ¶ |  } n¯ · | d j o ¸ |  a# n’ ¹ | d j o º |  } nu » | d j o ¼ d } nX ½ | d j o ¾ d } n; ¿ | d j o À d } n Á | d j o Â |  } n qWÄ | o Å d } n Ç | t j o
 t# t j o$ È | GHÉ d GHÊ t i d ƒ n Ì | o\ Í t+ | ƒ d j o5 Î | GHÏ d Gd i | d ƒ GHÐ t i d ƒ n Ñ | d } n Ó | o Ô d t i d <n Õ | o Ö d t i d <× t, ƒ  n Ù t- | ƒ Û | oO Ü y Ý d  k. } Wn Þ ß n) Xá d  k/ } â | i1 i2 t i  | i3 ƒ n ä ylæ | on è y é t i4 | i5 ƒ Wn3 ê t i j
 o! ë t d |
 d | i5 ƒ n Xí t d t d | i5 ƒ n ï d  k6 } d  k8 a8 ñ h  a9 ò xš |! Dò ] \ } }  ó | d	 j os ô |  i d d ƒ \ } } õ | i d ƒ d j o ÷ | i d ƒ \ } } n
 ú | } û t< | | ƒ t9 | <n qWý t9 o1 þ d  k= l> }	 ÿ |	 | p | i ƒ t9 d <n t? t9 ƒ t9 i@ ƒ  } | iA ƒ  x( | D] } t d t d! | ƒ qW	t# o 
| | f a# n | iC iC t# t9 ƒ | o` y t iD ƒ  } Wn n7 XtF | i3 d" ƒ } | iH d# | ƒ | iI ƒ  n Wnu t iJ ƒ  } y t d | d$ d% | ƒWn n X d  kL } !| iM | Œ  #t i d ƒ n X%yR &z 'tN iO iP ƒ  Wd  ()t i iQ | i3 ƒ o *t iR | i3 ƒ n XWn +tS j
 o ,‚  nv -.t iJ ƒ  } /y 0t d | d& d% | ƒWn 12n X3d  kL } 4| iM | Œ  5t i d ƒ n Xd  S('   Ni    i   (   s   LOGs   INFOs   WARNINGs   ERRORs   PANIC(   s   Environments    i   s   -s   =s   -Ss%  %s [options] [filename]

    where options are:

       -D -- Run in debug mode

       -d -- Set STUPID_LOG_SEVERITY to -300

       -U -- Unix-domain socket file to listen on

       -u username or uid number

         The username to run the ZEO server as. You may want to run
         the ZEO server as 'nobody' or some other user with limited
         resouces. The only works under Unix, and if ZServer is
         started by root.

       -p port -- port to listen on

       -h address -- host address to listen on

       -s -- Don't use zdeamon

       -S storage_name=module_path:attr_name -- A storage specification

          where:

            storage_name -- is the storage name used in the ZEO protocol.
               This is the name that you give as the optional
               'storage' keyword argument to the ClientStorage constructor.

            module_path -- This is the path to a Python module
               that defines the storage object(s) to be served.
               The module path should omit the prefix (e.g. '.py').

            attr_name -- This is the name to which the storage object
              is assigned in the module.

       -P file -- Run under profile and dump output to file.  Implies the
          -s flag.

    if no file name is specified, then %s is used.
    s   p:Dh:U:sS:u:P:ds   nobodys   -ps   -hs   -Us   -us   -Ds   -ds   -ss   -Ps   No port specified.s   Unrecognized arguments: s    s   1s   Z_DEBUG_MODEs   -300s   STUPID_LOG_SEVERITYs   ZEO/start.pys   Couldn't chdir to %ss   Changed directory to %ss   :(   s   FileStorages   Serving %s:	%ss   ws   %s
s   Startup exceptions   errors   Unexpected error(T   s   argvs   mes   syss   paths   inserts	   directorys   zLOGs   LOGs   INFOs   WARNINGs   ERRORs   PANICs   ZEO.utils   Environments   envs   argss   lasts   as   finds   splits   joins   oss   environs   appends   fss   usages   getopts   optss   errors   msgs   exits   Nones   ports   debugs   hosts   unixs   Zs   UIDs   profs   detaileds   os   vs   ints   lens   rotate_logss   set_uids   posixs   zdaemon.Daemons   zdaemons   Daemons   runs   zeo_pids   chdirs   vars   ZEO.StorageServers   ZEOs   asyncores   storagess   ns   ms   get_storages   ZODB.FileStorages   FileStorages   setup_signalss   itemss   sorts   kvs   StorageServers   getpids   pids   opens   fs   writes   closes   exc_infos   infos	   tracebacks   print_exceptions   ThreadedAsyncs   LoopCallbacks   loops   isfiles   unlinks
   SystemExit("   s   argvs   detaileds   infos   usages   pids   ZEOs   Environments   ports   UIDs   FileStorages   WARNINGs   envs   itemss   msgs   profs   mes   fss   argss   debugs   hosts   Zs   PANICs   as   lasts   fs   zdaemons	   tracebacks   ms   os   ns   posixs   kvs   vs   opts(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/start.pys   main` s  (		 	7!
,									
 




 
	
 	!
 	
c     sÁ   78d  k  }  9t |  d t ƒ } :| t j	 o ;| ƒ  nc @y# Ad  k }  B|  i i i ƒ  Wn9 Ct j
 o* D|  i	 d |  i
 Ed ƒ Fd  Sn XG|  i	 d |  i d ƒ d  S(   Ns
   initializes   ZEO/start.pys"   Caught USR2, could not rotate logss   Caught USR2, logs rotated(   s   zLOGs   getattrs   Nones   inits   zLOG.MinimalLoggers   MinimalLoggers   _logs
   initializes   ImportErrors   LOGs   WARNINGs   INFO(   s   zLOGs   init(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/start.pys   rotate_logs7s   
c    s   IJt  ƒ  d  S(   N(   s   rotate_logs(   s   signums   frame(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/start.pys   rotate_logs_handlerIs   c    s5  LMt  d t d ƒ Nd  k } Sx[ d d f DS]J } Tx> | i i ƒ  DT]* } Uy V| i ƒ  Wn WXn XqN Wq2 WZx5 |  i ƒ  DZ]$ } [z \| i ƒ  Wd  ]^Xq“ W`y2 a| o d p d } bt  d t d | ƒ Wn cdn Xf| o gt i d ƒ n it i d ƒ d  S(	   Ns   ZEO/start.pys   Received signali   i   s   shutdowns   restarts   Shutting down (%s)i    (   s   LOGs   INFOs   asyncores   ignoreds
   socket_maps   valuess   sockets   closes   storagess   storages   dies   ss   syss   exit(   s   storagess   dies   ignoreds   ss   asyncores   storages   socket(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/start.pys   shutdownLs0    	 	 	
s   __main__(   s   __doc__s
   __future__s   nested_scopess   syss   oss   getopts   typess   errnos   sockets   ThreadedAsync.LoopCallbacks   ThreadedAsyncs	   directorys   get_storages   set_uids   setup_signalss   mains   rotate_logss   rotate_logs_handlers   shutdowns   __name__s   argv(   s   nested_scopess   set_uids   shutdowns   rotate_logss   typess   syss   ThreadedAsyncs   sockets   errnos   rotate_logs_handlers   get_storages   setup_signalss	   directorys   getopts   mains   os(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/start.pys   ? s    	!×