You are viewing a plain text version of this content. The canonical link for it is here.
Posted to savan-dev@ws.apache.org by da...@apache.org on 2007/09/19 08:53:55 UTC

svn commit: r577169 - in /webservices/savan/trunk/c: include/savan_db_mgr.h src/core/savan_sub_processor.c src/msgreceivers/savan_msg_recv.c src/util/db_mgr.c src/util/savan_util.c

Author: damitha
Date: Tue Sep 18 23:53:54 2007
New Revision: 577169

URL: http://svn.apache.org/viewvc?rev=577169&view=rev
Log:
Subscriber updating functionality was not functioning properly. Fixed it.

Modified:
    webservices/savan/trunk/c/include/savan_db_mgr.h
    webservices/savan/trunk/c/src/core/savan_sub_processor.c
    webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c
    webservices/savan/trunk/c/src/util/db_mgr.c
    webservices/savan/trunk/c/src/util/savan_util.c

Modified: webservices/savan/trunk/c/include/savan_db_mgr.h
URL: http://svn.apache.org/viewvc/webservices/savan/trunk/c/include/savan_db_mgr.h?rev=577169&r1=577168&r2=577169&view=diff
==============================================================================
--- webservices/savan/trunk/c/include/savan_db_mgr.h (original)
+++ webservices/savan/trunk/c/include/savan_db_mgr.h Tue Sep 18 23:53:54 2007
@@ -91,6 +91,12 @@
     savan_subscriber_t *subscriber);
 
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
+savan_db_mgr_update_subscriber(
+    savan_db_mgr_t *db_mgr,
+    const axutil_env_t *env,
+    savan_subscriber_t *subscriber);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 savan_db_mgr_insert_topic(
     savan_db_mgr_t *db_mgr,
     const axutil_env_t *env,

Modified: webservices/savan/trunk/c/src/core/savan_sub_processor.c
URL: http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/core/savan_sub_processor.c?rev=577169&r1=577168&r2=577169&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/core/savan_sub_processor.c (original)
+++ webservices/savan/trunk/c/src/core/savan_sub_processor.c Tue Sep 18 23:53:54 2007
@@ -251,7 +251,7 @@
     conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
     db_mgr = savan_db_mgr_create(env, conf_ctx);
     if(db_mgr)
-        status = savan_db_mgr_insert_subscriber(db_mgr, env, subscriber);
+        status = savan_db_mgr_update_subscriber(db_mgr, env, subscriber);
     AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
         "[SAVAN] End:savan_sub_processor_renew_subscription");
 

Modified: webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c
URL: http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c?rev=577169&r1=577168&r2=577169&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c (original)
+++ webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c Tue Sep 18 23:53:54 2007
@@ -360,13 +360,12 @@
     subscriber = savan_util_get_subscriber_from_msg(env, msg_ctx, NULL);
     if (!subscriber)
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Failed to find "
-            "the subscriber from local store");
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+            "[SAVAN] Failed to find the subscriber from local store");
         return AXIS2_FAILURE;
     }
 
     renewed = savan_subscriber_get_renew_status(subscriber, env);
-    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "renewed:%d", renewed); 
     if (!renewed)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 

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=577169&r1=577168&r2=577169&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/util/db_mgr.c (original)
+++ webservices/savan/trunk/c/src/util/db_mgr.c Tue Sep 18 23:53:54 2007
@@ -416,10 +416,189 @@
             "[SAVAN] Sql Insert Error: %s", sqlite3_errmsg(dbconn));
     AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVANC] renewed:%d", renewed);
     if (sqlite3_step(insertqry) == SQLITE_DONE)
+    {
+        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
+            "[SAVAN] Subscriber is added to the database");
         sqlite3_reset(insertqry);
+    }
+    else
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+            "[SAVAN] Sql Insert Error: %s", sqlite3_errmsg(dbconn));
+    }
    
     AXIS2_FREE(env->allocator, sql_insert);
     sqlite3_finalize(insertqry);
