JoinRemote::JoinRemote(unsigned long serial, char *remote_name, int remote_id) : Join()
{
PDEBUG(DEBUG_JOIN, "Constructor(new join)");
- union parameter *param;
+ union parameter param;
SCPY(j_remote_name, remote_name);
j_remote_id = remote_id;
PDEBUG(DEBUG_JOIN, "New remote join connected to endpoint id %lu and application %s\n", j_epoint_id, remote_name);
/* send new ref to remote socket */
- memset(¶m, 0, sizeof(param));
+ 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, param)<0)
+ if (admin_message_from_join(j_remote_id, j_serial, 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);
}
* also ref is given, so we send message with ref */
if (message_type == MESSAGE_BCHANNEL)
{
- message_bchannel_from_join(this, param->bchannel.type, param->bchannel.addr);
+ message_bchannel_from_join(this, param->bchannel.type, param->bchannel.handle);
return;
}
}
}
-void message_bchannel_to_join(unsigned long remote_id, unsigned long ref, int type, unsigned long addr)
+void message_bchannel_to_join(unsigned long remote_id, unsigned long ref, int type, unsigned long handle)
{
union parameter param;
memset(¶m, 0, sizeof(union parameter));
param.bchannel.type = type;
- param.bchannel.addr = addr;
+ param.bchannel.handle = handle;
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);