From 2c4ddb6620101ebad2bff0c007a99aea97a15de1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Ter=C3=A4s?= Date: Thu, 19 Aug 2010 13:40:31 +0300 Subject: filter: properly filter ipv4 address form urls properly match them against db data. --- blob.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'blob.c') diff --git a/blob.c b/blob.c index 81722d2..f6daef1 100644 --- a/blob.c +++ b/blob.c @@ -52,6 +52,24 @@ int blob_cmp(blob_t a, blob_t b) return memcmp(a.ptr, b.ptr, a.len); } +unsigned long blob_inet_addr(blob_t b) +{ + unsigned long ip = 0; + int i; + + for (i = 0; i < 3; i++) { + ip += blob_pull_uint(&b, 10); + ip <<= 8; + if (!blob_pull_matching(&b, BLOB_STR("."))) + return 0; + } + ip += blob_pull_uint(&b, 10); + if (b.len != 0) + return 0; + return ip; +} + + blob_t blob_pushed(blob_t buffer, blob_t left) { if (buffer.ptr + buffer.len != left.ptr + left.len) -- cgit v1.2.3