void sdp_require_timespec (void *config_p, tinybool timespec_required) { sdp_conf_options_t *conf_p = (sdp_conf_options_t *)config_p; if (sdp_verify_conf_ptr(conf_p) == FALSE) { return; } conf_p->timespec_reqd = timespec_required; }
void sdp_require_session_name (void *config_p, tinybool sess_name_required) { sdp_conf_options_t *conf_p = (sdp_conf_options_t *)config_p; if (sdp_verify_conf_ptr(conf_p) == FALSE) { return; } conf_p->session_name_reqd = sess_name_required; }
void sdp_require_owner (void *config_p, tinybool owner_required) { sdp_conf_options_t *conf_p = (sdp_conf_options_t *)config_p; if (sdp_verify_conf_ptr(conf_p) == FALSE) { return; } conf_p->owner_reqd = owner_required; }
/* Functions: void sdp_require_version * void sdp_require_owner * void sdp_require_session_name * void sdp_require_timespec * Description: These functions allow the application to not require several * of the tokens that are specifically required by RFC 2327. * Parameters: conf_p The config handle returned by sdp_init_config. * version_required TRUE or FALSE whether the token should * be required. * Returns: Nothing. */ void sdp_require_version (void *config_p, tinybool version_required) { sdp_conf_options_t *conf_p = (sdp_conf_options_t *)config_p; if (sdp_verify_conf_ptr(conf_p) == FALSE) { return; } conf_p->version_reqd = version_required; }
/* Function: sdp_init_description * Description: Allocates a new SDP structure that can be used for either * parsing or building an SDP description. This routine * saves the config pointer passed in the SDP structure so * SDP will know how to parse/build based on the options defined. * An SDP structure must be allocated before parsing or building * since the handle must be passed to these routines. * Parameters: config_p The config handle returned by sdp_init_config * Returns: A handle for a new SDP structure as a void ptr. */ sdp_t *sdp_init_description (const char *peerconnection, void *config_p) { int i; sdp_t *sdp_p; sdp_conf_options_t *conf_p = (sdp_conf_options_t *)config_p; if (sdp_verify_conf_ptr(conf_p) == FALSE) { return (NULL); } sdp_p = (sdp_t *)SDP_MALLOC(sizeof(sdp_t)); if (sdp_p == NULL) { return (NULL); } sstrncpy(sdp_p->peerconnection, peerconnection, sizeof(sdp_p->peerconnection)); /* Initialize magic number. */ sdp_p->magic_num = SDP_MAGIC_NUM; sdp_p->conf_p = conf_p; sdp_p->version = SDP_CURRENT_VERSION; sdp_p->owner_name[0] = '\0'; sdp_p->owner_sessid[0] = '\0'; sdp_p->owner_version[0] = '\0'; sdp_p->owner_network_type = SDP_NT_INVALID; sdp_p->owner_addr_type = SDP_AT_INVALID; sdp_p->owner_addr[0] = '\0'; sdp_p->sessname[0] = '\0'; sdp_p->sessinfo_found = FALSE; sdp_p->uri_found = FALSE; sdp_p->default_conn.nettype = SDP_NT_INVALID; sdp_p->default_conn.addrtype = SDP_AT_INVALID; sdp_p->default_conn.conn_addr[0] = '\0'; sdp_p->default_conn.is_multicast = FALSE; sdp_p->default_conn.ttl = 0; sdp_p->default_conn.num_of_addresses = 0; sdp_p->bw.bw_data_count = 0; sdp_p->bw.bw_data_list = NULL; sdp_p->timespec_p = NULL; sdp_p->sess_attrs_p = NULL; sdp_p->mca_p = NULL; sdp_p->mca_count = 0; /* Set default debug flags from application config. */ for (i=0; i < SDP_MAX_DEBUG_TYPES; i++) { sdp_p->debug_flag[i] = conf_p->debug_flag[i]; } return (sdp_p); }
/* Function: sdp_transport_supported * Description: This function allows the application to specify which * transport types it supports. The application must set * any/all as required. No transport types are supported * by default. * Parameters: config_p The config handle returned by sdp_init_config. * transport The transport type for which support is being set. * transport_supported TRUE or FALSE whether the support is * provided. * Returns: Nothing. */ void sdp_transport_supported (void *config_p, sdp_transport_e transport, tinybool transport_supported) { sdp_conf_options_t *conf_p = (sdp_conf_options_t *)config_p; if (sdp_verify_conf_ptr(conf_p) == FALSE) { return; } conf_p->transport_supported[transport] = transport_supported; }
/* Function: sdp_addrtype_supported * Description: This function allows the application to specify which * address types it supports. The application must set * any/all as required. No address types are supported by * default. * Parameters: config_p The config handle returned by sdp_init_config. * addrtype The address type for which support is being set. * addrtype_supported TRUE or FALSE whether the support is * provided. * Returns: Nothing. */ void sdp_addrtype_supported (void *config_p, sdp_addrtype_e addrtype, tinybool addrtype_supported) { sdp_conf_options_t *conf_p = (sdp_conf_options_t *)config_p; if (sdp_verify_conf_ptr(conf_p) == FALSE) { return; } conf_p->addrtype_supported[addrtype] = addrtype_supported; }
/* Function: sdp_nettype_supported * Description: This function allows the application to specify which * network types it supports. The application must set * any/all as required. No network types are supported by * default. * Parameters: config_p The config handle returned by sdp_init_config. * nettype The network type for which support is being set. * nettype_supported TRUE or FALSE whether the support is * provided. * Returns: Nothing. */ void sdp_nettype_supported (void *config_p, sdp_nettype_e nettype, tinybool nettype_supported) { sdp_conf_options_t *conf_p = (sdp_conf_options_t *)config_p; if (sdp_verify_conf_ptr(conf_p) == FALSE) { return; } conf_p->nettype_supported[nettype] = nettype_supported; }
/* Function: sdp_media_supported * Description: These functions allow the application to specify which * media types it supports. The application must set any/all * as required. No media types are supported by default. * Parameters: config_p The config handle returned by sdp_init_config. * nettype The network type for which support is being set. * media_supported TRUE or FALSE whether the support is provided. * Returns: Nothing. */ void sdp_media_supported (void *config_p, sdp_media_e media_type, tinybool media_supported) { sdp_conf_options_t *conf_p = (sdp_conf_options_t *)config_p; if (sdp_verify_conf_ptr(conf_p) == FALSE) { return; } conf_p->media_supported[media_type] = media_supported; }
/* Function: sdp_allow_choose * Description: These functions allow the CHOOSE parameter `$' to be * specified in place of certain parameters. * Parameters: config_p The config handle returned by sdp_init_config. * param The param that may or may not be CHOOSE. * choose_allowed TRUE or FALSE whether the CHOOSE parameter * should be allowed. * Returns: Nothing. */ void sdp_allow_choose (void *config_p, sdp_choose_param_e param, tinybool choose_allowed) { sdp_conf_options_t *conf_p = (sdp_conf_options_t *)config_p; if (sdp_verify_conf_ptr(conf_p) == FALSE) { return; } if (param < SDP_MAX_CHOOSE_PARAMS) { conf_p->allow_choose[param] = choose_allowed; } }
/* Function: void sdp_appl_debug(void *config_p, sdp_debug_e debug_type, * tinybool my_bool); * Description: Define the default type of debug for the application. * Valid debug types are ERRORS, WARNINGS, and TRACE. Each * debug type can be turned on/off individually. The * default debug level can be redefined at any time. * Parameters: conf_p The config handle returned by sdp_init_config. * debug_type Specifies the debug type being enabled/disabled. * debug_flag Defines whether the debug should be enabled or not. * Returns: Nothing. */ void sdp_appl_debug (void *config_p, sdp_debug_e debug_type, tinybool debug_flag) { sdp_conf_options_t *conf_p = (sdp_conf_options_t *)config_p; if (sdp_verify_conf_ptr(conf_p) == FALSE) { return; } if (debug_type < SDP_MAX_DEBUG_TYPES) { conf_p->debug_flag[debug_type] = debug_flag; } }