]> rtime.felk.cvut.cz Git - frescor/forb.git/blobdiff - src/iop.c
Add more debug messages
[frescor/forb.git] / src / iop.c
index 1434ccc0312e213cbd82a02183568411d35bcb27..4aa81319c96a4ed2b2599d88c38780fc9b1c8655 100644 (file)
--- a/src/iop.c
+++ b/src/iop.c
@@ -61,6 +61,7 @@
 #include "exec_req.h"
 #include <errno.h>
 #include "peer.h"
+#include "discovery.h"
 
 /** Version of the protocol */
 #define VER_MAJOR 0
@@ -208,8 +209,14 @@ forb_iop_send_reply(forb_t *forb,
 
        peer = forb_get_next_hop(forb, dest, &timeout);
        if (!peer) {
-               ul_logerr("Reply destination not found\n");
+               char str[60];
+               forb_server_id_to_string(str, dest, sizeof(str));
+               ul_logerr("Reply destination not found: %s\n", str);
                goto err;
+       } else {
+               char str[60];
+               forb_server_id_to_string(str, dest, sizeof(str));
+               ul_logdeb("sending reply: dest=%s, id=%u\n", str, request_id);
        }
        forb_proto_send(peer, codec);
        forb_peer_put(peer);
@@ -217,11 +224,6 @@ err:
        ;
 }
 
-void new_peer_discovered(forb_port_t *port, forb_peer_t *peer,
-                        forb_server_id server_id, void *addr,
-                        CORBA_string orb_id);
-
-
 static void
 process_request(forb_port_t *port, FORB_CDR_Codec *codec, uint32_t message_size)
 {
@@ -271,10 +273,11 @@ process_request(forb_port_t *port, FORB_CDR_Codec *codec, uint32_t message_size)
                        forb_peer_put(port->new_peer);
                        port->new_peer = NULL;
                } else {
+                       ul_logdeb("discovered new_peer from incomming connection\n");
                        peer = port->new_peer;
                        port->new_peer = NULL;
-                       new_peer_discovered(port, peer, request_header.source,
-                                           peer->addr, peer->orb_id);
+                       forb_new_peer_discovered(port, peer, request_header.source,
+                                                peer->addr, peer->orb_id);
                }
                
        }
@@ -393,50 +396,6 @@ process_reply(forb_port_t *port, FORB_CDR_Codec *codec)
        forb_syncobj_wait(&port->reply_processed);
 }
 
-void new_peer_discovered(forb_port_t *port, forb_peer_t *peer,
-                        forb_server_id server_id, void *addr,
-                        CORBA_string orb_id)
-{
-       forb_t *forb = port->forb;
-       bool notify_waiters = false;
-       if (peer /* && peer->state == FORB_PEER_WANTED */) {
-               notify_waiters = true;
-       } else {
-               peer = forb_peer_new();
-       }
-       if (!peer)
-               return;
-
-       fosa_mutex_lock(&forb->peer_mutex);
-       peer->server_id = server_id;
-       peer->port = port;
-       peer->addr = addr;
-       peer->orb_id = orb_id;
-       peer->state = FORB_PEER_DISCOVERED;
-       if (notify_waiters) {
-               fosa_cond_broadcast(&peer->cond);
-       } else {
-               forb_peer_nolock_insert(forb, forb_peer_get(peer));
-       }
-       forb_port_peer_ins_tail(port, forb_peer_get(peer));
-       fosa_mutex_unlock(&forb->peer_mutex);
-       {
-               char str[60];
-               ul_logdeb("new peer discovered %s (orb_id '%s')\n",
-                         forb_server_id_to_string(str, &peer->server_id, sizeof(str)),
-                         orb_id);
-       }
-       if (forb->attr.peer_discovery_callback) {
-               forb_orb peer_orb = forb_object_new(forb->orb, &peer->server_id, 0);
-               forb->attr.peer_discovery_callback(peer_orb, orb_id);
-               forb_object_release(peer_orb);
-       }
-       forb_peer_put(peer);
-
-       /* Broadcast our hello packet now */
-       forb_syncobj_signal(&port->hello);
-}
-
 /** 
  * Process incomming HELLO messages.
  *
@@ -484,7 +443,7 @@ process_hello(forb_port_t *port, FORB_CDR_Codec *codec)
                                forb_free(peer_orb_id);
                        forb_peer_put(peer);
                } else {
-                       new_peer_discovered(port, peer, server_id, addr, peer_orb_id);
+                       forb_new_peer_discovered(port, peer, server_id, addr, peer_orb_id);
                }
        }
 }
@@ -651,5 +610,3 @@ void *forb_iop_discovery_thread(void *arg)
        pthread_cleanup_pop(1);
        return NULL;
 }
-
-