Corrected RPM and RP in ports projects to handle MAX APDU Accepted.

This commit is contained in:
skarg
2010-01-11 04:39:22 +00:00
parent 468bad5d1b
commit e42abbf74b
5 changed files with 30 additions and 5 deletions
+1 -1
View File
@@ -155,7 +155,7 @@ void handler_read_property(
rp_ack_encode_apdu(&Handler_Transmit_Buffer[pdu_len],
service_data->invoke_id, &data);
if (len > service_data->max_resp) {
/* we don't support segmentation - send an abort */
/* too big for the sender - send an abort */
len =
abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len],
service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED,
+2 -2
View File
@@ -423,8 +423,8 @@ void handler_read_property_multiple(
break;
}
} while (1);
if (pdu_len > service_data->max_resp) {
/* we don't support segmentation - send an abort */
if (apdu_len > service_data->max_resp) {
/* too big for the sender - send an abort */
apdu_len =
abort_encode_apdu(&Handler_Transmit_Buffer[npdu_len],
service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED,
+10 -1
View File
@@ -163,7 +163,16 @@ void handler_read_property(
len =
rp_ack_encode_apdu(&Handler_Transmit_Buffer[pdu_len],
service_data->invoke_id, &data);
error = false;
if (len > service_data->max_resp) {
/* too big for the sender - send an abort */
len =
abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len],
service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED,
true);
goto RP_ABORT;
} else {
error = false;
}
}
if (error) {
if (len == -2) {
+10 -1
View File
@@ -163,7 +163,16 @@ void handler_read_property(
len =
rp_ack_encode_apdu(&Handler_Transmit_Buffer[pdu_len],
service_data->invoke_id, &data);
error = false;
if (len > service_data->max_resp) {
/* too big for the sender - send an abort */
len =
abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len],
service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED,
true);
goto RP_ABORT;
} else {
error = false;
}
}
if (error) {
if (len == -2) {
@@ -432,6 +432,13 @@ void handler_read_property_multiple(
break;
}
} while (1);
if (apdu_len > service_data->max_resp) {
/* too big for the sender - send an abort */
apdu_len =
abort_encode_apdu(&Handler_Transmit_Buffer[npdu_len],
service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED,
true);
}
RPM_ABORT:
pdu_len = apdu_len + npdu_len;
bytes_sent =