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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).