Import Mbed OS hard-float snapshot
This commit is contained in:
104
connectivity/libraries/mbed-coap/source/sn_coap_header_check.c
Normal file
104
connectivity/libraries/mbed-coap/source/sn_coap_header_check.c
Normal file
@@ -0,0 +1,104 @@
|
||||
/*
|
||||
* Copyright (c) 2011-2015 ARM Limited. All rights reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
* Licensed under the Apache License, Version 2.0 (the License); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file sn_coap_header_check.c
|
||||
*
|
||||
* \brief CoAP Header validity checker
|
||||
*
|
||||
* Functionality: Checks validity of CoAP Header
|
||||
*
|
||||
*/
|
||||
|
||||
/* * * * INCLUDE FILES * * * */
|
||||
#include "ns_types.h"
|
||||
#include "mbed-coap/sn_coap_header.h"
|
||||
#include "mbed-coap/sn_coap_protocol.h"
|
||||
#include "sn_coap_header_internal.h"
|
||||
#include "sn_coap_protocol_internal.h"
|
||||
#include "mbed-trace/mbed_trace.h"
|
||||
|
||||
#define TRACE_GROUP "coap"
|
||||
|
||||
/**
|
||||
* \fn int8_t sn_coap_header_validity_check(sn_coap_hdr_s *src_coap_msg_ptr, coap_version_e coap_version)
|
||||
*
|
||||
* \brief Checks validity of given Header
|
||||
*
|
||||
* \param *src_coap_msg_ptr is source for building Packet data
|
||||
* \param coap_version is version of used CoAP specification
|
||||
*
|
||||
* \return Return value is status of validity check. In ok cases 0 and in
|
||||
* failure cases -1
|
||||
*/
|
||||
int8_t sn_coap_header_validity_check(const sn_coap_hdr_s *src_coap_msg_ptr, coap_version_e coap_version)
|
||||
{
|
||||
/* * Check validity of CoAP Version * */
|
||||
if (coap_version != COAP_VERSION_1) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* * Check validity of Message type * */
|
||||
switch (src_coap_msg_ptr->msg_type) {
|
||||
case COAP_MSG_TYPE_CONFIRMABLE:
|
||||
case COAP_MSG_TYPE_NON_CONFIRMABLE:
|
||||
case COAP_MSG_TYPE_ACKNOWLEDGEMENT:
|
||||
case COAP_MSG_TYPE_RESET:
|
||||
break; /* Ok cases */
|
||||
default:
|
||||
tr_error("sn_coap_header_validity_check - unknown message type!");
|
||||
return -1; /* Failed case */
|
||||
}
|
||||
|
||||
/* * Check validity of Message code * */
|
||||
switch (src_coap_msg_ptr->msg_code) {
|
||||
case COAP_MSG_CODE_EMPTY:
|
||||
case COAP_MSG_CODE_REQUEST_GET:
|
||||
case COAP_MSG_CODE_REQUEST_POST:
|
||||
case COAP_MSG_CODE_REQUEST_PUT:
|
||||
case COAP_MSG_CODE_REQUEST_DELETE:
|
||||
case COAP_MSG_CODE_RESPONSE_CREATED:
|
||||
case COAP_MSG_CODE_RESPONSE_DELETED:
|
||||
case COAP_MSG_CODE_RESPONSE_VALID:
|
||||
case COAP_MSG_CODE_RESPONSE_CHANGED:
|
||||
case COAP_MSG_CODE_RESPONSE_CONTENT:
|
||||
case COAP_MSG_CODE_RESPONSE_BAD_REQUEST:
|
||||
case COAP_MSG_CODE_RESPONSE_UNAUTHORIZED:
|
||||
case COAP_MSG_CODE_RESPONSE_BAD_OPTION:
|
||||
case COAP_MSG_CODE_RESPONSE_FORBIDDEN:
|
||||
case COAP_MSG_CODE_RESPONSE_NOT_FOUND:
|
||||
case COAP_MSG_CODE_RESPONSE_METHOD_NOT_ALLOWED:
|
||||
case COAP_MSG_CODE_RESPONSE_NOT_ACCEPTABLE:
|
||||
case COAP_MSG_CODE_RESPONSE_REQUEST_ENTITY_INCOMPLETE:
|
||||
case COAP_MSG_CODE_RESPONSE_PRECONDITION_FAILED:
|
||||
case COAP_MSG_CODE_RESPONSE_REQUEST_ENTITY_TOO_LARGE:
|
||||
case COAP_MSG_CODE_RESPONSE_UNSUPPORTED_CONTENT_FORMAT:
|
||||
case COAP_MSG_CODE_RESPONSE_INTERNAL_SERVER_ERROR:
|
||||
case COAP_MSG_CODE_RESPONSE_NOT_IMPLEMENTED:
|
||||
case COAP_MSG_CODE_RESPONSE_BAD_GATEWAY:
|
||||
case COAP_MSG_CODE_RESPONSE_SERVICE_UNAVAILABLE:
|
||||
case COAP_MSG_CODE_RESPONSE_GATEWAY_TIMEOUT:
|
||||
case COAP_MSG_CODE_RESPONSE_PROXYING_NOT_SUPPORTED:
|
||||
case COAP_MSG_CODE_RESPONSE_CONTINUE:
|
||||
break; /* Ok cases */
|
||||
default:
|
||||
tr_error("sn_coap_header_validity_check - unknown message code!");
|
||||
return -1; /* Failed case */
|
||||
}
|
||||
|
||||
/* Success */
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user