
    b
                        d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlZ ej        d          Z ej        e          Ze                    e           e                    ddd	d
            ej        e          Ze                    e            ee          Ze                    e           e                                \  ZZe                                ae                    t6                    aej        a ee          dk     r$e                                   e j!        d           ed          a"t:          #                    ej$                    G d de	          Z% ee&e           dS )    N)credentials)dns)SubunitOptionsTestProgram)DNSTestz$dns_invalid.py <server ip> [options]z	--timeoutinttimeoutz Specify timeout for DNS requests)typedesthelp   c                   $     e Zd Z fdZd Z xZS )TestBrokenQueriesc                     t          t          |                                            t          | _        t          | _        t
          | _        t          | _        d S )N)superr   setUp	server_iplpcredsr	   )self	__class__s    9/usr/lib/python3/dist-packages/samba/tests/dns_invalid.pyr   zTestBrokenQueries.setUp9   s@    &&,,..."
    c                    |                      t          j                  }g }d|                                 z  }|                     |t          j        t          j                  }t          d|j        z             |	                    |           | 
                    ||           |                     |t                    \  }}|                     |t          j                   dS )z=Check the server refuses invalid characters in the query nameu   ¨.%szasking for %s)hostN)make_name_packetr   DNS_OPCODE_QUERYget_dns_domainmake_name_questionDNS_QTYPE_ADNS_QCLASS_INprintnameappendfinish_name_packetdns_transaction_udpr   assert_dns_rcode_equalsDNS_RCODE_NXDOMAIN)r   p	questionsr#   qresponseresponse_packets          r   test_invalid_chars_in_namez,TestBrokenQueries.test_invalid_chars_in_nameA   s    !!#"677	$t':':'<'<<##D#/3;LMMo()))9---&*&>&>qy&>&Q&Q#?$$Xs/EFFFFFr   )__name__
__module____qualname__r   r.   __classcell__)r   s   @r   r   r   8   sN            G G G G G G Gr   r   )moduleopts)'syssambar   samba.dcerpcr   samba.tests.subunitrunr   r   samba.tests.dns_baser   samba.getoptgetoptoptionsoptparseOptionParserparserSambaOptions	sambaoptsadd_option_group
add_optionCredentialsOptionscredoptssubunitopts
parse_argsr4   argsget_loadparmr   get_credentialsr   r	   lenprint_usageexitr   set_krb_forwardableNO_KRB_FORWARDABLEr   r/    r   r   <module>rQ      s  $ 


             > > > > > > > > ( ( ( ( ( (       		E	F	F G ((	   	 " " "   +E	9  ; ; ; &7%f--    ! ! !nV$$    $ $ $  
d  $$
,3t99q==
CHQKKKG	   +8 9 9 9G G G G G G G G0 8+ . . . . . .r   