]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
fix compatibility with mangle2hooks and mangle5hooks
authorHarald Welte <laforge@gnumonks.org>
Wed, 13 Feb 2002 22:42:52 +0000 (22:42 +0000)
committerHarald Welte <laforge@gnumonks.org>
Wed, 13 Feb 2002 22:42:52 +0000 (22:42 +0000)
libiptc/libip4tc.c
libiptc/libip6tc.c

index 3fecc43ff6178aa88b6816eaa5b1c993022dac41..1dc414d22a9cf8cd53bf4e39eae592a16ac4ab40 100644 (file)
@@ -386,9 +386,9 @@ do_check(TC_HANDLE_T h, unsigned int line)
                 * two mangle hooks, linux >= 2.4.18-pre6 has five mangle hooks
                 * */
                assert((h->info.valid_hooks &
-                       ~(1 << NF_IP_LOCAL_IN)
+                       ~(1 << NF_IP_LOCAL_IN
                          | 1 << NF_IP_FORWARD
-                         | 1 << NF_IP_POST_ROUTING)
+                         | 1 << NF_IP_POST_ROUTING))
                       == (1 << NF_IP_PRE_ROUTING
                           | 1 << NF_IP_LOCAL_OUT));
 
@@ -397,13 +397,13 @@ do_check(TC_HANDLE_T h, unsigned int line)
 
                n = get_chain_end(h, 0);
 
-               if (h->info.valid_hooks & NF_IP_LOCAL_IN) {
+               if (h->info.valid_hooks & (1 << NF_IP_LOCAL_IN)) {
                        n += get_entry(h, n)->next_offset;
                        assert(h->info.hook_entry[NF_IP_LOCAL_IN] == n);
                        n = get_chain_end(h, n);
                }
 
-               if (h->info.valid_hooks & NF_IP_FORWARD) {
+               if (h->info.valid_hooks & (1 << NF_IP_FORWARD)) {
                        n += get_entry(h, n)->next_offset;
                        assert(h->info.hook_entry[NF_IP_FORWARD] == n);
                        n = get_chain_end(h, n);
@@ -413,7 +413,7 @@ do_check(TC_HANDLE_T h, unsigned int line)
                assert(h->info.hook_entry[NF_IP_LOCAL_OUT] == n);
                user_offset = h->info.hook_entry[NF_IP_LOCAL_OUT];
 
-               if (h->info.valid_hooks & NF_IP_POST_ROUTING) {
+               if (h->info.valid_hooks & (1 << NF_IP_POST_ROUTING)) {
                        n = get_chain_end(h, n);
                        n += get_entry(h, n)->next_offset;
                        assert(h->info.hook_entry[NF_IP_POST_ROUTING] == n);
@@ -452,8 +452,8 @@ do_check(TC_HANDLE_T h, unsigned int line)
                assert(unconditional(&e->ip));
                assert(e->target_offset == sizeof(*e));
                t = (STRUCT_STANDARD_TARGET *)GET_TARGET(e);
-               assert(t->target.u.target_size == IPT_ALIGN(sizeof(*t)));
-               assert(e->next_offset == sizeof(*e) + IPT_ALIGN(sizeof(*t)));
+               assert(t->target.u.target_size == ALIGN(sizeof(*t)));
+               assert(e->next_offset == sizeof(*e) + ALIGN(sizeof(*t)));
 
                assert(strcmp(t->target.u.user.name, STANDARD_TARGET)==0);
                assert(t->verdict == -NF_DROP-1 || t->verdict == -NF_ACCEPT-1);
@@ -485,6 +485,6 @@ do_check(TC_HANDLE_T h, unsigned int line)
        /* Final entry must be error node */
        assert(strcmp(GET_TARGET(index2entry(h, h->new_number-1))
                      ->u.user.name,
-                     IPT_ERROR_TARGET) == 0);
+                     ERROR_TARGET) == 0);
 }
 #endif /*IPTC_DEBUG*/
index cd35bbe95fe5d8c4d76d79880d84343096d9f821..6f6fa6c7bade036cfce27335fa45595f4ec472b7 100644 (file)
@@ -343,13 +343,13 @@ do_check(TC_HANDLE_T h, unsigned int line)
 
                n = get_chain_end(h, 0);
 
-               if (h->info.valid_hooks & NF_IP6_LOCAL_IN) {
+               if (h->info.valid_hooks & (1 << NF_IP6_LOCAL_IN)) {
                        n += get_entry(h, n)->next_offset;
                        assert(h->info.hook_entry[NF_IP6_LOCAL_IN] == n);
                        n = get_chain_end(h, n);
                }
 
-               if (h->info.valid_hooks & NF_IP6_FORWARD) {
+               if (h->info.valid_hooks & (1 << NF_IP6_FORWARD)) {
                        n += get_entry(h, n)->next_offset;
                        assert(h->info.hook_entry[NF_IP6_FORWARD] == n);
                        n = get_chain_end(h, n);
@@ -359,14 +359,16 @@ do_check(TC_HANDLE_T h, unsigned int line)
                assert(h->info.hook_entry[NF_IP6_LOCAL_OUT] == n);
                user_offset = h->info.hook_entry[NF_IP6_LOCAL_OUT];
 
-               if (h->info.valid_hooks & NF_IP6_POST_ROUTING) {
+               if (h->info.valid_hooks & (1 << NF_IP6_POST_ROUTING)) {
                        n = get_chain_end(h, n);
                        n += get_entry(h, n)->next_offset;
                        assert(h->info.hook_entry[NF_IP6_POST_ROUTING] == n);
                        user_offset = h->info.hook_entry[NF_IP6_POST_ROUTING];
                }
-       } else
+       } else {
+                fprintf(stderr, "Unknown table `%s'\n", h->info.name);
                abort();
+       }
 
        /* User chain == end of last builtin + policy entry */
        user_offset = get_chain_end(h, user_offset);
@@ -387,6 +389,8 @@ do_check(TC_HANDLE_T h, unsigned int line)
                assert(unconditional(&e->ipv6));
                assert(e->target_offset == sizeof(*e));
                t = (STRUCT_STANDARD_TARGET *)GET_TARGET(e);
+               printf("target_size=%u, align=%u\n",
+                       t->target.u.target_size, ALIGN(sizeof(*t)));
                assert(t->target.u.target_size == ALIGN(sizeof(*t)));
                assert(e->next_offset == sizeof(*e) + ALIGN(sizeof(*t)));
 
@@ -413,7 +417,7 @@ do_check(TC_HANDLE_T h, unsigned int line)
 
 #if 0
        /* Check all the entries. */
-       ENTRY_ITERATE(h->entries.entries, h->entries.size,
+       ENTRY_ITERATE(h->entries.entrytable, h->entries.size,
                      check_entry, &i, &n, user_offset, &was_return, h);
 
        assert(i == h->new_number);