Browse Source
Always send back block num
if (for whatever reason) californium goes out of transparent block mode
it is required to supply the correct block number to not get a internal
server error.
pull/10703/head
Moritz Bitsch
3 years ago
Failed to extract signature
1 changed files with
2 additions and
1 deletions
common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/OtaPackageTransportResource.java
@ -143,8 +143,9 @@ public class OtaPackageTransportResource extends AbstractCoapTransportResource {
response . setPayload ( data ) ;
response . setPayload ( data ) ;
if ( exchange . getRequestOptions ( ) . getBlock2 ( ) ! = null ) {
if ( exchange . getRequestOptions ( ) . getBlock2 ( ) ! = null ) {
int chunkSize = exchange . getRequestOptions ( ) . getBlock2 ( ) . getSzx ( ) ;
int chunkSize = exchange . getRequestOptions ( ) . getBlock2 ( ) . getSzx ( ) ;
int blockNum = exchange . getRequestOptions ( ) . getBlock2 ( ) . getNum ( ) ;
boolean lastFlag = data . length < = chunkSize ;
boolean lastFlag = data . length < = chunkSize ;
response . getOptions ( ) . setBlock2 ( chunkSize , lastFlag , 0 ) ;
response . getOptions ( ) . setBlock2 ( chunkSize , lastFlag , blockNum ) ;
}
}
transportContext . getExecutor ( ) . submit ( ( ) - > exchange . respond ( response ) ) ;
transportContext . getExecutor ( ) . submit ( ( ) - > exchange . respond ( response ) ) ;
}
}