more modularization
authorxchaos <xchaos@251d49ef-1d17-4917-a970-b30cf55b089b>
Thu, 11 Oct 2012 21:20:00 +0000 (21:20 +0000)
committerxchaos <xchaos@251d49ef-1d17-4917-a970-b30cf55b089b>
Thu, 11 Oct 2012 21:20:00 +0000 (21:20 +0000)
git-svn-id: https://dev.arachne.cz/repos/prometheus/trunk@200 251d49ef-1d17-4917-a970-b30cf55b089b

Makefile
ipv4subnets.c [new file with mode: 0644]
prometheus.c

index 1719e10..7fcedc2 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@ prefix=/usr
 mandir=$(prefix)/share/man
 sbindir=$(prefix)/sbin
 sysconfdir=/etc
 mandir=$(prefix)/share/man
 sbindir=$(prefix)/sbin
 sysconfdir=/etc
-OBJECTS=parsehosts.o parselogs.o prometheus.o
+OBJECTS=parsehosts.o parselogs.o ipv4subnets.o prometheus.o
 HEADERS=cll1-0.6.2.h ipstruct.h
 
 main: prometheus
 HEADERS=cll1-0.6.2.h ipstruct.h
 
 main: prometheus
diff --git a/ipv4subnets.c b/ipv4subnets.c
new file mode 100644 (file)
index 0000000..0b40229
--- /dev/null
@@ -0,0 +1,101 @@
+#include "cll1-0.6.2.h"\r
+\r
+/* ====== iptables indexes are used to reduce complexity to log8(N) ===== */\r
+\r
+char *very_ugly_ipv4_code(char *inip, int bitmask, int format_as_chainname)\r
+{\r
+ /* warning: this function was debugged only for bitmask values 20,24,28 !!!*/\r
+ int dot=0, n;\r
+ char *ip,*outip,*outptr,*fmt;\r
+\r
+ duplicate(inip,ip);\r
+ /* debug printf("(%s,%d) -> ",ip,bitmask); */\r
+\r
+ if(ip && *ip && bitmask>=0 && bitmask<=32)\r
+ {\r
+  string(outip,strlen(ip)+10); /*fuck unicode? assertion: 10>strlen("_%d_%d") */\r
+ }\r
+ else \r
+ {\r
+  /* should never exit here */\r
+  return "undefined";\r
+ }\r
+ outptr=outip;\r
+ while(ip && *ip)\r
+ {\r
+  if(*ip=='.')\r
+  {\r
+   if(dot<(bitmask/8-1)) \r
+   {\r
+    if(format_as_chainname)\r
+    {\r
+     *outptr='_';\r
+    }\r
+    else\r
+    {\r
+     *outptr='.';\r
+    }\r
+    outptr++;\r
+    dot++;\r
+   }\r
+   else\r
+   {\r
+    char *cutdot=strchr(ip+1,'.'); /*for bitmask<24*/    \r
+    if(cutdot)\r
+    {\r
+     *cutdot = '\0';\r
+    }\r
+    \r
+    if(format_as_chainname)\r
+    {\r
+     fmt = "_%d_%d";\r
+    }\r
+    else\r
+    {\r
+     fmt = ".%d";\r
+    }\r
+    \r
+    if(bitmask%8)\r
+    {\r
+     n = atoi(ip+1)-atoi(ip+1)%(1<<(8-bitmask%8));\r
+    }\r
+    else\r
+    {\r
+     n = 0;\r
+    }\r
+\r
+    /*debug  printf("%d/%d => [_%d_%d]\n",atoi(ip+1),bitmask,n,bitmask); */\r
+    sprintf(outptr,fmt,n,bitmask);\r
+    if(!format_as_chainname)\r
+    {\r
+     while(bitmask<24)\r
+     {\r
+      strcat(outip,".0");\r
+      bitmask+=8;\r
+     }\r
+    }\r
+    /* debug printf("[%s]\n",outip); */\r
+    return outip;\r
+   }\r
+  }\r
+  else \r
+  {\r
+   *outptr=*ip;\r
+   outptr++;\r
+  }\r
+  ip++;\r
+ }\r
+ /*should never exit here*/\r
+ *outptr='\0';\r
+ return outip;\r
+}\r
+\r
+char *index_id(char *ip,int bitmask)\r
+{ \r
+ return very_ugly_ipv4_code(ip,bitmask,1);\r
+}\r
+\r
+char *subnet_id(char *ip,int bitmask)\r
+{\r
+ return very_ugly_ipv4_code(ip,bitmask,0);\r
+}\r
index 40b8865..beaffcb 100644 (file)
@@ -179,111 +179,18 @@ struct Index
  list(Index);\r
 } *idxs=NULL, *idx, *metaindex;\r
 \r
  list(Index);\r
 } *idxs=NULL, *idx, *metaindex;\r
 \r
