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
58bf2dbc
Commit
58bf2dbc
authored
May 27, 2011
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'pablo/nf-2.6-updates' of
git://1984.lsi.us.es/net-2.6
parents
86e4ca66
c74c0bfe
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
38 additions
and
22 deletions
+38
-22
include/linux/netfilter/ipset/ip_set_ahash.h
include/linux/netfilter/ipset/ip_set_ahash.h
+2
-2
include/linux/netfilter/ipset/ip_set_timeout.h
include/linux/netfilter/ipset/ip_set_timeout.h
+10
-8
include/net/ip_vs.h
include/net/ip_vs.h
+2
-1
net/bridge/netfilter/ebtables.c
net/bridge/netfilter/ebtables.c
+4
-2
net/netfilter/ipset/ip_set_core.c
net/netfilter/ipset/ip_set_core.c
+1
-1
net/netfilter/ipvs/ip_vs_ftp.c
net/netfilter/ipvs/ip_vs_ftp.c
+19
-8
No files found.
include/linux/netfilter/ipset/ip_set_ahash.h
View file @
58bf2dbc
...
@@ -839,7 +839,7 @@ type_pf_tdel(struct ip_set *set, void *value, u32 timeout)
...
@@ -839,7 +839,7 @@ type_pf_tdel(struct ip_set *set, void *value, u32 timeout)
struct
htable
*
t
=
h
->
table
;
struct
htable
*
t
=
h
->
table
;
const
struct
type_pf_elem
*
d
=
value
;
const
struct
type_pf_elem
*
d
=
value
;
struct
hbucket
*
n
;
struct
hbucket
*
n
;
int
i
,
ret
=
0
;
int
i
;
struct
type_pf_elem
*
data
;
struct
type_pf_elem
*
data
;
u32
key
;
u32
key
;
...
@@ -850,7 +850,7 @@ type_pf_tdel(struct ip_set *set, void *value, u32 timeout)
...
@@ -850,7 +850,7 @@ type_pf_tdel(struct ip_set *set, void *value, u32 timeout)
if
(
!
type_pf_data_equal
(
data
,
d
))
if
(
!
type_pf_data_equal
(
data
,
d
))
continue
;
continue
;
if
(
type_pf_data_expired
(
data
))
if
(
type_pf_data_expired
(
data
))
ret
=
-
IPSET_ERR_EXIST
;
ret
urn
-
IPSET_ERR_EXIST
;
if
(
i
!=
n
->
pos
-
1
)
if
(
i
!=
n
->
pos
-
1
)
/* Not last one */
/* Not last one */
type_pf_data_copy
(
data
,
ahash_tdata
(
n
,
n
->
pos
-
1
));
type_pf_data_copy
(
data
,
ahash_tdata
(
n
,
n
->
pos
-
1
));
...
...
include/linux/netfilter/ipset/ip_set_timeout.h
View file @
58bf2dbc
...
@@ -45,7 +45,7 @@ ip_set_timeout_test(unsigned long timeout)
...
@@ -45,7 +45,7 @@ ip_set_timeout_test(unsigned long timeout)
{
{
return
timeout
!=
IPSET_ELEM_UNSET
&&
return
timeout
!=
IPSET_ELEM_UNSET
&&
(
timeout
==
IPSET_ELEM_PERMANENT
||
(
timeout
==
IPSET_ELEM_PERMANENT
||
time_
after
(
timeout
,
jiffies
));
time_
is_after_jiffies
(
timeout
));
}
}
static
inline
bool
static
inline
bool
...
@@ -53,7 +53,7 @@ ip_set_timeout_expired(unsigned long timeout)
...
@@ -53,7 +53,7 @@ ip_set_timeout_expired(unsigned long timeout)
{
{
return
timeout
!=
IPSET_ELEM_UNSET
&&
return
timeout
!=
IPSET_ELEM_UNSET
&&
timeout
!=
IPSET_ELEM_PERMANENT
&&
timeout
!=
IPSET_ELEM_PERMANENT
&&
time_
before
(
timeout
,
jiffies
);
time_
is_before_jiffies
(
timeout
);
}
}
static
inline
unsigned
long
static
inline
unsigned
long
...
@@ -64,7 +64,7 @@ ip_set_timeout_set(u32 timeout)
...
@@ -64,7 +64,7 @@ ip_set_timeout_set(u32 timeout)
if
(
!
timeout
)
if
(
!
timeout
)
return
IPSET_ELEM_PERMANENT
;
return
IPSET_ELEM_PERMANENT
;
t
=
timeout
*
HZ
+
jiffies
;
t
=
msecs_to_jiffies
(
timeout
*
1000
)
+
jiffies
;
if
(
t
==
IPSET_ELEM_UNSET
||
t
==
IPSET_ELEM_PERMANENT
)
if
(
t
==
IPSET_ELEM_UNSET
||
t
==
IPSET_ELEM_PERMANENT
)
/* Bingo! */
/* Bingo! */
t
++
;
t
++
;
...
@@ -75,7 +75,8 @@ ip_set_timeout_set(u32 timeout)
...
@@ -75,7 +75,8 @@ ip_set_timeout_set(u32 timeout)
static
inline
u32
static
inline
u32
ip_set_timeout_get
(
unsigned
long
timeout
)
ip_set_timeout_get
(
unsigned
long
timeout
)
{
{
return
timeout
==
IPSET_ELEM_PERMANENT
?
0
:
(
timeout
-
jiffies
)
/
HZ
;
return
timeout
==
IPSET_ELEM_PERMANENT
?
0
:
jiffies_to_msecs
(
timeout
-
jiffies
)
/
1000
;
}
}
#else
#else
...
@@ -89,14 +90,14 @@ static inline bool
...
@@ -89,14 +90,14 @@ static inline bool
ip_set_timeout_test
(
unsigned
long
timeout
)
ip_set_timeout_test
(
unsigned
long
timeout
)
{
{
return
timeout
==
IPSET_ELEM_PERMANENT
||
return
timeout
==
IPSET_ELEM_PERMANENT
||
time_
after
(
timeout
,
jiffies
);
time_
is_after_jiffies
(
timeout
);
}
}
static
inline
bool
static
inline
bool
ip_set_timeout_expired
(
unsigned
long
timeout
)
ip_set_timeout_expired
(
unsigned
long
timeout
)
{
{
return
timeout
!=
IPSET_ELEM_PERMANENT
&&
return
timeout
!=
IPSET_ELEM_PERMANENT
&&
time_
before
(
timeout
,
jiffies
);
time_
is_before_jiffies
(
timeout
);
}
}
static
inline
unsigned
long
static
inline
unsigned
long
...
@@ -107,7 +108,7 @@ ip_set_timeout_set(u32 timeout)
...
@@ -107,7 +108,7 @@ ip_set_timeout_set(u32 timeout)
if
(
!
timeout
)
if
(
!
timeout
)
return
IPSET_ELEM_PERMANENT
;
return
IPSET_ELEM_PERMANENT
;
t
=
timeout
*
HZ
+
jiffies
;
t
=
msecs_to_jiffies
(
timeout
*
1000
)
+
jiffies
;
if
(
t
==
IPSET_ELEM_PERMANENT
)
if
(
t
==
IPSET_ELEM_PERMANENT
)
/* Bingo! :-) */
/* Bingo! :-) */
t
++
;
t
++
;
...
@@ -118,7 +119,8 @@ ip_set_timeout_set(u32 timeout)
...
@@ -118,7 +119,8 @@ ip_set_timeout_set(u32 timeout)
static
inline
u32
static
inline
u32
ip_set_timeout_get
(
unsigned
long
timeout
)
ip_set_timeout_get
(
unsigned
long
timeout
)
{
{
return
timeout
==
IPSET_ELEM_PERMANENT
?
0
:
(
timeout
-
jiffies
)
/
HZ
;
return
timeout
==
IPSET_ELEM_PERMANENT
?
0
:
jiffies_to_msecs
(
timeout
-
jiffies
)
/
1000
;
}
}
#endif
/* ! IP_SET_BITMAP_TIMEOUT */
#endif
/* ! IP_SET_BITMAP_TIMEOUT */
...
...
include/net/ip_vs.h
View file @
58bf2dbc
...
@@ -797,7 +797,8 @@ struct netns_ipvs {
...
@@ -797,7 +797,8 @@ struct netns_ipvs {
struct
list_head
rs_table
[
IP_VS_RTAB_SIZE
];
struct
list_head
rs_table
[
IP_VS_RTAB_SIZE
];
/* ip_vs_app */
/* ip_vs_app */
struct
list_head
app_list
;
struct
list_head
app_list
;
/* ip_vs_ftp */
struct
ip_vs_app
*
ftp_app
;
/* ip_vs_proto */
/* ip_vs_proto */
#define IP_VS_PROTO_TAB_SIZE 32
/* must be power of 2 */
#define IP_VS_PROTO_TAB_SIZE 32
/* must be power of 2 */
struct
ip_vs_proto_data
*
proto_data_table
[
IP_VS_PROTO_TAB_SIZE
];
struct
ip_vs_proto_data
*
proto_data_table
[
IP_VS_PROTO_TAB_SIZE
];
...
...
net/bridge/netfilter/ebtables.c
View file @
58bf2dbc
...
@@ -1883,14 +1883,13 @@ static int compat_mtw_from_user(struct compat_ebt_entry_mwt *mwt,
...
@@ -1883,14 +1883,13 @@ static int compat_mtw_from_user(struct compat_ebt_entry_mwt *mwt,
struct
xt_target
*
wt
;
struct
xt_target
*
wt
;
void
*
dst
=
NULL
;
void
*
dst
=
NULL
;
int
off
,
pad
=
0
;
int
off
,
pad
=
0
;
unsigned
int
size_kern
,
entry_offset
,
match_size
=
mwt
->
match_size
;
unsigned
int
size_kern
,
match_size
=
mwt
->
match_size
;
strlcpy
(
name
,
mwt
->
u
.
name
,
sizeof
(
name
));
strlcpy
(
name
,
mwt
->
u
.
name
,
sizeof
(
name
));
if
(
state
->
buf_kern_start
)
if
(
state
->
buf_kern_start
)
dst
=
state
->
buf_kern_start
+
state
->
buf_kern_offset
;
dst
=
state
->
buf_kern_start
+
state
->
buf_kern_offset
;
entry_offset
=
(
unsigned
char
*
)
mwt
-
base
;
switch
(
compat_mwt
)
{
switch
(
compat_mwt
)
{
case
EBT_COMPAT_MATCH
:
case
EBT_COMPAT_MATCH
:
match
=
try_then_request_module
(
xt_find_match
(
NFPROTO_BRIDGE
,
match
=
try_then_request_module
(
xt_find_match
(
NFPROTO_BRIDGE
,
...
@@ -1933,6 +1932,9 @@ static int compat_mtw_from_user(struct compat_ebt_entry_mwt *mwt,
...
@@ -1933,6 +1932,9 @@ static int compat_mtw_from_user(struct compat_ebt_entry_mwt *mwt,
size_kern
=
wt
->
targetsize
;
size_kern
=
wt
->
targetsize
;
module_put
(
wt
->
me
);
module_put
(
wt
->
me
);
break
;
break
;
default:
return
-
EINVAL
;
}
}
state
->
buf_kern_offset
+=
match_size
+
off
;
state
->
buf_kern_offset
+=
match_size
+
off
;
...
...
net/netfilter/ipset/ip_set_core.c
View file @
58bf2dbc
...
@@ -815,7 +815,7 @@ ip_set_flush(struct sock *ctnl, struct sk_buff *skb,
...
@@ -815,7 +815,7 @@ ip_set_flush(struct sock *ctnl, struct sk_buff *skb,
ip_set_id_t
i
;
ip_set_id_t
i
;
if
(
unlikely
(
protocol_failed
(
attr
)))
if
(
unlikely
(
protocol_failed
(
attr
)))
return
-
EPROTO
;
return
-
IPSET_ERR_PROTOCOL
;
if
(
!
attr
[
IPSET_ATTR_SETNAME
])
{
if
(
!
attr
[
IPSET_ATTR_SETNAME
])
{
for
(
i
=
0
;
i
<
ip_set_max
;
i
++
)
for
(
i
=
0
;
i
<
ip_set_max
;
i
++
)
...
...
net/netfilter/ipvs/ip_vs_ftp.c
View file @
58bf2dbc
...
@@ -411,25 +411,35 @@ static struct ip_vs_app ip_vs_ftp = {
...
@@ -411,25 +411,35 @@ static struct ip_vs_app ip_vs_ftp = {
static
int
__net_init
__ip_vs_ftp_init
(
struct
net
*
net
)
static
int
__net_init
__ip_vs_ftp_init
(
struct
net
*
net
)
{
{
int
i
,
ret
;
int
i
,
ret
;
struct
ip_vs_app
*
app
=
&
ip_vs_ftp
;
struct
ip_vs_app
*
app
;
struct
netns_ipvs
*
ipvs
=
net_ipvs
(
net
);
app
=
kmemdup
(
&
ip_vs_ftp
,
sizeof
(
struct
ip_vs_app
),
GFP_KERNEL
);
if
(
!
app
)
return
-
ENOMEM
;
INIT_LIST_HEAD
(
&
app
->
a_list
);
INIT_LIST_HEAD
(
&
app
->
incs_list
);
ipvs
->
ftp_app
=
app
;
ret
=
register_ip_vs_app
(
net
,
app
);
ret
=
register_ip_vs_app
(
net
,
app
);
if
(
ret
)
if
(
ret
)
return
re
t
;
goto
err_exi
t
;
for
(
i
=
0
;
i
<
IP_VS_APP_MAX_PORTS
;
i
++
)
{
for
(
i
=
0
;
i
<
IP_VS_APP_MAX_PORTS
;
i
++
)
{
if
(
!
ports
[
i
])
if
(
!
ports
[
i
])
continue
;
continue
;
ret
=
register_ip_vs_app_inc
(
net
,
app
,
app
->
protocol
,
ports
[
i
]);
ret
=
register_ip_vs_app_inc
(
net
,
app
,
app
->
protocol
,
ports
[
i
]);
if
(
ret
)
if
(
ret
)
break
;
goto
err_unreg
;
pr_info
(
"%s: loaded support on port[%d] = %d
\n
"
,
pr_info
(
"%s: loaded support on port[%d] = %d
\n
"
,
app
->
name
,
i
,
ports
[
i
]);
app
->
name
,
i
,
ports
[
i
]);
}
}
return
0
;
if
(
ret
)
err_unreg:
unregister_ip_vs_app
(
net
,
app
);
unregister_ip_vs_app
(
net
,
app
);
err_exit:
kfree
(
ipvs
->
ftp_app
);
return
ret
;
return
ret
;
}
}
/*
/*
...
@@ -437,9 +447,10 @@ static int __net_init __ip_vs_ftp_init(struct net *net)
...
@@ -437,9 +447,10 @@ static int __net_init __ip_vs_ftp_init(struct net *net)
*/
*/
static
void
__ip_vs_ftp_exit
(
struct
net
*
net
)
static
void
__ip_vs_ftp_exit
(
struct
net
*
net
)
{
{
struct
ip_vs_app
*
app
=
&
ip_vs_ftp
;
struct
netns_ipvs
*
ipvs
=
net_ipvs
(
net
)
;
unregister_ip_vs_app
(
net
,
app
);
unregister_ip_vs_app
(
net
,
ipvs
->
ftp_app
);
kfree
(
ipvs
->
ftp_app
);
}
}
static
struct
pernet_operations
ip_vs_ftp_ops
=
{
static
struct
pernet_operations
ip_vs_ftp_ops
=
{
...
...
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