Fix compiler warnings
authorNeutron Soutmun <neo.neutron@gmail.com>
Tue, 21 Jun 2011 04:08:58 +0000 (11:08 +0700)
committerNeutron Soutmun <neo.neutron@gmail.com>
Tue, 21 Jun 2011 04:08:58 +0000 (11:08 +0700)
  * src/rahunasd.c:
    - Declare termstring = "" instead.
  * src/rh-ipset.{h, c}:
    - Declare unsigned variable as unsigned int instead.
  * src/rh-ipset.c (set_ipiphash_adtip):
    - Fix typo which should call set_ipiphash_adtip_nb() instead.
  * src/rh-serviceclass.c, src/rh-task-serviceclass.c:
    - Include string.h to fix the compiler warnings.
  * src/rh-serviceclass.{h,c}:
    - Replace struct main_server and struct serviceclass with RHMainServer and
      RHSvClass respectively.
  * src/rh-task-ipset.c (set_cleanup):
    - Fix wrong type casting.
  * src/rh-task-memset.c (startsess):
    - Fix compiler warnnings on assigning "const char *" to "char *" variable.
  * src/rh-task-serviceclass.c:
    - Fix compiler warnnings on rh_free().
    - Free member->mapping_ip before assign new data.
  * src/Makefile.am:
    - Add src/ipset/*.h headers to makefile which they should included in
      tarball.

src/Makefile.am
src/rahunasd.c
src/rh-ipset.c
src/rh-ipset.h
src/rh-serviceclass.c
src/rh-serviceclass.h
src/rh-task-ipset.c
src/rh-task-memset.c
src/rh-task-serviceclass.c

index 0fc751f..d9211b7 100644 (file)
@@ -28,6 +28,11 @@ rahunasd_SOURCES = \
   rh-xmlrpc-server.h \
   rh-xmlrpc-cmd.c \
   rh-xmlrpc-cmd.h \
+  ipset/ip_set_bitmaps.h \
+  ipset/ip_set_hashes.h \
+  ipset/ip_set_rahunas_ipiphash.h \
+  ipset/ip_set.h \
+  ipset/ip_set_rahunas.h \
   rh-ipset.c \
   rh-ipset.h \
   rh-utils.c \
index 88d8a40..a07c3b2 100644 (file)
@@ -23,7 +23,7 @@
 #include "rh-utils.h"
 #include "rh-task.h"
 
-const char *termstring = '\0';
+const char *termstring = "";
 pid_t pid, sid;
 
 pthread_mutex_t RHMtxLock        = PTHREAD_MUTEX_INITIALIZER;
index 3184a59..718ccb8 100644 (file)
@@ -85,7 +85,7 @@ void kernel_getfrom(void *data, socklen_t * size)
     DP("res=%d errno=%d", res, errno);
 }
 
-int kernel_sendto_handleerrno(unsigned op, void *data, socklen_t size)
+int kernel_sendto_handleerrno(unsigned int op, void *data, socklen_t size)
 {
   int res = wrapped_setsockopt(data, size);
 
@@ -229,7 +229,7 @@ char *mac_tostring(unsigned char macaddress[ETH_ALEN])
 }
 
 int set_adtip(struct set *rahunas_set, const char *adtip, const char *adtmac, 
-              unsigned op)
+              unsigned int op)
 {
   ip_set_ip_t ip;
   unsigned char mac[ETH_ALEN] = {0,0,0,0,0,0};
@@ -240,7 +240,7 @@ int set_adtip(struct set *rahunas_set, const char *adtip, const char *adtmac,
 }
 
 int set_adtip_nb(struct set *rahunas_set, ip_set_ip_t *adtip, 
-                 unsigned char adtmac[ETH_ALEN], unsigned op)
+                 unsigned char adtmac[ETH_ALEN], unsigned int op)
 {
   struct ip_set_req_adt *req_adt = NULL;
   struct ip_set_req_rahunas req;
@@ -299,18 +299,18 @@ int set_adtip_nb(struct set *rahunas_set, ip_set_ip_t *adtip,
 }
 
 int set_ipiphash_adtip(struct set *rahunas_set, const char *ip,
-                       const char *ip1, unsigned op)
+                       const char *ip1, unsigned int op)
 {
   ip_set_ip_t _ip;
   ip_set_ip_t _ip1;
   parse_ip(ip, &_ip);
   parse_ip(ip1, &_ip1);
 
-  return set_adtip_nb(rahunas_set, &_ip, &_ip1, op);
+  return set_ipiphash_adtip_nb(rahunas_set, &_ip, &_ip1, op);
 }
 
 int set_ipiphash_adtip_nb(struct set *rahunas_set, ip_set_ip_t *ip,
-                          ip_set_ip_t *ip1, unsigned op)
+                          ip_set_ip_t *ip1, unsigned int op)
 {
   struct ip_set_req_adt *req_adt = NULL;
   struct ip_set_req_rahunas_ipiphash req;
@@ -383,7 +383,7 @@ void set_flush(const char *name)
 
 size_t load_set_list(RHVServer *vs, const char name[IP_SET_MAXNAMELEN],
           ip_set_id_t *idx,
-          unsigned op, unsigned cmd)
+          unsigned int op, unsigned int cmd)
 {
   void *data = NULL;
   struct ip_set_req_max_sets req_max_sets;
index 963121e..f4607b0 100644 (file)
@@ -23,7 +23,7 @@ struct set {
   char name[IP_SET_MAXNAMELEN];   /* Name of the set */
   ip_set_id_t id;       /* Unique set id */
   ip_set_id_t index;      /* Array index */
-  unsigned ref;       /* References in kernel */
+  unsigned int ref;       /* References in kernel */
   struct settype *settype;    /* Pointer to set type functions */
 };
 
@@ -74,26 +74,26 @@ int kernel_getsocket(void);
 int wrapped_getsockopt(void *data, socklen_t *size);
 int wrapped_setsockopt(void *data, socklen_t size);
 void kernel_getfrom(void *data, socklen_t * size);
-int kernel_sendto_handleerrno(unsigned op, void *data, socklen_t size);
+int kernel_sendto_handleerrno(unsigned int op, void *data, socklen_t size);
 void kernel_sendto(void *data, size_t size);
 int kernel_getfrom_handleerrno(void *data, socklen_t * size);
 struct set *set_adt_get(const char *name);
 int set_adtip(struct set *rahunas_set, const char *adtip, const char *adtmac, 
-              unsigned op);
+              unsigned int op);
 
 int set_adtip_nb(struct set *rahunas_set, ip_set_ip_t *adtip, 
-                 unsigned char adtmac[ETH_ALEN], unsigned op);
+                 unsigned char adtmac[ETH_ALEN], unsigned int op);
 
 int set_ipiphash_adtip(struct set *rahunas_set, const char *ip,
-                       const char *ip1, unsigned op);
+                       const char *ip1, unsigned int op);
 int set_ipiphash_adtip_nb(struct set *rahunas_set, ip_set_ip_t *ip,
-                          ip_set_ip_t *ip1, unsigned op);
+                          ip_set_ip_t *ip1, unsigned int op);
 
 void set_flush(const char *name);
 
 size_t load_set_list(RHVServer *vs, const char name[IP_SET_MAXNAMELEN],
           ip_set_id_t *idx,
-          unsigned op, unsigned cmd);
+          unsigned int op, unsigned int cmd);
 
 int get_header_from_set (RHVServer *vs);
 
index 4383a27..249a4b7 100644 (file)
@@ -4,23 +4,24 @@
  * Date:   2009-03-24
  */
 #include <stdio.h>
+#include <string.h>
 #include <arpa/inet.h>
 #include "rahunasd.h"
 #include "rh-serviceclass.h"
 #include "rh-utils.h"
 #include "rh-ipset.h"
 
-int serviceclass_do_init (struct main_server *ms, struct serviceclass *sc);
+int serviceclass_do_init (RHMainServer *ms, RHSvClass *sc);
 
