|
@@ -3355,10 +3355,13 @@ test_policy_summary_helper(const char *policy_str,
|
|
|
static void
|
|
|
test_policies(void)
|
|
|
{
|
|
|
+ int i;
|
|
|
smartlist_t *policy, *policy2;
|
|
|
addr_policy_t *p;
|
|
|
tor_addr_t tar;
|
|
|
config_line_t line;
|
|
|
+ smartlist_t *sm;
|
|
|
+ char *policy_str;
|
|
|
|
|
|
policy = smartlist_create();
|
|
|
|
|
@@ -3458,6 +3461,46 @@ test_policies(void)
|
|
|
"accept *:65535,"
|
|
|
"reject *:*",
|
|
|
"accept 1,3,65535");
|
|
|
+ /* holes */
|
|
|
+ test_policy_summary_helper("accept *:1,"
|
|
|
+ "accept *:3,"
|
|
|
+ "accept *:5,"
|
|
|
+ "accept *:7,"
|
|
|
+ "reject *:*",
|
|
|
+ "accept 1,3,5,7");
|
|
|
+ test_policy_summary_helper("reject *:1,"
|
|
|
+ "reject *:3,"
|
|
|
+ "reject *:5,"
|
|
|
+ "reject *:7,"
|
|
|
+ "accept *:*",
|
|
|
+ "reject 1,3,5,7");
|
|
|
+ /* truncation ports */
|
|
|
+ sm = smartlist_create();
|
|
|
+ for (i=1; i<2000; i+=2) {
|
|
|
+ char buf[POLICY_BUF_LEN];
|
|
|
+ tor_snprintf(buf, sizeof(buf), "reject *:%d", i);
|
|
|
+ smartlist_add(sm, tor_strdup(buf));
|
|
|
+ }
|
|
|
+ smartlist_add(sm, tor_strdup("accept *:*"));
|
|
|
+ policy_str = smartlist_join_strings(sm, ",", 0, NULL);
|
|
|
+ test_policy_summary_helper( policy_str,
|
|
|
+ "accept 2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,"
|
|
|
+ "46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,"
|
|
|
+ "92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,"
|
|
|
+ "130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,"
|
|
|
+ "166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,"
|
|
|
+ "202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,"
|
|
|
+ "238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,"
|
|
|
+ "274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,"
|
|
|
+ "310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,"
|
|
|
+ "346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,"
|
|
|
+ "382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,"
|
|
|
+ "418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,"
|
|
|
+ "454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,486,488,"
|
|
|
+ "490,492,494,496,498,500,502,504,506,508,510,512,514,516,518,520,522");
|
|
|
+ tor_free(policy_str);
|
|
|
+ SMARTLIST_FOREACH(sm, char *, s, tor_free(s));
|
|
|
+ smartlist_clear(sm);
|
|
|
}
|
|
|
|
|
|
static void
|