Module: sip-router
Branch: mariusbucur/dmq
Commit: e7811507b27c38e34b8c05d989fcadbd55ac0fec
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=e7811507b27c38e34b8c05d989fcadbd55ac0fec

Author: Marius Bucur <[email protected]>
Committer: Marius Bucur <[email protected]>
Date:   Fri May 27 09:50:42 2011 +0300

fixed a bug in dmq_register_peer

---

 modules_k/dmq/dmq.h           |    4 +---
 modules_k/dmq/dmq_funcs.c     |    1 +
 modules_k/dmq/dmq_funcs.h     |    1 +
 modules_k/dmq/dmqnode.h       |    1 +
 modules_k/presence/presence.c |   16 +++++++++++++---
 5 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/modules_k/dmq/dmq.h b/modules_k/dmq/dmq.h
index f43b53d..e4c639c 100644
--- a/modules_k/dmq/dmq.h
+++ b/modules_k/dmq/dmq.h
@@ -10,17 +10,15 @@
 #include "bind_dmq.h"
 #include "peer.h"
 #include "worker.h"
-#include "dmqnode.h"
 
 #define DEFAULT_NUM_WORKERS    2
-#define MIN_PING_INTERVAL      4
+#define MIN_PING_INTERVAL      60
 
 extern int num_workers;
 extern dmq_worker_t* workers;
 extern dmq_peer_t* dmq_notification_peer;
 extern str dmq_server_address;
 extern dmq_peer_list_t* peer_list;
-extern dmq_node_list_t* node_list;
 extern str dmq_request_method;
 extern struct sip_uri dmq_server_uri;
 extern str dmq_notification_address;
diff --git a/modules_k/dmq/dmq_funcs.c b/modules_k/dmq/dmq_funcs.c
index 8a97c99..3f15bee 100644
--- a/modules_k/dmq/dmq_funcs.c
+++ b/modules_k/dmq/dmq_funcs.c
@@ -7,6 +7,7 @@ dmq_peer_t* register_dmq_peer(dmq_peer_t* peer) {
        if(search_peer_list(peer_list, peer)) {
                LM_ERR("peer already exists: %.*s %.*s\n", peer->peer_id.len, 
peer->peer_id.s,
                       peer->description.len, peer->description.s);
+               lock_release(&peer_list->lock);
                return NULL;
        }
        new_peer = add_peer(peer_list, peer);
diff --git a/modules_k/dmq/dmq_funcs.h b/modules_k/dmq/dmq_funcs.h
index d2aab2e..7c5ecf8 100644
--- a/modules_k/dmq/dmq_funcs.h
+++ b/modules_k/dmq/dmq_funcs.h
@@ -8,6 +8,7 @@
 #include "dmq.h"
 #include "peer.h"
 #include "worker.h"
+#include "dmqnode.h"
 
 void ping_servers(unsigned int ticks,void *param);
 
diff --git a/modules_k/dmq/dmqnode.h b/modules_k/dmq/dmqnode.h
index 3bd69b0..e2c2437 100644
--- a/modules_k/dmq/dmqnode.h
+++ b/modules_k/dmq/dmqnode.h
@@ -32,6 +32,7 @@ typedef struct dmq_node_list {
 } dmq_node_list_t;
 
 extern str dmq_node_status_str;
+extern dmq_node_list_t* node_list;
 
 dmq_node_list_t* init_dmq_node_list();
 dmq_node_t* build_dmq_node(str* uri, int shm);
diff --git a/modules_k/presence/presence.c b/modules_k/presence/presence.c
index e32e527..43216f5 100644
--- a/modules_k/presence/presence.c
+++ b/modules_k/presence/presence.c
@@ -210,9 +210,19 @@ struct module_exports exports= {
        child_init                      /* per-child init function */
 };
 
-int dmq_callback(struct sip_msg* msg) {
+int dmq_presence_callback(struct sip_msg* msg, peer_reponse_t* resp) {
        LM_ERR("it worked - dmq module triggered the presence callback [%ld 
%d]\n", time(0), my_pid());
-       sleep(4);
+       if(update_presentity(msg, 0, (str*)msg->body, 0, 0, 0) <0)
+       {
+               LM_ERR("when updating presentity\n");
+               return -1;
+       }
+       str ct = str_init("text/xml");
+       str reason = str_init("200 OK");
+       resp->content_type = ct;
+       resp->reason = reason;
+       resp->body.s = 0;
+       resp->resp_code = 200;
        return 0;
 }
 
@@ -222,7 +232,7 @@ static void add_dmq_peer() {
        presence_peer.peer_id.len = 8;
        presence_peer.description.s = "presence";
        presence_peer.description.len = 8;
-       presence_peer.callback = dmq_callback;
+       presence_peer.callback = dmq_presence_callback;
        register_dmq(&presence_peer);
 }
 


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to