Logo Search packages:      
Sourcecode: sofia-sip version File versions  Download package

SOFIAPUBFUN int tl_gets ( tagi_t const   lst[],
tag_type_t  tag,
tag_value_t  value,
  ... 
)

Find tags from given list.

Definition at line 392 of file su_taglist.c.

References tagi_t::t_tag, tagi_t::t_value, ta_args, ta_end, ta_start, and tl_gets().

Referenced by auth_init_default(), auth_mod_create(), nea_create(), nea_event_tcreate(), nea_server_create(), nea_server_update(), nea_sub_auth(), nea_sub_notify(), nea_update(), nta_incoming_create(), nta_leg_tcreate(), nta_msg_tsend(), nta_outgoing_tcancel(), server_create(), soa_base_set_params(), sres_resolver_create(), stun_bind(), stun_handle_init(), stun_keepalive(), stun_make_binding_req(), stun_test_lifetime(), stun_test_nattype(), tl_gets(), tport_open_log(), tport_set_params(), tport_tbind(), and tport_tqsend().

{
  int n = 0;
  tagi_t *t;
  ta_list ta;

  ta_start(ta, tag, value);

  for (t = ta_args(ta); t; t = (tagi_t *)t_next(t)) {
    tag_type_t tt = t->t_tag;

    if (!tt)
      continue;

    if (tt->tt_class == ref_tag_class) {
      assert(((tag_type_t)tt->tt_magic)->tt_class->tc_ref_set);
      n += tl_get(tt, (void *)t->t_value, lst);
    }
#if !defined(NDEBUG)
    else if (tt->tt_class && tt->tt_class->tc_ref_set) {
      fprintf(stderr, "WARNING: tag %s::%s directly used by tl_gets()\n",
            tt->tt_ns, tt->tt_name);
      assert(tt->tt_class == ref_tag_class);
    }
#endif
  }

  ta_end(ta);

  return n;
}


Generated by  Doxygen 1.6.0   Back to index