예제 #1
0
/** Duplicate generic-header */
static apt_bool_t mrcp_generic_header_duplicate(mrcp_header_accessor_t *accessor, const mrcp_header_accessor_t *src, size_t id, apr_pool_t *pool)
{
	mrcp_generic_header_t *generic_header = accessor->data;
	const mrcp_generic_header_t *src_generic_header = src->data;
	apt_bool_t status = TRUE;

	if(!generic_header || !src_generic_header) {
		return FALSE;
	}

	switch(id) {
		case GENERIC_HEADER_ACTIVE_REQUEST_ID_LIST:
			break;
		case GENERIC_HEADER_PROXY_SYNC_ID:
			apt_string_copy(&generic_header->proxy_sync_id,&src_generic_header->proxy_sync_id,pool);
			break;
		case GENERIC_HEADER_ACCEPT_CHARSET:
			apt_string_copy(&generic_header->accept_charset,&src_generic_header->accept_charset,pool);
			break;
		case GENERIC_HEADER_CONTENT_TYPE:
			apt_string_copy(&generic_header->content_type,&src_generic_header->content_type,pool);
			break;
		case GENERIC_HEADER_CONTENT_ID:
			apt_string_copy(&generic_header->content_id,&src_generic_header->content_id,pool);
			break;
		case GENERIC_HEADER_CONTENT_BASE:
			apt_string_copy(&generic_header->content_base,&src_generic_header->content_base,pool);
			break;
		case GENERIC_HEADER_CONTENT_ENCODING:
			apt_string_copy(&generic_header->content_encoding,&src_generic_header->content_encoding,pool);
			break;
		case GENERIC_HEADER_CONTENT_LOCATION:
			apt_string_copy(&generic_header->content_location,&src_generic_header->content_location,pool);
			break;
		case GENERIC_HEADER_CONTENT_LENGTH:
			generic_header->content_length = src_generic_header->content_length;
			break;
		case GENERIC_HEADER_CACHE_CONTROL:
			apt_string_copy(&generic_header->cache_control,&src_generic_header->cache_control,pool);
			break;
		case GENERIC_HEADER_LOGGING_TAG:
			apt_string_copy(&generic_header->logging_tag,&src_generic_header->logging_tag,pool);
			break;
		case GENERIC_HEADER_VENDOR_SPECIFIC_PARAMS:
			generic_header->vendor_specific_params = apt_pair_array_copy(src_generic_header->vendor_specific_params,pool);
			break;
		default:
			status = FALSE;
	}
	return status;
}
/** Duplicate generic-header */
static apt_bool_t mrcp_generic_header_duplicate(mrcp_header_accessor_t *accessor, const mrcp_header_accessor_t *src, apr_size_t id, const apt_str_t *value, apr_pool_t *pool)
{
	mrcp_generic_header_t *generic_header = accessor->data;
	const mrcp_generic_header_t *src_generic_header = src->data;
	apt_bool_t status = TRUE;

	if(!generic_header || !src_generic_header) {
		return FALSE;
	}

	switch(id) {
		case GENERIC_HEADER_ACTIVE_REQUEST_ID_LIST:
			break;
		case GENERIC_HEADER_PROXY_SYNC_ID:
			generic_header->proxy_sync_id = *value;
			break;
		case GENERIC_HEADER_ACCEPT_CHARSET:
			generic_header->accept_charset = *value;
			break;
		case GENERIC_HEADER_CONTENT_TYPE:
			generic_header->content_type = *value;
			break;
		case GENERIC_HEADER_CONTENT_ID:
			generic_header->content_id = *value;
			break;
		case GENERIC_HEADER_CONTENT_BASE:
			generic_header->content_base = *value;
			break;
		case GENERIC_HEADER_CONTENT_ENCODING:
			generic_header->content_encoding = *value;
			break;
		case GENERIC_HEADER_CONTENT_LOCATION:
			generic_header->content_location = *value;
			break;
		case GENERIC_HEADER_CONTENT_LENGTH:
			generic_header->content_length = src_generic_header->content_length;
			break;
		case GENERIC_HEADER_CACHE_CONTROL:
			generic_header->cache_control = *value;
			break;
		case GENERIC_HEADER_LOGGING_TAG:
			generic_header->logging_tag = *value;
			break;
		case GENERIC_HEADER_VENDOR_SPECIFIC_PARAMS:
			generic_header->vendor_specific_params = apt_pair_array_copy(src_generic_header->vendor_specific_params,pool);
			break;
		case GENERIC_HEADER_ACCEPT:
			generic_header->accept = *value;
			break;
		case GENERIC_HEADER_FETCH_TIMEOUT:
			generic_header->fetch_timeout = src_generic_header->fetch_timeout;
			break;
		case GENERIC_HEADER_SET_COOKIE:
			generic_header->set_cookie = *value;
			break;
		case GENERIC_HEADER_SET_COOKIE2:
			generic_header->set_cookie2 = *value;
			break;
		default:
			status = FALSE;
	}
	return status;
}