// Recv-6.11: “Forwarding” private OM2MResponsePrimitive Fowarding(OM2MRequestPrimitive request) { // Check timeout if (OM2MTimeStamp.IsTimeout((string)request.RequestExpirationTimestamp)) { throw new OM2MRequestTimeoutException(); } if (OM2MTimeStamp.IsTimeout((string)request.ResultExpirationTimestamp)) { throw new OM2MRequestTimeoutException(); } if (OM2MTimeStamp.IsTimeout((string)request.OperationExecutionTime)) { throw new OM2MRequestTimeoutException(); } // Get remote CSE Id string remoteCseId; var parts = request.TargetId.Split('/'); if (parts.Length < 2) { throw new OM2MNotFoundException("Remote CSE not found"); } remoteCseId = parts[1]; // ToDo:... return(null); }
// 7.3.2.1 Check the validity of received request primitive // ToDo: private void ValidateRequest(OM2MRequestPrimitive request) { // Relative timestamp to absoule if (request.RequestExpirationTimestamp != null) { try { request.RequestExpirationTimestamp = OM2MTimeStamp.GetTimeStamp(request.RequestExpirationTimestamp); } catch (Exception ex) { Console.Error.WriteLine(ex); throw new OM2MBadRequestException($"Request expiration timestamp is illegal format: {request.RequestExpirationTimestamp}"); } } if (request.ResultExpirationTimestamp != null) { try { request.ResultExpirationTimestamp = OM2MTimeStamp.GetTimeStamp(request.ResultExpirationTimestamp); } catch (Exception ex) { Console.Error.WriteLine(ex); throw new OM2MBadRequestException($"Result expiration timestamp is illegal format: {request.ResultExpirationTimestamp}"); } } if (request.RequestExpirationTimestamp != null) { bool isTimeOut; try { isTimeOut = OM2MTimeStamp.IsTimeout((string)request.RequestExpirationTimestamp); } catch (FormatException ex) { Console.Error.WriteLine(ex); throw new OM2MBadRequestException($"Request expiration timestamp is illegal format: {request.RequestExpirationTimestamp}"); } if (isTimeOut) { throw new OM2MRequestTimeoutException(); } } }