+
    QDb  c                   sd   ^ RI t ^ RIt^ RIt^ RI5  ! R R4      t]R8X  d    ! R R4      tR]! 4       R	]! 4       /t^ R
I	H
t
 ]
! RR7        ! R R4      t^ RIHt ^ RIHt ]P                  ! 4       t]! R4       ]P$                  ! ]! ]]4      P&                  4       ]P'                  4        R# R# )i    N)Z*c                   sD   a  ] tR t^t o R tR tR tR tR tR t	Rt
V tR# )	DNSSDHostNamesResolverc                sd    Wn         \        V4      V n        / V n        \	        R V ,          4       R# )z+%sN)_deviceslen_unresolved_device_uri_by_name
debugprint)selfdevicess   &&0/usr/share/system-config-printer/dnssdresolve.py__init__ZDNSSDHostNamesResolver.__init__   s'    =#% EDL!    c                s*    \        R V ,          4       R# )z-%sN)r   r      &r   __del__ZDNSSDHostNamesResolver.__del__    s    EDL!r
   c                s  a a VS n         \        P                  ! 4       pV'       g   V! . 4       S =S = R # S P                  P	                  4        EFA  w  opSP                  R4      '       g   S ;P                  ^,          un        K9  \        P                  P                  S4      pVP                  pVP                  R^4      p\        V4      ^8w  d   S P                  4        K  Vw  rxr\        P                  P                  V4      pVRV	,           ,          p VP                  RR4      p\        P                   ! VR4      pSS P"                  WxV
3&   \%        RV,          4       VP'                  R
R
WxV
R
^ S P(                  V V3R lR7	       EKD  	  R #   \        P*                   d8   p\%        R	\-        T4      ,          4       S P                  4         R p?EK  R p?ii ; i)Nzdnssd://.zorg.freedesktop.AvahiZ/zorg.freedesktop.Avahi.ServerzResolving address for %sc                 s(   < SP                  SV 4      # N)_error)er   uris   &r   Z<lambda>Z0DNSSDHostNamesResolver.resolve.<locals>.<lambda>J   s    ,0KKa,@r
   )reply_handlerZerror_handlerzFailed to resolve address: %s)_reply_handlerdbusZ	SystemBusr   ZitemsZ
startswithr   urllibZparseZurlparseZnetlocZrsplitr   	_resolvedZunquoteZ
get_objectZ	Interfacer   r   ZResolveService_replyZDBusExceptionrepr)r   r   ZbusZdeviceZresulthostnameZelementsnamestypeprotocoldomainZobjZserverr   r   s   f&            @r   resolveZDNSSDHostNamesResolver.resolve#   s   +nn2#==..1KC>>:..  A%  \\**C0F}}HQ/HH~"!,4)D<<''.DS8^#E"nn&=sC)GIBE(($v)>?6AB%%r2(,V(*A6:kk7A	 & B1 2< %% ";dAhFG!!"s   A4FG#,+GG#c                s    V ;P                   ^,          un         V P                   ^ 8X  d-   \        R4       V P                  V P                  4       V =V =R# R# )i   zAll addresses resolvedN)r   r   r   r   r   r   r   r   Z DNSSDHostNamesResolver._resolvedP   sL    Aq 01/#	 !r
   c                s   V P                   W4V3,          pWP                  V,          n        TpVP                  R 4      pVR8w  d   VRV p\	        V: RV: RV: R24       WP                  V,          n        V P                  4        R# )r   Nz is at z (Z)r   )r   r   addressZfindr   r   r   )r   Z	interfacer   r   r   r   ZhostZ	aprotocolr!   ZportZtxtZflagsr   r   Zps   &&&&&&&&&&&&   r   r   ZDNSSDHostNamesResolver._replyX   ss    &&V'<=%,c"MM#7|H#wAB&.c#r
   c                s^    \        R V: R\        V4      : 24       V P                  4        R# )zError resolving z: N)r   r   r   )r   r   Zerror   &&&r   r   ZDNSSDHostNamesResolver._errord   s    T5\BCr
   )r   r   r   r   N)__name__
__module____qualname____firstlineno__r	   r   r    r   r   r   __static_attributes____classdictcell__Z__classdict__   @r   r    r       s)     ""+"Z$
 r
   r    Z__main__c                   s&   a  ] tR t^it o R tRtV tR# )Devicec                s:     R V P                   ,          #     R# ; i)z<Device @ %s>z<Device>)r!   r   r   r   __repr__ZDevice.__repr__j   s     "&55"!s     N)r#   r$   r%   r&   r,   r'   r(   r)   r*   r   r+   r+   i   s     	" 	"r
   r+   z*dnssd://dlk-08E206-P1._printer._tcp.local/z dnssd://foo._printer._tcp.local/)DBusGMainLoopT)Zset_as_defaultc                   s2   a  ] tR t^ut o R tR tR tRtV tR# )Testc                s    Wn         W n        R # r   )_loopr   )r   loopr   r"   r   r	   ZTest.__init__v   s    J#Mr
   c                sh    \        V P                  4      pVP                  V P                  R 7       R# ))r   F)r    r   r    reply)r   Zrs   & r   runZTest.runz   s%    &6AIITZZI0r
   c                sP    \        V4       V P                  P                  4        R # r   )Zprintr0   Zquit)r   Zargss   &*r   r2   Z
Test.reply   s    $KJJOOr
   )r   r0   N)	r#   r$   r%   r&   r	   r3   r2   r'   r(   r)   r*   r   r/   r/   u   s     	$	
	 	r
   r/   )GObject)GLib)r   ZreZurllib.parser   Zdebugr    r#   r+   r   Z	dbus.glibr.   r/   Zgi.repositoryr4   r5   ZMainLoopr1   Zset_debuggingZidle_addr3   r-   r
   r   <module>r6      s   *   M M^ z" " <VX168=G'$'  &"D4MM4w'++,HHKA r
   