Beispiel #1
0
void SDP_Reset(SDPInfo *sdp)
{
	SDPBandwidth *bw;
	SDPMedia *media;
	SDPTiming *timing;
	X_Attribute *att;

	if (!sdp) return;
	
	while (ChainGetCount(sdp->media_desc)) {
		media = ChainGetEntry(sdp->media_desc, 0);
		ChainDeleteEntry(sdp->media_desc, 0);
		SDPMedia_Delete(media);
	}
	while (ChainGetCount(sdp->Attributes)) {
		att = ChainGetEntry(sdp->Attributes, 0);
		ChainDeleteEntry(sdp->Attributes, 0);
		if (att->Name) free(att->Name);
		if (att->Value) free(att->Value);
		free(att);
	}
	while (ChainGetCount(sdp->b_bandwidth)) {
		bw = ChainGetEntry(sdp->b_bandwidth, 0);
		ChainDeleteEntry(sdp->b_bandwidth, 0);
		if (bw->name) free(bw->name);
		free(bw);
	}
	while (ChainGetCount(sdp->Timing)) {
		timing = ChainGetEntry(sdp->Timing, 0);
		ChainDeleteEntry(sdp->Timing, 0);
		free(timing);
	}

	//then delete all info ...
	SDP_DESTROY(o_username);
	SDP_DESTROY(o_session_id);
	SDP_DESTROY(o_version);
	SDP_DESTROY(o_address);
	SDP_DESTROY(o_net_type);
	SDP_DESTROY(o_add_type);
	SDP_DESTROY(s_session_name);
	SDP_DESTROY(i_description);
	SDP_DESTROY(u_uri);
	SDP_DESTROY(e_email);
	SDP_DESTROY(p_phone);
	SDP_DESTROY(k_method);
	SDP_DESTROY(k_key);
	SDP_DESTROY(a_cat);
	SDP_DESTROY(a_keywds);
	SDP_DESTROY(a_tool);
	SDP_DESTROY(a_type);
	SDP_DESTROY(a_charset);
	SDP_DESTROY(a_sdplang);
	SDP_DESTROY(a_lang);

	if (sdp->c_connection) {
		SDP_DeleteConnection(sdp->c_connection);
		sdp->c_connection = NULL;
	}
	sdp->a_SendRecieve = 0;
}
Beispiel #2
0
GF_EXPORT
void gf_sdp_info_reset(GF_SDPInfo *sdp)
{
	GF_SDPBandwidth *bw;
	GF_SDPMedia *media;
	GF_SDPTiming *timing;
	GF_X_Attribute *att;

	if (!sdp) return;
	
	while (gf_list_count(sdp->media_desc)) {
		media = (GF_SDPMedia*)gf_list_get(sdp->media_desc, 0);
		gf_list_rem(sdp->media_desc, 0);
		gf_sdp_media_del(media);
	}
	while (gf_list_count(sdp->Attributes)) {
		att = (GF_X_Attribute*)gf_list_get(sdp->Attributes, 0);
		gf_list_rem(sdp->Attributes, 0);
		if (att->Name) gf_free(att->Name);
		if (att->Value) gf_free(att->Value);
		gf_free(att);
	}
	while (gf_list_count(sdp->b_bandwidth)) {
		bw = (GF_SDPBandwidth*)gf_list_get(sdp->b_bandwidth, 0);
		gf_list_rem(sdp->b_bandwidth, 0);
		if (bw->name) gf_free(bw->name);
		gf_free(bw);
	}
	while (gf_list_count(sdp->Timing)) {
		timing = (GF_SDPTiming*)gf_list_get(sdp->Timing, 0);
		gf_list_rem(sdp->Timing, 0);
		gf_free(timing);
	}

	//then delete all info ...
	SDP_DESTROY(o_username);
	SDP_DESTROY(o_session_id);
	SDP_DESTROY(o_version);
	SDP_DESTROY(o_address);
	SDP_DESTROY(o_net_type);
	SDP_DESTROY(o_add_type);
	SDP_DESTROY(s_session_name);
	SDP_DESTROY(i_description);
	SDP_DESTROY(u_uri);
	SDP_DESTROY(e_email);
	SDP_DESTROY(p_phone);
	SDP_DESTROY(k_method);
	SDP_DESTROY(k_key);
	SDP_DESTROY(a_cat);
	SDP_DESTROY(a_keywds);
	SDP_DESTROY(a_tool);
	SDP_DESTROY(a_type);
	SDP_DESTROY(a_charset);
	SDP_DESTROY(a_sdplang);
	SDP_DESTROY(a_lang);

	if (sdp->c_connection) {
		gf_sdp_conn_del(sdp->c_connection);
		sdp->c_connection = NULL;
	}
	sdp->a_SendReceive = 0;
}