From 637e509c965145dba6635634abc57ad9521b1716 Mon Sep 17 00:00:00 2001 From: MelwareDE Date: Mon, 29 Aug 2005 15:21:12 +0000 Subject: [PATCH] Check for resent SETUP message. --- chan_capi.c | 8 ++++++++ chan_capi.h | 7 ++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/chan_capi.c b/chan_capi.c index a40af98..604e1b0 100644 --- a/chan_capi.c +++ b/chan_capi.c @@ -1913,6 +1913,14 @@ static void handle_info_disconnect(_cmsg *CMSG, unsigned int PLCI, unsigned int */ static void handle_setup_element(_cmsg *CMSG, unsigned int PLCI, struct ast_capi_pvt *i) { + if (i->isdnstate & CAPI_ISDN_STATE_SETUP) { + cc_ast_verbose(3, 1, VERBOSE_PREFIX_4 "%s: IE SETUP already received.\n", + i->name); + return; + } + + i->isdnstate |= CAPI_ISDN_STATE_SETUP; + if (!i->owner) { ast_log(LOG_ERROR, "No channel for interface!\n"); return; diff --git a/chan_capi.h b/chan_capi.h index 128f551..1414fb1 100644 --- a/chan_capi.h +++ b/chan_capi.h @@ -166,9 +166,10 @@ struct ast_capi_gains { unsigned char rxgains[256]; }; -#define CAPI_ISDN_STATE_SETUP_ACK 0x01 -#define CAPI_ISDN_STATE_HOLD 0x02 -#define CAPI_ISDN_STATE_ECT 0x04 +#define CAPI_ISDN_STATE_SETUP 0x01 +#define CAPI_ISDN_STATE_SETUP_ACK 0x02 +#define CAPI_ISDN_STATE_HOLD 0x04 +#define CAPI_ISDN_STATE_ECT 0x08 /* ! Private data for a capi device */ struct ast_capi_pvt {