;ň *ť%|i|iƒ|igjo|i|iƒnd}n||||fSdS(Nii˙˙˙˙i(srswseslivesselfssocketsappends send_queue(sselfsrseslivesw((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pys select_set€s cCsů|idjodSn|i|joDti|i|idƒdjo|iiƒd|_dSqln|i|jouti |i|i ƒdjo|iiƒd|_dSn|i o |i gjo|iiƒd|_qńndSdS(Ni˙˙˙˙iii( sselfssocketsrsfshlibsreads receive_queues socket_objectscloseswswrites send_queues pending_close(sselfsrswse((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pys select_actionŒs "      cCsti|idƒSdS(Ni(sfshlibs parse_linesselfs receive_queue(sself((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pys poll_command˘scCsB|djo|ii|ƒn|idjo g|_ndS(Nsi˙˙˙˙(sdatasselfs send_queuesappendssocket(sselfsdata((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pyssendŚs cCs d|_dS(Ni(sselfs pending_close(sself((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pyscloseŹscCs|idjSdS(Ni˙˙˙˙(sselfssocket(sself((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pys is_closedŻscCs|igjSdS(N(sselfs send_queue(sself((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pysdrained˛s( s__name__s __module__s__init__s select_sets select_actions poll_commandssendscloses is_closedsdrained(((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pysclientxs      sfshdcBs>tZd„Zd„Zd„Zd„Zd„Zd„ZRS(Nc Csžti|||ƒ\}} yti| dƒWn”ti j o…\} } | t i jocti| ƒ}|titiƒjo‚nti|tiƒ o‚nti| dƒqĆ‚nXt||o|||ƒ|_h|_tititiƒ|_|ii dƒ|ii!ti"ti#dƒyti$|ƒWn5ti j o&\} } | t i%jo‚q~nX|ii&|ƒ|iidƒ||_(t)|_*|i+ƒdS(NiŔiii(,sfshlibs fshd_socketsserversmethodsloginssocknamessockdirsossmkdirserrorsenosemsgserrnosEEXISTslstatsstatussstatsST_UIDsgetuidsS_ISDIRsST_MODEschmodsremotes use_l_flagsbackground_wantedsselfsrssessionsssocketsAF_UNIXs SOCK_STREAMslistens setblockings setsockopts SOL_SOCKETs SO_REUSEADDRsunlinksENOENTsbindstimeouts_fshd__timeoutsNones_fshd__expire_times setup_timer( sselfsserversmethodslogins use_l_flagsbackground_wantedstimeoutsstatusssocknamessockdirsemsgseno((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pys__init__śs8     cCs>|itjo |itjotiƒ|i|_ndS(N(sselfs_fshd__expire_timesNones_fshd__timeoutstime(sself((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pys setup_timerŘs cCs!|itjo t|_ndS(N(sselfs_fshd__expire_timesNone(sself((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pys cancel_timerÜscCsa|itjodSnF|itiƒ}|djo d}n|djo d}n|SdS(Ni ii<(sselfs_fshd__expire_timesNonestimesleft(sselfsleft((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pystimeoutŕs    cCs'|itjo|itiƒjSdS(N(sselfs_fshd__expire_timesNonestime(sself((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pysexpiredëscCsZyxţnoö|iiƒ}|iiƒ\} } }| i|ii ƒƒd} x„|i i ƒD]s}|o|i |iƒ o d}n|i |iƒ\}} } }| |} | | } || }| |} q`W|otidƒn| djo|iƒn)|iƒ|iƒotidƒnti| | ||iƒƒ\} } }|ii| | |ƒ|ii ƒ| jo‚|iiƒ\}}|idƒd}x7|i i|ƒo|i |iƒ o|d}q°W|GdGHt|ƒ|i | cCsOy dk}Wntj otdƒSnXt|i|iƒddƒSdS(s:Return a list of file descriptors that might be open. Niii(sresources ImportErrorsranges getrlimits RLIMIT_NOFILE(sresource((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pysopen_fdsWs  cCsBtiidƒ|djotiidƒnti|ƒdS(Nshfshd: usage: fshd [options] host fshd { -h | --help } fshd { -V | --version } isGOptions: -b --background Run in the background. -r method Use ``method'' (e.g. ``rsh'') instead of ssh. -l login Log in as user ``login''. -T --timeout=timeout Set idle timeout (in seconds); exit when no session has existed for this long. 0 disables the timeout. (ssyssstderrswritesretsexit(sret((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pysusagebs  cCs‹d}t} d}d} d}ti}y2t i t i ddddddgƒ\}}Wn?t ij o0}t iit|ƒd ƒt idƒnXxü|D]ô\}}|d joti|ƒ}q˘|d jo|} d}q˘|d jp |d jo d}q˘|djp |djo d} q˘|djp |djotdƒq˘|djp |djoti|ƒ}q˘dpt‚q˘W| otidƒnt|ƒdjotdƒn| tjotiƒ} nxktƒD]`} | djoMyt!i"| ƒWqZt!ij o&\}} |t%i&jo‚qVqZXqúqúWt'|d|| |||ƒ} | i)ƒdS(Nssshiis hr:l:bVT:sversionshelps backgroundstimeout=s s-rs-ls-bs --backgrounds-Vs --versions-hs--helps-Ts --timeoutsfshdi(*smethodsNoneslogins use_l_flags print_versionsb_flags fshconfigsdefault_fshd_timeoutstimeoutsgetoptssyssargvsoptssargsserrorsmsgsstderrswritesstrsexitsoptsvalsfshlibs shell_unquotesusagesstringsatofsAssertionErrorslensgetpasssgetusersopen_fdssisossclosesenosemsgserrnosEBADFsfshdssstoploop(sb_flagsvalsenosmethodsoptstimeoutsargssmsgs use_l_flagsisemsgs print_versionsssloginsopts((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pysmaintsX          s__main__(serrnosgetoptsgetpasssossselectssocketsstatsstringssysstimesfshlibs fshconfigsremotesclientsfshds backgroundsopen_fdssusagesmains__name__(ssyssstatsremotessocketsfshds fshconfigserrnosfshlibsgetpasssopen_fdssclients backgroundstimesusagesgetoptsmainsossselectsstring((s4/mnt/gmirror/ports/security/fsh/work/fsh-1.2/fshd.pys?s(            X= #  0