3
4f                 @   s   d dl Z d dlZd dlZd dlT d dlZd dlZd dlmZ d dlZd dlT d dl	Z	d dl
Z
eZdZdd Zdd Zd	d
 Zdd Zde	je	j fddZdd Zdd Zdd Zed dS )    N)*)callz/home/c             C   sV   | j d}t|dkrNx:|D ],}|j rBt|tddkrBd}qqd}P qW nd}|S )N.   r      TF)splitlenisdigitintrange)ZaddressZip_addrires r   $/var/www/Lyra-HSL/cgi/global_func.pycfgValidate   s    

r   c             C   sn   d}d}t | }|t | }|dkr0|jd}n&|dkrD|jd}n|dkrV|jd}|d | t| }|S )	NZ0000z</msg>	   0c   Z00i  Z000)r   rfindstr)messageZlengthtailZlength_messagek
msg_lengthr   r   r   ccm_msg_length)   s    
r   c             C   s0   t | }dj|| }t|d}tjt|g}d S )Nz</msg>{0}{1}</msg>zutf-8)r   formatbytes
subprocessr   ZCGIpath)r   r   Z
socket_cmdZ
socket_msgZprocess1r   r   r   send_ccm_msg8   s    
r   c             C   st   d}t d d t|  d | }d}x0|dk rTtjj|r@d}q&|d }tjd q&W t|d	}|j }|j	  |S )
Nzccm_response.txtb'r   d   e      g?r)
ccm_response_pathr   ospathisfiletimesleepopenreadclose)uuidfilenameccm_response_filefileZfoZCcmResponser   r   r   get_ccm_responseD   s    

r2   r   c                s   dj  fddt| D S )N c             3   s   | ]}t j V  qd S )N)randomZchoice).0_)charsr   r   	<genexpr>Y   s    zid_generator.<locals>.<genexpr>)joinr   )sizer7   r   )r7   r   id_generatorX   s    r;   c              C   s
   t  } | S )N)r;   )Z
command_idr   r   r   get_ccm_command_id\   s    r<   c             C   s.   d}t d d t|  d | }tj| d S )Nzccm_response.txtr   r    )r%   r   r&   remove)r.   r/   r0   r   r   r   delete_ccm_responsea   s    r>   c             C   sd   yDt jddgdd}x(|j D ]}| |krd|krdadS qW dadS  t jk
r^   dadS X d S )	NZpsZauxT)Zuniversal_newlinesZgrepr#   r   F)r   Zcheck_output
splitlinesZCCMZCalledProcessError)Zprocess_nameoutputliner   r   r   is_ccm_runningj   s    rB   zmain.py)Zsocketsysr)   ZarrayZloggingr   r   r&   ZglobalSettingsstringr4   
DeviceNamedeviceZresponse_txt_pathr   r   r   r2   Zascii_uppercaseZdigitsr;   r<   r>   rB   r   r   r   r   <module>   s*   	