]> git.ipfire.org Git - thirdparty/xtables-addons.git/commitdiff
pknock: store peer address in network byte order
authorJan Rafaj <jr+netfilter-devel@cedric.unob.cz>
Tue, 1 Sep 2009 17:52:48 +0000 (19:52 +0200)
committerJan Engelhardt <jengelh@medozas.de>
Sat, 3 Oct 2009 22:42:13 +0000 (00:42 +0200)
The conversions from and to host order can be saved, as nothing
really depends on them.

extensions/xt_pknock.c

index fa0ae2c37cd1d0989e8b0e6f42b3869b8527ff50..5efa94278629b4d18f756cc1bbf8e758efabae48 100644 (file)
@@ -257,7 +257,6 @@ pknock_seq_show(struct seq_file *s, void *v)
        const struct list_head *pos, *n;
        const struct peer *peer;
        unsigned long expir_time;
-        uint32_t ip;
 
        const struct list_head *peer_head = v;
 
@@ -266,12 +265,11 @@ pknock_seq_show(struct seq_file *s, void *v)
 
        list_for_each_safe(pos, n, peer_head) {
                peer = list_entry(pos, struct peer, head);
-               ip = htonl(peer->ip);
                expir_time = time_before(jiffies/HZ,
                                                peer->timestamp + rule->max_time)
                                ? ((peer->timestamp + rule->max_time)-(jiffies/HZ)) : 0;
 
-               seq_printf(s, "src=%u.%u.%u.%u ", NIPQUAD(ip));
+               seq_printf(s, "src=%u.%u.%u.%u ", NIPQUAD(peer->ip));
                seq_printf(s, "proto=%s ", (peer->proto == IPPROTO_TCP) ?
                                                 "TCP" : "UDP");
                seq_printf(s, "status=%s ", status_itoa(peer->status));
@@ -550,8 +548,6 @@ static struct peer *get_peer(struct xt_pknock_rule *rule, uint32_t ip)
        struct list_head *pos, *n;
        unsigned int hash;
 
-       ip = ntohl(ip);
-
        hash = pknock_hash(&ip, sizeof(ip), ipt_pknock_hash_rnd, peer_hashsize);
 
        list_for_each_safe(pos, n, &rule->peer_head[hash]) {
@@ -590,7 +586,7 @@ static struct peer *new_peer(uint32_t ip, uint8_t proto)
        }
 
        INIT_LIST_HEAD(&peer->head);
-       peer->ip        = ntohl(ip);
+       peer->ip        = ip;
        peer->proto     = proto;
        peer->timestamp = jiffies/HZ;
        peer->login_min = 0;
@@ -832,7 +828,7 @@ pass_security(struct peer *peer, const struct xt_pknock_mtinfo *info,
        }
        /* Check for OPEN secret */
        if (!has_secret(info->open_secret,
-                                       info->open_secret_len, htonl(peer->ip),
+                                       info->open_secret_len, peer->ip,
                                        payload, payload_len))
                return false;
 
@@ -930,7 +926,7 @@ is_close_knock(const struct peer *peer, const struct xt_pknock_mtinfo *info,
 {
        /* Check for CLOSE secret. */
        if (has_secret(info->close_secret,
-                               info->close_secret_len, htonl(peer->ip),
+                               info->close_secret_len, peer->ip,
                                payload, payload_len))
        {
                pk_debug("RESET", peer);