Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
99185c20
Commit
99185c20
authored
Jun 05, 2004
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge nuts.davemloft.net:/disk1/BK/network-2.6
into nuts.davemloft.net:/disk1/BK/net-2.6
parents
ffd630eb
e6b6c7ee
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
74 additions
and
114 deletions
+74
-114
drivers/net/tun.c
drivers/net/tun.c
+2
-2
include/linux/if_arp.h
include/linux/if_arp.h
+1
-0
net/appletalk/ddp.c
net/appletalk/ddp.c
+1
-1
net/ax25/af_ax25.c
net/ax25/af_ax25.c
+1
-2
net/decnet/af_decnet.c
net/decnet/af_decnet.c
+1
-1
net/econet/af_econet.c
net/econet/af_econet.c
+2
-2
net/ipv4/tcp.c
net/ipv4/tcp.c
+2
-47
net/ipv4/tcp_diag.c
net/ipv4/tcp_diag.c
+54
-49
net/ipx/af_ipx.c
net/ipx/af_ipx.c
+1
-1
net/irda/af_irda.c
net/irda/af_irda.c
+3
-3
net/key/af_key.c
net/key/af_key.c
+1
-1
net/netrom/af_netrom.c
net/netrom/af_netrom.c
+1
-1
net/packet/af_packet.c
net/packet/af_packet.c
+1
-1
net/rose/af_rose.c
net/rose/af_rose.c
+1
-1
net/wanrouter/af_wanpipe.c
net/wanrouter/af_wanpipe.c
+1
-1
net/x25/af_x25.c
net/x25/af_x25.c
+1
-1
No files found.
drivers/net/tun.c
View file @
99185c20
...
...
@@ -129,8 +129,8 @@ static void tun_net_init(struct net_device *dev)
dev
->
addr_len
=
0
;
dev
->
mtu
=
1500
;
/*
Type PPP seems most suitable
*/
dev
->
type
=
ARPHRD_
PPP
;
/*
Zero header length
*/
dev
->
type
=
ARPHRD_
NONE
;
dev
->
flags
=
IFF_POINTOPOINT
|
IFF_NOARP
|
IFF_MULTICAST
;
dev
->
tx_queue_len
=
10
;
break
;
...
...
include/linux/if_arp.h
View file @
99185c20
...
...
@@ -86,6 +86,7 @@
#define ARPHRD_IEEE80211_PRISM 802
/* IEEE 802.11 + Prism2 header */
#define ARPHRD_VOID 0xFFFF
/* Void type, nothing is known */
#define ARPHRD_NONE 0xFFFE
/* zero header length */
/* ARP protocol opcodes. */
#define ARPOP_REQUEST 1
/* ARP request */
...
...
net/appletalk/ddp.c
View file @
99185c20
...
...
@@ -1567,7 +1567,7 @@ static int atalk_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr
struct
atalk_route
*
rt
;
int
err
;
if
(
flags
&
~
MSG_DONTWAIT
)
if
(
flags
&
~
(
MSG_DONTWAIT
|
MSG_CMSG_COMPAT
)
)
return
-
EINVAL
;
if
(
len
>
DDP_MAXSZ
)
...
...
net/ax25/af_ax25.c
View file @
99185c20
...
...
@@ -1413,9 +1413,8 @@ static int ax25_sendmsg(struct kiocb *iocb, struct socket *sock,
size_t
size
;
int
lv
,
err
,
addr_len
=
msg
->
msg_namelen
;
if
(
msg
->
msg_flags
&
~
(
MSG_DONTWAIT
|
MSG_EOR
))
{
if
(
msg
->
msg_flags
&
~
(
MSG_DONTWAIT
|
MSG_EOR
|
MSG_CMSG_COMPAT
))
return
-
EINVAL
;
}
lock_sock
(
sk
);
ax25
=
ax25_sk
(
sk
);
...
...
net/decnet/af_decnet.c
View file @
99185c20
...
...
@@ -1905,7 +1905,7 @@ static int dn_sendmsg(struct kiocb *iocb, struct socket *sock,
unsigned
char
fctype
;
long
timeo
=
sock_sndtimeo
(
sk
,
flags
&
MSG_DONTWAIT
);
if
(
flags
&
~
(
MSG_TRYHARD
|
MSG_OOB
|
MSG_DONTWAIT
|
MSG_EOR
|
MSG_NOSIGNAL
|
MSG_MORE
))
if
(
flags
&
~
(
MSG_TRYHARD
|
MSG_OOB
|
MSG_DONTWAIT
|
MSG_EOR
|
MSG_NOSIGNAL
|
MSG_MORE
|
MSG_CMSG_COMPAT
))
return
-
EOPNOTSUPP
;
if
(
addr_len
&&
(
addr_len
!=
sizeof
(
struct
sockaddr_dn
)))
...
...
net/econet/af_econet.c
View file @
99185c20
...
...
@@ -274,8 +274,8 @@ static int econet_sendmsg(struct kiocb *iocb, struct socket *sock,
* Check the flags.
*/
if
(
msg
->
msg_flags
&~
MSG_DONTWAIT
)
return
(
-
EINVAL
)
;
if
(
msg
->
msg_flags
&
~
(
MSG_DONTWAIT
|
MSG_CMSG_COMPAT
)
)
return
-
EINVAL
;
/*
* Get and verify the address.
...
...
net/ipv4/tcp.c
View file @
99185c20
...
...
@@ -2498,56 +2498,11 @@ int tcp_getsockopt(struct sock *sk, int level, int optname, char __user *optval,
break
;
case
TCP_INFO
:
{
struct
tcp_info
info
;
u32
now
=
tcp_time_stamp
;
if
(
get_user
(
len
,
optlen
))
return
-
EFAULT
;
info
.
tcpi_state
=
sk
->
sk_state
;
info
.
tcpi_ca_state
=
tp
->
ca_state
;
info
.
tcpi_retransmits
=
tp
->
retransmits
;
info
.
tcpi_probes
=
tp
->
probes_out
;
info
.
tcpi_backoff
=
tp
->
backoff
;
info
.
tcpi_options
=
0
;
if
(
tp
->
tstamp_ok
)
info
.
tcpi_options
|=
TCPI_OPT_TIMESTAMPS
;
if
(
tp
->
sack_ok
)
info
.
tcpi_options
|=
TCPI_OPT_SACK
;
if
(
tp
->
wscale_ok
)
{
info
.
tcpi_options
|=
TCPI_OPT_WSCALE
;
info
.
tcpi_snd_wscale
=
tp
->
snd_wscale
;
info
.
tcpi_rcv_wscale
=
tp
->
rcv_wscale
;
}
else
{
info
.
tcpi_snd_wscale
=
0
;
info
.
tcpi_rcv_wscale
=
0
;
}
if
(
tp
->
ecn_flags
&
TCP_ECN_OK
)
info
.
tcpi_options
|=
TCPI_OPT_ECN
;
info
.
tcpi_rto
=
(
1000000
*
tp
->
rto
)
/
HZ
;
info
.
tcpi_ato
=
(
1000000
*
tp
->
ack
.
ato
)
/
HZ
;
info
.
tcpi_snd_mss
=
tp
->
mss_cache_std
;
info
.
tcpi_rcv_mss
=
tp
->
ack
.
rcv_mss
;
info
.
tcpi_unacked
=
tp
->
packets_out
;
info
.
tcpi_sacked
=
tp
->
sacked_out
;
info
.
tcpi_lost
=
tp
->
lost_out
;
info
.
tcpi_retrans
=
tp
->
retrans_out
;
info
.
tcpi_fackets
=
tp
->
fackets_out
;
info
.
tcpi_last_data_sent
=
((
now
-
tp
->
lsndtime
)
*
1000
)
/
HZ
;
info
.
tcpi_last_ack_sent
=
0
;
info
.
tcpi_last_data_recv
=
((
now
-
tp
->
ack
.
lrcvtime
)
*
1000
)
/
HZ
;
info
.
tcpi_last_ack_recv
=
((
now
-
tp
->
rcv_tstamp
)
*
1000
)
/
HZ
;
info
.
tcpi_pmtu
=
tp
->
pmtu_cookie
;
info
.
tcpi_rcv_ssthresh
=
tp
->
rcv_ssthresh
;
info
.
tcpi_rtt
=
((
1000000
*
tp
->
srtt
)
/
HZ
)
>>
3
;
info
.
tcpi_rttvar
=
((
1000000
*
tp
->
mdev
)
/
HZ
)
>>
2
;
info
.
tcpi_snd_ssthresh
=
tp
->
snd_ssthresh
;
info
.
tcpi_snd_cwnd
=
tp
->
snd_cwnd
;
info
.
tcpi_advmss
=
tp
->
advmss
;
info
.
tcpi_reordering
=
tp
->
reordering
;
tcp_get_info
(
sk
,
&
info
);
len
=
min_t
(
unsigned
int
,
len
,
sizeof
(
info
));
if
(
put_user
(
len
,
optlen
))
...
...
net/ipv4/tcp_diag.c
View file @
99185c20
...
...
@@ -41,6 +41,58 @@ static struct sock *tcpnl;
rta->rta_len = rtalen; \
RTA_DATA(rta); })
/* Return information about state of tcp endpoint in API format. */
void
tcp_get_info
(
struct
sock
*
sk
,
struct
tcp_info
*
info
)
{
struct
tcp_opt
*
tp
=
tcp_sk
(
sk
);
u32
now
=
tcp_time_stamp
;
memset
(
info
,
0
,
sizeof
(
*
info
));
info
->
tcpi_state
=
sk
->
sk_state
;
info
->
tcpi_ca_state
=
tp
->
ca_state
;
info
->
tcpi_retransmits
=
tp
->
retransmits
;
info
->
tcpi_probes
=
tp
->
probes_out
;
info
->
tcpi_backoff
=
tp
->
backoff
;
if
(
tp
->
tstamp_ok
)
info
->
tcpi_options
|=
TCPI_OPT_TIMESTAMPS
;
if
(
tp
->
sack_ok
)
info
->
tcpi_options
|=
TCPI_OPT_SACK
;
if
(
tp
->
wscale_ok
)
{
info
->
tcpi_options
|=
TCPI_OPT_WSCALE
;
info
->
tcpi_snd_wscale
=
tp
->
snd_wscale
;
info
->
tcpi_rcv_wscale
=
tp
->
rcv_wscale
;
}
if
(
tp
->
ecn_flags
&
TCP_ECN_OK
)
info
->
tcpi_options
|=
TCPI_OPT_ECN
;
info
->
tcpi_rto
=
(
1000000
*
tp
->
rto
)
/
HZ
;
info
->
tcpi_ato
=
(
1000000
*
tp
->
ack
.
ato
)
/
HZ
;
info
->
tcpi_snd_mss
=
tp
->
mss_cache
;
info
->
tcpi_rcv_mss
=
tp
->
ack
.
rcv_mss
;
info
->
tcpi_unacked
=
tp
->
packets_out
;
info
->
tcpi_sacked
=
tp
->
sacked_out
;
info
->
tcpi_lost
=
tp
->
lost_out
;
info
->
tcpi_retrans
=
tp
->
retrans_out
;
info
->
tcpi_fackets
=
tp
->
fackets_out
;
info
->
tcpi_last_data_sent
=
((
now
-
tp
->
lsndtime
)
*
1000
)
/
HZ
;
info
->
tcpi_last_data_recv
=
((
now
-
tp
->
ack
.
lrcvtime
)
*
1000
)
/
HZ
;
info
->
tcpi_last_ack_recv
=
((
now
-
tp
->
rcv_tstamp
)
*
1000
)
/
HZ
;
info
->
tcpi_pmtu
=
tp
->
pmtu_cookie
;
info
->
tcpi_rcv_ssthresh
=
tp
->
rcv_ssthresh
;
info
->
tcpi_rtt
=
((
1000000
*
tp
->
srtt
)
/
HZ
)
>>
3
;
info
->
tcpi_rttvar
=
((
1000000
*
tp
->
mdev
)
/
HZ
)
>>
2
;
info
->
tcpi_snd_ssthresh
=
tp
->
snd_ssthresh
;
info
->
tcpi_snd_cwnd
=
tp
->
snd_cwnd
;
info
->
tcpi_advmss
=
tp
->
advmss
;
info
->
tcpi_reordering
=
tp
->
reordering
;
}
static
int
tcpdiag_fill
(
struct
sk_buff
*
skb
,
struct
sock
*
sk
,
int
ext
,
u32
pid
,
u32
seq
)
{
...
...
@@ -150,55 +202,8 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk,
minfo
->
tcpdiag_tmem
=
atomic_read
(
&
sk
->
sk_wmem_alloc
);
}
if
(
info
)
{
u32
now
=
tcp_time_stamp
;
info
->
tcpi_state
=
sk
->
sk_state
;
info
->
tcpi_ca_state
=
tp
->
ca_state
;
info
->
tcpi_retransmits
=
tp
->
retransmits
;
info
->
tcpi_probes
=
tp
->
probes_out
;
info
->
tcpi_backoff
=
tp
->
backoff
;
info
->
tcpi_options
=
0
;
if
(
tp
->
tstamp_ok
)
info
->
tcpi_options
|=
TCPI_OPT_TIMESTAMPS
;
if
(
tp
->
sack_ok
)
info
->
tcpi_options
|=
TCPI_OPT_SACK
;
if
(
tp
->
wscale_ok
)
{
info
->
tcpi_options
|=
TCPI_OPT_WSCALE
;
info
->
tcpi_snd_wscale
=
tp
->
snd_wscale
;
info
->
tcpi_rcv_wscale
=
tp
->
rcv_wscale
;
}
else
{
info
->
tcpi_snd_wscale
=
0
;
info
->
tcpi_rcv_wscale
=
0
;
}
if
(
tp
->
ecn_flags
&
TCP_ECN_OK
)
info
->
tcpi_options
|=
TCPI_OPT_ECN
;
info
->
tcpi_rto
=
(
1000000
*
tp
->
rto
)
/
HZ
;
info
->
tcpi_ato
=
(
1000000
*
tp
->
ack
.
ato
)
/
HZ
;
info
->
tcpi_snd_mss
=
tp
->
mss_cache
;
info
->
tcpi_rcv_mss
=
tp
->
ack
.
rcv_mss
;
info
->
tcpi_unacked
=
tp
->
packets_out
;
info
->
tcpi_sacked
=
tp
->
sacked_out
;
info
->
tcpi_lost
=
tp
->
lost_out
;
info
->
tcpi_retrans
=
tp
->
retrans_out
;
info
->
tcpi_fackets
=
tp
->
fackets_out
;
info
->
tcpi_last_data_sent
=
((
now
-
tp
->
lsndtime
)
*
1000
)
/
HZ
;
info
->
tcpi_last_ack_sent
=
0
;
info
->
tcpi_last_data_recv
=
((
now
-
tp
->
ack
.
lrcvtime
)
*
1000
)
/
HZ
;
info
->
tcpi_last_ack_recv
=
((
now
-
tp
->
rcv_tstamp
)
*
1000
)
/
HZ
;
info
->
tcpi_pmtu
=
tp
->
pmtu_cookie
;
info
->
tcpi_rcv_ssthresh
=
tp
->
rcv_ssthresh
;
info
->
tcpi_rtt
=
((
1000000
*
tp
->
srtt
)
/
HZ
)
>>
3
;
info
->
tcpi_rttvar
=
((
1000000
*
tp
->
mdev
)
/
HZ
)
>>
2
;
info
->
tcpi_snd_ssthresh
=
tp
->
snd_ssthresh
;
info
->
tcpi_snd_cwnd
=
tp
->
snd_cwnd
;
info
->
tcpi_advmss
=
tp
->
advmss
;
info
->
tcpi_reordering
=
tp
->
reordering
;
}
if
(
info
)
tcp_get_info
(
sk
,
info
);
if
(
vinfo
)
{
vinfo
->
tcpv_enabled
=
tp
->
vegas
.
doing_vegas_now
;
...
...
net/ipx/af_ipx.c
View file @
99185c20
...
...
@@ -1695,7 +1695,7 @@ static int ipx_sendmsg(struct kiocb *iocb, struct socket *sock,
/* Socket gets bound below anyway */
/* if (sk->sk_zapped)
return -EIO; */
/* Socket not bound */
if
(
flags
&
~
MSG_DONTWAIT
)
if
(
flags
&
~
(
MSG_DONTWAIT
|
MSG_CMSG_COMPAT
)
)
goto
out
;
/* Max possible packet size limited by 16 bit pktsize in header */
...
...
net/irda/af_irda.c
View file @
99185c20
...
...
@@ -1269,7 +1269,7 @@ static int irda_sendmsg(struct kiocb *iocb, struct socket *sock,
IRDA_DEBUG
(
4
,
"%s(), len=%d
\n
"
,
__FUNCTION__
,
len
);
/* Note : socket.c set MSG_EOR on SEQPACKET sockets */
if
(
msg
->
msg_flags
&
~
(
MSG_DONTWAIT
|
MSG_EOR
))
if
(
msg
->
msg_flags
&
~
(
MSG_DONTWAIT
|
MSG_EOR
|
MSG_CMSG_COMPAT
))
return
-
EINVAL
;
if
(
sk
->
sk_shutdown
&
SEND_SHUTDOWN
)
{
...
...
@@ -1521,7 +1521,7 @@ static int irda_sendmsg_dgram(struct kiocb *iocb, struct socket *sock,
IRDA_DEBUG
(
4
,
"%s(), len=%d
\n
"
,
__FUNCTION__
,
len
);
if
(
msg
->
msg_flags
&
~
MSG_DONTWAIT
)
if
(
msg
->
msg_flags
&
~
(
MSG_DONTWAIT
|
MSG_CMSG_COMPAT
)
)
return
-
EINVAL
;
if
(
sk
->
sk_shutdown
&
SEND_SHUTDOWN
)
{
...
...
@@ -1593,7 +1593,7 @@ static int irda_sendmsg_ultra(struct kiocb *iocb, struct socket *sock,
IRDA_DEBUG
(
4
,
"%s(), len=%d
\n
"
,
__FUNCTION__
,
len
);
if
(
msg
->
msg_flags
&
~
MSG_DONTWAIT
)
if
(
msg
->
msg_flags
&
~
(
MSG_DONTWAIT
|
MSG_CMSG_COMPAT
)
)
return
-
EINVAL
;
if
(
sk
->
sk_shutdown
&
SEND_SHUTDOWN
)
{
...
...
net/key/af_key.c
View file @
99185c20
...
...
@@ -2726,7 +2726,7 @@ static int pfkey_recvmsg(struct kiocb *kiocb,
int
copied
,
err
;
err
=
-
EINVAL
;
if
(
flags
&
~
(
MSG_PEEK
|
MSG_DONTWAIT
|
MSG_TRUNC
))
if
(
flags
&
~
(
MSG_PEEK
|
MSG_DONTWAIT
|
MSG_TRUNC
|
MSG_CMSG_COMPAT
))
goto
out
;
msg
->
msg_namelen
=
0
;
...
...
net/netrom/af_netrom.c
View file @
99185c20
...
...
@@ -1021,7 +1021,7 @@ static int nr_sendmsg(struct kiocb *iocb, struct socket *sock,
unsigned
char
*
asmptr
;
int
size
;
if
(
msg
->
msg_flags
&
~
(
MSG_DONTWAIT
|
MSG_EOR
))
if
(
msg
->
msg_flags
&
~
(
MSG_DONTWAIT
|
MSG_EOR
|
MSG_CMSG_COMPAT
))
return
-
EINVAL
;
lock_sock
(
sk
);
...
...
net/packet/af_packet.c
View file @
99185c20
...
...
@@ -1037,7 +1037,7 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock,
int
copied
,
err
;
err
=
-
EINVAL
;
if
(
flags
&
~
(
MSG_PEEK
|
MSG_DONTWAIT
|
MSG_TRUNC
))
if
(
flags
&
~
(
MSG_PEEK
|
MSG_DONTWAIT
|
MSG_TRUNC
|
MSG_CMSG_COMPAT
))
goto
out
;
#if 0
...
...
net/rose/af_rose.c
View file @
99185c20
...
...
@@ -1021,7 +1021,7 @@ static int rose_sendmsg(struct kiocb *iocb, struct socket *sock,
unsigned
char
*
asmptr
;
int
n
,
size
,
qbit
=
0
;
if
(
msg
->
msg_flags
&
~
(
MSG_DONTWAIT
|
MSG_EOR
))
if
(
msg
->
msg_flags
&
~
(
MSG_DONTWAIT
|
MSG_EOR
|
MSG_CMSG_COMPAT
))
return
-
EINVAL
;
if
(
sk
->
sk_zapped
)
...
...
net/wanrouter/af_wanpipe.c
View file @
99185c20
...
...
@@ -552,7 +552,7 @@ static int wanpipe_sendmsg(struct kiocb *iocb, struct socket *sock,
if
(
sk
->
sk_state
!=
WANSOCK_CONNECTED
)
return
-
ENOTCONN
;
if
(
msg
->
msg_flags
&~
MSG_DONTWAIT
)
if
(
msg
->
msg_flags
&
~
(
MSG_DONTWAIT
|
MSG_CMSG_COMPAT
)
)
return
(
-
EINVAL
);
/* it was <=, now one can send
...
...
net/x25/af_x25.c
View file @
99185c20
...
...
@@ -922,7 +922,7 @@ static int x25_sendmsg(struct kiocb *iocb, struct socket *sock,
size_t
size
;
int
qbit
=
0
,
rc
=
-
EINVAL
;
if
(
msg
->
msg_flags
&
~
(
MSG_DONTWAIT
|
MSG_OOB
|
MSG_EOR
))
if
(
msg
->
msg_flags
&
~
(
MSG_DONTWAIT
|
MSG_OOB
|
MSG_EOR
|
MSG_CMSG_COMPAT
))
goto
out
;
/* we currently don't support segmented records at the user interface */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment