a ťfE(@sZddlZddlZddlZddlZddlZddlZddlmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZddlZejddZejddZddZd d Zd d Zd dZddZddZddZ ddZ!ddZ"ddZ#ddZ$ddZ%dd Z&d!d"Z'd#d$Z(d%d&Z)d'd(Z*d)d*Z+d+d,Z,ej-d-krBe.Z/ne0Z/d.d/Z1d0d1Z2dS)2N)bootedis_fifo_is_fifo is_socket _is_socketis_socket_inet_is_socket_inetis_socket_unix_is_socket_unixis_socket_sockaddr_is_socket_sockaddris_mq_is_mq listen_fdsnotifyc csJz dVWn:tyD}z"|jtjkr.tWYd}~n d}~00dSN)OSErrorerrnoZENOSYSpytestskip)er>/usr/lib64/python3.9/site-packages/systemd/test/test_daemon.py skip_enosyss   rccsLt|}z"|VW|d|dn|d|d0dS)Nr)socketZ socketpairclose)Zfamilypairrrrclosing_socketpairs   rcCs*tjdrts&Jntdvs&JdS)Nz/run/systemd/system>FT)ospathexistsrrrrr test_booted&s  r"cCsJ|dj}t|t|tjtjB}t|ds8Jt||sFJdS)N test.fifo) joinstrpathposixmkfiforopenO_RDONLY O_NONBLOCKr)tmpdirr fdrrr test__is_fifo.s   r-cCsN|d}|d|j}t|tjtjB}t|drr?rrr_is_mq_wrapperps  rCc CsRttj0}|D]}t|r$Jt|r0Jt|rJtgksLJdS)N1r\r]Frardrrrrtest_listen_fds_default_unsets  rjcCstjddtddusJt$tdgddus:JWdn1sN0YtdddgdduspJtdtddusJtdtd d dusJdS) N NOTIFY_SOCKETREADY=1F FDSTORE=1fdsrpidrrrro)rrepoprrrgrrrrtest_notify_no_sockets2rv)rac CsPdtjd<tttdWdn1s20YttBttdgdWdn1sp0YWdn1s0Ytt tdddgdWdn1s0Ytt tdtdWdn1s0Ytt"tdtd d Wdn1sB0YdS) Nz /dev/nullrkrlrmrnrrprqrsrt)rrerr5connection_errorrrrgrrrrtest_notify_bad_sockets  & H . 0 rxc Cs |dj}ttjtj}z||Wn4tjy^}ztd|WYd}~n d}~00t tdd}| tj |d|t j d<tdsJt tdgd sJWdn1s0Ytddd gd sJtdt d sJtdt d d sJdS)Nrzfailed to bind socket (%s) SO_PASSCREDrrkrlrmrnrprqrsrt)r$r%rrDrKrSrArZxfailgetattrZ setsockoptZ SOL_SOCKETrrerrrg)r+r rGrryrrrtest_notify_with_socket!s $   .r|)3sysrr&rrQrZsystemd.daemonrrrrrrrr r r r r rrrrcontextmanagerrrr"r-r2r7r:r;r<rBrCrHrMrWrXrZr[r_rhrjrv version_infoConnectionRefusedErrorrwrrxr|rrrrsFD        &