X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=joinremote.cpp;h=7c03dcdddea758034bcaf53443f7f1e3263856df;hp=167bbce0e5df2686ff751a052e7034ea91d73648;hb=c67eb259868a81432a68fe14d3caeea33d7eafb2;hpb=8bb49ccb7b3eba0a3f20d3b097541304b3580f70 diff --git a/joinremote.cpp b/joinremote.cpp index 167bbce..7c03dcd 100644 --- a/joinremote.cpp +++ b/joinremote.cpp @@ -14,6 +14,7 @@ //#define __u16 unsigned short //#define __u32 unsigned int +extern unsigned int new_remote; /* * constructor for a new join @@ -21,23 +22,24 @@ */ JoinRemote::JoinRemote(unsigned int serial, char *remote_name, int remote_id) : Join() { - PDEBUG(DEBUG_JOIN, "Constructor(new join)"); union parameter param; SCPY(j_remote_name, remote_name); j_remote_id = remote_id; j_type = JOIN_TYPE_REMOTE; + j_remote_ref = new_remote++; + + PDEBUG(DEBUG_JOIN, "Constructor(new join) ref=%d\n", j_remote_ref); j_epoint_id = serial; /* this is the endpoint, if created by epoint */ if (j_epoint_id) - PDEBUG(DEBUG_JOIN, "New remote join connected to endpoint id %lu and application %s\n", j_epoint_id, remote_name); + PDEBUG(DEBUG_JOIN, "New remote join connected to endpoint id %lu and application %s (ref=%d)\n", j_epoint_id, remote_name, j_remote_ref); /* send new ref to remote socket */ memset(¶m, 0, sizeof(union parameter)); if (serial) - param.direction = 1; /* new ref from lcr */ - /* the j_serial is assigned by Join() parent. this is sent as new ref */ - if (admin_message_from_join(j_remote_id, j_serial, MESSAGE_NEWREF, ¶m)<0) + param.newref.direction = 1; /* new ref from lcr */ + if (admin_message_from_lcr(j_remote_id, j_remote_ref, MESSAGE_NEWREF, ¶m)<0) FATAL("No socket with remote application '%s' found, this shall not happen. because we already created one.\n", j_remote_name); } @@ -55,8 +57,10 @@ void JoinRemote::message_epoint(unsigned int epoint_id, int message_type, union if (epoint_id != j_epoint_id) return; + PDEBUG(DEBUG_JOIN, "Message %d of endpoint %d from LCR to remote (ref=%d)\n", message_type, j_epoint_id, j_remote_ref); + /* look for Remote's interface */ - if (admin_message_from_join(j_remote_id, j_serial, message_type, param)<0) { + if (admin_message_from_lcr(j_remote_id, j_remote_ref, message_type, param)<0) { PERROR("No socket with remote application '%s' found, this shall not happen. Closing socket shall cause release of all joins.\n", j_remote_name); return; } @@ -71,6 +75,8 @@ void JoinRemote::message_remote(int message_type, union parameter *param) { struct lcr_msg *message; + PDEBUG(DEBUG_JOIN, "Message %d of endpoint %d from remote to LCR (ref=%d)\n", message_type, j_epoint_id, j_remote_ref); + /* create relation if no relation exists */ if (!j_epoint_id) { class Endpoint *epoint; @@ -78,6 +84,7 @@ void JoinRemote::message_remote(int message_type, union parameter *param) if (!(epoint = new Endpoint(0, j_serial))) FATAL("No memory for Endpoint instance\n"); j_epoint_id = epoint->ep_serial; + PDEBUG(DEBUG_JOIN, "Created endpoint %d\n", j_epoint_id); if (!(epoint->ep_app = new DEFAULT_ENDPOINT_APP(epoint, 1))) // outgoing FATAL("No memory for Endpoint Application instance\n"); } @@ -100,25 +107,5 @@ void JoinRemote::message_remote(int message_type, union parameter *param) } } -void message_bchannel_to_remote(unsigned int remote_id, unsigned int ref, int type, unsigned int handle, int tx_gain, int rx_gain, char *pipeline, unsigned char *crypt, int crypt_len, int crypt_type) -{ - union parameter param; - - memset(¶m, 0, sizeof(union parameter)); - param.bchannel.type = type; - param.bchannel.handle = handle; - param.bchannel.tx_gain = tx_gain; - param.bchannel.rx_gain = rx_gain; - if (pipeline) - SCPY(param.bchannel.pipeline, pipeline); - if (crypt_len) - memcpy(param.bchannel.crypt, crypt, crypt_len); - param.bchannel.crypt_type = crypt_type; - if (admin_message_from_join(remote_id, ref, MESSAGE_BCHANNEL, ¶m)<0) { - PERROR("No socket with remote id %d found, this happens, if the socket is closed before all bchannels are imported.\n", remote_id); - return; - } -} -