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
1255a1e9
Commit
1255a1e9
authored
Jan 16, 2005
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://kernel.bkbits.net/acme/connection_sock-2.6
into nuts.davemloft.net:/disk1/BK/net-2.6
parents
20408758
dbf390ac
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
120 additions
and
95 deletions
+120
-95
include/linux/ip.h
include/linux/ip.h
+14
-0
include/linux/ipv6.h
include/linux/ipv6.h
+11
-0
include/net/sctp/sctp.h
include/net/sctp/sctp.h
+1
-18
include/net/sctp/structs.h
include/net/sctp/structs.h
+31
-13
net/sctp/associola.c
net/sctp/associola.c
+4
-4
net/sctp/bind_addr.c
net/sctp/bind_addr.c
+2
-2
net/sctp/chunk.c
net/sctp/chunk.c
+1
-1
net/sctp/endpointola.c
net/sctp/endpointola.c
+1
-1
net/sctp/ipv6.c
net/sctp/ipv6.c
+10
-10
net/sctp/output.c
net/sctp/output.c
+2
-2
net/sctp/protocol.c
net/sctp/protocol.c
+8
-8
net/sctp/sm_make_chunk.c
net/sctp/sm_make_chunk.c
+1
-1
net/sctp/socket.c
net/sctp/socket.c
+32
-32
net/sctp/transport.c
net/sctp/transport.c
+1
-1
net/sctp/ulpqueue.c
net/sctp/ulpqueue.c
+1
-2
No files found.
include/linux/ip.h
View file @
1255a1e9
...
@@ -158,6 +158,20 @@ static inline struct inet_sock *inet_sk(const struct sock *sk)
...
@@ -158,6 +158,20 @@ static inline struct inet_sock *inet_sk(const struct sock *sk)
return
(
struct
inet_sock
*
)
sk
;
return
(
struct
inet_sock
*
)
sk
;
}
}
static
inline
void
__inet_sk_copy_descendant
(
struct
sock
*
sk_to
,
const
struct
sock
*
sk_from
,
const
int
ancestor_size
)
{
memcpy
(
inet_sk
(
sk_to
)
+
1
,
inet_sk
(
sk_from
)
+
1
,
sk_from
->
sk_prot
->
slab_obj_size
-
ancestor_size
);
}
#if !(defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE))
static
inline
void
inet_sk_copy_descendant
(
struct
sock
*
sk_to
,
const
struct
sock
*
sk_from
)
{
__inet_sk_copy_descendant
(
sk_to
,
sk_from
,
sizeof
(
struct
inet_sock
));
}
#endif
#endif
#endif
struct
iphdr
{
struct
iphdr
{
...
...
include/linux/ipv6.h
View file @
1255a1e9
...
@@ -282,6 +282,17 @@ static inline struct raw6_opt * raw6_sk(const struct sock *__sk)
...
@@ -282,6 +282,17 @@ static inline struct raw6_opt * raw6_sk(const struct sock *__sk)
return
&
((
struct
raw6_sock
*
)
__sk
)
->
raw6
;
return
&
((
struct
raw6_sock
*
)
__sk
)
->
raw6
;
}
}
static
inline
void
inet_sk_copy_descendant
(
struct
sock
*
sk_to
,
const
struct
sock
*
sk_from
)
{
int
ancestor_size
=
sizeof
(
struct
inet_sock
);
if
(
sk_from
->
sk_family
==
PF_INET6
)
ancestor_size
+=
sizeof
(
struct
ipv6_pinfo
);
__inet_sk_copy_descendant
(
sk_to
,
sk_from
,
ancestor_size
);
}
#define __ipv6_only_sock(sk) (inet6_sk(sk)->ipv6only)
#define __ipv6_only_sock(sk) (inet6_sk(sk)->ipv6only)
#define ipv6_only_sock(sk) ((sk)->sk_family == PF_INET6 && __ipv6_only_sock(sk))
#define ipv6_only_sock(sk) ((sk)->sk_family == PF_INET6 && __ipv6_only_sock(sk))
#else
#else
...
...
include/net/sctp/sctp.h
View file @
1255a1e9
...
@@ -423,7 +423,7 @@ static inline __s32 sctp_jitter(__u32 rto)
...
@@ -423,7 +423,7 @@ static inline __s32 sctp_jitter(__u32 rto)
}
}
/* Break down data chunks at this point. */
/* Break down data chunks at this point. */
static
inline
int
sctp_frag_point
(
const
struct
sctp_
opt
*
sp
,
int
pmtu
)
static
inline
int
sctp_frag_point
(
const
struct
sctp_
sock
*
sp
,
int
pmtu
)
{
{
int
frag
=
pmtu
;
int
frag
=
pmtu
;
...
@@ -576,23 +576,6 @@ static inline int sctp_vtag_hashfn(__u16 lport, __u16 rport, __u32 vtag)
...
@@ -576,23 +576,6 @@ static inline int sctp_vtag_hashfn(__u16 lport, __u16 rport, __u32 vtag)
return
(
h
&
(
sctp_assoc_hashsize
-
1
));
return
(
h
&
(
sctp_assoc_hashsize
-
1
));
}
}
/* WARNING: Do not change the layout of the members in sctp_sock! */
struct
sctp_sock
{
struct
inet_sock
inet
;
struct
sctp_opt
sctp
;
};
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
struct
sctp6_sock
{
struct
inet_sock
inet
;
struct
sctp_opt
sctp
;
struct
ipv6_pinfo
inet6
;
};
#endif
/* CONFIG_IPV6 */
#define sctp_sk(__sk) (&((struct sctp_sock *)__sk)->sctp)
#define sctp_opt2sk(__sp) &container_of(__sp, struct sctp_sock, sctp)->inet.sk
/* Is a socket of this style? */
/* Is a socket of this style? */
#define sctp_style(sk, style) __sctp_style((sk), (SCTP_SOCKET_##style))
#define sctp_style(sk, style) __sctp_style((sk), (SCTP_SOCKET_##style))
static
inline
int
__sctp_style
(
const
struct
sock
*
sk
,
sctp_socket_type_t
style
)
static
inline
int
__sctp_style
(
const
struct
sock
*
sk
,
sctp_socket_type_t
style
)
...
...
include/net/sctp/structs.h
View file @
1255a1e9
...
@@ -58,6 +58,7 @@
...
@@ -58,6 +58,7 @@
#include <linux/socket.h>
/* linux/in.h needs this!! */
#include <linux/socket.h>
/* linux/in.h needs this!! */
#include <linux/in.h>
/* We get struct sockaddr_in. */
#include <linux/in.h>
/* We get struct sockaddr_in. */
#include <linux/in6.h>
/* We get struct in6_addr */
#include <linux/in6.h>
/* We get struct in6_addr */
#include <linux/ipv6.h>
#include <asm/param.h>
/* We get MAXHOSTNAMELEN. */
#include <asm/param.h>
/* We get MAXHOSTNAMELEN. */
#include <asm/atomic.h>
/* This gets us atomic counters. */
#include <asm/atomic.h>
/* This gets us atomic counters. */
#include <linux/skbuff.h>
/* We need sk_buff_head. */
#include <linux/skbuff.h>
/* We need sk_buff_head. */
...
@@ -84,7 +85,6 @@ struct sctp_inq;
...
@@ -84,7 +85,6 @@ struct sctp_inq;
struct
sctp_outq
;
struct
sctp_outq
;
struct
sctp_bind_addr
;
struct
sctp_bind_addr
;
struct
sctp_ulpq
;
struct
sctp_ulpq
;
struct
sctp_opt
;
struct
sctp_ep_common
;
struct
sctp_ep_common
;
struct
sctp_ssnmap
;
struct
sctp_ssnmap
;
...
@@ -234,7 +234,9 @@ typedef enum {
...
@@ -234,7 +234,9 @@ typedef enum {
}
sctp_socket_type_t
;
}
sctp_socket_type_t
;
/* Per socket SCTP information. */
/* Per socket SCTP information. */
struct
sctp_opt
{
struct
sctp_sock
{
/* inet_sock has to be the first member of sctp_sock */
struct
inet_sock
inet
;
/* What kind of a socket is this? */
/* What kind of a socket is this? */
sctp_socket_type_t
type
;
sctp_socket_type_t
type
;
...
@@ -272,6 +274,22 @@ struct sctp_opt {
...
@@ -272,6 +274,22 @@ struct sctp_opt {
struct
sk_buff_head
pd_lobby
;
struct
sk_buff_head
pd_lobby
;
};
};
static
inline
struct
sctp_sock
*
sctp_sk
(
const
struct
sock
*
sk
)
{
return
(
struct
sctp_sock
*
)
sk
;
}
static
inline
struct
sock
*
sctp_opt2sk
(
const
struct
sctp_sock
*
sp
)
{
return
(
struct
sock
*
)
sp
;
}
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
struct
sctp6_sock
{
struct
sctp_sock
sctp
;
struct
ipv6_pinfo
inet6
;
};
#endif
/* CONFIG_IPV6 */
/* This is our APPLICATION-SPECIFIC state cookie.
/* This is our APPLICATION-SPECIFIC state cookie.
...
@@ -487,12 +505,12 @@ struct sctp_af {
...
@@ -487,12 +505,12 @@ struct sctp_af {
int
(
*
to_addr_param
)
(
const
union
sctp_addr
*
,
int
(
*
to_addr_param
)
(
const
union
sctp_addr
*
,
union
sctp_addr_param
*
);
union
sctp_addr_param
*
);
int
(
*
addr_valid
)
(
union
sctp_addr
*
,
int
(
*
addr_valid
)
(
union
sctp_addr
*
,
struct
sctp_
opt
*
);
struct
sctp_
sock
*
);
sctp_scope_t
(
*
scope
)
(
union
sctp_addr
*
);
sctp_scope_t
(
*
scope
)
(
union
sctp_addr
*
);
void
(
*
inaddr_any
)
(
union
sctp_addr
*
,
unsigned
short
);
void
(
*
inaddr_any
)
(
union
sctp_addr
*
,
unsigned
short
);
int
(
*
is_any
)
(
const
union
sctp_addr
*
);
int
(
*
is_any
)
(
const
union
sctp_addr
*
);
int
(
*
available
)
(
union
sctp_addr
*
,
int
(
*
available
)
(
union
sctp_addr
*
,
struct
sctp_
opt
*
);
struct
sctp_
sock
*
);
int
(
*
skb_iif
)
(
const
struct
sk_buff
*
sk
);
int
(
*
skb_iif
)
(
const
struct
sk_buff
*
sk
);
int
(
*
is_ce
)
(
const
struct
sk_buff
*
sk
);
int
(
*
is_ce
)
(
const
struct
sk_buff
*
sk
);
void
(
*
seq_dump_addr
)(
struct
seq_file
*
seq
,
void
(
*
seq_dump_addr
)(
struct
seq_file
*
seq
,
...
@@ -510,16 +528,16 @@ int sctp_register_af(struct sctp_af *);
...
@@ -510,16 +528,16 @@ int sctp_register_af(struct sctp_af *);
struct
sctp_pf
{
struct
sctp_pf
{
void
(
*
event_msgname
)(
struct
sctp_ulpevent
*
,
char
*
,
int
*
);
void
(
*
event_msgname
)(
struct
sctp_ulpevent
*
,
char
*
,
int
*
);
void
(
*
skb_msgname
)
(
struct
sk_buff
*
,
char
*
,
int
*
);
void
(
*
skb_msgname
)
(
struct
sk_buff
*
,
char
*
,
int
*
);
int
(
*
af_supported
)
(
sa_family_t
,
struct
sctp_
opt
*
);
int
(
*
af_supported
)
(
sa_family_t
,
struct
sctp_
sock
*
);
int
(
*
cmp_addr
)
(
const
union
sctp_addr
*
,
int
(
*
cmp_addr
)
(
const
union
sctp_addr
*
,
const
union
sctp_addr
*
,
const
union
sctp_addr
*
,
struct
sctp_
opt
*
);
struct
sctp_
sock
*
);
int
(
*
bind_verify
)
(
struct
sctp_
opt
*
,
union
sctp_addr
*
);
int
(
*
bind_verify
)
(
struct
sctp_
sock
*
,
union
sctp_addr
*
);
int
(
*
send_verify
)
(
struct
sctp_
opt
*
,
union
sctp_addr
*
);
int
(
*
send_verify
)
(
struct
sctp_
sock
*
,
union
sctp_addr
*
);
int
(
*
supported_addrs
)(
const
struct
sctp_
opt
*
,
__u16
*
);
int
(
*
supported_addrs
)(
const
struct
sctp_
sock
*
,
__u16
*
);
struct
sock
*
(
*
create_accept_sk
)
(
struct
sock
*
sk
,
struct
sock
*
(
*
create_accept_sk
)
(
struct
sock
*
sk
,
struct
sctp_association
*
asoc
);
struct
sctp_association
*
asoc
);
void
(
*
addr_v4map
)
(
struct
sctp_
opt
*
,
union
sctp_addr
*
);
void
(
*
addr_v4map
)
(
struct
sctp_
sock
*
,
union
sctp_addr
*
);
struct
sctp_af
*
af
;
struct
sctp_af
*
af
;
};
};
...
@@ -922,7 +940,7 @@ struct sctp_transport *sctp_transport_new(const union sctp_addr *, int);
...
@@ -922,7 +940,7 @@ struct sctp_transport *sctp_transport_new(const union sctp_addr *, int);
void
sctp_transport_set_owner
(
struct
sctp_transport
*
,
void
sctp_transport_set_owner
(
struct
sctp_transport
*
,
struct
sctp_association
*
);
struct
sctp_association
*
);
void
sctp_transport_route
(
struct
sctp_transport
*
,
union
sctp_addr
*
,
void
sctp_transport_route
(
struct
sctp_transport
*
,
union
sctp_addr
*
,
struct
sctp_
opt
*
);
struct
sctp_
sock
*
);
void
sctp_transport_pmtu
(
struct
sctp_transport
*
);
void
sctp_transport_pmtu
(
struct
sctp_transport
*
);
void
sctp_transport_free
(
struct
sctp_transport
*
);
void
sctp_transport_free
(
struct
sctp_transport
*
);
void
sctp_transport_reset_timers
(
struct
sctp_transport
*
);
void
sctp_transport_reset_timers
(
struct
sctp_transport
*
);
...
@@ -1071,11 +1089,11 @@ int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *,
...
@@ -1071,11 +1089,11 @@ int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *,
int
gfp
);
int
gfp
);
int
sctp_del_bind_addr
(
struct
sctp_bind_addr
*
,
union
sctp_addr
*
);
int
sctp_del_bind_addr
(
struct
sctp_bind_addr
*
,
union
sctp_addr
*
);
int
sctp_bind_addr_match
(
struct
sctp_bind_addr
*
,
const
union
sctp_addr
*
,
int
sctp_bind_addr_match
(
struct
sctp_bind_addr
*
,
const
union
sctp_addr
*
,
struct
sctp_
opt
*
);
struct
sctp_
sock
*
);
union
sctp_addr
*
sctp_find_unmatch_addr
(
struct
sctp_bind_addr
*
bp
,
union
sctp_addr
*
sctp_find_unmatch_addr
(
struct
sctp_bind_addr
*
bp
,
const
union
sctp_addr
*
addrs
,
const
union
sctp_addr
*
addrs
,
int
addrcnt
,
int
addrcnt
,
struct
sctp_
opt
*
opt
);
struct
sctp_
sock
*
opt
);
union
sctp_params
sctp_bind_addrs_to_raw
(
const
struct
sctp_bind_addr
*
bp
,
union
sctp_params
sctp_bind_addrs_to_raw
(
const
struct
sctp_bind_addr
*
bp
,
int
*
addrs_len
,
int
gfp
);
int
*
addrs_len
,
int
gfp
);
int
sctp_raw_to_bind_addrs
(
struct
sctp_bind_addr
*
bp
,
__u8
*
raw
,
int
len
,
int
sctp_raw_to_bind_addrs
(
struct
sctp_bind_addr
*
bp
,
__u8
*
raw
,
int
len
,
...
...
net/sctp/associola.c
View file @
1255a1e9
...
@@ -73,7 +73,7 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
...
@@ -73,7 +73,7 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
sctp_scope_t
scope
,
sctp_scope_t
scope
,
int
gfp
)
int
gfp
)
{
{
struct
sctp_
opt
*
sp
;
struct
sctp_
sock
*
sp
;
int
i
;
int
i
;
/* Retrieve the SCTP per socket area. */
/* Retrieve the SCTP per socket area. */
...
@@ -434,7 +434,7 @@ struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc,
...
@@ -434,7 +434,7 @@ struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc,
int
gfp
)
int
gfp
)
{
{
struct
sctp_transport
*
peer
;
struct
sctp_transport
*
peer
;
struct
sctp_
opt
*
sp
;
struct
sctp_
sock
*
sp
;
unsigned
short
port
;
unsigned
short
port
;
sp
=
sctp_sk
(
asoc
->
base
.
sk
);
sp
=
sctp_sk
(
asoc
->
base
.
sk
);
...
@@ -886,7 +886,7 @@ static void sctp_assoc_bh_rcv(struct sctp_association *asoc)
...
@@ -886,7 +886,7 @@ static void sctp_assoc_bh_rcv(struct sctp_association *asoc)
/* This routine moves an association from its old sk to a new sk. */
/* This routine moves an association from its old sk to a new sk. */
void
sctp_assoc_migrate
(
struct
sctp_association
*
assoc
,
struct
sock
*
newsk
)
void
sctp_assoc_migrate
(
struct
sctp_association
*
assoc
,
struct
sock
*
newsk
)
{
{
struct
sctp_
opt
*
newsp
=
sctp_sk
(
newsk
);
struct
sctp_
sock
*
newsp
=
sctp_sk
(
newsk
);
struct
sock
*
oldsk
=
assoc
->
base
.
sk
;
struct
sock
*
oldsk
=
assoc
->
base
.
sk
;
/* Delete the association from the old endpoint's list of
/* Delete the association from the old endpoint's list of
...
@@ -1059,7 +1059,7 @@ void sctp_assoc_sync_pmtu(struct sctp_association *asoc)
...
@@ -1059,7 +1059,7 @@ void sctp_assoc_sync_pmtu(struct sctp_association *asoc)
}
}
if
(
pmtu
)
{
if
(
pmtu
)
{
struct
sctp_
opt
*
sp
=
sctp_sk
(
asoc
->
base
.
sk
);
struct
sctp_
sock
*
sp
=
sctp_sk
(
asoc
->
base
.
sk
);
asoc
->
pmtu
=
pmtu
;
asoc
->
pmtu
=
pmtu
;
asoc
->
frag_point
=
sctp_frag_point
(
sp
,
pmtu
);
asoc
->
frag_point
=
sctp_frag_point
(
sp
,
pmtu
);
}
}
...
...
net/sctp/bind_addr.c
View file @
1255a1e9
...
@@ -293,7 +293,7 @@ int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw_addr_list,
...
@@ -293,7 +293,7 @@ int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw_addr_list,
/* Does this contain a specified address? Allow wildcarding. */
/* Does this contain a specified address? Allow wildcarding. */
int
sctp_bind_addr_match
(
struct
sctp_bind_addr
*
bp
,
int
sctp_bind_addr_match
(
struct
sctp_bind_addr
*
bp
,
const
union
sctp_addr
*
addr
,
const
union
sctp_addr
*
addr
,
struct
sctp_
opt
*
opt
)
struct
sctp_
sock
*
opt
)
{
{
struct
sctp_sockaddr_entry
*
laddr
;
struct
sctp_sockaddr_entry
*
laddr
;
struct
list_head
*
pos
;
struct
list_head
*
pos
;
...
@@ -313,7 +313,7 @@ int sctp_bind_addr_match(struct sctp_bind_addr *bp,
...
@@ -313,7 +313,7 @@ int sctp_bind_addr_match(struct sctp_bind_addr *bp,
union
sctp_addr
*
sctp_find_unmatch_addr
(
struct
sctp_bind_addr
*
bp
,
union
sctp_addr
*
sctp_find_unmatch_addr
(
struct
sctp_bind_addr
*
bp
,
const
union
sctp_addr
*
addrs
,
const
union
sctp_addr
*
addrs
,
int
addrcnt
,
int
addrcnt
,
struct
sctp_
opt
*
opt
)
struct
sctp_
sock
*
opt
)
{
{
struct
sctp_sockaddr_entry
*
laddr
;
struct
sctp_sockaddr_entry
*
laddr
;
union
sctp_addr
*
addr
;
union
sctp_addr
*
addr
;
...
...
net/sctp/chunk.c
View file @
1255a1e9
...
@@ -77,7 +77,7 @@ static void sctp_datamsg_destroy(struct sctp_datamsg *msg)
...
@@ -77,7 +77,7 @@ static void sctp_datamsg_destroy(struct sctp_datamsg *msg)
{
{
struct
list_head
*
pos
,
*
temp
;
struct
list_head
*
pos
,
*
temp
;
struct
sctp_chunk
*
chunk
;
struct
sctp_chunk
*
chunk
;
struct
sctp_
opt
*
sp
;
struct
sctp_
sock
*
sp
;
struct
sctp_ulpevent
*
ev
;
struct
sctp_ulpevent
*
ev
;
struct
sctp_association
*
asoc
=
NULL
;
struct
sctp_association
*
asoc
=
NULL
;
int
error
=
0
,
notify
;
int
error
=
0
,
notify
;
...
...
net/sctp/endpointola.c
View file @
1255a1e9
...
@@ -69,7 +69,7 @@ static void sctp_endpoint_bh_rcv(struct sctp_endpoint *ep);
...
@@ -69,7 +69,7 @@ static void sctp_endpoint_bh_rcv(struct sctp_endpoint *ep);
static
struct
sctp_endpoint
*
sctp_endpoint_init
(
struct
sctp_endpoint
*
ep
,
static
struct
sctp_endpoint
*
sctp_endpoint_init
(
struct
sctp_endpoint
*
ep
,
struct
sock
*
sk
,
int
gfp
)
struct
sock
*
sk
,
int
gfp
)
{
{
struct
sctp_
opt
*
sp
=
sctp_sk
(
sk
);
struct
sctp_
sock
*
sp
=
sctp_sk
(
sk
);
memset
(
ep
,
0
,
sizeof
(
struct
sctp_endpoint
));
memset
(
ep
,
0
,
sizeof
(
struct
sctp_endpoint
));
/* Initialize the base structure. */
/* Initialize the base structure. */
...
...
net/sctp/ipv6.c
View file @
1255a1e9
...
@@ -502,7 +502,7 @@ static int sctp_v6_is_any(const union sctp_addr *addr)
...
@@ -502,7 +502,7 @@ static int sctp_v6_is_any(const union sctp_addr *addr)
}
}
/* Should this be available for binding? */
/* Should this be available for binding? */
static
int
sctp_v6_available
(
union
sctp_addr
*
addr
,
struct
sctp_
opt
*
sp
)
static
int
sctp_v6_available
(
union
sctp_addr
*
addr
,
struct
sctp_
sock
*
sp
)
{
{
int
type
;
int
type
;
struct
in6_addr
*
in6
=
(
struct
in6_addr
*
)
&
addr
->
v6
.
sin6_addr
;
struct
in6_addr
*
in6
=
(
struct
in6_addr
*
)
&
addr
->
v6
.
sin6_addr
;
...
@@ -531,14 +531,14 @@ static int sctp_v6_available(union sctp_addr *addr, struct sctp_opt *sp)
...
@@ -531,14 +531,14 @@ static int sctp_v6_available(union sctp_addr *addr, struct sctp_opt *sp)
* Return 0 - If the address is a non-unicast or an illegal address.
* Return 0 - If the address is a non-unicast or an illegal address.
* Return 1 - If the address is a unicast.
* Return 1 - If the address is a unicast.
*/
*/
static
int
sctp_v6_addr_valid
(
union
sctp_addr
*
addr
,
struct
sctp_
opt
*
sp
)
static
int
sctp_v6_addr_valid
(
union
sctp_addr
*
addr
,
struct
sctp_
sock
*
sp
)
{
{
int
ret
=
ipv6_addr_type
(
&
addr
->
v6
.
sin6_addr
);
int
ret
=
ipv6_addr_type
(
&
addr
->
v6
.
sin6_addr
);
/* Support v4-mapped-v6 address. */
/* Support v4-mapped-v6 address. */
if
(
ret
==
IPV6_ADDR_MAPPED
)
{
if
(
ret
==
IPV6_ADDR_MAPPED
)
{
/* Note: This routine is used in input, so v4-mapped-v6
/* Note: This routine is used in input, so v4-mapped-v6
* are disallowed here when there is no sctp_
opt
.
* are disallowed here when there is no sctp_
sock
.
*/
*/
if
(
!
sp
||
!
sp
->
v4mapped
)
if
(
!
sp
||
!
sp
->
v4mapped
)
return
0
;
return
0
;
...
@@ -616,7 +616,7 @@ static struct sock *sctp_v6_create_accept_sk(struct sock *sk,
...
@@ -616,7 +616,7 @@ static struct sock *sctp_v6_create_accept_sk(struct sock *sk,
newsk
->
sk_shutdown
=
sk
->
sk_shutdown
;
newsk
->
sk_shutdown
=
sk
->
sk_shutdown
;
newsctp6sk
=
(
struct
sctp6_sock
*
)
newsk
;
newsctp6sk
=
(
struct
sctp6_sock
*
)
newsk
;
newsctp6sk
->
inet
.
pinet6
=
&
newsctp6sk
->
inet6
;
inet_sk
(
newsk
)
->
pinet6
=
&
newsctp6sk
->
inet6
;
newinet
=
inet_sk
(
newsk
);
newinet
=
inet_sk
(
newsk
);
newnp
=
inet6_sk
(
newsk
);
newnp
=
inet6_sk
(
newsk
);
...
@@ -661,7 +661,7 @@ static struct sock *sctp_v6_create_accept_sk(struct sock *sk,
...
@@ -661,7 +661,7 @@ static struct sock *sctp_v6_create_accept_sk(struct sock *sk,
}
}
/* Map v4 address to mapped v6 address */
/* Map v4 address to mapped v6 address */
static
void
sctp_v6_addr_v4map
(
struct
sctp_
opt
*
sp
,
union
sctp_addr
*
addr
)
static
void
sctp_v6_addr_v4map
(
struct
sctp_
sock
*
sp
,
union
sctp_addr
*
addr
)
{
{
if
(
sp
->
v4mapped
&&
AF_INET
==
addr
->
sa
.
sa_family
)
if
(
sp
->
v4mapped
&&
AF_INET
==
addr
->
sa
.
sa_family
)
sctp_v4_map_v6
(
addr
);
sctp_v4_map_v6
(
addr
);
...
@@ -766,7 +766,7 @@ static void sctp_inet6_skb_msgname(struct sk_buff *skb, char *msgname,
...
@@ -766,7 +766,7 @@ static void sctp_inet6_skb_msgname(struct sk_buff *skb, char *msgname,
}
}
/* Do we support this AF? */
/* Do we support this AF? */
static
int
sctp_inet6_af_supported
(
sa_family_t
family
,
struct
sctp_
opt
*
sp
)
static
int
sctp_inet6_af_supported
(
sa_family_t
family
,
struct
sctp_
sock
*
sp
)
{
{
switch
(
family
)
{
switch
(
family
)
{
case
AF_INET6
:
case
AF_INET6
:
...
@@ -786,7 +786,7 @@ static int sctp_inet6_af_supported(sa_family_t family, struct sctp_opt *sp)
...
@@ -786,7 +786,7 @@ static int sctp_inet6_af_supported(sa_family_t family, struct sctp_opt *sp)
*/
*/
static
int
sctp_inet6_cmp_addr
(
const
union
sctp_addr
*
addr1
,
static
int
sctp_inet6_cmp_addr
(
const
union
sctp_addr
*
addr1
,
const
union
sctp_addr
*
addr2
,
const
union
sctp_addr
*
addr2
,
struct
sctp_
opt
*
opt
)
struct
sctp_
sock
*
opt
)
{
{
struct
sctp_af
*
af1
,
*
af2
;
struct
sctp_af
*
af1
,
*
af2
;
...
@@ -808,7 +808,7 @@ static int sctp_inet6_cmp_addr(const union sctp_addr *addr1,
...
@@ -808,7 +808,7 @@ static int sctp_inet6_cmp_addr(const union sctp_addr *addr1,
/* Verify that the provided sockaddr looks bindable. Common verification,
/* Verify that the provided sockaddr looks bindable. Common verification,
* has already been taken care of.
* has already been taken care of.
*/
*/
static
int
sctp_inet6_bind_verify
(
struct
sctp_
opt
*
opt
,
union
sctp_addr
*
addr
)
static
int
sctp_inet6_bind_verify
(
struct
sctp_
sock
*
opt
,
union
sctp_addr
*
addr
)
{
{
struct
sctp_af
*
af
;
struct
sctp_af
*
af
;
...
@@ -838,7 +838,7 @@ static int sctp_inet6_bind_verify(struct sctp_opt *opt, union sctp_addr *addr)
...
@@ -838,7 +838,7 @@ static int sctp_inet6_bind_verify(struct sctp_opt *opt, union sctp_addr *addr)
/* Verify that the provided sockaddr looks bindable. Common verification,
/* Verify that the provided sockaddr looks bindable. Common verification,
* has already been taken care of.
* has already been taken care of.
*/
*/
static
int
sctp_inet6_send_verify
(
struct
sctp_
opt
*
opt
,
union
sctp_addr
*
addr
)
static
int
sctp_inet6_send_verify
(
struct
sctp_
sock
*
opt
,
union
sctp_addr
*
addr
)
{
{
struct
sctp_af
*
af
=
NULL
;
struct
sctp_af
*
af
=
NULL
;
...
@@ -872,7 +872,7 @@ static int sctp_inet6_send_verify(struct sctp_opt *opt, union sctp_addr *addr)
...
@@ -872,7 +872,7 @@ static int sctp_inet6_send_verify(struct sctp_opt *opt, union sctp_addr *addr)
* addresses.
* addresses.
* Returns number of addresses supported.
* Returns number of addresses supported.
*/
*/
static
int
sctp_inet6_supported_addrs
(
const
struct
sctp_
opt
*
opt
,
static
int
sctp_inet6_supported_addrs
(
const
struct
sctp_
sock
*
opt
,
__u16
*
types
)
__u16
*
types
)
{
{
types
[
0
]
=
SCTP_PARAM_IPV4_ADDRESS
;
types
[
0
]
=
SCTP_PARAM_IPV4_ADDRESS
;
...
...
net/sctp/output.c
View file @
1255a1e9
...
@@ -110,7 +110,7 @@ struct sctp_packet *sctp_packet_init(struct sctp_packet *packet,
...
@@ -110,7 +110,7 @@ struct sctp_packet *sctp_packet_init(struct sctp_packet *packet,
packet
->
destination_port
=
dport
;
packet
->
destination_port
=
dport
;
skb_queue_head_init
(
&
packet
->
chunks
);
skb_queue_head_init
(
&
packet
->
chunks
);
if
(
asoc
)
{
if
(
asoc
)
{
struct
sctp_
opt
*
sp
=
sctp_sk
(
asoc
->
base
.
sk
);
struct
sctp_
sock
*
sp
=
sctp_sk
(
asoc
->
base
.
sk
);
overhead
=
sp
->
pf
->
af
->
net_header_len
;
overhead
=
sp
->
pf
->
af
->
net_header_len
;
}
else
{
}
else
{
overhead
=
sizeof
(
struct
ipv6hdr
);
overhead
=
sizeof
(
struct
ipv6hdr
);
...
@@ -534,7 +534,7 @@ static sctp_xmit_t sctp_packet_append_data(struct sctp_packet *packet,
...
@@ -534,7 +534,7 @@ static sctp_xmit_t sctp_packet_append_data(struct sctp_packet *packet,
struct
sctp_transport
*
transport
=
packet
->
transport
;
struct
sctp_transport
*
transport
=
packet
->
transport
;
__u32
max_burst_bytes
;
__u32
max_burst_bytes
;
struct
sctp_association
*
asoc
=
transport
->
asoc
;
struct
sctp_association
*
asoc
=
transport
->
asoc
;
struct
sctp_
opt
*
sp
=
sctp_sk
(
asoc
->
base
.
sk
);
struct
sctp_
sock
*
sp
=
sctp_sk
(
asoc
->
base
.
sk
);
struct
sctp_outq
*
q
=
&
asoc
->
outqueue
;
struct
sctp_outq
*
q
=
&
asoc
->
outqueue
;
/* RFC 2960 6.1 Transmission of DATA Chunks
/* RFC 2960 6.1 Transmission of DATA Chunks
...
...
net/sctp/protocol.c
View file @
1255a1e9
...
@@ -364,7 +364,7 @@ static int sctp_v4_is_any(const union sctp_addr *addr)
...
@@ -364,7 +364,7 @@ static int sctp_v4_is_any(const union sctp_addr *addr)
* Return 0 - If the address is a non-unicast or an illegal address.
* Return 0 - If the address is a non-unicast or an illegal address.
* Return 1 - If the address is a unicast.
* Return 1 - If the address is a unicast.
*/
*/
static
int
sctp_v4_addr_valid
(
union
sctp_addr
*
addr
,
struct
sctp_
opt
*
sp
)
static
int
sctp_v4_addr_valid
(
union
sctp_addr
*
addr
,
struct
sctp_
sock
*
sp
)
{
{
/* Is this a non-unicast address or a unusable SCTP address? */
/* Is this a non-unicast address or a unusable SCTP address? */
if
(
IS_IPV4_UNUSABLE_ADDRESS
(
&
addr
->
v4
.
sin_addr
.
s_addr
))
if
(
IS_IPV4_UNUSABLE_ADDRESS
(
&
addr
->
v4
.
sin_addr
.
s_addr
))
...
@@ -374,7 +374,7 @@ static int sctp_v4_addr_valid(union sctp_addr *addr, struct sctp_opt *sp)
...
@@ -374,7 +374,7 @@ static int sctp_v4_addr_valid(union sctp_addr *addr, struct sctp_opt *sp)
}
}
/* Should this be available for binding? */
/* Should this be available for binding? */
static
int
sctp_v4_available
(
union
sctp_addr
*
addr
,
struct
sctp_
opt
*
sp
)
static
int
sctp_v4_available
(
union
sctp_addr
*
addr
,
struct
sctp_
sock
*
sp
)
{
{
int
ret
=
inet_addr_type
(
addr
->
v4
.
sin_addr
.
s_addr
);
int
ret
=
inet_addr_type
(
addr
->
v4
.
sin_addr
.
s_addr
);
...
@@ -608,7 +608,7 @@ static struct sock *sctp_v4_create_accept_sk(struct sock *sk,
...
@@ -608,7 +608,7 @@ static struct sock *sctp_v4_create_accept_sk(struct sock *sk,
}
}
/* Map address, empty for v4 family */
/* Map address, empty for v4 family */
static
void
sctp_v4_addr_v4map
(
struct
sctp_
opt
*
sp
,
union
sctp_addr
*
addr
)
static
void
sctp_v4_addr_v4map
(
struct
sctp_
sock
*
sp
,
union
sctp_addr
*
addr
)
{
{
/* Empty */
/* Empty */
}
}
...
@@ -745,7 +745,7 @@ static void sctp_inet_skb_msgname(struct sk_buff *skb, char *msgname, int *len)
...
@@ -745,7 +745,7 @@ static void sctp_inet_skb_msgname(struct sk_buff *skb, char *msgname, int *len)
}
}
/* Do we support this AF? */
/* Do we support this AF? */
static
int
sctp_inet_af_supported
(
sa_family_t
family
,
struct
sctp_
opt
*
sp
)
static
int
sctp_inet_af_supported
(
sa_family_t
family
,
struct
sctp_
sock
*
sp
)
{
{
/* PF_INET only supports AF_INET addresses. */
/* PF_INET only supports AF_INET addresses. */
return
(
AF_INET
==
family
);
return
(
AF_INET
==
family
);
...
@@ -754,7 +754,7 @@ static int sctp_inet_af_supported(sa_family_t family, struct sctp_opt *sp)
...
@@ -754,7 +754,7 @@ static int sctp_inet_af_supported(sa_family_t family, struct sctp_opt *sp)
/* Address matching with wildcards allowed. */
/* Address matching with wildcards allowed. */
static
int
sctp_inet_cmp_addr
(
const
union
sctp_addr
*
addr1
,
static
int
sctp_inet_cmp_addr
(
const
union
sctp_addr
*
addr1
,
const
union
sctp_addr
*
addr2
,
const
union
sctp_addr
*
addr2
,
struct
sctp_
opt
*
opt
)
struct
sctp_
sock
*
opt
)
{
{
/* PF_INET only supports AF_INET addresses. */
/* PF_INET only supports AF_INET addresses. */
if
(
addr1
->
sa
.
sa_family
!=
addr2
->
sa
.
sa_family
)
if
(
addr1
->
sa
.
sa_family
!=
addr2
->
sa
.
sa_family
)
...
@@ -771,7 +771,7 @@ static int sctp_inet_cmp_addr(const union sctp_addr *addr1,
...
@@ -771,7 +771,7 @@ static int sctp_inet_cmp_addr(const union sctp_addr *addr1,
/* Verify that provided sockaddr looks bindable. Common verification has
/* Verify that provided sockaddr looks bindable. Common verification has
* already been taken care of.
* already been taken care of.
*/
*/
static
int
sctp_inet_bind_verify
(
struct
sctp_
opt
*
opt
,
union
sctp_addr
*
addr
)
static
int
sctp_inet_bind_verify
(
struct
sctp_
sock
*
opt
,
union
sctp_addr
*
addr
)
{
{
return
sctp_v4_available
(
addr
,
opt
);
return
sctp_v4_available
(
addr
,
opt
);
}
}
...
@@ -779,7 +779,7 @@ static int sctp_inet_bind_verify(struct sctp_opt *opt, union sctp_addr *addr)
...
@@ -779,7 +779,7 @@ static int sctp_inet_bind_verify(struct sctp_opt *opt, union sctp_addr *addr)
/* Verify that sockaddr looks sendable. Common verification has already
/* Verify that sockaddr looks sendable. Common verification has already
* been taken care of.
* been taken care of.
*/
*/
static
int
sctp_inet_send_verify
(
struct
sctp_
opt
*
opt
,
union
sctp_addr
*
addr
)
static
int
sctp_inet_send_verify
(
struct
sctp_
sock
*
opt
,
union
sctp_addr
*
addr
)
{
{
return
1
;
return
1
;
}
}
...
@@ -787,7 +787,7 @@ static int sctp_inet_send_verify(struct sctp_opt *opt, union sctp_addr *addr)
...
@@ -787,7 +787,7 @@ static int sctp_inet_send_verify(struct sctp_opt *opt, union sctp_addr *addr)
/* Fill in Supported Address Type information for INIT and INIT-ACK
/* Fill in Supported Address Type information for INIT and INIT-ACK
* chunks. Returns number of addresses supported.
* chunks. Returns number of addresses supported.
*/
*/
static
int
sctp_inet_supported_addrs
(
const
struct
sctp_
opt
*
opt
,
static
int
sctp_inet_supported_addrs
(
const
struct
sctp_
sock
*
opt
,
__u16
*
types
)
__u16
*
types
)
{
{
types
[
0
]
=
SCTP_PARAM_IPV4_ADDRESS
;
types
[
0
]
=
SCTP_PARAM_IPV4_ADDRESS
;
...
...
net/sctp/sm_make_chunk.c
View file @
1255a1e9
...
@@ -181,7 +181,7 @@ struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
...
@@ -181,7 +181,7 @@ struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
size_t
chunksize
;
size_t
chunksize
;
struct
sctp_chunk
*
retval
=
NULL
;
struct
sctp_chunk
*
retval
=
NULL
;
int
num_types
,
addrs_len
=
0
;
int
num_types
,
addrs_len
=
0
;
struct
sctp_
opt
*
sp
;
struct
sctp_
sock
*
sp
;
sctp_supported_addrs_param_t
sat
;
sctp_supported_addrs_param_t
sat
;
__u16
types
[
2
];
__u16
types
[
2
];
sctp_adaption_ind_param_t
aiparam
;
sctp_adaption_ind_param_t
aiparam
;
...
...
net/sctp/socket.c
View file @
1255a1e9
This diff is collapsed.
Click to expand it.
net/sctp/transport.c
View file @
1255a1e9
...
@@ -237,7 +237,7 @@ void sctp_transport_pmtu(struct sctp_transport *transport)
...
@@ -237,7 +237,7 @@ void sctp_transport_pmtu(struct sctp_transport *transport)
* address.
* address.
*/
*/
void
sctp_transport_route
(
struct
sctp_transport
*
transport
,
void
sctp_transport_route
(
struct
sctp_transport
*
transport
,
union
sctp_addr
*
saddr
,
struct
sctp_
opt
*
opt
)
union
sctp_addr
*
saddr
,
struct
sctp_
sock
*
opt
)
{
{
struct
sctp_association
*
asoc
=
transport
->
asoc
;
struct
sctp_association
*
asoc
=
transport
->
asoc
;
struct
sctp_af
*
af
=
transport
->
af_specific
;
struct
sctp_af
*
af
=
transport
->
af_specific
;
...
...
net/sctp/ulpqueue.c
View file @
1255a1e9
...
@@ -138,8 +138,7 @@ int sctp_ulpq_tail_data(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,
...
@@ -138,8 +138,7 @@ int sctp_ulpq_tail_data(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,
*/
*/
int
sctp_clear_pd
(
struct
sock
*
sk
)
int
sctp_clear_pd
(
struct
sock
*
sk
)
{
{
struct
sctp_opt
*
sp
;
struct
sctp_sock
*
sp
=
sctp_sk
(
sk
);
sp
=
sctp_sk
(
sk
);
sp
->
pd_mode
=
0
;
sp
->
pd_mode
=
0
;
if
(
!
skb_queue_empty
(
&
sp
->
pd_lobby
))
{
if
(
!
skb_queue_empty
(
&
sp
->
pd_lobby
))
{
...
...
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