When a request without any parameters was sent, the length of request
header was not multiple of 8. This caused problem at receive side, which
expected the header to have length divisible by 8.
codec->buffer[i++] = '\0';
codec->wptr = forward;
+ if (codec->wptr > codec->wptr_last) codec->wptr_last = codec->wptr;
return CORBA_TRUE;
}
0);
if (!ret) {
env.major = FORB_EX_NO_MEMORY;
- ul_logerr("No memory for executor request bufer\n");
+ ul_logerr("No memory for executor request bufer of size %d (header_size=%d)\n",
+ req_size, header_size);
goto send_execption;
}
exec_req->codec.data_endian = codec->data_endian;
#include <forb/config.h>
#include <stdio.h>
#include <forb/object.h>
+#include <ul_log.h>
+
+extern UL_LOG_CUST(ulogd_forb_proto);
size_t forb_proto_send(forb_peer_t *peer, CDR_Codec *codec)
{
+
+#if 0
+ {
+ int i, j;
+ char m[1000];
+ i=j=0;
+ while (i<CDR_data_size(codec) && j<sizeof(m)-3) {
+ if (i>0 && i%4 == 0) {
+ m[j++] = ' ';
+ }
+ sprintf(&m[j], "%02x", codec->buffer[i+codec->rptr]);
+ j+=2;
+ i+=1;
+ }
+ ul_logdeb("sending: %s\n", m);
+ }
+#endif
+
return peer->port->proto->send(peer, &codec->buffer[codec->rptr],
CDR_data_size(codec));
}