]> git.ipfire.org Git - thirdparty/xtables-addons.git/commitdiff
ipp2p: kazaa code cleanup
authorJan Engelhardt <jengelh@medozas.de>
Tue, 25 Nov 2008 23:36:45 +0000 (00:36 +0100)
committerJan Engelhardt <jengelh@medozas.de>
Tue, 25 Nov 2008 23:46:44 +0000 (00:46 +0100)
extensions/xt_ipp2p.c

index 5ea367c1eee2b668cf5fa9770cfcc2699dcea33d..5f25582288d858c141decf8364cb42d7d84b3597 100644 (file)
@@ -600,24 +600,28 @@ search_all_gnu(const unsigned char *payload, const unsigned int plen)
 static unsigned int
 search_all_kazaa(const unsigned char *payload, const unsigned int plen)
 {
-       if (payload[plen-2] == 0x0d && payload[plen-1] == 0x0a) {
-               if (memcmp(payload, "GIVE ", 5) == 0)
-                       return IPP2P_KAZAA * 100 + 1;
-
-               if (memcmp(payload, "GET /", 5) == 0) {
-                       uint16_t c = 8;
-                       const uint16_t end = plen - 22;
+       if (payload[plen-2] != 0x0d || payload[plen-1] != 0x0a)
+               return 0;
 
-                       while (c < end) {
-                               if (payload[c] == 0x0a &&
-                                   payload[c+1] == 0x0d &&
-                                   (memcmp(&payload[c+2], "X-Kazaa-Username: ", 18) == 0 ||
-                                   memcmp(&payload[c+2], "User-Agent: PeerEnabler/", 24) == 0))
-                                       return IPP2P_KAZAA * 100 + 2;
-                               c++;
-                       }
+       if (memcmp(payload, "GIVE ", 5) == 0)
+               return IPP2P_KAZAA * 100 + 1;
+
+       if (memcmp(payload, "GET /", 5) == 0) {
+               uint16_t c = 8;
+               const uint16_t end = plen - 22;
+
+               for (c = 8; c < end; ++c) {
+                       if (payload[c] != 0x0a)
+                               continue;
+                       if (payload[c+1] != 0x0d)
+                               continue;
+                       if (memcmp(&payload[c+2], "X-Kazaa-Username: ", 18) == 0)
+                               return IPP2P_KAZAA * 100 + 2;
+                       if (memcmp(&payload[c+2], "User-Agent: PeerEnabler/", 24) == 0)
+                               return IPP2P_KAZAA * 100 + 2;
                }
        }
+
        return 0;
 }