-\r
 void TheIP(void);\r
 /* function implemented in parsehosts.c */\r
 \r
 /* ====== iptables indexes are used to reduce complexity to log8(N) ===== */\r
 \r
 void TheIP(void);\r
 /* function implemented in parsehosts.c */\r
 \r
 /* ====== iptables indexes are used to reduce complexity to log8(N) ===== */\r
 \r
-char *very_ugly_ipv4_code(char *inip, int bitmask, int format_as_chainname)\r
-{\r
- /* warning: this function was debugged only for bitmask values 20,24,28 !!!*/\r
- int dot=0, n;\r
- char *ip,*outip,*outptr,*fmt;\r
-\r
- duplicate(inip,ip);\r
- /* debug printf("(%s,%d) -> ",ip,bitmask); */\r
+char *index_id(char *ip, int bitmask);\r
+/* function implemented in ipv4subnets.c */\r
 \r
 \r
- if(ip && *ip && bitmask>=0 && bitmask<=32)\r
- {\r
-  string(outip,strlen(ip)+10); /*fuck unicode? assertion: 10>strlen("_%d_%d") */\r
- }\r
- else \r
- {\r
-  /* should never exit here */\r
-  return "undefined";\r
- }\r
- outptr=outip;\r
- while(ip && *ip)\r
- {\r
-  if(*ip=='.')\r
-  {\r
-   if(dot<(bitmask/8-1)) \r
-   {\r
-    if(format_as_chainname)\r
-    {\r
-     *outptr='_';\r
-    }\r
-    else\r
-    {\r
-     *outptr='.';\r
-    }\r
-    outptr++;\r
-    dot++;\r
-   }\r
-   else\r
-   {\r
-    char *cutdot=strchr(ip+1,'.'); /*for bitmask<24*/    \r
-    if(cutdot)\r
-    {\r
-     *cutdot = '\0';\r
-    }\r
-    \r
-    if(format_as_chainname)\r
-    {\r
-     fmt = "_%d_%d";\r
-    }\r
-    else\r
-    {\r
-     fmt = ".%d";\r
-    }\r
-    \r
-    if(bitmask%8)\r
-    {\r
-     n = atoi(ip+1)-atoi(ip+1)%(1<<(8-bitmask%8));\r
-    }\r
-    else\r
-    {\r
-     n = 0;\r
-    }\r
-\r
-    /*debug  printf("%d/%d => [_%d_%d]\n",atoi(ip+1),bitmask,n,bitmask); */\r
-    sprintf(outptr,fmt,n,bitmask);\r
-    if(!format_as_chainname)\r
-    {\r
-     while(bitmask<24)\r
-     {\r
-      strcat(outip,".0");\r
-      bitmask+=8;\r
-     }\r
-    }\r
-    /* debug printf("[%s]\n",outip); */\r
-    return outip;\r
-   }\r
-  }\r
-  else \r
-  {\r
-   *outptr=*ip;\r
-   outptr++;\r
-  }\r
-  ip++;\r
- }\r
- /*should never exit here*/\r
- *outptr='\0';\r
- return outip;\r
-}\r
-\r
-char *index_id(char *ip,int bitmask)\r
-{ \r
- return very_ugly_ipv4_code(ip,bitmask,1);\r
-}\r
-\r
-char *subnet_id(char *ip,int bitmask)\r
-{\r
- return very_ugly_ipv4_code(ip,bitmask,0);\r
-}\r
+char *subnet_id(char *ip, int bitmask);\r
+/* function implemented in ipv4subnets.c */\r
 \r
 \r
-/* ================= Let's parse configuration file here =================== */\r
+/* ================= Let's parse configuration file here ================ */\r
 \r
 void reject_config_and_exit(char *filename)\r
 {\r
 \r
 void reject_config_and_exit(char *filename)\r
 {\r
This page took 0.291028 seconds and 4 git commands to generate.