sip_feature.c File Reference


Detailed Description

Feature-related SIP header handling.

Author:
Pekka Pessi <Pekka.Pessi@nokia-email.address.hidden>.
Date:
Created: Tue Jun 13 02:57:51 2000 ppessi

#include "config.h"
#include "sofia-sip/sip_parser.h"
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>

Include dependency graph for sip_feature.c:


Functions

int sip_is_allowed (sip_allow_t const *allow, sip_method_t method, char const *name)
 Return true if the method is listed in Allow header.
sip_unsupported_tsip_has_unsupported (su_home_t *home, sip_supported_t const *support, sip_require_t const *require)
 Check that a required feature is supported.
sip_unsupported_tsip_has_unsupported2 (su_home_t *home, sip_supported_t const *support, sip_require_t const *support_by_require, sip_require_t const *require)
 Check if required feature is not supported.
sip_unsupported_tsip_has_unsupported_any (su_home_t *home, sip_supported_t const *supported, sip_require_t const *by_require, sip_proxy_require_t const *by_proxy_require, sip_require_t const *require, sip_require_t const *require2, sip_require_t const *require3)
 Check if required features are not supported.
int sip_has_feature (msg_list_t const *supported, char const *feature)
 Check that a feature is in the list.
int sip_has_supported (sip_supported_t const *supported, char const *feature)
 Check that a feature is supported.

Variables

msg_hclass_t sip_allow_class []
 Header class for Allow header.
msg_hclass_t sip_proxy_require_class []
 Header class for Proxy-Require header.
msg_hclass_t sip_require_class []
 Header class for Require header.
msg_hclass_t sip_supported_class []
 Header class for Supported header.
msg_hclass_t sip_unsupported_class []
 Header class for Unsupported header.
msg_hclass_t sip_path_class []
 Header class for Path header.
msg_hclass_t sip_service_route_class []
 Header class for Service-Route header.

Function Documentation

int sip_has_feature ( msg_list_t const *  supported,
char const *  feature 
)

Check that a feature is in the list.

int sip_has_supported ( sip_supported_t const *  supported,
char const *  feature 
)

Check that a feature is supported.

sip_unsupported_t* sip_has_unsupported ( su_home_t *  home,
sip_supported_t const *  support,
sip_require_t const *  require 
)

Check that a required feature is supported.

Return values:
NULL if all the required features are supported
pointer to a Unsupported header or SIP_NONE if home is NULL

sip_unsupported_t* sip_has_unsupported2 ( su_home_t *  home,
sip_supported_t const *  support,
sip_require_t const *  support_by_require,
sip_require_t const *  require 
)

Check if required feature is not supported.

Return values:
NULL if all the required features are supported
pointer to a Unsupported header or SIP_NONE if home is NULL

sip_unsupported_t* sip_has_unsupported_any ( su_home_t *  home,
sip_supported_t const *  supported,
sip_require_t const *  by_require,
sip_proxy_require_t const *  by_proxy_require,
sip_require_t const *  require,
sip_require_t const *  require2,
sip_require_t const *  require3 
)

Check if required features are not supported.

The supported features can be listed in Supported, Require or Proxy-Require headers (in supported, by_require, or by_proxy_require parameters, respectively)

Parameters:
home (optional) home pointer for allocating Unsupported header
supported Supported features (may be NULL) [IN]
by_require supported features listed by Require (may be NULL) [IN]
by_proxy_require supported features listed by Proxy-Require (may be NULL) [IN]
require list of required features (may be NULL) [IN]
require2 2nd list of required features (may be NULL) [IN]
require3 3rd list of required features (may be NULL) [IN]
Return values:
NULL if all the required features are supported
pointer to a Unsupported header or SIP_NONE if home is NULL

int sip_is_allowed ( sip_allow_t const *  allow,
sip_method_t  method,
char const *  name 
)

Return true if the method is listed in Allow header.


Sofia-SIP 1.12.6 - Copyright (C) 2006 Nokia Corporation. All rights reserved. Licensed under the terms of the GNU Lesser General Public License.