git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
net
/
sctp
/
bind_addr.c
diff --git
a/net/sctp/bind_addr.c
b/net/sctp/bind_addr.c
index
2b96262
..
0099415
100644
(file)
--- a/
net/sctp/bind_addr.c
+++ b/
net/sctp/bind_addr.c
@@
-146,7
+146,7
@@
void sctp_bind_addr_free(struct sctp_bind_addr *bp)
/* Add an address to the bind address list in the SCTP_bind_addr structure. */
int sctp_add_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *new,
/* Add an address to the bind address list in the SCTP_bind_addr structure. */
int sctp_add_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *new,
- gfp_t gfp)
+
__u8 use_as_src,
gfp_t gfp)
{
struct sctp_sockaddr_entry *addr;
{
struct sctp_sockaddr_entry *addr;
@@
-161,7
+161,9
@@
int sctp_add_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *new,
* Both v4 and v6 have the port at the same offset.
*/
if (!addr->a.v4.sin_port)
* Both v4 and v6 have the port at the same offset.
*/
if (!addr->a.v4.sin_port)
- addr->a.v4.sin_port = bp->port;
+ addr->a.v4.sin_port = htons(bp->port);
+
+ addr->use_as_src = use_as_src;
INIT_LIST_HEAD(&addr->list);
list_add_tail(&addr->list, &bp->address_list);
INIT_LIST_HEAD(&addr->list);
list_add_tail(&addr->list, &bp->address_list);
@@
-273,8
+275,8
@@
int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw_addr_list,
break;
}
break;
}
- af->from_addr_param(&addr, rawaddr,
port
, 0);
- retval = sctp_add_bind_addr(bp, &addr, gfp);
+ af->from_addr_param(&addr, rawaddr,
htons(port)
, 0);
+ retval = sctp_add_bind_addr(bp, &addr,
1,
gfp);
if (retval) {
/* Can't finish building the list, clean up. */
sctp_bind_addr_clean(bp);
if (retval) {
/* Can't finish building the list, clean up. */
sctp_bind_addr_clean(bp);
@@
-367,7
+369,7
@@
static int sctp_copy_one_addr(struct sctp_bind_addr *dest,
(((AF_INET6 == addr->sa.sa_family) &&
(flags & SCTP_ADDR6_ALLOWED) &&
(flags & SCTP_ADDR6_PEERSUPP))))
(((AF_INET6 == addr->sa.sa_family) &&
(flags & SCTP_ADDR6_ALLOWED) &&
(flags & SCTP_ADDR6_PEERSUPP))))
- error = sctp_add_bind_addr(dest, addr, gfp);
+ error = sctp_add_bind_addr(dest, addr,
1,
gfp);
}
return error;
}
return error;