Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package belle-sip for openSUSE:Factory checked in at 2023-06-28 21:33:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/belle-sip (Old) and /work/SRC/openSUSE:Factory/.belle-sip.new.13546 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "belle-sip" Wed Jun 28 21:33:28 2023 rev:37 rq:1095733 version:5.2.73 Changes: -------- --- /work/SRC/openSUSE:Factory/belle-sip/belle-sip.changes 2023-04-07 18:17:24.376918686 +0200 +++ /work/SRC/openSUSE:Factory/.belle-sip.new.13546/belle-sip.changes 2023-06-28 21:33:36.365947323 +0200 @@ -1,0 +2,5 @@ +Wed Jun 28 06:37:09 UTC 2023 - Paolo Stivanin <[email protected]> + +- Update to 5.2.73 (no changelog) + +------------------------------------------------------------------- Old: ---- belle-sip-5.2.49.tar.bz2 New: ---- belle-sip-5.2.73.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ belle-sip.spec ++++++ --- /var/tmp/diff_new_pack.P3boto/_old 2023-06-28 21:33:38.449959627 +0200 +++ /var/tmp/diff_new_pack.P3boto/_new 2023-06-28 21:33:38.453959651 +0200 @@ -20,7 +20,7 @@ %define soname libbellesip %define sover 1 Name: belle-sip -Version: 5.2.49 +Version: 5.2.73 Release: 0 Summary: C object-oriented SIP Stack License: GPL-3.0-or-later ++++++ belle-sip-5.2.49.tar.bz2 -> belle-sip-5.2.73.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/belle-sip-5.2.49/cmake/FindDNSSD.cmake new/belle-sip-5.2.73/cmake/FindDNSSD.cmake --- old/belle-sip-5.2.49/cmake/FindDNSSD.cmake 2023-04-06 12:16:56.000000000 +0200 +++ new/belle-sip-5.2.73/cmake/FindDNSSD.cmake 2023-06-14 06:55:32.000000000 +0200 @@ -72,7 +72,7 @@ find_path(_dnssd_INCLUDE_DIR dns_sd.h HINTS $ENV{DNSSD_ROOT} ${DNSSD_ROOT} - PATH_SUFFIXES include + PATH_SUFFIXES include include/avahi-compat-libdns_sd PATHS ${_dnssd_lib_paths} ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/belle-sip-5.2.49/src/belle_sip_internal.h new/belle-sip-5.2.73/src/belle_sip_internal.h --- old/belle-sip-5.2.49/src/belle_sip_internal.h 2023-04-06 12:16:56.000000000 +0200 +++ new/belle-sip-5.2.73/src/belle_sip_internal.h 2023-06-14 06:55:32.000000000 +0200 @@ -909,6 +909,7 @@ int belle_sip_dialog_handle_ack(belle_sip_dialog_t *obj, belle_sip_request_t *ack); void belle_sip_dialog_queue_client_transaction(belle_sip_dialog_t *dialog, belle_sip_client_transaction_t *tr); void belle_sip_dialog_stop_200Ok_retrans(belle_sip_dialog_t *obj); +int belle_sip_dialog_establish_from_notify(belle_sip_dialog_t *obj, belle_sip_request_t *req); /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/belle-sip-5.2.49/src/channel.c new/belle-sip-5.2.73/src/channel.c --- old/belle-sip-5.2.49/src/channel.c 2023-04-06 12:16:56.000000000 +0200 +++ new/belle-sip-5.2.73/src/channel.c 2023-06-14 06:55:32.000000000 +0200 @@ -604,6 +604,11 @@ belle_sip_error("Could not parse [%s], on channel [%p] skipping to [%s]",obj->input_stream.read_ptr ,obj ,end_of_message); + if (obj->input_stream.msg){ + /* despite read_size is zero, belle_sip_message_parse_raw() might return an empty belle_sip_message_t */ + belle_sip_object_unref(obj->input_stream.msg); + obj->input_stream.msg = NULL; + } obj->input_stream.read_ptr=end_of_message; obj->input_stream.state=WAITING_MESSAGE_START; continue; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/belle-sip-5.2.49/src/dialog.c new/belle-sip-5.2.73/src/dialog.c --- old/belle-sip-5.2.49/src/dialog.c 2023-04-06 12:16:56.000000000 +0200 +++ new/belle-sip-5.2.73/src/dialog.c 2023-06-14 06:55:32.000000000 +0200 @@ -226,6 +226,34 @@ return BELLE_SIP_CONTINUE; } +/* + * Special function to handle the case where a dialog is established by an incoming NOTIFY + * (received prior to the SUBSCRIBE 200 OK. See https://www.rfc-editor.org/rfc/rfc6665.html#section-4.4.1 + */ +int belle_sip_dialog_establish_from_notify(belle_sip_dialog_t *obj, belle_sip_request_t *req){ + belle_sip_header_contact_t *ct = belle_sip_message_get_header_by_type(req, belle_sip_header_contact_t); + belle_sip_header_from_t *from = belle_sip_message_get_header_by_type(req, belle_sip_header_from_t); + belle_sip_header_cseq_t *cseq = belle_sip_message_get_header_by_type(req, belle_sip_header_cseq_t); + const char *from_tag = belle_sip_header_from_get_tag(from); + const belle_sip_list_t *elem; + + if (!ct) { + belle_sip_error("Missing contact header in request [%p], cannot set remote target for dialog [%p]", req, obj); + return -1; + } + + obj->route_set = belle_sip_list_free_with_data(obj->route_set, belle_sip_object_unref); + for(elem = belle_sip_message_get_headers((belle_sip_message_t*)req,BELLE_SIP_RECORD_ROUTE); elem != NULL; elem = elem->next){ + obj->route_set = belle_sip_list_append(obj->route_set,belle_sip_object_ref(belle_sip_header_route_create( + (belle_sip_header_address_t*)elem->data))); + } + obj->remote_cseq = belle_sip_header_cseq_get_seq_number(cseq); + obj->remote_target = (belle_sip_header_address_t*)belle_sip_object_ref(ct); + obj->remote_tag = belle_sip_strdup(from_tag); + set_state(obj, BELLE_SIP_DIALOG_CONFIRMED); + return 0; +} + int belle_sip_dialog_establish_full(belle_sip_dialog_t *obj, belle_sip_request_t *req, belle_sip_response_t *resp){ belle_sip_header_contact_t *ct=belle_sip_message_get_header_by_type(resp,belle_sip_header_contact_t); belle_sip_header_to_t *to=belle_sip_message_get_header_by_type(resp,belle_sip_header_to_t); @@ -658,7 +686,7 @@ } break; case BELLE_SIP_DIALOG_CONFIRMED: - if (code==481 && (is_invite || is_subscribe)) { + if (code==481 && (is_invite || is_subscribe || is_notify)) { /*Dialog is terminated in such case*/ delete_dialog=TRUE; break; @@ -1278,30 +1306,11 @@ */ int belle_sip_dialog_can_accept_request(const belle_sip_dialog_t *dialog, belle_sip_request_t *req) { - const char *method = belle_sip_request_get_method(req); if (belle_sip_dialog_request_pending(dialog)){ - const char* last_transaction_request; - if (strcasecmp(method,"BYE")==0) - return TRUE; /*don't reject a BYE*/ - - last_transaction_request = belle_sip_request_get_method(belle_sip_transaction_get_request(dialog->last_transaction)); - if (BELLE_SIP_OBJECT_IS_INSTANCE_OF(dialog->last_transaction,belle_sip_client_transaction_t)){ - if (strcmp(last_transaction_request,"SUBSCRIBE")==0 && strcmp(method,"NOTIFY")==0){ - /*stupid as it may sound, you have to accept a NOTIFY for a SUBSCRIBE for which no answer is received yet.*/ - return TRUE; - }else if (strcmp(last_transaction_request, "NOTIFY") == 0 && strcmp(method, "SUBSCRIBE") == 0){ - belle_sip_header_expires_t *expire = belle_sip_message_get_header_by_type((belle_sip_message_t*)req, belle_sip_header_expires_t); - if (expire && belle_sip_header_expires_get_expires(expire) == 0){ - /* Accept to receive an unSUBSCRIBE even if we have an outgoing pending NOTIFY */ - return TRUE; - } - } - } - if (strcmp(last_transaction_request,"INVITE")==0 && (strcmp(method,"PRACK")==0 || strcmp(method,"UPDATE")==0)){ - /*PRACK /UPDATE needs to be sent or received during reINVITEs.*/ - return TRUE; - } - return FALSE; + const char *method = belle_sip_request_get_method(req); + const char* last_transaction_request = belle_sip_request_get_method(belle_sip_transaction_get_request(dialog->last_transaction)); + // Back to back INVITES must be processed in order and one at a time + return !((strcmp(last_transaction_request,"INVITE")==0) && (strcmp(method,"INVITE")==0)); } else { return TRUE; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/belle-sip-5.2.49/src/dns/dns.c new/belle-sip-5.2.73/src/dns/dns.c --- old/belle-sip-5.2.49/src/dns/dns.c 2023-04-06 12:16:56.000000000 +0200 +++ new/belle-sip-5.2.73/src/dns/dns.c 2023-06-14 06:55:32.000000000 +0200 @@ -184,6 +184,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-parameter" #pragma clang diagnostic ignored "-Wmissing-field-initializers" +#pragma clang diagnostic ignored "-Wdeprecated-non-prototype" #elif DNS_GNUC_PREREQ(4,6,0) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/belle-sip-5.2.49/src/message.c new/belle-sip-5.2.73/src/message.c --- old/belle-sip-5.2.49/src/message.c 2023-04-06 12:16:56.000000000 +0200 +++ new/belle-sip-5.2.73/src/message.c 2023-06-14 06:55:32.000000000 +0200 @@ -123,7 +123,7 @@ return belle_sip_message_parse_raw(value,strlen(value),&message_length); } -belle_sip_message_t* belle_sip_message_parse_raw (const char* buff, size_t buff_length,size_t* message_length ) { \ +belle_sip_message_t* belle_sip_message_parse_raw (const char* buff, size_t buff_length, size_t* message_length ) { pANTLR3_INPUT_STREAM input; pbelle_sip_messageLexer lex; pANTLR3_COMMON_TOKEN_STREAM tokens; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/belle-sip-5.2.49/src/provider.c new/belle-sip-5.2.73/src/provider.c --- old/belle-sip-5.2.49/src/provider.c 2023-04-06 12:16:56.000000000 +0200 +++ new/belle-sip-5.2.73/src/provider.c 2023-06-14 06:55:32.000000000 +0200 @@ -168,7 +168,8 @@ belle_sip_client_transaction_t *sub = belle_sip_provider_find_matching_pending_subscribe_client_transaction_from_notify_req(prov,req); if (sub) { belle_sip_message("Found matching subscribe for NOTIFY [%p], creating dialog",req); - ev.dialog=belle_sip_provider_create_dialog_internal(prov,BELLE_SIP_TRANSACTION(sub),FALSE); + ev.dialog = belle_sip_provider_create_dialog_internal(prov,BELLE_SIP_TRANSACTION(sub),FALSE); + if (ev.dialog) belle_sip_dialog_establish_from_notify(ev.dialog, req); } } ++++++ set_current_version.patch ++++++ --- /var/tmp/diff_new_pack.P3boto/_old 2023-06-28 21:33:40.017968885 +0200 +++ /var/tmp/diff_new_pack.P3boto/_new 2023-06-28 21:33:40.017968885 +0200 @@ -5,7 +5,7 @@ endif() -project(belle-sip VERSION 5.2.0 LANGUAGES C CXX) -+project(belle-sip VERSION 5.2.49 LANGUAGES C CXX) ++project(belle-sip VERSION 5.2.73 LANGUAGES C CXX) set(PACKAGE "${PROJECT_NAME}") set(PACKAGE_NAME "${PROJECT_NAME}")
