a
    I_
                     @   s  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dZeeZee ejddd	d
d eeZee eeZee e \ZZe aetaejaeedk re   e !d ed  a"t#ej$ G dd de	Z%ee&ed 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                       s$   e Zd Z fddZdd Z  ZS )TestBrokenQueriesc                    s*   t t|   t| _t| _t| _t| _d S )N)superr   setUp	server_iplpcredsr   )self	__class__ 9/usr/lib/python3/dist-packages/samba/tests/dns_invalid.pyr   9   s
    zTestBrokenQueries.setUpc                 C   sv   |  tj}g }d|   }| |tjtj}td|j  |	| | 
|| | j|td\}}| |tj dS )z=Check the server refuses invalid characters in the query nameu   ¨.%szasking for %s)ZhostN)Zmake_name_packetr   ZDNS_OPCODE_QUERYZget_dns_domainZmake_name_questionZDNS_QTYPE_AZDNS_QCLASS_INprintnameappendZfinish_name_packetZdns_transaction_udpr   Zassert_dns_rcode_equalsZDNS_RCODE_NXDOMAIN)r   pZ	questionsr   qZresponseZresponse_packetr   r   r   test_invalid_chars_in_nameA   s    
z,TestBrokenQueries.test_invalid_chars_in_name)__name__
__module____qualname__r   r   __classcell__r   r   r   r   r   8   s   r   )moduleopts)'sysZsambar   Zsamba.dcerpcr   Zsamba.tests.subunitrunr   r   Zsamba.tests.dns_baser   Zsamba.getoptZgetoptZoptionsZoptparseZOptionParserparserZSambaOptionsZ	sambaoptsZadd_option_groupZ
add_optionZCredentialsOptionsZcredoptsZsubunitopts
parse_argsr#   argsZget_loadparmr   Zget_credentialsr   r   lenZprint_usageexitr   Zset_krb_forwardableZNO_KRB_FORWARDABLEr   r   r   r   r   r   <module>   s6   