+    sqlite3_close(dbconn);
+    return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+savan_db_mgr_update_subscriber(
+    savan_db_mgr_t *db_mgr,
+    const axutil_env_t *env,
+    savan_subscriber_t *subscriber)
+{
+    axis2_char_t *sql_update = NULL;
+    sqlite3 *dbconn = NULL;
+    axis2_char_t *id = NULL;
+    axis2_char_t *endto = NULL;
+    axis2_char_t *notifyto = NULL;
+    axis2_char_t *delivery_mode = NULL;
+    axis2_char_t *expires = NULL;
+    axis2_char_t *filter = NULL;
+    axis2_char_t *topic = NULL;
+    axis2_char_t *topic_url = NULL;
+    int renewed = 0;
+    axis2_endpoint_ref_t *endto_epr = NULL;
+    axis2_endpoint_ref_t *notifyto_epr = NULL;
+    int counter = 1;
+    struct sqlite3_stmt* updateqry;
+    sql_update = AXIS2_MALLOC(env->allocator, 1028);
+    sprintf(sql_update, "%s", "update subscriber set ");
+            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "sql_update:%s", sql_update);
+
+    if(subscriber)
+    {
+        id = savan_subscriber_get_id(subscriber, env);
+        endto_epr = savan_subscriber_get_end_to(subscriber, env);
+        if(endto_epr)
+        {
+            endto = (axis2_char_t *) axis2_endpoint_ref_get_address(endto_epr, 
+                env);
+            if(endto)
+            {
+                sprintf(sql_update, "%s%s", sql_update, "end_to=?, ");
+                counter++;
+                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "sql_update:%s", sql_update);
+            }
+        }
+        notifyto_epr = savan_subscriber_get_notify_to(subscriber, env);
+        if(notifyto_epr)
+        {
+            notifyto = (axis2_char_t *) axis2_endpoint_ref_get_address(
+                notifyto_epr, env);
+            if(notifyto)
+            {
+                sprintf(sql_update, "%s%s", sql_update, "notify_to=?, ");   
+                counter++;
+                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "sql_update:%s", sql_update);
+            }
+        }
+        delivery_mode = savan_subscriber_get_delivery_mode(subscriber, env);
+        if(delivery_mode)
+        {
+            sprintf(sql_update, "%s%s", sql_update, "delivery_mode=?, ");   
+            counter++;
+        }
+        expires = savan_subscriber_get_expires(subscriber, env);
+        if(expires)
+        {
+            sprintf(sql_update, "%s%s", sql_update, "expires=?, ");   
+            counter++;
+        }
+        filter = savan_subscriber_get_filter(subscriber, env);
+        if(filter)
+        {
+            sprintf(sql_update, "%s%s", sql_update, "filter=?, ");   
+            counter++;
+        }
+        topic_url = savan_subscriber_get_topic(subscriber, env);
+        if(topic_url)
+        {
+            topic = savan_util_get_topic_name_from_topic_url(env, topic_url);
+            sprintf(sql_update, "%s%s", sql_update, "topic_name=?, ");   
+            counter++;
+        }
+        renewed = (int) savan_subscriber_get_renew_status(subscriber, env);
+        sprintf(sql_update, "%s%s", sql_update, "renewed=? where id=?;");   
+    }
+    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "sql_update:%s", sql_update);
+    dbconn = (sqlite3 *) savan_db_mgr_get_dbconn(
+        db_mgr, env);
+    if(!dbconn)
+        return AXIS2_FAILURE;
+
+    counter = 0;
+    if (sqlite3_prepare(dbconn, sql_update, strlen(sql_update), &updateqry, NULL))
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+            "[SAVAN] Sql Update Error: %s", sqlite3_errmsg(dbconn));
+    }
+    if(endto)
+    {
+        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVANC] endto:%s", endto);
+        counter++;
+        if (sqlite3_bind_text(updateqry, counter, endto, strlen(endto), 
+                SQLITE_STATIC))
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+                "[SAVAN] Sql Update Error: %s", sqlite3_errmsg(dbconn));
+    }
+    if(notifyto)
+    {
+        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVANC] notifyto:%s", notifyto);
+        counter++;
+        if (sqlite3_bind_text(updateqry, counter, notifyto, strlen(notifyto), 
+                SQLITE_STATIC))
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+                "[SAVAN] Sql Update Error: %s", sqlite3_errmsg(dbconn));
+    }
+    if(delivery_mode)
+    {
+        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVANC] delivery_mode:%s", delivery_mode);
+        counter++;
+        if (sqlite3_bind_text(updateqry, counter, delivery_mode, strlen(delivery_mode), SQLITE_STATIC))
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+                "[SAVAN] Sql Update Error: %s", sqlite3_errmsg(dbconn));
+    }
+    if(expires)
+    {
+        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVANC] expires:%s", expires);
+        counter++;
+        if (sqlite3_bind_text(updateqry, counter, expires, strlen(expires), SQLITE_STATIC))
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+                "[SAVAN] Sql Update Error: %s", sqlite3_errmsg(dbconn));
+    }
+    if(filter)
+    {
+        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVANC] filter:%s", filter);
+        counter++;
+        if (sqlite3_bind_text(updateqry, counter, filter, strlen(filter), SQLITE_STATIC))
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+                "[SAVAN] Sql Update Error: %s", sqlite3_errmsg(dbconn));
+    }
+    if(topic)
+    {
+        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVANC] topic:%s", topic);
+        counter++;
+        if (sqlite3_bind_text(updateqry, counter, topic, strlen(topic), SQLITE_STATIC))
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+                "[SAVAN] Sql Update Error: %s", sqlite3_errmsg(dbconn));
+    }
+    counter++;
+    if (sqlite3_bind_int(updateqry, counter, renewed))
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+            "[SAVAN] Sql Update Error: %s", sqlite3_errmsg(dbconn));
+    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVANC] renewed:%d", renewed);
+    counter++;
+    if (sqlite3_bind_text(updateqry, counter, id, strlen(id), SQLITE_STATIC))
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+            "[SAVAN] Sql Update Error: %s", sqlite3_errmsg(dbconn));
+    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[SAVANC] id:%s", id);
+    if (sqlite3_step(updateqry) == SQLITE_DONE)
+    {
+        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
+            "[SAVAN] Subscriber is updated to the database");
+        sqlite3_reset(updateqry);
+    }
+    else
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+            "[SAVAN] Sql Update Error: %s", sqlite3_errmsg(dbconn));
+    }
+   
+    AXIS2_FREE(env->allocator, sql_update);
+    sqlite3_finalize(updateqry);
     sqlite3_close(dbconn);
     return AXIS2_SUCCESS;
 }

