osip-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[osip-dev] eXosip_call_build_prack


From: FEICHTER Christoph
Subject: [osip-dev] eXosip_call_build_prack
Date: Mon, 23 Feb 2015 12:06:23 +0000

hi,
 
I think that the function eXosip_call_build_prack is not fully RFC 3262 conform.
It should not be possible to generate a PRACK request, which has no RAck header !
 
currently this is possible, due to this section (eXcall_api.c, line 1097ff):
 
        osip_message_header_get_byname(tr->last_response, "RSeq", 0, &rseq);
        if (rseq != NULL && rseq->hvalue != NULL) {
                char tmp[128];
                memset(tmp, '\0', sizeof(tmp));
                snprintf(tmp, 127, "%s %s %s", rseq->hvalue,
                                tr->orig_request->cseq->number, tr->orig_request->cseq->method);
                osip_message_set_header(*prack, "RAck", tmp);
        }
        return OSIP_SUCCESS;
 
the implementation has been different before.
this check was the right implementation – which has been removed:
 
  osip_message_header_get_byname (tr->last_response, "RSeq", 0, &rseq);
  if (rseq == NULL || rseq->hvalue == NULL) {
    return OSIP_WRONG_FORMAT;
  }
 
If there is no RSeq header found in the last INVITE-response,
a PRACK cannot be built.
 
br,
christoph
 
 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]