]> git.ipfire.org Git - thirdparty/xtables-addons.git/commitdiff
Add plural target (un)registration to compat glue
authorJan Engelhardt <jengelh@computergmbh.de>
Wed, 30 Jan 2008 02:50:16 +0000 (03:50 +0100)
committerJan Engelhardt <jengelh@computergmbh.de>
Wed, 30 Jan 2008 02:50:16 +0000 (03:50 +0100)
Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
extensions/compat_xtables.c
extensions/compat_xtables.h
extensions/compat_xtnu.h

index e095f95cb53654b3c5bf2e40dfdf12953dbb7a2f..fe948575ddc8266481b7342e1207b00ed2701b8f 100644 (file)
@@ -196,6 +196,23 @@ int xtnu_register_target(struct xtnu_target *nt)
 }
 EXPORT_SYMBOL_GPL(xtnu_register_target);
 
+int xtnu_register_targets(struct xtnu_target *nt, unsigned int num)
+{
+       unsigned int i;
+       int ret;
+
+       for (i = 0; i < num; ++i) {
+               ret = xtnu_register_target(&nt[i]);
+               if (ret < 0) {
+                       if (i > 0)
+                               xtnu_unregister_targets(nt, i);
+                       return ret;
+               }
+       }
+       return 0;
+}
+EXPORT_SYMBOL_GPL(xtnu_register_targets);
+
 void xtnu_unregister_target(struct xtnu_target *nt)
 {
        xt_unregister_target(nt->__compat_target);
@@ -203,6 +220,14 @@ void xtnu_unregister_target(struct xtnu_target *nt)
 }
 EXPORT_SYMBOL_GPL(xtnu_unregister_target);
 
+void xtnu_unregister_targets(struct xtnu_target *nt, unsigned int num)
+{
+       unsigned int i;
+
+       for (i = 0; i < num; ++i)
+               xtnu_unregister_target(&nt[i]);
+}
+EXPORT_SYMBOL_GPL(xtnu_unregister_targets);
 #endif
 
 #if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 23)
index ac3b3b5ba2b5599f9b0aed5bbff4f9803e64a47a..c63bfc2b9448cc70b4a3d5d7a067d159e9a2b9bb 100644 (file)
@@ -28,6 +28,8 @@
 #      define ip_route_me_harder    xtnu_ip_route_me_harder
 #      define xt_register_target    xtnu_register_target
 #      define xt_unregister_target  xtnu_unregister_target
+#      define xt_register_targets   xtnu_register_targets
+#      define xt_unregister_targets xtnu_unregister_targets
 #endif
 
 #include "compat_xtnu.h"
index b7dabb16dc5af5135c8804f5aed0f21d75a32e83..64aeaa82a38b3062910ddb072995adfaac68ebe7 100644 (file)
@@ -66,5 +66,7 @@ extern int xtnu_register_matches(struct xtnu_match *, unsigned int);
 extern void xtnu_unregister_matches(struct xtnu_match *, unsigned int);
 extern int xtnu_register_target(struct xtnu_target *);
 extern void xtnu_unregister_target(struct xtnu_target *);
+extern int xtnu_register_targets(struct xtnu_target *, unsigned int);
+extern void xtnu_unregister_targets(struct xtnu_target *, unsigned int);
 
 #endif /* _COMPAT_XTNU_H */