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");