tipc: Add socket options to get number of queued messages
This patch allows a TIPC application to determine the number of messages currently waiting in a socket's receive queue (TIPC_SOCK_RECVQ_DEPTH) or in all TIPC socket receive queues (TIPC_NODE_RECVQ_DEPTH). Signed-off-by: Oscar Medina <oscar.medina@motorola.com> Signed-off-by: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
af794c7424
commit
6650613d33
2 changed files with 8 additions and 0 deletions
|
@ -209,5 +209,7 @@ struct sockaddr_tipc {
|
|||
#define TIPC_SRC_DROPPABLE 128 /* Default: 0 (resend congested msg) */
|
||||
#define TIPC_DEST_DROPPABLE 129 /* Default: based on socket type */
|
||||
#define TIPC_CONN_TIMEOUT 130 /* Default: 8000 (ms) */
|
||||
#define TIPC_NODE_RECVQ_DEPTH 131 /* Default: none (read only) */
|
||||
#define TIPC_SOCK_RECVQ_DEPTH 132 /* Default: none (read only) */
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1748,6 +1748,12 @@ static int getsockopt(struct socket *sock,
|
|||
value = jiffies_to_msecs(sk->sk_rcvtimeo);
|
||||
/* no need to set "res", since already 0 at this point */
|
||||
break;
|
||||
case TIPC_NODE_RECVQ_DEPTH:
|
||||
value = (u32)atomic_read(&tipc_queue_size);
|
||||
break;
|
||||
case TIPC_SOCK_RECVQ_DEPTH:
|
||||
value = skb_queue_len(&sk->sk_receive_queue);
|
||||
break;
|
||||
default:
|
||||
res = -EINVAL;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue