Author: damitha
Date: Mon Sep 17 04:15:12 2007
New Revision: 576372

URL: http://svn.apache.org/viewvc?rev=576372&view=rev
Log:

When db file path is wrong the server seg faults when trying to load savan 
module. fixed this.

Modified:
    webservices/savan/trunk/c/src/core/mod_savan.c
    webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c
    webservices/savan/trunk/c/src/subs_mgr/subs_mgr_skel.c
    webservices/savan/trunk/c/src/util/db_mgr.c

Modified: webservices/savan/trunk/c/src/core/mod_savan.c
URL: 
http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/core/mod_savan.c?rev=576372&r1=576371&r2=576372&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/core/mod_savan.c (original)
+++ webservices/savan/trunk/c/src/core/mod_savan.c Mon Sep 17 04:15:12 2007
@@ -81,25 +81,24 @@
                   "filter varchar(200), topic_name varchar(100), "\
                   "renewed boolean)";
     db_mgr = savan_db_mgr_create(env, conf_ctx);
-    dbconn = savan_db_mgr_get_dbconn(db_mgr, env);
-    if (!dbconn)
+    if(db_mgr)
+        dbconn = savan_db_mgr_get_dbconn(db_mgr, env);
+    if(dbconn)
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Could not connect to 
databse");
-        return AXIS2_FAILURE;
+        rc = sqlite3_exec(dbconn, sql_stmt1, NULL, 0, &error_msg);
+        if( rc != SQLITE_OK )
+        {
+            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "SQL Error: %s", 
error_msg);
+            sqlite3_free(error_msg);
+        }
+        rc = sqlite3_exec(dbconn, sql_stmt2, NULL, 0, &error_msg);
+        if( rc != SQLITE_OK )
+        {
+            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "SQL Error: %s", 
error_msg);
+            sqlite3_free(error_msg);
+        }
+        sqlite3_close(dbconn);
     }
-    rc = sqlite3_exec(dbconn, sql_stmt1, NULL, 0, &error_msg);
-    if( rc != SQLITE_OK )
-    {
-        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "SQL Error: %s", error_msg);
-        sqlite3_free(error_msg);
-    }
-    rc = sqlite3_exec(dbconn, sql_stmt2, NULL, 0, &error_msg);
-    if( rc != SQLITE_OK )
-    {
-        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "SQL Error: %s", error_msg);
-        sqlite3_free(error_msg);
-    }
-    sqlite3_close(dbconn);
     AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVAN] End:mod_savan_init");
     return AXIS2_SUCCESS;
 }

Modified: webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c
URL: 
http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c?rev=576372&r1=576371&r2=576372&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c (original)
+++ webservices/savan/trunk/c/src/subs_mgr/subs_mgr.c Mon Sep 17 04:15:12 2007
@@ -456,11 +456,6 @@
         return NULL;
     }
 
-    /* create the body of the subscribers element */
-    ns = axiom_namespace_create (env, EVENTING_NAMESPACE, EVENTING_NS_PREFIX);
-    ns1 = axiom_namespace_create (env, SAVAN_NAMESPACE, SAVAN_NS_PREFIX);
-    subs_list_elem = axiom_element_create(env, NULL, ELEM_NAME_SUBSCRIBERS, 
ns1, 
-        &subs_list_node);
     sprintf(sql_retrieve, "select id, end_to, notify_to, delivery_mode, "\
         "expires, filter, topic_url, renewed from subscriber, topic where "\
         "subscriber.topic_name=topic.topic_name and topic.topic_name='%s';", 
@@ -469,7 +464,18 @@
     if(db_mgr)
         subs_store = savan_db_mgr_retrieve_all(db_mgr, env, 
             savan_db_mgr_subs_find_callback, sql_retrieve);
-    size = axutil_array_list_size(subs_store, env);
+    if(subs_store)
+    {
+        size = axutil_array_list_size(subs_store, env);
+        if(size > 0)
+        {
+            /* create the body of the subscribers element */
+            ns = axiom_namespace_create (env, EVENTING_NAMESPACE, 
EVENTING_NS_PREFIX);
+            ns1 = axiom_namespace_create (env, SAVAN_NAMESPACE, 
SAVAN_NS_PREFIX);
+            subs_list_elem = axiom_element_create(env, NULL, 
ELEM_NAME_SUBSCRIBERS, ns1, 
+            &subs_list_node);
+        }
+    }
     for(i = 0; i < size; i++)
     {
         savan_subscriber_t * subscriber = axutil_array_list_get(subs_store, 

Modified: webservices/savan/trunk/c/src/subs_mgr/subs_mgr_skel.c
URL: 
http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/subs_mgr/subs_mgr_skel.c?rev=576372&r1=576371&r2=576372&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/subs_mgr/subs_mgr_skel.c (original)
+++ webservices/savan/trunk/c/src/subs_mgr/subs_mgr_skel.c Mon Sep 17 04:15:12 
2007
@@ -108,16 +108,6 @@
     axis2_svc_skeleton_t *svc_skeleton,
     const axutil_env_t *env)
 {
-    svc_skeleton->func_array = axutil_array_list_create(env, 0);
-    /* Add the implemented operation names of the service to
-     * the array list of functions
-     */
-    axutil_array_list_add(svc_skeleton->func_array, env, "add_subscriber");
-    axutil_array_list_add(svc_skeleton->func_array, env, "remove_subscriber");
-    axutil_array_list_add(svc_skeleton->func_array, env, "get_subscriber");
-    axutil_array_list_add(svc_skeleton->func_array, env, 
"get_subscriber_list");
-    axutil_array_list_add(svc_skeleton->func_array, env, "add_topic");
-    axutil_array_list_add(svc_skeleton->func_array, env, "get_topic_list");
     return AXIS2_SUCCESS;
 }
 

Modified: webservices/savan/trunk/c/src/util/db_mgr.c
URL: 
http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/util/db_mgr.c?rev=576372&r1=576371&r2=576372&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/util/db_mgr.c (original)
+++ webservices/savan/trunk/c/src/util/db_mgr.c Mon Sep 17 04:15:12 2007
@@ -604,6 +604,7 @@
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Can't open database: %s"
             " sqlite error: %s\n", path, sqlite3_errmsg(dbconn));
         sqlite3_close(dbconn);
+        dbconn = NULL;
         return NULL;
     }
     return dbconn;


Reply via email to