本文整理汇总了C++中osip_list_eol函数的典型用法代码示例。如果您正苦于以下问题:C++ osip_list_eol函数的具体用法?C++ osip_list_eol怎么用?C++ osip_list_eol使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了osip_list_eol函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: osip_content_type_to_str
/* returns null on error. */
int
osip_content_type_to_str (const osip_content_type_t * content_type,
char **dest)
{
char *buf;
char *tmp;
size_t len;
*dest = NULL;
if ((content_type == NULL) || (content_type->type == NULL)
|| (content_type->subtype == NULL))
return -1;
/* try to guess a long enough length */
len = strlen (content_type->type) + strlen (content_type->subtype) + 4 /* for '/', ' ', ';' and '\0' */
+ 10 * osip_list_size (content_type->gen_params);
buf = (char *) osip_malloc (len);
tmp = buf;
sprintf (tmp, "%s/%s", content_type->type, content_type->subtype);
tmp = tmp + strlen (tmp);
{
int pos = 0;
osip_generic_param_t *u_param;
if (!osip_list_eol (content_type->gen_params, pos))
{ /* needed for cannonical form! (authentication issue of rfc2543) */
sprintf (tmp, " ");
tmp++;
}
while (!osip_list_eol (content_type->gen_params, pos))
{
size_t tmp_len;
u_param =
(osip_generic_param_t *) osip_list_get (content_type->gen_params,
pos);
if (u_param->gvalue == NULL)
{
osip_free (buf);
return -1;
}
tmp_len = strlen (buf) + 4 + strlen (u_param->gname)
+ strlen (u_param->gvalue);
if (len < tmp_len)
{
buf = osip_realloc (buf, tmp_len);
len = tmp_len;
tmp = buf + strlen (buf);
}
sprintf (tmp, ";%s=%s", u_param->gname, u_param->gvalue);
tmp = tmp + strlen (tmp);
pos++;
}
}
*dest = buf;
return 0;
}
开发者ID:BackupTheBerlios,项目名称:wl530g-svn,代码行数:61,代码来源:osip_content_type.c
示例2: _eXosip_dialog_free
void
_eXosip_dialog_free (struct eXosip_t *excontext, eXosip_dialog_t * jd)
{
while (!osip_list_eol (jd->d_inc_trs, 0)) {
osip_transaction_t *tr;
tr = (osip_transaction_t *) osip_list_get (jd->d_inc_trs, 0);
osip_list_remove (jd->d_inc_trs, 0);
_eXosip_delete_reserved (tr);
osip_list_add (&excontext->j_transactions, tr, 0);
}
while (!osip_list_eol (jd->d_out_trs, 0)) {
osip_transaction_t *tr;
tr = (osip_transaction_t *) osip_list_get (jd->d_out_trs, 0);
osip_list_remove (jd->d_out_trs, 0);
_eXosip_delete_reserved (tr);
osip_list_add (&excontext->j_transactions, tr, 0);
}
osip_message_free (jd->d_200Ok);
osip_message_free (jd->d_ack);
osip_dialog_free (jd->d_dialog);
osip_free (jd->d_out_trs);
osip_free (jd->d_inc_trs);
osip_free (jd);
_eXosip_update (excontext);
}
开发者ID:CrazyBBer,项目名称:sip_stack,代码行数:32,代码来源:jdialog.c
示例3: eXosip_dialog_free
void
eXosip_dialog_free (eXosip_dialog_t * jd)
{
while (!osip_list_eol (jd->d_inc_trs, 0))
{
osip_transaction_t *tr;
tr = (osip_transaction_t *) osip_list_get (jd->d_inc_trs, 0);
osip_list_remove (jd->d_inc_trs, 0);
__eXosip_delete_jinfo (tr);
osip_list_add (eXosip.j_transactions, tr, 0);
}
while (!osip_list_eol (jd->d_out_trs, 0))
{
osip_transaction_t *tr;
tr = (osip_transaction_t *) osip_list_get (jd->d_out_trs, 0);
osip_list_remove (jd->d_out_trs, 0);
__eXosip_delete_jinfo (tr);
osip_list_add (eXosip.j_transactions, tr, 0);
}
osip_message_free (jd->d_200Ok);
osip_message_free (jd->d_ack);
osip_dialog_free (jd->d_dialog);
osip_free (jd->d_out_trs);
osip_free (jd->d_inc_trs);
osip_free (jd);
eXosip_update ();
}
开发者ID:BackupTheBerlios,项目名称:sfsipua-svn,代码行数:34,代码来源:jdialog.c
示例4: osip_dialog_update_route_set_as_uac
int
osip_dialog_update_route_set_as_uac (osip_dialog_t * dialog,
osip_message_t * response)
{
/* only the remote target URI is updated here... */
osip_contact_t *contact;
int i;
if (dialog == NULL)
return -1;
if (response == NULL)
return -1;
if (osip_list_eol (&response->contacts, 0))
{ /* no contact header in response? */
OSIP_TRACE (osip_trace
(__FILE__, __LINE__, OSIP_WARNING, NULL,
"missing a contact in response!\n"));
} else
{
/* I personally think it's a bad idea to keep the old
value in case the new one is broken... */
if (dialog->remote_contact_uri != NULL)
{
osip_contact_free (dialog->remote_contact_uri);
}
dialog->remote_contact_uri = NULL;
contact = osip_list_get (&response->contacts, 0);
i = osip_contact_clone (contact, &(dialog->remote_contact_uri));
if (i != 0)
return -1;
}
if (dialog->state == DIALOG_EARLY && osip_list_size (&dialog->route_set) == 0)
{ /* update the route set */
int pos = 0;
while (!osip_list_eol (&response->record_routes, pos))
{
osip_record_route_t *rr;
osip_record_route_t *rr2;
rr =
(osip_record_route_t *) osip_list_get (&response->record_routes, pos);
i = osip_record_route_clone (rr, &rr2);
if (i != 0)
return -1;
osip_list_add (&dialog->route_set, rr2, 0);
pos++;
}
}
if (MSG_IS_STATUS_2XX (response))
dialog->state = DIALOG_CONFIRMED;
return 0;
}
开发者ID:gabrieldelsaint,项目名称:UIM,代码行数:56,代码来源:osip_dialog.c
示例5: _eXosip_insubscription_transaction_find
int
_eXosip_insubscription_transaction_find (int tid, eXosip_notify_t ** jn,
eXosip_dialog_t ** jd,
osip_transaction_t ** tr)
{
for (*jn = eXosip.j_notifies; *jn != NULL; *jn = (*jn)->next)
{
if ((*jn)->n_inc_tr != NULL && (*jn)->n_inc_tr->transactionid == tid)
{
*tr = (*jn)->n_inc_tr;
*jd = (*jn)->n_dialogs;
return 0;
}
if ((*jn)->n_out_tr != NULL && (*jn)->n_out_tr->transactionid == tid)
{
*tr = (*jn)->n_out_tr;
*jd = (*jn)->n_dialogs;
return 0;
}
for (*jd = (*jn)->n_dialogs; *jd != NULL; *jd = (*jd)->next)
{
osip_transaction_t *transaction;
int pos = 0;
while (!osip_list_eol ((*jd)->d_inc_trs, pos))
{
transaction =
(osip_transaction_t *) osip_list_get ((*jd)->d_inc_trs, pos);
if (transaction != NULL && transaction->transactionid == tid)
{
*tr = transaction;
return 0;
}
pos++;
}
pos = 0;
while (!osip_list_eol ((*jd)->d_out_trs, pos))
{
transaction =
(osip_transaction_t *) osip_list_get ((*jd)->d_out_trs, pos);
if (transaction != NULL && transaction->transactionid == tid)
{
*tr = transaction;
return 0;
}
pos++;
}
}
}
*jd = NULL;
*jn = NULL;
return -1;
}
开发者ID:tibastral,项目名称:symphonie,代码行数:54,代码来源:eXinsubscription_api.c
示例6: eXosip_remove_transaction_from_call
int
eXosip_remove_transaction_from_call (osip_transaction_t * tr, eXosip_call_t * jc)
{
osip_transaction_t *inc_tr;
osip_transaction_t *out_tr;
eXosip_dialog_t *jd;
int pos = 0;
if (jc->c_inc_tr == tr)
{
jc->c_inc_tr = NULL; /* can be NULL */
return 0;
}
for (jd = jc->c_dialogs; jd != NULL; jd = jd->next)
{
pos = 0;
while (!osip_list_eol (jd->d_inc_trs, pos))
{
inc_tr = osip_list_get (jd->d_inc_trs, pos);
if (inc_tr == tr)
{
osip_list_remove (jd->d_inc_trs, pos);
return 0;
}
pos++;
}
}
if (jc->c_out_tr == tr)
{
jc->c_out_tr = NULL; /* can be NULL */
return 0;
}
for (jd = jc->c_dialogs; jd != NULL; jd = jd->next)
{
pos = 0;
while (!osip_list_eol (jd->d_out_trs, pos))
{
out_tr = osip_list_get (jd->d_out_trs, pos);
if (out_tr == tr)
{
osip_list_remove (jd->d_out_trs, pos);
return 0;
}
pos++;
}
}
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL,
"eXosip: No information.\n"));
return -1;
}
开发者ID:tws67,项目名称:bayonne-base-windows,代码行数:54,代码来源:misc.c
示例7: _sdp_analyse_attribute
int
_sdp_analyse_attribute (sdp_message_t * sdp, sdp_media_t * med)
{
int pos;
int pos_media;
/* test media attributes */
pos = 0;
while (!osip_list_eol (med->a_attributes, pos))
{
sdp_attribute_t *at;
at = (sdp_attribute_t *) osip_list_get (med->a_attributes, pos);
if (at->a_att_field != NULL && 0 == strcmp (at->a_att_field, "sendonly"))
{
return _SENDONLY;
} else if (at->a_att_field != NULL &&
0 == strcmp (at->a_att_field, "recvonly"))
{
return _RECVONLY;
} else if (at->a_att_field != NULL &&
0 == strcmp (at->a_att_field, "sendrecv"))
{
return _SENDRECV;
}
pos++;
}
/* test global attributes */
pos_media = -1;
pos = 0;
while (!osip_list_eol (sdp->a_attributes, pos))
{
sdp_attribute_t *at;
at = (sdp_attribute_t *) osip_list_get (sdp->a_attributes, pos);
if (at->a_att_field != NULL && 0 == strcmp (at->a_att_field, "sendonly"))
{
return _SENDONLY;
} else if (at->a_att_field != NULL &&
0 == strcmp (at->a_att_field, "recvonly"))
{
return _RECVONLY;
} else if (at->a_att_field != NULL &&
0 == strcmp (at->a_att_field, "sendrecv"))
{
return _SENDRECV;
}
pos++;
}
return _SENDRECV;
}
开发者ID:BackupTheBerlios,项目名称:sfsipua-svn,代码行数:53,代码来源:sdptools.c
示例8: osip_dialog_update_route_set_as_uas
int
osip_dialog_update_route_set_as_uas (osip_dialog_t * dialog, osip_message_t * invite)
{
osip_contact_t *contact;
int i;
if (dialog == NULL)
return OSIP_BADPARAMETER;
if (invite == NULL)
return OSIP_BADPARAMETER;
if (osip_list_eol (&invite->contacts, 0)) {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "missing a contact in invite!\n"));
}
else {
if (dialog->remote_contact_uri != NULL) {
osip_contact_free (dialog->remote_contact_uri);
}
dialog->remote_contact_uri = NULL;
contact = osip_list_get (&invite->contacts, 0);
i = osip_contact_clone (contact, &(dialog->remote_contact_uri));
if (i != 0)
return i;
}
return OSIP_SUCCESS;
}
开发者ID:benjaminlevine,项目名称:Huawei-HG633-Open-Source-Software-Package,代码行数:26,代码来源:osip_dialog.c
示例9: _eXosip_find_last_out_invite
osip_transaction_t *
_eXosip_find_last_out_invite (eXosip_call_t * jc, eXosip_dialog_t * jd)
{
osip_transaction_t *out_tr;
int pos;
out_tr = NULL;
pos = 0;
if (jd == NULL && jc == NULL)
return NULL;
if (jd != NULL) {
while (!osip_list_eol (jd->d_out_trs, pos)) {
out_tr = osip_list_get (jd->d_out_trs, pos);
if (0 == strcmp (out_tr->cseq->method, "INVITE"))
break;
else
out_tr = NULL;
pos++;
}
}
if (out_tr == NULL)
return jc->c_out_tr; /* can be NULL */
return out_tr;
}
开发者ID:HunterChen,项目名称:exosip,代码行数:27,代码来源:misc.c
示例10: osip_uri_param_get_byname
int
osip_uri_param_get_byname (osip_list_t * params, char *pname,
osip_uri_param_t ** url_param)
{
int pos = 0;
size_t pname_len;
osip_uri_param_t *u_param;
*url_param = NULL;
if (pname == NULL)
return -1;
pname_len = strlen (pname);
if (pname_len <= 0)
return -1;
while (!osip_list_eol (params, pos))
{
size_t len;
u_param = (osip_uri_param_t *) osip_list_get (params, pos);
len = strlen (u_param->gname);
if (pname_len == len
&& osip_strncasecmp (u_param->gname, pname, strlen (pname)) == 0)
{
*url_param = u_param;
return 0;
}
pos++;
}
return -1;
}
开发者ID:tws67,项目名称:bayonne-base-windows,代码行数:30,代码来源:osip_uri.c
示例11: osip_uri_free
void
osip_uri_free (osip_uri_t * url)
{
int pos = 0;
if (url == NULL)
return;
osip_free (url->scheme);
osip_free (url->username);
osip_free (url->password);
osip_free (url->host);
osip_free (url->port);
osip_uri_param_freelist (&url->url_params);
{
osip_uri_header_t *u_header;
while (!osip_list_eol (&url->url_headers, pos))
{
u_header = (osip_uri_header_t *) osip_list_get (&url->url_headers, pos);
osip_list_remove (&url->url_headers, pos);
osip_uri_header_free (u_header);
}
}
osip_free (url->string);
osip_free (url);
}
开发者ID:tws67,项目名称:bayonne-base-windows,代码行数:30,代码来源:osip_uri.c
示例12: eXtl_update_local_target
static int
eXtl_update_local_target(osip_message_t *req)
{
int pos = 0;
if (dtls_firewall_ip!='\0')
{
while (!osip_list_eol (&req->contacts, pos))
{
osip_contact_t *co;
co = (osip_contact_t *) osip_list_get (&req->contacts, pos);
pos++;
if (co != NULL && co->url != NULL && co->url->host != NULL
&& 0 == osip_strcasecmp (co->url->host, dtls_firewall_ip))
{
if (co->url->port == NULL &&
0 != osip_strcasecmp (dtls_firewall_port, "5061"))
{
co->url->port = osip_strdup (dtls_firewall_port);
}
else if (co->url->port != NULL &&
0 != osip_strcasecmp (dtls_firewall_port,
co->url->port))
{
osip_free (co->url->port);
co->url->port = osip_strdup (dtls_firewall_port);
}
}
}
}
return 0;
}
开发者ID:tws67,项目名称:bayonne-base-windows,代码行数:35,代码来源:eXtl_dtls.c
示例13: sdp_append_time_descr
static int
sdp_append_time_descr (char *string, int size, char *tmp,
sdp_time_descr_t * time_descr, char **next_tmp)
{
int pos;
if (time_descr->t_start_time == NULL)
return -1;
if (time_descr->t_stop_time == NULL)
return -1;
tmp = __osip_sdp_append_string (string, size, tmp, "t=");
tmp =
__osip_sdp_append_string (string, size, tmp, time_descr->t_start_time);
tmp = __osip_sdp_append_string (string, size, tmp, " ");
tmp = __osip_sdp_append_string (string, size, tmp, time_descr->t_stop_time);
tmp = __osip_sdp_append_string (string, size, tmp, CRLF);
pos = 0;
while (!osip_list_eol (time_descr->r_repeats, pos))
{
char *str = (char *) osip_list_get (time_descr->r_repeats, pos);
tmp = __osip_sdp_append_string (string, size, tmp, "r=");
tmp = __osip_sdp_append_string (string, size, tmp, str);
tmp = __osip_sdp_append_string (string, size, tmp, CRLF);
pos++;
}
*next_tmp = tmp;
return 0;
}
开发者ID:samm-git,项目名称:e3372h-vendor-src,代码行数:34,代码来源:sdp_message.c
示例14: _eXosip_find_last_inc_transaction
osip_transaction_t *
_eXosip_find_last_inc_transaction (eXosip_call_t * jc, eXosip_dialog_t * jd, const char *method)
{
osip_transaction_t *inc_tr;
int pos;
inc_tr = NULL;
pos = 0;
if (method == NULL || method[0] == '\0')
return NULL;
if (jd != NULL) {
while (!osip_list_eol (jd->d_inc_trs, pos)) {
inc_tr = osip_list_get (jd->d_inc_trs, pos);
if (0 == osip_strcasecmp (inc_tr->cseq->method, method))
break;
else
inc_tr = NULL;
pos++;
}
}
else
inc_tr = NULL;
return inc_tr;
}
开发者ID:HunterChen,项目名称:exosip,代码行数:25,代码来源:misc.c
示例15: eXosip_find_last_inc_subscribe
osip_transaction_t *
eXosip_find_last_inc_subscribe (eXosip_notify_t * jn, eXosip_dialog_t * jd)
{
osip_transaction_t *inc_tr;
int pos;
inc_tr = NULL;
pos = 0;
if (jd != NULL)
{
while (!osip_list_eol (jd->d_inc_trs, pos))
{
inc_tr = osip_list_get (jd->d_inc_trs, pos);
if (0 == strcmp (inc_tr->cseq->method, "SUBSCRIBE"))
break;
else
inc_tr = NULL;
pos++;
}
} else
inc_tr = NULL;
if (inc_tr == NULL)
return jn->n_inc_tr; /* can be NULL */
return inc_tr;
}
开发者ID:BackupTheBerlios,项目名称:sfsipua-svn,代码行数:27,代码来源:jnotify.c
示例16: while
osip_transaction_t *_eXosip_find_last_out_subscribe(eXosip_subscribe_t * js,
eXosip_dialog_t * jd)
{
osip_transaction_t *out_tr;
int pos;
out_tr = NULL;
pos = 0;
if (jd != NULL) {
while (!osip_list_eol(jd->d_out_trs, pos)) {
out_tr = osip_list_get(jd->d_out_trs, pos);
if (0 == strcmp(out_tr->cseq->method, "SUBSCRIBE"))
break;
else
out_tr = NULL;
pos++;
}
} else
out_tr = NULL;
if (out_tr == NULL)
return js->s_out_tr; /* can be NULL */
return out_tr;
}
开发者ID:chinglen,项目名称:exosip2,代码行数:25,代码来源:jsubscribe.c
示例17: head_line
void SIPBuilder::CameraInfoAck(osip_message_t* msg,
char** rtmsg, size_t* rtlen)
{
string head_line("SIP/2.0 200 OK\r\n");
osip_via_t *via;
char* via_c = NULL;
if( !osip_list_eol (&msg->vias, 0))
{
via = (osip_via_t *) osip_list_get (&msg->vias, 0);
osip_via_to_str( via, &via_c);
}else{
return;
}
string via_header(via_c);
via_header = string("Via: ")+via_header+string("\r\n");
char* from_tag_c;
osip_from_to_str( msg->from, &from_tag_c );
string from_header(from_tag_c);
from_header = string("From: ")+from_header+string("\r\n");
char* to_tag_c;
osip_to_to_str( msg->to, &to_tag_c );
string to_header(to_tag_c);
string to_tag_num = _RandomNum();
to_header = to_header + ";tag="+to_tag_num;
to_header = string("To: ")+to_header+string("\r\n");
string call_id_num = string(msg->call_id->number);
string call_header = string("Call-ID: ")+call_id_num+("\r\n");
string cseq_num = string(msg->cseq->number);
string cseq_header = string("Cseq: ")+cseq_num+string(" MESSAGE\r\n");
string content_type_header = "Content-Type: APPLICATION/SDP\r\n";
string forwords = string("Max-Forwards: 70\r\n");
string expires = string("Expires: 3000\r\n");
string contentlenth = string("Content-Length: 0")+string("\r\n");
string cflr = string("\r\n");
string sip_msg_str = head_line + via_header + to_header + from_header
+ call_header + cseq_header + content_type_header +
forwords + expires + contentlenth + cflr;
#ifdef DEBUG
cout<<"check 200ok camerainfoack:"<<endl;
cout<<sip_msg_str<<endl;
#endif
size_t sip_len = sip_msg_str.length();
char* sip_msg_c = (char*)malloc(sizeof(char)* sip_len);
memcpy( sip_msg_c, sip_msg_str.c_str(), sip_len);
*rtmsg = sip_msg_c;
*rtlen = sip_len;
/*send 200ok, wait ack*/
return;
}
开发者ID:apophise,项目名称:Apophise,代码行数:58,代码来源:SIPBuilder.cpp
示例18: _eXosip_subscribe_transaction_find
int
_eXosip_subscribe_transaction_find (struct eXosip_t *excontext, int tid, eXosip_subscribe_t ** js, eXosip_dialog_t ** jd, osip_transaction_t ** tr)
{
for (*js = excontext->j_subscribes; *js != NULL; *js = (*js)->next) {
if ((*js)->s_inc_tr != NULL && (*js)->s_inc_tr->transactionid == tid) {
*tr = (*js)->s_inc_tr;
*jd = (*js)->s_dialogs;
return OSIP_SUCCESS;
}
if ((*js)->s_out_tr != NULL && (*js)->s_out_tr->transactionid == tid) {
*tr = (*js)->s_out_tr;
*jd = (*js)->s_dialogs;
return OSIP_SUCCESS;
}
for (*jd = (*js)->s_dialogs; *jd != NULL; *jd = (*jd)->next) {
osip_transaction_t *transaction;
int pos = 0;
while (!osip_list_eol ((*jd)->d_inc_trs, pos)) {
transaction = (osip_transaction_t *) osip_list_get ((*jd)->d_inc_trs, pos);
if (transaction != NULL && transaction->transactionid == tid) {
*tr = transaction;
return OSIP_SUCCESS;
}
pos++;
}
pos = 0;
while (!osip_list_eol ((*jd)->d_out_trs, pos)) {
transaction = (osip_transaction_t *) osip_list_get ((*jd)->d_out_trs, pos);
if (transaction != NULL && transaction->transactionid == tid) {
*tr = transaction;
return OSIP_SUCCESS;
}
pos++;
}
}
}
*jd = NULL;
*js = NULL;
return OSIP_NOTFOUND;
}
开发者ID:CrazyBBer,项目名称:sip_stack,代码行数:42,代码来源:eXsubscription_api.c
示例19: sdp_message_endof_media
int
sdp_message_endof_media (sdp_message_t * sdp, int i)
{
if (sdp == NULL)
return OSIP_BADPARAMETER;
if (i == -1)
return OSIP_SUCCESS;
if (!osip_list_eol (&sdp->m_medias, i))
return OSIP_SUCCESS; /* not end of list */
return OSIP_UNDEFINED_ERROR; /* end of list */
}
开发者ID:RajibTheKing,项目名称:osip,代码行数:11,代码来源:sdp_accessor.c
示例20: sdp_message_endof_media
int
sdp_message_endof_media (sdp_message_t * sdp, int i)
{
if (sdp == NULL)
return -1;
if (i == -1)
return 0;
if (!osip_list_eol (&sdp->m_medias, i))
return 0; /* not end of list */
return -1; /* end of list */
}
开发者ID:tws67,项目名称:bayonne-base-windows,代码行数:11,代码来源:sdp_accessor.c
注:本文中的osip_list_eol函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论