PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /usr/share/emacs/24.3/lisp/net
Viewing File: /usr/share/emacs/24.3/lisp/net/zeroconf.elc
;ELC ;;; Compiled by mockbuild@buildfarm01-new.corp.cloudlinux.com on Tue Nov 11 12:55:39 2025 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/net/zeroconf.el ;;; in Emacs version 24.3.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'dbus) #@41 Write messages during service discovery (defvar zeroconf-debug nil (#$ . 571)) #@39 The D-Bus name used to talk to Avahi. (defconst zeroconf-service-avahi "org.freedesktop.Avahi" (#$ . 656)) #@51 The D-Bus root object path used to talk to Avahi. (defconst zeroconf-path-avahi "/" (#$ . 769)) #@71 The D-Bus object path used to talk to the Avahi service type browser. (defvar zeroconf-path-avahi-service-type-browser nil (#$ . 871)) #@67 The D-Bus object paths used to talk to the Avahi service browser. (defvar zeroconf-path-avahi-service-browser-hash (make-hash-table :test 'equal) (#$ . 1012)) #@68 The D-Bus object paths used to talk to the Avahi service resolver. (defvar zeroconf-path-avahi-service-resolver-hash (make-hash-table :test 'equal) (#$ . 1177)) #@52 The D-Bus entry group interface exported by Avahi. (defconst zeroconf-interface-avahi-entry-group (concat zeroconf-service-avahi ".EntryGroup") (#$ . 1344)) #@47 The D-Bus server interface exported by Avahi. (defconst zeroconf-interface-avahi-server (concat zeroconf-service-avahi ".Server") (#$ . 1507)) #@61 The D-Bus service type browser interface exported by Avahi. (defconst zeroconf-interface-avahi-service-type-browser (concat zeroconf-service-avahi ".ServiceTypeBrowser") (#$ . 1656)) #@56 The D-Bus service browser interface exported by Avahi. (defconst zeroconf-interface-avahi-service-browser (concat zeroconf-service-avahi ".ServiceBrowser") (#$ . 1845)) #@57 The D-Bus service resolver interface exported by Avahi. (defconst zeroconf-interface-avahi-service-resolver (concat zeroconf-service-avahi ".ServiceResolver") (#$ . 2020)) #@32 Wildcard Avahi interface spec. (defconst zeroconf-avahi-interface-unspec -1 (#$ . 2198)) #@31 Wildcard Avahi protocol spec. (defconst zeroconf-avahi-protocol-unspec -1 (#$ . 2293)) #@38 Avahi INET4 address protocol family. (defconst zeroconf-avahi-protocol-inet4 0 (#$ . 2386)) #@38 Avahi INET6 address protocol family. (defconst zeroconf-avahi-protocol-inet6 1 (#$ . 2484)) #@21 Empty Avahi domain. (defconst zeroconf-avahi-domain-unspec "" (#$ . 2582)) #@40 Domain name services are resolved for. (defvar zeroconf-avahi-current-domain zeroconf-avahi-domain-unspec (#$ . 2663)) #@17 No Avahi flags. (defconst zeroconf-avahi-flags-unspec 0 (#$ . 2788)) #@1430 Hash table of discovered Avahi services. The key of an entry is the concatenation of the service name and service type of a discovered service. The value is the service itself. The format of a service is (INTERFACE PROTOCOL NAME TYPE DOMAIN FLAGS) The INTERFACE is a number, which represents the network interface the service is located at. The corresponding network interface name, like "eth0", can be retrieved with the function `zeroconf-get-interface-name'. PROTOCOL describes the used network protocol family the service can be accessed. `zeroconf-avahi-protocol-inet4' means INET4, `zeroconf-avahi-protocol-inet6' means INET6. An unspecified protocol family is coded with `zeroconf-avahi-protocol-unspec'. NAME is the string the service is known at Avahi. A service can be known under the same name for different service types. Each TYPE stands for a discovered service type of Avahi. The format is described in RFC 2782. It is of the form "_APPLICATION-PROTOCOL._TRANSPORT-PROTOCOL". TRANSPORT-PROTOCOL must be either "tcp" or "udp". APPLICATION-PROTOCOL must be a protocol name as specified in URL `http://www.dns-sd.org/ServiceTypes.html'. Typical service types are "_workstation._tcp" or "_printer._tcp". DOMAIN is the domain name the service is registered in, like "local". FLAGS, an integer, is used inside Avahi. When publishing a service (see `zeroconf-publish-service', the flag 0 is used. (defvar zeroconf-services-hash (make-hash-table :test 'equal) (#$ . 2865)) #@1120 Hash table of resolved Avahi services. The key of an entry is the concatenation of the service name and service type of a resolved service. The value is the service itself. The format of a service is (INTERFACE PROTOCOL NAME TYPE DOMAIN HOST APROTOCOL ADDRESS PORT TXT FLAGS) INTERFACE, PROTOCOL, NAME, TYPE, DOMAIN and FLAGS have the same meaning as in `zeroconf-services-hash'. HOST is the host name the service is registered. It is a fully qualified name, i.e., it contains DOMAIN. APROTOCOL stands for the network protocol family ADDRESS is encoded (`zeroconf-avahi-protocol-inet4' means INET4, `zeroconf-avahi-protocol-inet6' means INET6). It can be different from PROTOCOL, when an address resolution has been requested for another protocol family but the default one. ADDRESS is the service address, encoded according to the APROTOCOL network protocol family. PORT is the corresponding port the service can be reached on ADDRESS. TXT is an array of strings, describing additional attributes of the service. Usually, every string is a key=value pair. The supported keys depend on the service type. (defvar zeroconf-resolved-services-hash (make-hash-table :test 'equal) (#$ . 4377)) #@53 Returns all discovered Avahi service names as list. (defalias 'zeroconf-list-service-names #[nil "\302\303\304 \"\210)\207" [result zeroconf-services-hash nil maphash #[(key value) "\301\302\303!\"\207" [value add-to-list result zeroconf-service-name] 4]] 3 (#$ . 5586)]) #@53 Returns all discovered Avahi service types as list. (defalias 'zeroconf-list-service-types #[nil "\302\303\304 \"\210)\207" [result zeroconf-services-hash nil maphash #[(key value) "\301\302\303!\"\207" [value add-to-list result zeroconf-service-type] 4]] 3 (#$ . 5867)]) #@261 Returns all discovered Avahi services for a given service type TYPE. The service type is one of the returned values of `zeroconf-list-service-types'. The return value is a list (SERVICE1 SERVICE2 ...). See `zeroconf-services-hash' for the format of SERVICE. (defalias 'zeroconf-list-services #[(type) "\302\303\304 \"\210)\207" [result zeroconf-services-hash nil maphash #[(key value) "\302 !\232\205\f\303\304 \"\207" [type value zeroconf-service-type add-to-list result] 3]] 3 (#$ . 6149)]) #@86 Hash table of hooks for newly added services. The key of an entry is a service type. (defvar zeroconf-service-added-hooks-hash (make-hash-table :test 'equal) (#$ . 6654)) #@82 Hash table of hooks for removed services. The key of an entry is a service type. (defvar zeroconf-service-removed-hooks-hash (make-hash-table :test 'equal) (#$ . 6831)) #@741 Add FUNCTION to the hook of service type TYPE. EVENT must be either :new or :removed, indicating whether FUNCTION shall be called when a new service has been newly detected, or removed. FUNCTION must accept one argument SERVICE, which identifies the new service. Initially, when EVENT is :new, FUNCTION is called for all already detected services of service type TYPE. The attributes of SERVICE can be retrieved via the functions `zeroconf-service-interface' `zeroconf-service-protocol' `zeroconf-service-name' `zeroconf-service-type' `zeroconf-service-domain' `zeroconf-service-flags' `zeroconf-service-host' `zeroconf-service-aprotocol' `zeroconf-service-address' `zeroconf-service-port' `zeroconf-service-txt' (defalias 'zeroconf-service-add-hook #[(type event function) "\306\232\2036\307 \n\310#\311\303\f\"\210\312 \n#\210\313 !\310\211\2054@\f !\210A\211\204\"\310+\207\314\232\203P\307 \310#\311\303\f\"\210\312 #)\207\315\316!\207" [event type zeroconf-service-added-hooks-hash l-hook function service :new gethash nil add-hook puthash zeroconf-list-services :removed error "EVENT must be either `:new' or `:removed'" --dolist-tail-- zeroconf-service-removed-hooks-hash] 5 (#$ . 7007)]) #@156 Remove FUNCTION from the hook of service type TYPE. EVENT must be either :new or :removed and has to match the event type used when registering FUNCTION. (defalias 'zeroconf-service-remove-hook #[(type event function) "\306\232\203\n \202\307\232\203\n\202\310\311!\312\f \313#\314\305\"\210 \2030\315\f #\2024\316\f \"*\207" [event zeroconf-service-added-hooks-hash zeroconf-service-removed-hooks-hash table type l-hook :new :removed error "EVENT must be either `:new' or `:removed'" gethash nil remove-hook puthash remhash function] 4 (#$ . 8261)]) #@40 Returns the local host name as string. (defalias 'zeroconf-get-host #[nil "\303\304 \n\305%\207" [zeroconf-service-avahi zeroconf-path-avahi zeroconf-interface-avahi-server dbus-call-method :system "GetHostName"] 6 (#$ . 8835)]) #@36 Returns the domain name as string. (defalias 'zeroconf-get-domain #[nil "\303\304 \n\305%\207" [zeroconf-service-avahi zeroconf-path-avahi zeroconf-interface-avahi-server dbus-call-method :system "GetDomainName"] 6 (#$ . 9071)]) #@45 Returns the local host name FQDN as string. (defalias 'zeroconf-get-host-domain #[nil "\303\304 \n\305%\207" [zeroconf-service-avahi zeroconf-path-avahi zeroconf-interface-avahi-server dbus-call-method :system "GetHostNameFqdn"] 6 (#$ . 9307)]) #@57 Return the interface name of internal interface NUMBER. (defalias 'zeroconf-get-interface-name #[(number) "\304\305 \n\306\307 &\207" [zeroconf-service-avahi zeroconf-path-avahi zeroconf-interface-avahi-server number dbus-call-method :system "GetNetworkInterfaceNameByIndex" :int32] 8 (#$ . 9559)]) #@57 Return the internal interface number of interface NAME. (defalias 'zeroconf-get-interface-number #[(name) "\304\305 \n\306 &\207" [zeroconf-service-avahi zeroconf-path-avahi zeroconf-interface-avahi-server name dbus-call-method :system "GetNetworkInterfaceIndexByName"] 7 (#$ . 9866)]) #@205 Return the service description of service NAME as list. NAME must be a string. The service must be of service type TYPE. The resulting list has the format (INTERFACE PROTOCOL NAME TYPE DOMAIN FLAGS). (defalias 'zeroconf-get-service #[(name type) "\303\304 Q\n\305#\207" [name type zeroconf-services-hash gethash "/" nil] 4 (#$ . 10161)]) #@228 Return all service attributes SERVICE as list. NAME must be a string. The service must be of service type TYPE. The resulting list has the format (INTERFACE PROTOCOL NAME TYPE DOMAIN HOST APROTOCOL ADDRESS PORT TXT FLAGS). (defalias 'zeroconf-resolve-service #[(service) "\305!\306! \307\nQ\310 \f\311#\206\312\313\314\217+\207" [service name type key zeroconf-resolved-services-hash zeroconf-service-name zeroconf-service-type "/" gethash nil err (byte-code "\306\307 \n\310 \f \f \f&\f\3118\211\2030\312@!\240\210A\211\204\313#*\207" [zeroconf-service-avahi zeroconf-path-avahi zeroconf-interface-avahi-server zeroconf-avahi-interface-unspec zeroconf-avahi-protocol-unspec name dbus-call-method :system "ResolveService" 9 dbus-byte-array-to-string puthash type zeroconf-avahi-current-domain zeroconf-avahi-flags-unspec result elt key zeroconf-resolved-services-hash] 14) ((dbus-error (byte-code "\205\n\302 @ A\"\207" [dbus-debug err signal] 3)))] 4 (#$ . 10511)]) #@50 Return the internal interface number of SERVICE. (defalias 'zeroconf-service-interface #[(service) "@\207" [service] 1 (#$ . 11525)]) #@40 Return the protocol number of SERVICE. (defalias 'zeroconf-service-protocol #[(service) "A@\207" [service] 1 (#$ . 11666)]) #@37 Return the service name of SERVICE. (defalias 'zeroconf-service-name #[(service) "\3018\207" [service 2] 2 (#$ . 11797)]) #@34 Return the type name of SERVICE. (defalias 'zeroconf-service-type #[(service) "\3018\207" [service 3] 2 (#$ . 11926)]) #@36 Return the domain name of SERVICE. (defalias 'zeroconf-service-domain #[(service) "\3018\207" [service 4] 2 (#$ . 12052)]) #@30 Return the flags of SERVICE. (defalias 'zeroconf-service-flags #[(service) "\3018\207" [service 5] 2 (#$ . 12182)]) #@34 Return the host name of SERVICE. (defalias 'zeroconf-service-host #[(service) "\301\302!8\207" [service 5 zeroconf-resolve-service] 3 (#$ . 12305)]) #@41 Return the aprotocol number of SERVICE. (defalias 'zeroconf-service-aprotocol #[(service) "\301\302!8\207" [service 6 zeroconf-resolve-service] 3 (#$ . 12461)]) #@35 Return the IP address of SERVICE. (defalias 'zeroconf-service-address #[(service) "\301\302!8\207" [service 7 zeroconf-resolve-service] 3 (#$ . 12629)]) #@36 Return the port number of SERVICE. (defalias 'zeroconf-service-port #[(service) "\301\302!8\207" [service 8 zeroconf-resolve-service] 3 (#$ . 12789)]) #@37 Return the text strings of SERVICE. (defalias 'zeroconf-service-txt #[(service) "\301\302!8\207" [service 9 zeroconf-resolve-service] 3 (#$ . 12947)]) #@159 Instantiate an Avahi service type browser for domain DOMAIN. DOMAIN is a string, like "dns-sd.org" or "local". When DOMAIN is nil, the local domain is used. (defalias 'zeroconf-init #[(&optional domain) "\203 ;\205u\306\307 \"\205u\310\307 \n \311%\205u\312\206! \313!\210\313!\210\313!\210\313!\210\313!\210\313!\210\314 \315\312\211\203j@\316\307 \317&\210A\211\204O+\316\307 \n\320\317&\207" [domain zeroconf-service-avahi zeroconf-path-avahi zeroconf-interface-avahi-server zeroconf-path-avahi-service-type-browser zeroconf-avahi-domain-unspec dbus-ping :system dbus-call-method "GetVersionString" nil clrhash zeroconf-register-service-type-browser ("ItemNew" "ItemRemove" "Failure") dbus-register-signal zeroconf-service-type-browser-handler "StateChanged" zeroconf-avahi-current-domain zeroconf-path-avahi-service-browser-hash zeroconf-path-avahi-service-resolver-hash zeroconf-services-hash zeroconf-resolved-services-hash zeroconf-service-added-hooks-hash zeroconf-service-removed-hooks-hash object-path member --dolist-tail-- zeroconf-interface-avahi-service-type-browser] 8 (#$ . 13106)]) #@54 Register a service type browser at the Avahi daemon. (defalias 'zeroconf-register-service-type-browser #[nil "\206\306\307 \n \310\f  \n& \211\207" [zeroconf-path-avahi-service-type-browser zeroconf-service-avahi zeroconf-path-avahi zeroconf-interface-avahi-server zeroconf-avahi-interface-unspec zeroconf-avahi-protocol-unspec dbus-call-method :system "ServiceTypeBrowserNew" zeroconf-avahi-current-domain zeroconf-avahi-flags-unspec] 10 (#$ . 14261)]) #@62 Registered service type browser handler at the Avahi daemon. (defalias 'zeroconf-service-type-browser-handler #[(&rest val) "\203\f\306\307\310 !\n#\210\310 !\311\230\205:\312\313\n8!\314\315\211\2059 @\316\317 \f\320&\210 A\211\204\"\315+\207" [zeroconf-debug last-input-event val object-path member --dolist-tail-- message "zeroconf-service-type-browser-handler: %s %S" dbus-event-member-name "ItemNew" zeroconf-register-service-browser 2 ("ItemNew" "ItemRemove" "Failure") nil dbus-register-signal :system zeroconf-service-browser-handler zeroconf-service-avahi zeroconf-interface-avahi-service-browser] 8 (#$ . 14727)]) #@49 Register a service browser at the Avahi daemon. (defalias 'zeroconf-register-service-browser #[(type) "\306 \307#\206\310\311\312\n \f\313 \f &\n #\207" [type zeroconf-path-avahi-service-browser-hash zeroconf-service-avahi zeroconf-path-avahi zeroconf-interface-avahi-server zeroconf-avahi-interface-unspec gethash nil puthash dbus-call-method :system "ServiceBrowserNew" zeroconf-avahi-protocol-unspec zeroconf-avahi-current-domain zeroconf-avahi-flags-unspec] 13 (#$ . 15372)]) #@57 Registered service browser handler at the Avahi daemon. (defalias 'zeroconf-service-browser-handler #[(&rest val) "\203\f\306\307\310 !\n#\210\311\n!\312\n! \313\fQ\314\f\315#\314\f\315#\310 !\316\230\203?\317 \n#\210\320\321\n\"\202W\310 !\322\230\205W\323 \"\210\323 \"\210\320\324\n\"-\207" [zeroconf-debug last-input-event val name type key message "zeroconf-service-browser-handler: %s %S" dbus-event-member-name zeroconf-service-name zeroconf-service-type "/" gethash nil "ItemNew" puthash run-hook-with-args ahook "ItemRemove" remhash rhook zeroconf-service-added-hooks-hash zeroconf-service-removed-hooks-hash zeroconf-services-hash zeroconf-resolved-services-hash] 4 (#$ . 15867)]) #@50 Register a service resolver at the Avahi daemon. (defalias 'zeroconf-register-service-resolver #[(name type) "\306 Q\307\n \310#\206'\311\n\312\313\f  \314 &\f#)\207" [name type key zeroconf-path-avahi-service-resolver-hash zeroconf-service-avahi zeroconf-path-avahi "/" gethash nil puthash dbus-call-method :system "ServiceResolverNew" zeroconf-interface-avahi-server zeroconf-avahi-interface-unspec zeroconf-avahi-protocol-unspec zeroconf-avahi-current-domain zeroconf-avahi-flags-unspec zeroconf-resolved-services-hash] 15 (#$ . 16586)]) #@58 Registered service resolver handler at the Avahi daemon. (defalias 'zeroconf-service-resolver-handler #[(&rest val) "\3058\211\203 \306 @!\240\210 A\211\204)\n\203#\307\310\311 !#\210\311 !\312\230\2057\313\314!\315\316!Q\f#\207" [val elt zeroconf-debug last-input-event zeroconf-resolved-services-hash 9 dbus-byte-array-to-string message "zeroconf-service-resolver-handler: %s %S" dbus-event-member-name "Found" puthash zeroconf-service-name "/" zeroconf-service-type] 6 (#$ . 17150)]) #@113 Publish a service at the Avahi daemon. For the description of arguments, see `zeroconf-resolved-services-hash'. (defalias 'zeroconf-publish-service #[(name type domain host port address txt) "\306G!\203\f\307\310\"\210\306 G!\203\307\311 \"\210\306\nG!\203\"\312 \306 G!\203,\313 \f\2042\314\315\316 \317%\320\320\211\203a@\321\322\323!\"\210A\211\204K*\315\316  \324!\"# \n \325\f\326\327\"&\210\306$G!\204\232\315\316  \330!\"# $&\n\210\315\316  \331%*\207" [name type domain host port zeroconf-service-avahi zerop error "Invalid argument NAME: %s" "Invalid argument TYPE: %s" zeroconf-get-domain zeroconf-get-host-domain 0 dbus-call-method :system "EntryGroupNew" nil add-to-list result dbus-string-to-byte-array "AddService" :uint16 append (:array) "AddAddress" "Commit" zeroconf-path-avahi zeroconf-interface-avahi-server object-path txt elt --dolist-tail-- zeroconf-interface-avahi-entry-group zeroconf-avahi-interface-unspec zeroconf-avahi-protocol-unspec zeroconf-avahi-flags-unspec address] 19 (#$ . 17657)]) (provide 'zeroconf)