"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/osip2/osip.c" between
libosip2-5.0.0.tar.gz and libosip2-5.1.0.tar.gz

About: The GNU oSIP library is an implementation of SIP (RFC3261).

osip.c  (libosip2-5.0.0):osip.c  (libosip2-5.1.0)
skipping to change at line 204 skipping to change at line 204
} }
/* we stop the 200ok when receiving the corresponding ack */ /* we stop the 200ok when receiving the corresponding ack */
struct osip_dialog * struct osip_dialog *
osip_stop_200ok_retransmissions (osip_t * osip, osip_message_t * ack) osip_stop_200ok_retransmissions (osip_t * osip, osip_message_t * ack)
{ {
osip_dialog_t *dialog = NULL; osip_dialog_t *dialog = NULL;
int i; int i;
ixt_t *ixt; ixt_t *ixt;
if (ack==NULL || ack->cseq==NULL || ack->cseq->number==NULL) if (ack == NULL || ack->cseq == NULL || ack->cseq->number == NULL)
return NULL; return NULL;
osip_ixt_lock (osip); osip_ixt_lock (osip);
for (i = 0; !osip_list_eol (&osip->ixt_retransmissions, i); i++) { for (i = 0; !osip_list_eol (&osip->ixt_retransmissions, i); i++) {
ixt = (ixt_t *) osip_list_get (&osip->ixt_retransmissions, i); ixt = (ixt_t *) osip_list_get (&osip->ixt_retransmissions, i);
if (ixt->msg2xx == NULL || ixt->msg2xx->cseq == NULL || ixt->msg2xx->cseq->n umber == NULL) if (ixt->msg2xx == NULL || ixt->msg2xx->cseq == NULL || ixt->msg2xx->cseq->n umber == NULL)
continue; continue;
if (osip_dialog_match_as_uas (ixt->dialog, ack) == 0 && strcmp (ixt->msg2xx ->cseq->number, ack->cseq->number) == 0) { if (osip_dialog_match_as_uas (ixt->dialog, ack) == 0 && strcmp (ixt->msg2xx- >cseq->number, ack->cseq->number) == 0) {
osip_list_remove (&osip->ixt_retransmissions, i); osip_list_remove (&osip->ixt_retransmissions, i);
dialog = ixt->dialog; dialog = ixt->dialog;
ixt_free (ixt); ixt_free (ixt);
break; break;
} }
} }
osip_ixt_unlock (osip); osip_ixt_unlock (osip);
return dialog; return dialog;
} }
skipping to change at line 393 skipping to change at line 393
#ifndef OSIP_MONOTHREAD #ifndef OSIP_MONOTHREAD
osip_mutex_lock (osip->ict_fastmutex); osip_mutex_lock (osip->ict_fastmutex);
#endif #endif
#if defined(HAVE_DICT_DICT_H) #if defined(HAVE_DICT_DICT_H)
{ {
osip_generic_param_t *b_request = NULL; osip_generic_param_t *b_request = NULL;
int rv = -99; int rv = -99;
osip_via_param_get_byname (ict->topvia, "branch", &b_request); osip_via_param_get_byname (ict->topvia, "branch", &b_request);
if (b_request != NULL && b_request->gvalue != NULL) if (b_request != NULL && b_request->gvalue != NULL)
rv = dict_insert ((dict*)osip->osip_ict_hastable, b_request->gvalue, (void *) ict, FALSE); rv = dict_insert ((dict *) osip->osip_ict_hastable, b_request->gvalue, (vo id *) ict, FALSE);
if (rv == 0) { if (rv == 0) {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key ins erted in ict hastable `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key ins erted in ict hastable `%s'\n", b_request->gvalue));
} }
else if (rv != -99) { else if (rv != -99) {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "already i nserted `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "already i nserted `%s'\n", b_request->gvalue));
} }
} }
#endif #endif
osip_list_add (&osip->osip_ict_transactions, ict, -1); osip_list_add (&osip->osip_ict_transactions, ict, -1);
skipping to change at line 423 skipping to change at line 423
#ifndef OSIP_MONOTHREAD #ifndef OSIP_MONOTHREAD
osip_mutex_lock (osip->ist_fastmutex); osip_mutex_lock (osip->ist_fastmutex);
#endif #endif
#if defined(HAVE_DICT_DICT_H) #if defined(HAVE_DICT_DICT_H)
{ {
osip_generic_param_t *b_request = NULL; osip_generic_param_t *b_request = NULL;
int rv = -99; int rv = -99;
osip_via_param_get_byname (ist->topvia, "branch", &b_request); osip_via_param_get_byname (ist->topvia, "branch", &b_request);
if (b_request != NULL && b_request->gvalue != NULL) if (b_request != NULL && b_request->gvalue != NULL)
rv = dict_insert ((dict*)osip->osip_ist_hastable, b_request->gvalue, (void *) ist, FALSE); rv = dict_insert ((dict *) osip->osip_ist_hastable, b_request->gvalue, (vo id *) ist, FALSE);
if (rv == 0) { if (rv == 0) {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key ins erted in ist hastable `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key ins erted in ist hastable `%s'\n", b_request->gvalue));
} }
else if (rv != -99) { else if (rv != -99) {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "already i nserted `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "already i nserted `%s'\n", b_request->gvalue));
} }
} }
#endif #endif
osip_list_add (&osip->osip_ist_transactions, ist, -1); osip_list_add (&osip->osip_ist_transactions, ist, -1);
#ifndef OSIP_MONOTHREAD #ifndef OSIP_MONOTHREAD
skipping to change at line 452 skipping to change at line 452
#ifndef OSIP_MONOTHREAD #ifndef OSIP_MONOTHREAD
osip_mutex_lock (osip->nict_fastmutex); osip_mutex_lock (osip->nict_fastmutex);
#endif #endif
#if defined(HAVE_DICT_DICT_H) #if defined(HAVE_DICT_DICT_H)
{ {
osip_generic_param_t *b_request = NULL; osip_generic_param_t *b_request = NULL;
int rv = -99; int rv = -99;
osip_via_param_get_byname (nict->topvia, "branch", &b_request); osip_via_param_get_byname (nict->topvia, "branch", &b_request);
if (b_request != NULL && b_request->gvalue != NULL) if (b_request != NULL && b_request->gvalue != NULL)
rv = dict_insert ((dict*)osip->osip_nict_hastable, b_request->gvalue, (voi d *) nict, FALSE); rv = dict_insert ((dict *) osip->osip_nict_hastable, b_request->gvalue, (v oid *) nict, FALSE);
if (rv == 0) { if (rv == 0) {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key ins erted in nict hastable `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key ins erted in nict hastable `%s'\n", b_request->gvalue));
} }
else if (rv != -99) { else if (rv != -99) {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "already i nserted `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "already i nserted `%s'\n", b_request->gvalue));
} }
} }
#endif #endif
osip_list_add (&osip->osip_nict_transactions, nict, -1); osip_list_add (&osip->osip_nict_transactions, nict, -1);
skipping to change at line 482 skipping to change at line 482
#ifndef OSIP_MONOTHREAD #ifndef OSIP_MONOTHREAD
osip_mutex_lock (osip->nist_fastmutex); osip_mutex_lock (osip->nist_fastmutex);
#endif #endif
#if defined(HAVE_DICT_DICT_H) #if defined(HAVE_DICT_DICT_H)
{ {
osip_generic_param_t *b_request = NULL; osip_generic_param_t *b_request = NULL;
int rv = -99; int rv = -99;
osip_via_param_get_byname (nist->topvia, "branch", &b_request); osip_via_param_get_byname (nist->topvia, "branch", &b_request);
if (b_request != NULL && b_request->gvalue != NULL) if (b_request != NULL && b_request->gvalue != NULL)
rv = dict_insert ((dict*)osip->osip_nist_hastable, b_request->gvalue, (voi d *) nist, FALSE); rv = dict_insert ((dict *) osip->osip_nist_hastable, b_request->gvalue, (v oid *) nist, FALSE);
if (rv == 0) { if (rv == 0) {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key ins erted in ict hastable `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key ins erted in ict hastable `%s'\n", b_request->gvalue));
} }
else if (rv != -99) { else if (rv != -99) {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "already i nserted `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "already i nserted `%s'\n", b_request->gvalue));
} }
} }
#endif #endif
osip_list_add (&osip->osip_nist_transactions, nist, -1); osip_list_add (&osip->osip_nist_transactions, nist, -1);
#ifndef OSIP_MONOTHREAD #ifndef OSIP_MONOTHREAD
skipping to change at line 535 skipping to change at line 535
osip_mutex_lock (osip->ict_fastmutex); osip_mutex_lock (osip->ict_fastmutex);
#endif #endif
#if defined(HAVE_DICT_DICT_H) #if defined(HAVE_DICT_DICT_H)
{ {
osip_generic_param_t *b_request = NULL; osip_generic_param_t *b_request = NULL;
int rv; int rv;
osip_via_param_get_byname (ict->topvia, "branch", &b_request); osip_via_param_get_byname (ict->topvia, "branch", &b_request);
if (b_request != NULL && b_request->gvalue != NULL) { if (b_request != NULL && b_request->gvalue != NULL) {
rv = dict_remove ((dict*)osip->osip_ict_hastable, b_request->gvalue, TRUE) ; rv = dict_remove ((dict *) osip->osip_ict_hastable, b_request->gvalue, TRU E);
if (rv == 0) { if (rv == 0) {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key d eleted in ict hastable `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key d eleted in ict hastable `%s'\n", b_request->gvalue));
} }
else { else {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "key not removed `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "key not removed `%s'\n", b_request->gvalue));
} }
} }
} }
#endif #endif
skipping to change at line 580 skipping to change at line 580
osip_mutex_lock (osip->ist_fastmutex); osip_mutex_lock (osip->ist_fastmutex);
#endif #endif
#if defined(HAVE_DICT_DICT_H) #if defined(HAVE_DICT_DICT_H)
{ {
osip_generic_param_t *b_request = NULL; osip_generic_param_t *b_request = NULL;
int rv; int rv;
osip_via_param_get_byname (ist->topvia, "branch", &b_request); osip_via_param_get_byname (ist->topvia, "branch", &b_request);
if (b_request != NULL && b_request->gvalue != NULL) { if (b_request != NULL && b_request->gvalue != NULL) {
rv = dict_remove ((dict*)osip->osip_ist_hastable, b_request->gvalue, TRUE) ; rv = dict_remove ((dict *) osip->osip_ist_hastable, b_request->gvalue, TRU E);
if (rv == 0) { if (rv == 0) {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key d eleted in ist hastable `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key d eleted in ist hastable `%s'\n", b_request->gvalue));
} }
else { else {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "key not removed `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "key not removed `%s'\n", b_request->gvalue));
} }
} }
} }
#endif #endif
skipping to change at line 626 skipping to change at line 626
osip_mutex_lock (osip->nict_fastmutex); osip_mutex_lock (osip->nict_fastmutex);
#endif #endif
#if defined(HAVE_DICT_DICT_H) #if defined(HAVE_DICT_DICT_H)
{ {
osip_generic_param_t *b_request = NULL; osip_generic_param_t *b_request = NULL;
int rv; int rv;
osip_via_param_get_byname (nict->topvia, "branch", &b_request); osip_via_param_get_byname (nict->topvia, "branch", &b_request);
if (b_request != NULL && b_request->gvalue != NULL) { if (b_request != NULL && b_request->gvalue != NULL) {
rv = dict_remove ((dict*)osip->osip_nict_hastable, b_request->gvalue, TRUE ); rv = dict_remove ((dict *) osip->osip_nict_hastable, b_request->gvalue, TR UE);
if (rv == 0) { if (rv == 0) {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key d eleted in nict hastable `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key d eleted in nict hastable `%s'\n", b_request->gvalue));
} }
else { else {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "key not removed `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "key not removed `%s'\n", b_request->gvalue));
} }
} }
} }
#endif #endif
skipping to change at line 672 skipping to change at line 672
osip_mutex_lock (osip->nist_fastmutex); osip_mutex_lock (osip->nist_fastmutex);
#endif #endif
#if defined(HAVE_DICT_DICT_H) #if defined(HAVE_DICT_DICT_H)
{ {
osip_generic_param_t *b_request = NULL; osip_generic_param_t *b_request = NULL;
int rv; int rv;
osip_via_param_get_byname (nist->topvia, "branch", &b_request); osip_via_param_get_byname (nist->topvia, "branch", &b_request);
if (b_request != NULL && b_request->gvalue != NULL) { if (b_request != NULL && b_request->gvalue != NULL) {
rv = dict_remove ((dict*)osip->osip_nist_hastable, b_request->gvalue, TRUE ); rv = dict_remove ((dict *) osip->osip_nist_hastable, b_request->gvalue, TR UE);
if (rv == 0) { if (rv == 0) {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key d eleted in ict hastable `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO1, NULL, "New key d eleted in ict hastable `%s'\n", b_request->gvalue));
} }
else { else {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "key not removed `%s'\n", b_request->gvalue)); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_WARNING, NULL, "key not removed `%s'\n", b_request->gvalue));
} }
} }
} }
#endif #endif
skipping to change at line 898 skipping to change at line 898
osip_via_t *topvia_request; osip_via_t *topvia_request;
topvia_request = osip_list_get (&evt->sip->vias, 0); topvia_request = osip_list_get (&evt->sip->vias, 0);
if (topvia_request == NULL) { if (topvia_request == NULL) {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_ERROR, NULL, "Remote UA i s not compliant: missing a Via header!\n")); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_ERROR, NULL, "Remote UA i s not compliant: missing a Via header!\n"));
return NULL; return NULL;
} }
osip_via_param_get_byname (topvia_request, "branch", &b_request); osip_via_param_get_byname (topvia_request, "branch", &b_request);
if (b_request != NULL && b_request->gvalue != NULL) { if (b_request != NULL && b_request->gvalue != NULL) {
if (MSG_IS_INVITE (evt->sip) || MSG_IS_ACK (evt->sip)) { if (MSG_IS_INVITE (evt->sip) || MSG_IS_ACK (evt->sip)) {
transaction = (osip_transaction_t *) dict_search ((dict*)osip->osip_ist_ hastable, b_request->gvalue); transaction = (osip_transaction_t *) dict_search ((dict *) osip->osip_is t_hastable, b_request->gvalue);
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO2, NULL, "Find matc hing Via header for INVITE(ACK) REQUEST!\n")); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO2, NULL, "Find matc hing Via header for INVITE(ACK) REQUEST!\n"));
if (transaction != NULL) if (transaction != NULL)
return transaction; return transaction;
} }
else { else {
transaction = (osip_transaction_t *) dict_search ((dict*)osip->osip_nist _hastable, b_request->gvalue); transaction = (osip_transaction_t *) dict_search ((dict *) osip->osip_ni st_hastable, b_request->gvalue);
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO2, NULL, "Find matc hing Via header for NON-INVITE REQUEST!\n")); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO2, NULL, "Find matc hing Via header for NON-INVITE REQUEST!\n"));
if (transaction != NULL) if (transaction != NULL)
return transaction; return transaction;
} }
} }
#endif #endif
transaction = (osip_transaction_t *) osip_list_get_first (transactions, &ite rator); transaction = (osip_transaction_t *) osip_list_get_first (transactions, &ite rator);
while (osip_list_iterator_has_elem (iterator)) { while (osip_list_iterator_has_elem (iterator)) {
if (0 == __osip_transaction_matching_request_osip_to_xist_17_2_3 (transact ion, evt->sip)) if (0 == __osip_transaction_matching_request_osip_to_xist_17_2_3 (transact ion, evt->sip))
skipping to change at line 933 skipping to change at line 933
osip_via_t *topvia_request; osip_via_t *topvia_request;
topvia_request = osip_list_get (&evt->sip->vias, 0); topvia_request = osip_list_get (&evt->sip->vias, 0);
if (topvia_request == NULL) { if (topvia_request == NULL) {
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_ERROR, NULL, "Remote UA i s not compliant: missing a Via header!\n")); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_ERROR, NULL, "Remote UA i s not compliant: missing a Via header!\n"));
return NULL; return NULL;
} }
osip_via_param_get_byname (topvia_request, "branch", &b_request); osip_via_param_get_byname (topvia_request, "branch", &b_request);
if (b_request != NULL && b_request->gvalue != NULL) { if (b_request != NULL && b_request->gvalue != NULL) {
if (MSG_IS_RESPONSE_FOR (evt->sip, "INVITE")) { if (MSG_IS_RESPONSE_FOR (evt->sip, "INVITE")) {
transaction = (osip_transaction_t *) dict_search ((dict*)osip->osip_ict_ hastable, b_request->gvalue); transaction = (osip_transaction_t *) dict_search ((dict *) osip->osip_ic t_hastable, b_request->gvalue);
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO2, NULL, "Find matc hing Via header for INVITE ANSWER!\n")); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO2, NULL, "Find matc hing Via header for INVITE ANSWER!\n"));
if (transaction != NULL) if (transaction != NULL)
return transaction; return transaction;
} }
else { else {
transaction = (osip_transaction_t *) dict_search ((dict*)osip->osip_nict _hastable, b_request->gvalue); transaction = (osip_transaction_t *) dict_search ((dict *) osip->osip_ni ct_hastable, b_request->gvalue);
OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO2, NULL, "Find matc hing Via header for NON-INVITE ANSWER!\n")); OSIP_TRACE (osip_trace (__FILE__, __LINE__, OSIP_INFO2, NULL, "Find matc hing Via header for NON-INVITE ANSWER!\n"));
if (transaction != NULL) if (transaction != NULL)
return transaction; return transaction;
} }
} }
#endif #endif
transaction = (osip_transaction_t *) osip_list_get_first (transactions, &ite rator); transaction = (osip_transaction_t *) osip_list_get_first (transactions, &ite rator);
while (osip_list_iterator_has_elem (iterator)) { while (osip_list_iterator_has_elem (iterator)) {
if (0 == __osip_transaction_matching_response_osip_to_xict_17_1_3 (transac tion, evt->sip)) if (0 == __osip_transaction_matching_response_osip_to_xict_17_1_3 (transac tion, evt->sip))
skipping to change at line 1002 skipping to change at line 1002
osip_list_init (&(*osip)->osip_ict_transactions); osip_list_init (&(*osip)->osip_ict_transactions);
osip_list_init (&(*osip)->osip_ist_transactions); osip_list_init (&(*osip)->osip_ist_transactions);
osip_list_init (&(*osip)->osip_nict_transactions); osip_list_init (&(*osip)->osip_nict_transactions);
osip_list_init (&(*osip)->osip_nist_transactions); osip_list_init (&(*osip)->osip_nist_transactions);
osip_list_init (&(*osip)->ixt_retransmissions); osip_list_init (&(*osip)->ixt_retransmissions);
(*osip)->transactionid = 1; (*osip)->transactionid = 1;
#if defined(HAVE_DICT_DICT_H) #if defined(HAVE_DICT_DICT_H)
(*osip)->osip_ict_hastable = (dict*)hashtable_dict_new ((dict_cmp_func) strcmp (*osip)->osip_ict_hastable = (dict *) hashtable_dict_new ((dict_cmp_func) strc
, (dict_hsh_func) s_hash, NULL, NULL, HSIZE); mp, (dict_hsh_func) s_hash, NULL, NULL, HSIZE);
(*osip)->osip_ist_hastable = (dict*)hashtable_dict_new ((dict_cmp_func) strcmp (*osip)->osip_ist_hastable = (dict *) hashtable_dict_new ((dict_cmp_func) strc
, (dict_hsh_func) s_hash, NULL, NULL, HSIZE); mp, (dict_hsh_func) s_hash, NULL, NULL, HSIZE);
(*osip)->osip_nict_hastable = (dict*)hashtable_dict_new ((dict_cmp_func) strcm (*osip)->osip_nict_hastable = (dict *) hashtable_dict_new ((dict_cmp_func) str
p, (dict_hsh_func) s_hash, NULL, NULL, HSIZE); cmp, (dict_hsh_func) s_hash, NULL, NULL, HSIZE);
(*osip)->osip_nist_hastable = (dict*)hashtable_dict_new ((dict_cmp_func) strcm (*osip)->osip_nist_hastable = (dict *) hashtable_dict_new ((dict_cmp_func) str
p, (dict_hsh_func) s_hash, NULL, NULL, HSIZE); cmp, (dict_hsh_func) s_hash, NULL, NULL, HSIZE);
#endif #endif
return OSIP_SUCCESS; return OSIP_SUCCESS;
} }
void void
osip_release (osip_t * osip) osip_release (osip_t * osip)
{ {
#ifndef OSIP_MONOTHREAD #ifndef OSIP_MONOTHREAD
osip_mutex_destroy (osip->ict_fastmutex); osip_mutex_destroy (osip->ict_fastmutex);
 End of changes. 15 change blocks. 
22 lines changed or deleted 22 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)