From 834aea61eb33d77dc70843fd4a7edbcfdf6d6719 Mon Sep 17 00:00:00 2001 From: Ursula Braun Date: Wed, 8 Feb 2012 00:19:48 +0000 Subject: [PATCH] --- yaml --- r: 290063 b: refs/heads/master c: 51363b8751a673a00ad48eea895266396d53fa52 h: refs/heads/master i: 290061: dd19105419951b3877102a688ecb7360ae7ceaa5 290059: b6f8bd69ad90e3d59282ca900ead6c5407cc1a6e 290055: b5bffee34699b7f2cd56b0fc01f15cddec969895 290047: 25ab84abd037fa1f2ce22eafbcefee0781d1cf54 v: v3 --- [refs] | 2 +- trunk/include/net/iucv/af_iucv.h | 1 + trunk/net/iucv/af_iucv.c | 10 +++++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 38333ff34bb4..48c59fa3753a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 800c5eb7b5eba6cb2a32738d763fd59f0fbcdde4 +refs/heads/master: 51363b8751a673a00ad48eea895266396d53fa52 diff --git a/trunk/include/net/iucv/af_iucv.h b/trunk/include/net/iucv/af_iucv.h index a1517887aeac..2e1d5ecc2d1b 100644 --- a/trunk/include/net/iucv/af_iucv.h +++ b/trunk/include/net/iucv/af_iucv.h @@ -132,6 +132,7 @@ struct iucv_sock { /* iucv socket options (SOL_IUCV) */ #define SO_IPRMDATA_MSG 0x0080 /* send/recv IPRM_DATA msgs */ #define SO_MSGLIMIT 0x1000 /* get/set IUCV MSGLIMIT */ +#define SO_MSGSIZE 0x0800 /* get maximum msgsize */ /* iucv related control messages (scm) */ #define SCM_IUCV_TRGCLS 0x0001 /* target class control message */ diff --git a/trunk/net/iucv/af_iucv.c b/trunk/net/iucv/af_iucv.c index fbce4a3126de..98d1f0ba7fe9 100644 --- a/trunk/net/iucv/af_iucv.c +++ b/trunk/net/iucv/af_iucv.c @@ -1633,7 +1633,8 @@ static int iucv_sock_getsockopt(struct socket *sock, int level, int optname, { struct sock *sk = sock->sk; struct iucv_sock *iucv = iucv_sk(sk); - int val, len; + unsigned int val; + int len; if (level != SOL_IUCV) return -ENOPROTOOPT; @@ -1656,6 +1657,13 @@ static int iucv_sock_getsockopt(struct socket *sock, int level, int optname, : iucv->msglimit; /* default */ release_sock(sk); break; + case SO_MSGSIZE: + if (sk->sk_state == IUCV_OPEN) + return -EBADFD; + val = (iucv->hs_dev) ? iucv->hs_dev->mtu - + sizeof(struct af_iucv_trans_hdr) - ETH_HLEN : + 0x7fffffff; + break; default: return -ENOPROTOOPT; }