diff --git a/libs/sofia-sip/.update b/libs/sofia-sip/.update index 35b466fb4f..e9ab23232e 100644 --- a/libs/sofia-sip/.update +++ b/libs/sofia-sip/.update @@ -1 +1 @@ -Tue Mar 10 14:55:35 CDT 2009 +Tue Mar 10 14:56:15 CDT 2009 diff --git a/libs/sofia-sip/libsofia-sip-ua/nta/nta.c b/libs/sofia-sip/libsofia-sip-ua/nta/nta.c index e3496a276c..6108863664 100644 --- a/libs/sofia-sip/libsofia-sip-ua/nta/nta.c +++ b/libs/sofia-sip/libsofia-sip-ua/nta/nta.c @@ -7414,6 +7414,28 @@ nta_outgoing_bind(nta_outgoing_t *orq, return -1; } +/**Get application context bound to a client transaction. + * + * @param orq outgoing client transaction + * @param callback callback function (may be NULL) + * + * Return the application context bound to a client transaction. If the @a + * callback function pointer is given, return application context only if + * the callback matches with the callback bound to the client transaction. + * + * @NEW_1_12_11 + */ +nta_outgoing_magic_t * +nta_outgoing_magic(nta_outgoing_t const *orq, + nta_response_f *callback) +{ + if (orq && (callback == NULL || callback == orq->orq_callback)) + return orq->orq_magic; + else + return NULL; +} + + /** * Destroy a request object. * diff --git a/libs/sofia-sip/libsofia-sip-ua/nta/sofia-sip/nta.h b/libs/sofia-sip/libsofia-sip-ua/nta/sofia-sip/nta.h index bc18fa7536..c3139b65a5 100644 --- a/libs/sofia-sip/libsofia-sip-ua/nta/sofia-sip/nta.h +++ b/libs/sofia-sip/libsofia-sip-ua/nta/sofia-sip/nta.h @@ -393,6 +393,8 @@ nta_outgoing_t *nta_outgoing_default(nta_agent_t *agent, SOFIAPUBFUN int nta_outgoing_bind(nta_outgoing_t *orq, nta_response_f *callback, nta_outgoing_magic_t *magic); +SOFIAPUBFUN nta_outgoing_magic_t *nta_outgoing_magic(nta_outgoing_t const *orq, + nta_response_f *callback); SOFIAPUBFUN int nta_outgoing_status(nta_outgoing_t const *orq); SOFIAPUBFUN sip_method_t nta_outgoing_method(nta_outgoing_t const *orq); SOFIAPUBFUN char const *nta_outgoing_method_name(nta_outgoing_t const *orq);