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
f90eadf
..
0099415
100644
(file)
--- a/
net/sctp/bind_addr.c
+++ b/
net/sctp/bind_addr.c
@@
-53,7
+53,8
@@
/* Forward declarations for internal helpers. */
static int sctp_copy_one_addr(struct sctp_bind_addr *, union sctp_addr *,
/* Forward declarations for internal helpers. */
static int sctp_copy_one_addr(struct sctp_bind_addr *, union sctp_addr *,
- sctp_scope_t scope, int gfp, int flags);
+ sctp_scope_t scope, gfp_t gfp,
+ int flags);
static void sctp_bind_addr_clean(struct sctp_bind_addr *);
/* First Level Abstractions. */
static void sctp_bind_addr_clean(struct sctp_bind_addr *);
/* First Level Abstractions. */
@@
-63,7
+64,8
@@
static void sctp_bind_addr_clean(struct sctp_bind_addr *);
*/
int sctp_bind_addr_copy(struct sctp_bind_addr *dest,
const struct sctp_bind_addr *src,
*/
int sctp_bind_addr_copy(struct sctp_bind_addr *dest,
const struct sctp_bind_addr *src,
- sctp_scope_t scope, int gfp, int flags)
+ sctp_scope_t scope, gfp_t gfp,
+ int flags)
{
struct sctp_sockaddr_entry *addr;
struct list_head *pos;
{
struct sctp_sockaddr_entry *addr;
struct list_head *pos;
@@
-144,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,
-
in
t gfp)
+
__u8 use_as_src, gfp_
t gfp)
{
struct sctp_sockaddr_entry *addr;
{
struct sctp_sockaddr_entry *addr;
@@
-159,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);
@@
-197,7
+201,8
@@
int sctp_del_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *del_addr)
* The second argument is the return value for the length.
*/
union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp,
* The second argument is the return value for the length.
*/
union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp,
- int *addrs_len, int gfp)
+ int *addrs_len,
+ gfp_t gfp)
{
union sctp_params addrparms;
union sctp_params retval;
{
union sctp_params addrparms;
union sctp_params retval;
@@
-249,7
+254,7
@@
end_raw:
* address parameters).
*/
int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw_addr_list,
* address parameters).
*/
int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw_addr_list,
- int addrs_len, __u16 port,
in
t gfp)
+ int addrs_len, __u16 port,
gfp_
t gfp)
{
union sctp_addr_param *rawaddr;
struct sctp_paramhdr *param;
{
union sctp_addr_param *rawaddr;
struct sctp_paramhdr *param;
@@
-270,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);
@@
-347,7
+352,8
@@
union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr *bp,
/* Copy out addresses from the global local address list. */
static int sctp_copy_one_addr(struct sctp_bind_addr *dest,
union sctp_addr *addr,
/* Copy out addresses from the global local address list. */
static int sctp_copy_one_addr(struct sctp_bind_addr *dest,
union sctp_addr *addr,
- sctp_scope_t scope, int gfp, int flags)
+ sctp_scope_t scope, gfp_t gfp,
+ int flags)
{
int error = 0;
{
int error = 0;
@@
-363,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;