;ò ã¬Cc@sdZdkZdkZdkZdkZd„Zd„ZyeieidƒWn:ee ei fj o"ee_ee_de_nXe Z de fd„ƒYZeeid       ' 1 s::sAF_INET6stsafecBstZdfd„ƒYZRS(Ns Connectionc Bs tZdZdZd„Zx€ddddddd d d d d ddddddddddddddddddd d!d"f D]Zd#eefd$Uq‚WRS(%sQ OpenSSL.tsafe.Connection, defined in such a way as to not blow. s OpenSSL.tsafecGs?dkl}t|i|ƒ|_dkl }|ƒ|_ dS(N(sSSL(s_RLock( sOpenSSLsSSLs_sslsapplys Connectionsargssselfs _ssl_conns threadings_RLocks_lock(sselfsargss_RLocks_ssl((s./twisted/python/compat.pys__init__ys  s get_contextspendingssendswritesrecvsreads renegotiatesbindslistensconnectsaccepts setblockingsfilenosshutdownsclosesget_cipher_lists getpeernames getsocknames getsockopts setsockoptsmakefiles get_app_datas set_app_datas state_strings sock_shutdownsget_peer_certificates want_reads want_writesset_connect_statesset_accept_states connect_exssendallsËdef %s(self, *args): self._lock.acquire() try: return apply(self._ssl_conn.%s, args) finally: self._lock.release() N(s__name__s __module__s__doc__s__init__sf(((s./twisted/python/compat.pys Connectionss  g (s__name__s __module__s Connection(((s./twisted/python/compat.pystsaferss OpenSSL.tsafes attrgettercBstZd„Zd„ZRS(NcCs ||_dS(N(snamesself(sselfsname((s./twisted/python/compat.pys__init__—scCst||iƒSdS(N(sgetattrsobjsselfsname(sselfsobj((s./twisted/python/compat.pys__call__™s(s__name__s __module__s__init__s__call__(((s./twisted/python/compat.pys attrgetter–s (s__doc__ssyssstringssocketsstructs inet_ptons inet_ntopsAF_INET6sAttributeErrors NameErrorserrorsdictsadictsobjectstsafesmodulessoperators attrgetter( sstructstsafes inet_ntops inet_ptonssyss attrgetterssocketsadictsoperatorsstring((s./twisted/python/compat.pys? s$$ . "