Correct recv sdu length, fix SAEM SDU creation
This commit is contained in:
parent
9e1896ef92
commit
1b0c31f9bb
|
|
@ -562,12 +562,14 @@ int main() {
|
|||
uint8_t code;
|
||||
bool in_idchange;
|
||||
|
||||
int32_t rl;
|
||||
|
||||
while (!facilities.exit) {
|
||||
zmq_poll(facilities.zmq.responders, facilities.zmq.n_responders, -1);
|
||||
|
||||
for (int i = 0; i < facilities.zmq.n_responders; ++i) {
|
||||
if (facilities.zmq.responders[i].revents) {
|
||||
zmq_recv(facilities.zmq.responders[i].socket, buffer, PACKET_MAX_LEN, 0);
|
||||
rl = zmq_recv(facilities.zmq.responders[i].socket, buffer, PACKET_MAX_LEN, 0);
|
||||
|
||||
switch (buffer[0]) {
|
||||
case 3:
|
||||
|
|
@ -580,7 +582,7 @@ int main() {
|
|||
pthread_mutex_unlock(&facilities.id.change.lock);
|
||||
|
||||
if (!in_idchange) {
|
||||
transport_indication(&facilities, facilities.zmq.responders[i].socket, buffer+1, PACKET_MAX_LEN-1);
|
||||
transport_indication(&facilities, facilities.zmq.responders[i].socket, buffer+1, rl);
|
||||
|
||||
pthread_mutex_lock(&facilities.id.change.lock);
|
||||
facilities.id.change.stage = ID_CHANGE_INACTIVE;
|
||||
|
|
@ -601,7 +603,7 @@ int main() {
|
|||
pthread_mutex_unlock(&facilities.id.change.lock);
|
||||
|
||||
if (!in_idchange) {
|
||||
facilities_request(&facilities, facilities.zmq.responders[i].socket, buffer+1, PACKET_MAX_LEN-1);
|
||||
facilities_request(&facilities, facilities.zmq.responders[i].socket, buffer+1, rl);
|
||||
|
||||
pthread_mutex_lock(&facilities.id.change.lock);
|
||||
facilities.id.change.stage = ID_CHANGE_INACTIVE;
|
||||
|
|
@ -614,11 +616,11 @@ int main() {
|
|||
break;
|
||||
|
||||
case 6:
|
||||
management_indication(&facilities, facilities.zmq.responders[i].socket, buffer+1, PACKET_MAX_LEN-1);
|
||||
management_indication(&facilities, facilities.zmq.responders[i].socket, buffer+1, rl);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
security_indication(&facilities, facilities.zmq.responders[i].socket, buffer+1, PACKET_MAX_LEN-1);
|
||||
security_indication(&facilities, facilities.zmq.responders[i].socket, buffer+1, rl);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ int facilities_request_single_message(facilities_t* facilities, void* responder,
|
|||
|
||||
break;
|
||||
default:
|
||||
syslog_err("[facilities] unrecognized FDRequest message type (%ld)", fr->choice.message.itsMessageType);
|
||||
syslog_err("[facilities] unrecognized FR message type (%ld)", fr->choice.message.itsMessageType);
|
||||
facilities_request_result_rejected(responder);
|
||||
rv = 1;
|
||||
goto cleanup;
|
||||
|
|
@ -113,7 +113,7 @@ int facilities_request_single_message(facilities_t* facilities, void* responder,
|
|||
|
||||
asn_dec_rval_t dec = uper_decode_complete(NULL, its_msg_def, (void**) &its_msg, fr->choice.message.data.buf, fr->choice.message.data.size);
|
||||
if (dec.code) {
|
||||
syslog_debug("[facilities] invalid FDRequest %s received", its_msg_def->name);
|
||||
syslog_debug("[facilities] invalid FR %s received", its_msg_def->name);
|
||||
facilities_request_result_rejected(responder);
|
||||
rv = 1;
|
||||
goto cleanup;
|
||||
|
|
@ -416,7 +416,7 @@ int facilities_request_active_episodes(facilities_t* facilities, void* responder
|
|||
frep_oer = malloc(32768);
|
||||
asn_enc_rval_t enc = oer_encode_to_buffer(&asn_DEF_FacilitiesReply, NULL, frep, frep_oer, 32768);
|
||||
if (enc.encoded == -1) {
|
||||
syslog_err("[facilities] failed encoding FDResult (%s)", enc.failed_type->name);
|
||||
syslog_err("[facilities] failed encoding FReply (%s)", enc.failed_type->name);
|
||||
|
||||
facilities_request_result_rejected(responder);
|
||||
rv = 1;
|
||||
|
|
|
|||
2
src/sa.c
2
src/sa.c
|
|
@ -171,7 +171,7 @@ void *sa_service(void *fc) {
|
|||
pthread_mutex_init(&facilities->bulletin.lock, NULL);
|
||||
|
||||
TransportRequest_t *tr = calloc(1, sizeof(TransportRequest_t));
|
||||
tr->present = TransportRequest_PR_data;
|
||||
tr->present = TransportRequest_PR_packet;
|
||||
TransportPacketRequest_t* tpr = &tr->choice.packet;
|
||||
|
||||
tpr->present = TransportPacketRequest_PR_btp;
|
||||
|
|
|
|||
Loading…
Reference in New Issue