ó
Fü½cc           @   s
  d  Z  d d l Z d d l m Z m Z m Z d d l m Z d d l m	 Z	 d d l
 m Z d d l m Z g  Z x} e j D]r Z y@ e j d ƒ r§ e d  d	 Z n  e j e j e e j ƒ ƒ Wq~ e j k
 rï Z e d
 d e e ƒ q~ Xq~ Wd „  Z d „  Z d S(   s*   Cleanse certain headers from all messages.iÿÿÿÿN(   t
   formataddrt   getaddressest	   parseaddr(   t   mm_cfg(   t   unique_message_id(   t   syslog(   t   uheadert   :t   $t   errors6   ANONYMOUS_LIST_KEEP_HEADERS: ignored bad regexp %s: %sc         C   s[   xT |  j  ƒ  D]F } t } x' t D] } | j | ƒ r  t } Pq  q  W| s |  | =q q Wd  S(   N(   t   keyst   Falset   crest   searcht   True(   t   msgt   hdrt   keept   cre(    (    s7   /export/web/mailman/mailman/Mailman/Handlers/Cleanse.pyt   remove_nonkeepers(   s    c         C   s^  | d =| d =| d =| d =| d =| j  ƒ  | d <|  j r>t d d |  j ƒ  | j d	 ƒ ƒ | d	 =| d
 =| d =| d =| d =| d =| d =| d =t |  ƒ | d <| d =t | ƒ t t |  |  j	 d ƒ ƒ } t
 | |  j ƒ  f ƒ | d <|  j ƒ  | d <| j ƒ  } | r>t j d |  j ƒ  | ƒ } | j | ƒ q>n  | d =| d =| d =| d =d  S(   Nt   approvedt   approves
   x-approveds	   x-approvet   urgentt   original_sendert   posts   post to %s from %s anonymizedt   froms   reply-tot   sendert   organizations   return-paths   x-originating-emailt   receiveds
   message-ids
   Message-IDs   x-envelope-fromt   Froms   Reply-Tos   \S*@\S*s   return-receipt-tos   disposition-notification-tos   x-confirm-reading-tos   x-pmrqc(   t
   get_sendert   anonymous_listR   t   internal_namet   getR   R   t   strR   t   descriptionR    t   GetListEmailt   get_unixfromt   ret   subt   set_unixfrom(   t   mlistR   t   msgdatat   i18ndesct   uf(    (    s7   /export/web/mailman/mailman/Mailman/Handlers/Cleanse.pyt   process3   s>    		
(   t   __doc__R&   t   email.UtilsR    R   R   t   MailmanR   t   Mailman.UtilsR   t   Mailman.Logging.SyslogR   t   Mailman.Handlers.CookHeadersR   R   t   ANONYMOUS_LIST_KEEP_HEADERSt   regexpt   endswitht   appendt   compilet
   IGNORECASER	   t   eR   R-   (    (    (    s7   /export/web/mailman/mailman/Mailman/Handlers/Cleanse.pyt   <module>   s$    	