From f63cc76a9425ce92d4bfb708cdd946c461b6a3b7 Mon Sep 17 00:00:00 2001 From: Martin Pycko Date: Mon, 13 Oct 2003 22:34:05 +0000 Subject: [PATCH] Allow the reception of 1 byte Call Reference value git-svn-id: https://origsvn.digium.com/svn/libpri/trunk@63 2fbb986a-6c06-0410-b554-c9c1f0a7f128 --- q931.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/q931.c b/q931.c index 03087a0..dabd3cb 100755 --- a/q931.c +++ b/q931.c @@ -1251,9 +1251,21 @@ static inline int q931_cr(q931_h *h) pri_error("Call Reference Length Too long: %d\n", h->crlen); return -1; } - for (x=0;xcrlen;x++) { - cr <<= 8; - cr |= h->crv[x]; + switch (h->crlen) { + case 2: + for (x=0;xcrlen;x++) { + cr <<= 8; + cr |= h->crv[x]; + } + break; + case 1: + cr = h->crv[0]; + if (cr & 0x80) { + cr &= ~0x80; + cr |= 0x8000; + } + default: + pri_error("Call Reference Length not supported: %d\n", h->crlen); } return cr; }