rfc4235 - Section 4.1: Versions MUST be representable using a non-negative 32 bit integer.

If a BLF subscription exists for long enough, using %d may print negative version numbers.
Unlikely, as 2^32 at 1 update per second is ~137 years, or half that before the versions number started going negative.

Tested with Asterisk 1.8.8.2 with Grandstream phones.
 
alecdavis (license 585)
Tested by: alecdavis
 
Review: https://reviewboard.asterisk.org/r/1694/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@352862 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Alec L Davis
2012-01-27 00:05:30 +00:00
parent 197662dd4d
commit 4d2f8a9cfd
2 changed files with 4 additions and 4 deletions

View File

@@ -12505,7 +12505,7 @@ static void state_notify_build_xml(int state, int full, const char *exten, const
break;
case DIALOG_INFO_XML: /* SNOM subscribes in this format */
ast_str_append(tmp, 0, "<?xml version=\"1.0\"?>\n");
ast_str_append(tmp, 0, "<dialog-info xmlns=\"urn:ietf:params:xml:ns:dialog-info\" version=\"%d\" state=\"%s\" entity=\"%s\">\n", p->dialogver, full ? "full" : "partial", mto);
ast_str_append(tmp, 0, "<dialog-info xmlns=\"urn:ietf:params:xml:ns:dialog-info\" version=\"%u\" state=\"%s\" entity=\"%s\">\n", p->dialogver, full ? "full" : "partial", mto);
if ((state & AST_EXTENSION_RINGING) && sip_cfg.notifyringing) {
const char *local_display = exten;
char *local_target = ast_strdupa(mto);
@@ -24573,7 +24573,7 @@ static int handle_request_subscribe(struct sip_pvt *p, struct sip_request *req,
if (p->subscribed == NONE) { /* if the subscribed field is not already set, and there is no accept header... */
transmit_response(p, "489 Bad Event", req);
ast_log(LOG_WARNING,"SUBSCRIBE failure: no Accept header: pvt: "
"stateid: %d, laststate: %d, dialogver: %d, subscribecont: "
"stateid: %d, laststate: %d, dialogver: %u, subscribecont: "
"'%s', subscribeuri: '%s'\n",
p->stateid,
p->laststate,
@@ -24599,7 +24599,7 @@ static int handle_request_subscribe(struct sip_pvt *p, struct sip_request *req,
transmit_response(p, mybuf, req);
ast_log(LOG_WARNING,"SUBSCRIBE failure: unrecognized format:"
"'%s' pvt: subscribed: %d, stateid: %d, laststate: %d,"
"dialogver: %d, subscribecont: '%s', subscribeuri: '%s'\n",
"dialogver: %u, subscribecont: '%s', subscribeuri: '%s'\n",
unknown_acceptheader,
(int)p->subscribed,
p->stateid,

View File

@@ -1074,7 +1074,7 @@ struct sip_pvt {
enum subscriptiontype subscribed; /*!< SUBSCRIBE: Is this dialog a subscription? */
int stateid; /*!< SUBSCRIBE: ID for devicestate subscriptions */
int laststate; /*!< SUBSCRIBE: Last known extension state */
int dialogver; /*!< SUBSCRIBE: Version for subscription dialog-info */
uint32_t dialogver; /*!< SUBSCRIBE: Version for subscription dialog-info */
struct ast_dsp *dsp; /*!< Inband DTMF or Fax CNG tone Detection dsp */