-struct serviceclass *serviceclass_exists(GList *serviceclass_list,
+RHSvClass *serviceclass_exists(GList *serviceclass_list,
                                          int serviceclass_id,
                                          const char *serviceclass_name)
 {
   GList *runner = g_list_first(serviceclass_list);
-  struct serviceclass *lserviceclass = NULL;
+  RHSvClass *lserviceclass = NULL;
 
   while (runner != NULL) {
-    lserviceclass = (struct serviceclass *)runner->data;
+    lserviceclass = (RHSvClass *)runner->data;
 
     if (lserviceclass->serviceclass_config->serviceclass_id == serviceclass_id)
       return lserviceclass;
@@ -34,14 +35,13 @@ struct serviceclass *serviceclass_exists(GList *serviceclass_list,
   return NULL;
 }
 
-struct servicclass *serviceclass_get_by_id(struct main_server *ms,
-                                           int search_id)
+RHSvClass *serviceclass_get_by_id(RHMainServer *ms, int search_id)
 {
   GList *runner = g_list_first(ms->serviceclass_list);
-  struct serviceclass *lserviceclass = NULL;
+  RHSvClass *lserviceclass = NULL;
 
   while (runner != NULL) {
-    lserviceclass = (struct serviceclass *)runner->data;
+    lserviceclass = (RHSvClass *)runner->data;
 
     if (lserviceclass->serviceclass_config->serviceclass_id == search_id) {
       return lserviceclass;
@@ -52,7 +52,7 @@ struct servicclass *serviceclass_get_by_id(struct main_server *ms,
   return NULL;
 }
 
-int serviceclass_cleanup(struct serviceclass *sc)
+int serviceclass_cleanup(RHSvClass *sc)
 {
   if (sc == NULL)
     return 0;
@@ -63,7 +63,7 @@ int serviceclass_cleanup(struct serviceclass *sc)
   return 0;
 }
 
-int register_serviceclass(struct main_server *ms,
+int register_serviceclass(RHMainServer *ms,
                           const char *serviceclass_cfg_file)
 {
   GList *serviceclass_list = ms->serviceclass_list;
@@ -72,8 +72,8 @@ int register_serviceclass(struct main_server *ms,
   FILE  *cfg_file = NULL;
   union rahunas_config *cfg_get = NULL;
   struct rahunas_serviceclass_config *serviceclass_config = NULL;
-  struct serviceclass *new_serviceclass = NULL;
-  struct serviceclass *old_serviceclass = NULL;
+  RHSvClass *new_serviceclass = NULL;
+  RHSvClass *old_serviceclass = NULL;
 
   union rahunas_config config = {
     .rh_serviceclass.serviceclass_name = NULL,
@@ -98,7 +98,7 @@ int register_serviceclass(struct main_server *ms,
     if (old_serviceclass != NULL) {
       if (old_serviceclass->dummy_config != NULL) {
         DP("Cleanup old dummy config");
-        rh_free(&old_serviceclass->dummy_config);
+        rh_free((void **) &old_serviceclass->dummy_config);
       }
 
       old_serviceclass->dummy_config =
@@ -133,12 +133,12 @@ int register_serviceclass(struct main_server *ms,
 
   memcpy(serviceclass_config, &config, sizeof(struct rahunas_serviceclass_config));
 
-  new_serviceclass = (struct serviceclass *) rh_malloc(sizeof(struct serviceclass));
+  new_serviceclass = (RHSvClass *) rh_malloc(sizeof(RHSvClass));
 
   if (new_serviceclass == NULL)
     return -1;
 
-  memset(new_serviceclass, 0, sizeof(struct serviceclass));
+  memset(new_serviceclass, 0, sizeof(RHSvClass));
 
   new_serviceclass->serviceclass_config = serviceclass_config;
 
@@ -147,14 +147,14 @@ int register_serviceclass(struct main_server *ms,
   return 0;
 }
 
-int unregister_serviceclass(struct main_server *ms, int serviceclass_id)
+int unregister_serviceclass(RHMainServer *ms, int serviceclass_id)
 {
   GList *serviceclass_list = ms->serviceclass_list;
   GList *runner = g_list_first(serviceclass_list);
-  struct serviceclass *lserviceclass = NULL;
+  RHSvClass *lserviceclass = NULL;
 
   while (runner != NULL) {
-    lserviceclass = (struct serviceclass *)runner->data;
+    lserviceclass = (RHSvClass *)runner->data;
     if (lserviceclass->serviceclass_config->serviceclass_id == serviceclass_id) {
       serviceclass_cleanup(lserviceclass);
 
@@ -167,15 +167,15 @@ int unregister_serviceclass(struct main_server *ms, int serviceclass_id)
   return 0;
 }
 
-int unregister_serviceclass_all(struct main_server *ms)
+int unregister_serviceclass_all(RHMainServer *ms)
 {
   GList *serviceclass_list = ms->serviceclass_list;
   GList *runner = g_list_first(serviceclass_list);
   GList *deleting = NULL;
-  struct serviceclass *lserviceclass = NULL;
+  RHSvClass *lserviceclass = NULL;
 
   while (runner != NULL) {
-    lserviceclass = (struct serviceclass *)runner->data;
+    lserviceclass = (RHSvClass *)runner->data;
     serviceclass_cleanup(lserviceclass);
     deleting = runner;
     runner = g_list_next(runner);
@@ -187,14 +187,14 @@ int unregister_serviceclass_all(struct main_server *ms)
   return 0;
 }
 
-int walk_through_serviceclass(int (*callback)(void *, void *), struct main_server *ms)
+int walk_through_serviceclass(int (*callback)(void *, void *), RHMainServer *ms)
 {
   GList *serviceclass_list = ms->serviceclass_list;
   GList *runner = g_list_first(serviceclass_list);
-  struct serviceclass *sc = NULL;
+  RHSvClass *sc = NULL;
 
   while (runner != NULL) {
-    sc = (struct serviceclass *)runner->data;
+    sc = (RHSvClass *)runner->data;
 
     (*callback)(ms, sc);
 
@@ -204,7 +204,7 @@ int walk_through_serviceclass(int (*callback)(void *, void *), struct main_serve
   return 0;
 }
 
-void serviceclass_init(struct main_server *ms, struct serviceclass *sc)
+void serviceclass_init(RHMainServer *ms, RHSvClass *sc)
 {
   struct rahunas_serviceclass_config *sc_config = NULL;
 
@@ -220,7 +220,7 @@ void serviceclass_init(struct main_server *ms, struct serviceclass *sc)
   DP("Service Class (%s) - Configured", sc->serviceclass_config->serviceclass_name);
 }
 
-void serviceclass_reload(struct main_server *ms, struct serviceclass *sc)
+void serviceclass_reload(RHMainServer *ms, RHSvClass *sc)
 {
   if (sc->serviceclass_config->init_flag == SC_DONE) {
     sc->serviceclass_config->init_flag = SC_NONE;
@@ -256,7 +256,7 @@ void serviceclass_reload(struct main_server *ms, struct serviceclass *sc)
         cleanup_serviceclass_config(sc->serviceclass_config);
         memcpy(sc->serviceclass_config, sc->dummy_config,
           sizeof(struct rahunas_serviceclass_config));
-        rh_free(&sc->dummy_config);
+        rh_free((void **) &sc->dummy_config);
       }
 
       sc->serviceclass_config->init_flag = SC_INIT;
@@ -268,14 +268,14 @@ void serviceclass_reload(struct main_server *ms, struct serviceclass *sc)
 }
 
 
-void serviceclass_unused_cleanup(struct main_server *ms)
+void serviceclass_unused_cleanup(RHMainServer *ms)
 {
   GList *serviceclass_list = ms->serviceclass_list;
   GList *runner = g_list_first(serviceclass_list);
-  struct serviceclass *lserviceclass = NULL;
+  RHSvClass *lserviceclass = NULL;
 
   while (runner != NULL) {
-    lserviceclass = (struct serviceclass *)runner->data;
+    lserviceclass = (RHSvClass *)runner->data;
     if (lserviceclass->serviceclass_config->init_flag == SC_NONE) {
       logmsg(RH_LOG_NORMAL, "[%s] - Service class config removed",
              lserviceclass->serviceclass_config->serviceclass_name);
@@ -289,7 +289,7 @@ void serviceclass_unused_cleanup(struct main_server *ms)
   }
 }
 
-int serviceclass_do_init (struct main_server *ms, struct serviceclass *sc)
+int serviceclass_do_init (RHMainServer *ms, RHSvClass *sc)
 {
   struct rahunas_serviceclass_config *sc_config = sc->serviceclass_config;
 
index 2a0307c..df478fe 100644 (file)
@@ -7,6 +7,7 @@
 #define __RH_SERVICECLASS_H
 
 #include <glib.h>
+#include "rh-server.h"
 #include "rh-config.h"
 
 #define SERVICECLASS_SET_NAME   "rahunas_serviceclass"
@@ -19,21 +20,20 @@ struct serviceclass {
 };
 
 
-struct serviceclass *serviceclass_exists(GList *serviceclass_list,
-                                         int serviceclass_id,
-                                         const char *servicclass_name);
+RHSvClass *serviceclass_exists    (GList *serviceclass_list,
+                                   int serviceclass_id,
+                                   const char *serviceclass_name);
 
-struct servicclass *serviceclass_get_by_id(struct main_server *ms,
-                                           int search_id);
-int serviceclass_cleanup(struct serviceclass *sc);
+RHSvClass *serviceclass_get_by_id (RHMainServer *ms, int search_id);
+int serviceclass_cleanup          (RHSvClass *sc);
 
-int register_serviceclass(struct main_server *ms,
-                          const char *serviceclass_cfg_file);
-int unregister_serviceclass(struct main_server *ms, int serviceclass_id);
-int unregister_serviceclass_all(struct main_server *ms);
+int register_serviceclass         (RHMainServer *ms,
+                                   const char *serviceclass_cfg_file);
+int unregister_serviceclass       (RHMainServer *ms, int serviceclass_id);
+int unregister_serviceclass_all   (RHMainServer *ms);
 
-void serviceclass_init(struct main_server *ms, struct serviceclass *sc);
-void serviceclass_reload(struct main_server *ms, struct serviceclass *sc);
-void serviceclass_unused_cleanup(struct main_server *ms);
+void serviceclass_init            (RHMainServer *ms, RHSvClass *sc);
+void serviceclass_reload          (RHMainServer *ms, RHSvClass *sc);
+void serviceclass_unused_cleanup  (RHMainServer *ms);
 
 #endif // __RH_SERVICECLASS_H
index 6e617f0..a5ca4b2 100644 (file)
@@ -31,7 +31,7 @@ set_cleanup(void *data)
     return (-1);
 
   offset = sizeof(struct ip_set_list) + setlist->header_size;
-  table = (struct ip_set_rahunas *)(process->list + offset);
+  table = (struct ip_set_rahu *)(process->list + offset);
 
   while (runner != NULL) {
     member = (struct rahunas_member *) runner->data;
index d5a798b..a2f0220 100644 (file)
@@ -154,8 +154,11 @@ static int startsess (RHVServer *vs, struct task_req *req)
   if (member->serviceclass_name && member->serviceclass_name != termstring)
     free(member->serviceclass_name);
 
-  if (member->mapping_ip && member->mapping_ip != termstring)
-    free(member->mapping_ip);
+  if (member->mapping_ip)
+    {
+      free(member->mapping_ip);
+      member->mapping_ip = NULL;
+    }
 
   member->username   = strdup(req->username);
   if (!member->username)
@@ -168,7 +171,7 @@ static int startsess (RHVServer *vs, struct task_req *req)
   member->serviceclass_name    = NULL;
   member->serviceclass_description = termstring;
   member->serviceclass_slot_id = 0;
-  member->mapping_ip = termstring;
+  member->mapping_ip = strdup(termstring);
 
   if (req->session_start == 0) {
     time(&(req->session_start));
index 922ed61..1c31ac7 100644 (file)
@@ -4,6 +4,7 @@
  * Date:   2010-07-29
  */
 
+#include <string.h>
 #include <syslog.h>
 #include <libgda/libgda.h>
 
@@ -85,7 +86,7 @@ static int stopservice  ()
   if (rh_serviceclass_set != NULL) {
     logmsg(RH_LOG_NORMAL, "Service Class: Flushing set ...");
     set_flush (SERVICECLASS_SET_NAME);
-    rh_free(&rh_serviceclass_set);
+    rh_free((void **) &rh_serviceclass_set);
   }
 
   return 0;
@@ -160,6 +161,12 @@ static int startsess (RHVServer *vs, struct task_req *req)
     member->serviceclass_description = sc_config->description;
     member->serviceclass_slot_id = req->serviceclass_slot_id;
 
+    if (member->mapping_ip)
+      {
+        free (member->mapping_ip);
+        member->mapping_ip = NULL;
+      }
+
     member->mapping_ip = strdup (ip_tostring(ip1));
 
     logmsg (RH_LOG_NORMAL, "[%s] Service class for User: %s, IP: %s "