=OXc@sxdZddlZddlZddlZddlZddlZdZdefdYZdefdYZ dS(s2 Configuration file (aka ``ssh_config``) support. iNit SSHConfigcBs\eZdZejdZdZdZdZdZ dZ dZ dZ RS( s Representation of config information as stored in the format used by OpenSSH. Queries can be made via `lookup`. The format is described in OpenSSH's ``ssh_config`` man page. This class is provided primarily as a convenience to posix users (since the OpenSSH format is a de-facto standard on posix) but should work fine on Windows too. .. versionadded:: 1.6 s(\w+)(?:\s*=\s*|\s+)(.+)cCs g|_dS(s5 Create a new OpenSSH config object. N(t_config(tself((s3/usr/lib/python2.7/site-packages/paramiko/config.pyt__init__.scCsidgd6id6}x|D]}|j}| s|jdrLqntj|j|}|sztd|n|jdj}|jd}|dkr|jj |i|j |d6id6}q|dkr |jd kr d|d| Return a list of host_names from host value. sUnparsable host %sN(tshlexR<t ValueErrorR(RR((s3/usr/lib/python2.7/site-packages/paramiko/config.pyRs ( t__name__t __module__t__doc__RtcompileRRRR&R+RR"R(((s3/usr/lib/python2.7/site-packages/paramiko/config.pyR!s   / * JR=cBs#eZdZddZdZRS(s7 Returns the host's fqdn on request as string. cCsd|_||_||_dS(N(RRFRR(RRR((s3/usr/lib/python2.7/site-packages/paramiko/config.pyRs  c Cs|jdkr d}|jjddj}|dkry|dkrTtjntj}tj|j d|tj tj tj }x?|D]7}|\}}}} } | rd| kr| }PqqWWqtj k rqXn|dkrtj}n||_n|jS(Nt addressfamilytanytinetR3(RFRRtgetRR:tAF_INETtAF_INET6t getaddrinfoRt SOCK_DGRAMt IPPROTO_IPt AI_CANONNAMEtgaierrortgetfqdn( RRFtaddress_familytfamilytresultstrestaftsocktypetprotot canonnametsa((s3/usr/lib/python2.7/site-packages/paramiko/config.pyt__str__s2        N(RNRORPRRRg(((s3/usr/lib/python2.7/site-packages/paramiko/config.pyR=s ( RPR.R8RRLR:R7tobjectRR=(((s3/usr/lib/python2.7/site-packages/paramiko/config.pyts