
    *i                         d dl Z d dlZd dlZd dl d dlZd dlZd dlmZ d dlZd dl d dl	Z	d dl
Z
eZdZd Zd Zd Zd Zd	e	j$                  e	j&                  z   fd
Zd Zd Zd Z ed       y)    N)*)callz/home/c                     | j                  d      }t        |      dk(  r7|D ]0  }|j                         rt        |      t	        dd      v rd}-d} |S  S d}|S )N.   r      TF)splitlenisdigitintrange)addressip_addriress       //var/www/backup/Lyra-HSL_RPi/cgi/global_func.pycfgValidater      sq    mmC G
7|q 	Ayy{s1vq#6 
 J	 J J    c                     d}d}t        |       }|t        |      z   }|dk  r|j                  d      }n-|dk  r|j                  d      }n|dk  r|j                  d      }|d  t        |      z   }|S )	N0000z</msg>	   0c   00i  000)r
   rfindstr)messagelengthtaillength_messagek
msg_lengths         r   ccm_msg_lengthr$   )   s    FD\N#CI-NLL	2	LL	3	LLC//Jr   c                     t        |       }dj                  ||       }t        |d      }t        j                  t
        |g      }y )Nz</msg>{0}{1}</msg>zutf-8)r$   formatbytes
subprocessr   CGIpath)r   r#   
socket_cmd
socket_msgprocess1s        r   send_ccm_msgr-   8   s?    (J
 &,,ZAJz'*J45Hr   c                 0   d}t         dz   dz   t        |       z   dz   |z   }d}|dk  rBt        j                  j	                  |      rd}n|dz   }t        j                  d       |dk  rBt        |d	      }|j                         }|j                          |S )
N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filefoCcmResponses         r   get_ccm_responserE   D   s    !H)#-c1#d);C?H D#:77>>+,D6DJJrN #: 
	%B'')KHHJr   r   c                 J    dj                  fdt        |       D              S )N c              3   H   K   | ]  }t        j                          y wN)randomchoice).0_charss     r   	<genexpr>zid_generator.<locals>.<genexpr>Y   s     =A6=='=s   ")joinr   )sizerN   s    `r   id_generatorrR   X   s    77=t===r   c                      t               } | S rI   )rR   )
command_ids    r   get_ccm_command_idrU   \   s    Jr   c                 n    d}t         dz   dz   t        |       z   dz   |z   }t        j                  |       y )Nr/   r0   r1   )r6   r   r7   remove)r?   r@   rA   s      r   delete_ccm_responserX   a   s9    !H)#-c1#d);C?H II r   c                     	 t        j                  ddgd      }|j                         D ]  }| |v sd|vsda y day# t         j                  $ r daY yw xY w)	NpsauxT)universal_newlinesgrepr4   r   F)r(   check_output
splitlinesCCMCalledProcessError)process_nameoutputlines      r   is_ccm_runningre   j   ss    
(($4P%%' 	Dt#d(:	 (( s    0A  A  A  A   AAzmain.py)socketsysr:   arrayloggingr(   r   r7   globalSettingsstringrJ   
DeviceNamedeviceresponse_txt_pathr   r$   r-   rE   ascii_uppercasedigitsrR   rU   rX   re    r   r   <module>rr      sy     
      	   	 &	6( v55E >
! y r   