Modified: webservices/savan/trunk/c/src/util/savan_util.c
URL: http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/util/savan_util.c?rev=577169&r1=577168&r2=577169&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/util/savan_util.c (original)
+++ webservices/savan/trunk/c/src/util/savan_util.c Tue Sep 18 23:53:54 2007
@@ -431,8 +431,6 @@
         axis2_char_t *sub_id)
 {
     savan_subscriber_t *subscriber = NULL;
-    /*axutil_param_t *param = NULL;*/
-    axis2_svc_t *pubs_svc = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
 
@@ -444,13 +442,6 @@
     {
         sub_id = savan_util_get_subscription_id_from_msg(env, msg_ctx);
     }
-    pubs_svc = axis2_msg_ctx_get_svc(msg_ctx, env);
-    if (!pubs_svc)
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
-            "[SAVAN] Failed to extract the service"); 
-        return NULL;
-    }
     { 
         axis2_char_t sql_retrieve[256];
         savan_db_mgr_t *db_mgr = NULL;
@@ -543,7 +534,7 @@
         axis2_conf_ctx_t *conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
         db_mgr = savan_db_mgr_create(env, conf_ctx);
         if(db_mgr)
-            savan_db_mgr_insert_subscriber(db_mgr, env, subscriber);
+            savan_db_mgr_update_subscriber(db_mgr, env, subscriber);
     } 
     AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
         "[SAVAN] End:savan_util_update_subscriber");