/[mailutils]/mailutils/libsieve/tests.c
ViewVC logotype

Diff of /mailutils/libsieve/tests.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.6 by gray, Tue Nov 19 14:03:52 2002 UTC revision 1.7 by gray, Wed Nov 20 12:30:28 2002 UTC
# Line 87  sieve_test_address (sieve_machine_t mach Line 87  sieve_test_address (sieve_machine_t mach
87  {  {
88    sieve_value_t *h, *v;    sieve_value_t *h, *v;
89    header_t header = NULL;    header_t header = NULL;
90    sieve_comparator_t comp = sieve_get_comparator (tags);    sieve_comparator_t comp = sieve_get_comparator (mach, tags);
91    struct address_closure clos;    struct address_closure clos;
92    int rc;    int rc;
93        
# Line 129  sieve_test_header (sieve_machine_t mach, Line 129  sieve_test_header (sieve_machine_t mach,
129  {  {
130    sieve_value_t *h, *v;    sieve_value_t *h, *v;
131    header_t header = NULL;    header_t header = NULL;
132    sieve_comparator_t comp = sieve_get_comparator (tags);    sieve_comparator_t comp = sieve_get_comparator (mach, tags);
133        
134    if (mach->debug_level & MU_SIEVE_DEBUG_TRACE)    if (mach->debug_level & MU_SIEVE_DEBUG_TRACE)
135      sieve_debug (mach, "HEADER\n");      sieve_debug (mach, "HEADER\n");
# Line 147  sieve_test_header (sieve_machine_t mach, Line 147  sieve_test_header (sieve_machine_t mach,
147        sieve_abort (mach);        sieve_abort (mach);
148      }      }
149    
150    message_get_header (sieve_get_message (mach), &header);    if (sieve_tag_lookup (tags, "mime", NULL))
151        {
152          int ismime = 0;
153    
154          message_is_multipart (mach->msg, &ismime);
155          if (ismime)
156            {
157              size_t i, nparts = 0;
158              
159              message_get_num_parts (mach->msg, &nparts);
160              for (i = 1; i <= nparts; i++)
161                {
162                  message_t message = NULL;
163    
164                  if (message_get_part (mach->msg, i, &message) == 0)
165                    {
166                      message_get_header (message, &header);
167                      if (sieve_vlist_compare (h, v, comp,
168                                               retrieve_header, header))
169                        return 1;
170                    }
171                }
172            }
173        }
174      message_get_header (mach->msg, &header);
175    return sieve_vlist_compare (h, v, comp, retrieve_header, header);    return sieve_vlist_compare (h, v, comp, retrieve_header, header);
176  }  }
177    
# Line 184  int Line 207  int
207  sieve_test_envelope (sieve_machine_t mach, list_t args, list_t tags)  sieve_test_envelope (sieve_machine_t mach, list_t args, list_t tags)
208  {  {
209    sieve_value_t *h, *v;    sieve_value_t *h, *v;
210    sieve_comparator_t comp = sieve_get_comparator (tags);    sieve_comparator_t comp = sieve_get_comparator (mach, tags);
211    struct address_closure clos;    struct address_closure clos;
212    int rc;    int rc;
213        
# Line 305  static sieve_tag_def_t size_tags[] = { Line 328  static sieve_tag_def_t size_tags[] = {
328    { NULL }    { NULL }
329  };  };
330    
331    static sieve_tag_def_t mime_tags[] = {
332      { "mime", SVT_VOID },
333      { NULL }
334    };
335    
336  #define ADDRESS_PART_GROUP \  #define ADDRESS_PART_GROUP \
337    { address_part_tags, NULL }    { address_part_tags, NULL }
338    
# Line 312  static sieve_tag_def_t size_tags[] = { Line 340  static sieve_tag_def_t size_tags[] = {
340    { match_part_tags, sieve_match_part_checker }    { match_part_tags, sieve_match_part_checker }
341    
342  #define SIZE_GROUP { size_tags, NULL }  #define SIZE_GROUP { size_tags, NULL }
343        
344    #define MIME_GROUP \
345      { mime_tags, NULL }
346    
347  sieve_tag_group_t address_tag_groups[] = {  sieve_tag_group_t address_tag_groups[] = {
348    ADDRESS_PART_GROUP,    ADDRESS_PART_GROUP,
349    MATCH_PART_GROUP,    MATCH_PART_GROUP,
# Line 348  sieve_data_type exists_req_args[] = { Line 379  sieve_data_type exists_req_args[] = {
379    
380  sieve_tag_group_t header_tag_groups[] = {  sieve_tag_group_t header_tag_groups[] = {
381    MATCH_PART_GROUP,    MATCH_PART_GROUP,
382      MIME_GROUP,
383    { NULL }    { NULL }
384  };  };
385    
386  void  void
387  sieve_register_standard_tests ()  sieve_register_standard_tests (sieve_machine_t mach)
388  {  {
389    sieve_register_test ("false", sieve_test_false, NULL, NULL, 1);    sieve_register_test (mach, "false", sieve_test_false, NULL, NULL, 1);
390    sieve_register_test ("true", sieve_test_true, NULL, NULL, 1);    sieve_register_test (mach, "true", sieve_test_true, NULL, NULL, 1);
391    sieve_register_test ("address", sieve_test_address,    sieve_register_test (mach, "address", sieve_test_address,
392                         address_req_args, address_tag_groups, 1);                         address_req_args, address_tag_groups, 1);
393    sieve_register_test ("size", sieve_test_size,    sieve_register_test (mach, "size", sieve_test_size,
394                         size_req_args, size_tag_groups, 1);                         size_req_args, size_tag_groups, 1);
395    sieve_register_test ("envelope", sieve_test_envelope,    sieve_register_test (mach, "envelope", sieve_test_envelope,
396                         address_req_args, envelope_tag_groups, 1);                         address_req_args, envelope_tag_groups, 1);
397    sieve_register_test ("exists", sieve_test_exists,    sieve_register_test (mach, "exists", sieve_test_exists,
398                         exists_req_args, NULL, 1);                         exists_req_args, NULL, 1);
399    sieve_register_test ("header", sieve_test_header,    sieve_register_test (mach, "header", sieve_test_header,
400                         address_req_args, header_tag_groups, 1);                         address_req_args, header_tag_groups, 1);
401  }  }

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26