From: Tilman Schmidt <tilman@imap.cc>
To: Karsten Keil <isdn@linux-pingi.de>, David Miller <davem@davemloft.net>
Cc: Hansjoerg Lipp <hjlipp@web.de>, Karsten Keil <keil@b1-systems.de>,
i4ldeveloper@listserv.isdn4linux.de, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH 06/11] isdn/gigaset: handle Supplementary Service Listen
Date: Tue, 6 Jul 2010 02:19:04 +0200 (CEST) [thread overview]
Message-ID: <20100705-patch-gigaset-06.tilman@imap.cc> (raw)
In-Reply-To: <20100705-patch-gigaset-00.tilman@imap.cc>
Add minimal handling for the non-optional CAPI FACILITY_REQ
Supplementary Service function Listen.
Impact: bugfix
Signed-off-by: Tilman Schmidt <tilman@imap.cc>
---
drivers/isdn/gigaset/capi.c | 27 ++++++++++++++++++++++++++-
1 files changed, 26 insertions(+), 1 deletions(-)
diff --git a/drivers/isdn/gigaset/capi.c b/drivers/isdn/gigaset/capi.c
index ff074e9..3714aef 100644
--- a/drivers/isdn/gigaset/capi.c
+++ b/drivers/isdn/gigaset/capi.c
@@ -45,6 +45,7 @@
#define CAPI_FACILITY_LI 0x0005
#define CAPI_SUPPSVC_GETSUPPORTED 0x0000
+#define CAPI_SUPPSVC_LISTEN 0x0001
/* missing from capiutil.h */
#define CAPIMSG_PLCI_PART(m) CAPIMSG_U8(m, 9)
@@ -1151,7 +1152,7 @@ static void do_facility_req(struct gigaset_capi_ctr *iif,
case CAPI_FACILITY_SUPPSVC:
/* decode Function parameter */
pparam = cmsg->FacilityRequestParameter;
- if (pparam == NULL || *pparam < 2) {
+ if (pparam == NULL || pparam[0] < 2) {
dev_notice(cs->dev, "%s: %s missing\n", "FACILITY_REQ",
"Facility Request Parameter");
send_conf(iif, ap, skb, CapiIllMessageParmCoding);
@@ -1168,8 +1169,32 @@ static void do_facility_req(struct gigaset_capi_ctr *iif,
/* Supported Services: none */
capimsg_setu32(confparam, 6, 0);
break;
+ case CAPI_SUPPSVC_LISTEN:
+ if (pparam[0] < 7 || pparam[3] < 4) {
+ dev_notice(cs->dev, "%s: %s missing\n",
+ "FACILITY_REQ", "Notification Mask");
+ send_conf(iif, ap, skb,
+ CapiIllMessageParmCoding);
+ return;
+ }
+ if (CAPIMSG_U32(pparam, 4) != 0) {
+ dev_notice(cs->dev,
+ "%s: unsupported supplementary service notification mask 0x%x\n",
+ "FACILITY_REQ", CAPIMSG_U32(pparam, 4));
+ info = CapiFacilitySpecificFunctionNotSupported;
+ confparam[3] = 2; /* length */
+ capimsg_setu16(confparam, 4,
+ CapiSupplementaryServiceNotSupported);
+ }
+ info = CapiSuccess;
+ confparam[3] = 2; /* length */
+ capimsg_setu16(confparam, 4, CapiSuccess);
+ break;
/* ToDo: add supported services */
default:
+ dev_notice(cs->dev,
+ "%s: unsupported supplementary service function 0x%04x\n",
+ "FACILITY_REQ", function);
info = CapiFacilitySpecificFunctionNotSupported;
/* Supplementary Service specific parameter */
confparam[3] = 2; /* length */
--
1.6.5.3.298.g39add
next prev parent reply other threads:[~2010-07-06 0:19 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-06 0:18 [PATCH 00/11] ISDN patches for 2.6.36 Tilman Schmidt
2010-07-06 0:18 ` [PATCH 01/11] isdn/gigaset: adjust usb_gigaset tty write buffer limit Tilman Schmidt
2010-07-06 0:18 ` [PATCH 02/11] isdn/gigaset: avoid copying AT commands twice Tilman Schmidt
2010-07-06 0:18 ` [PATCH 03/11] isdn/gigaset: ignore irrelevant device responses Tilman Schmidt
2010-07-06 0:18 ` [PATCH 04/11] isdn/gigaset: drop debug check on isochronous write Tilman Schmidt
2010-07-06 0:18 ` [PATCH 05/11] isdn/gigaset: improve CAPI message debugging Tilman Schmidt
2010-07-06 2:23 ` David Miller
2010-07-06 8:14 ` Tilman Schmidt
2010-07-06 17:44 ` David Miller
2010-07-06 20:31 ` Tilman Schmidt
2010-07-06 0:19 ` Tilman Schmidt [this message]
2010-07-06 0:19 ` [PATCH 07/11] isdn/gigaset: remove obsolete compile time options Tilman Schmidt
2010-07-06 0:19 ` [PATCH 08/11] isdn/gigaset: reduce syslog spam Tilman Schmidt
2010-07-06 0:19 ` [PATCH 09/11] isdn/gigaset: fix leaks in error path Tilman Schmidt
2010-07-06 0:19 ` [PATCH 10/11] isdn/gigaset: document dial-out number format Tilman Schmidt
2010-07-06 0:19 ` [PATCH 11/11] isdn/gigaset: remove EXPERIMENTAL tag from GIGASET_CAPI Tilman Schmidt
2010-07-06 1:53 ` [PATCH 00/11] ISDN patches for 2.6.36 David Miller
2010-07-06 1:55 ` David Miller
2010-07-06 7:47 ` Tilman Schmidt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100705-patch-gigaset-06.tilman@imap.cc \
--to=tilman@imap.cc \
--cc=davem@davemloft.net \
--cc=hjlipp@web.de \
--cc=i4ldeveloper@listserv.isdn4linux.de \
--cc=isdn@linux-pingi.de \
--cc=keil@b1-systems.de \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.