case forb_iop_HELLO:
break;
default:
+ ul_logerr("rcvd wrong message type: %d\n",
+ mh->message_type);
return false;
}
codec->data_endian = (mh->flags && forb_iop_LITTLE_ENDIAN) ?
return true;
break;
default:
+ ul_logerr("rcvd wrong protocol versio: %d.%d\n",
+ mh->proto_version.major, mh->proto_version.minor);
return false;
}
}
forb_port_t *port = arg;
const forb_proto_t *proto = port->desc.proto;
FORB_CDR_Codec *c = &port->codec;
- size_t rcvd, len;
+ ssize_t rcvd;
+ size_t len;
forb_iop_message_header mh;
bool header_received = false;
&c->buffer[c->wptr],
c->wptr_max - c->wptr);
if (rcvd < 0) {
- ul_logmsg("recv returned error %d\n", rcvd);
+ ul_logerr("recv returned error %d (%s), exiting\n", rcvd, strerror(errno));
return NULL;
}
c->wptr += rcvd;
ul_logerr("Header doesn't start at 8 byte bounday\n");
}
header_received = forb_iop_process_message_header(&mh, c);
+ if (!header_received) {
+ ul_logerr("Wrong header received\n");
+ /* TODO: We should probably reset the buffer here */
+ }
len = FORB_CDR_data_size(c);
} else {
break; /* Wait for more data to arrive*/