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
6b22a7ea
Commit
6b22a7ea
authored
Aug 31, 2002
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge nuts.ninka.net:/home/davem/src/BK/network-2.5
into nuts.ninka.net:/home/davem/src/BK/net-2.5
parents
10162063
2e907999
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
49 additions
and
36 deletions
+49
-36
MAINTAINERS
MAINTAINERS
+4
-7
drivers/net/ppp_generic.c
drivers/net/ppp_generic.c
+20
-1
include/linux/igmp.h
include/linux/igmp.h
+1
-1
include/net/tcp.h
include/net/tcp.h
+2
-2
net/core/dst.c
net/core/dst.c
+1
-2
net/ipv4/igmp.c
net/ipv4/igmp.c
+2
-5
net/ipv4/netfilter/ipchains_core.c
net/ipv4/netfilter/ipchains_core.c
+1
-1
net/ipv4/netfilter/ipt_ULOG.c
net/ipv4/netfilter/ipt_ULOG.c
+18
-17
No files found.
MAINTAINERS
View file @
6b22a7ea
...
@@ -1099,20 +1099,17 @@ M: James.Bottomley@HansenPartnership.com
...
@@ -1099,20 +1099,17 @@ M: James.Bottomley@HansenPartnership.com
L: linux-scsi@vger.kernel.org
L: linux-scsi@vger.kernel.org
S: Maintained
S: Maintained
NETFILTER
NETFILTER
/IPTABLES
P: Rusty Russell
P: Rusty Russell
M: rusty@rustcorp.com.au
P: Marc Boucher
P: Marc Boucher
M: marc@mbsi.ca
P: James Morris
P: James Morris
M: jamesm@intercode.com.au
P: Harald Welte
P: Harald Welte
M: laforge@gnumonks.org
P: Jozsef Kadlecsik
P: Jozsef Kadlecsik
M:
kadlec@blackhole.kfki.hu
M:
coreteam@netfilter.org
W: http://www.netfilter.org/
W: http://www.netfilter.org/
W: http://www.iptables.org/
W: http://www.iptables.org/
L: netfilter@lists.samba.org
L: netfilter@lists.netfilter.org
L: netfilter-devel@lists.netfilter.org
S: Supported
S: Supported
NETROM NETWORK LAYER
NETROM NETWORK LAYER
...
...
drivers/net/ppp_generic.c
View file @
6b22a7ea
...
@@ -1388,6 +1388,25 @@ static void
...
@@ -1388,6 +1388,25 @@ static void
ppp_receive_frame
(
struct
ppp
*
ppp
,
struct
sk_buff
*
skb
,
struct
channel
*
pch
)
ppp_receive_frame
(
struct
ppp
*
ppp
,
struct
sk_buff
*
skb
,
struct
channel
*
pch
)
{
{
if
(
skb
->
len
>=
2
)
{
if
(
skb
->
len
>=
2
)
{
struct
sk_buff
*
new_skb
;
/* If this packet is byte aligned, fix that. */
if
((
unsigned
long
)
skb
->
data
&
0x1UL
)
{
int
len
=
skb
->
len
;
if
(
skb_tailroom
(
skb
)
<
124
)
len
+=
128
;
new_skb
=
dev_alloc_skb
(
len
);
if
(
!
new_skb
)
{
printk
(
KERN_ERR
"PPP: no memory (bad aligned SKB)
\n
"
);
goto
err
;
}
skb_reserve
(
new_skb
,
2
);
memcpy
(
skb_put
(
new_skb
,
skb
->
len
),
skb
->
data
,
skb
->
len
);
kfree_skb
(
skb
);
skb
=
new_skb
;
}
#ifdef CONFIG_PPP_MULTILINK
#ifdef CONFIG_PPP_MULTILINK
/* XXX do channel-level decompression here */
/* XXX do channel-level decompression here */
if
(
PPP_PROTO
(
skb
)
==
PPP_MP
)
if
(
PPP_PROTO
(
skb
)
==
PPP_MP
)
...
@@ -1401,7 +1420,7 @@ ppp_receive_frame(struct ppp *ppp, struct sk_buff *skb, struct channel *pch)
...
@@ -1401,7 +1420,7 @@ ppp_receive_frame(struct ppp *ppp, struct sk_buff *skb, struct channel *pch)
if
(
skb
->
len
>
0
)
if
(
skb
->
len
>
0
)
/* note: a 0-length skb is used as an error indication */
/* note: a 0-length skb is used as an error indication */
++
ppp
->
stats
.
rx_length_errors
;
++
ppp
->
stats
.
rx_length_errors
;
err:
kfree_skb
(
skb
);
kfree_skb
(
skb
);
ppp_receive_error
(
ppp
);
ppp_receive_error
(
ppp
);
}
}
...
...
include/linux/igmp.h
View file @
6b22a7ea
...
@@ -115,7 +115,7 @@ extern void ip_mc_init_dev(struct in_device *);
...
@@ -115,7 +115,7 @@ extern void ip_mc_init_dev(struct in_device *);
extern
void
ip_mc_destroy_dev
(
struct
in_device
*
);
extern
void
ip_mc_destroy_dev
(
struct
in_device
*
);
extern
void
ip_mc_up
(
struct
in_device
*
);
extern
void
ip_mc_up
(
struct
in_device
*
);
extern
void
ip_mc_down
(
struct
in_device
*
);
extern
void
ip_mc_down
(
struct
in_device
*
);
extern
int
ip_mc_dec_group
(
struct
in_device
*
in_dev
,
u32
addr
);
extern
void
ip_mc_dec_group
(
struct
in_device
*
in_dev
,
u32
addr
);
extern
void
ip_mc_inc_group
(
struct
in_device
*
in_dev
,
u32
addr
);
extern
void
ip_mc_inc_group
(
struct
in_device
*
in_dev
,
u32
addr
);
#endif
#endif
#endif
#endif
include/net/tcp.h
View file @
6b22a7ea
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
#include <linux/config.h>
#include <linux/config.h>
#include <linux/tcp.h>
#include <linux/tcp.h>
#include <linux/slab.h>
#include <linux/slab.h>
#include <linux/cache.h>
#include <net/checksum.h>
#include <net/checksum.h>
#include <net/sock.h>
#include <net/sock.h>
#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
...
@@ -120,8 +121,7 @@ extern struct tcp_hashinfo {
...
@@ -120,8 +121,7 @@ extern struct tcp_hashinfo {
* Now align to a new cache line as all the following members
* Now align to a new cache line as all the following members
* are often dirty.
* are often dirty.
*/
*/
rwlock_t
__tcp_lhash_lock
rwlock_t
__tcp_lhash_lock
____cacheline_aligned
;
__attribute__
((
__aligned__
(
SMP_CACHE_BYTES
)));
atomic_t
__tcp_lhash_users
;
atomic_t
__tcp_lhash_users
;
wait_queue_head_t
__tcp_lhash_wait
;
wait_queue_head_t
__tcp_lhash_wait
;
spinlock_t
__tcp_portalloc_lock
;
spinlock_t
__tcp_portalloc_lock
;
...
...
net/core/dst.c
View file @
6b22a7ea
...
@@ -5,8 +5,7 @@
...
@@ -5,8 +5,7 @@
*
*
*/
*/
#include <asm/system.h>
#include <linux/bitops.h>
#include <asm/bitops.h>
#include <linux/types.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/sched.h>
...
...
net/ipv4/igmp.c
View file @
6b22a7ea
...
@@ -530,9 +530,8 @@ void ip_mc_inc_group(struct in_device *in_dev, u32 addr)
...
@@ -530,9 +530,8 @@ void ip_mc_inc_group(struct in_device *in_dev, u32 addr)
* A socket has left a multicast group on device dev
* A socket has left a multicast group on device dev
*/
*/
int
ip_mc_dec_group
(
struct
in_device
*
in_dev
,
u32
addr
)
void
ip_mc_dec_group
(
struct
in_device
*
in_dev
,
u32
addr
)
{
{
int
err
=
-
ESRCH
;
struct
ip_mc_list
*
i
,
**
ip
;
struct
ip_mc_list
*
i
,
**
ip
;
ASSERT_RTNL
();
ASSERT_RTNL
();
...
@@ -549,13 +548,11 @@ int ip_mc_dec_group(struct in_device *in_dev, u32 addr)
...
@@ -549,13 +548,11 @@ int ip_mc_dec_group(struct in_device *in_dev, u32 addr)
ip_rt_multicast_event
(
in_dev
);
ip_rt_multicast_event
(
in_dev
);
ip_ma_put
(
i
);
ip_ma_put
(
i
);
return
0
;
return
;
}
}
err
=
0
;
break
;
break
;
}
}
}
}
return
-
ESRCH
;
}
}
/* Device going down */
/* Device going down */
...
...
net/ipv4/netfilter/ipchains_core.c
View file @
6b22a7ea
...
@@ -1779,4 +1779,4 @@ int ipfw_init_or_cleanup(int init)
...
@@ -1779,4 +1779,4 @@ int ipfw_init_or_cleanup(int init)
#endif
#endif
return
ret
;
return
ret
;
}
}
MODULE_LICENSE
(
"
BSD without advertisement clause
"
);
MODULE_LICENSE
(
"
Dual BSD/GPL
"
);
net/ipv4/netfilter/ipt_ULOG.c
View file @
6b22a7ea
...
@@ -10,6 +10,8 @@
...
@@ -10,6 +10,8 @@
* nlgroup now global (sysctl)
* nlgroup now global (sysctl)
* 2001/04/19 ulog-queue reworked, now fixed buffer size specified at
* 2001/04/19 ulog-queue reworked, now fixed buffer size specified at
* module loadtime -HW
* module loadtime -HW
* 2002/07/07 remove broken nflog_rcv() function -HW
* 2002/08/29 fix shifted/unshifted nlgroup bug -HW
*
*
* Released under the terms of the GPL
* Released under the terms of the GPL
*
*
...
@@ -29,7 +31,7 @@
...
@@ -29,7 +31,7 @@
* Specify, after how many clock ticks (intel: 100 per second) the queue
* Specify, after how many clock ticks (intel: 100 per second) the queue
* should be flushed even if it is not full yet.
* should be flushed even if it is not full yet.
*
*
* ipt_ULOG.c,v 1.
18 2002/04/16 07:33:00
laforge Exp
* ipt_ULOG.c,v 1.
21 2002/08/29 10:54:34
laforge Exp
*/
*/
#include <linux/module.h>
#include <linux/module.h>
...
@@ -48,8 +50,11 @@
...
@@ -48,8 +50,11 @@
#include <linux/netfilter_ipv4/ipt_ULOG.h>
#include <linux/netfilter_ipv4/ipt_ULOG.h>
#include <linux/netfilter_ipv4/lockhelp.h>
#include <linux/netfilter_ipv4/lockhelp.h>
#include <net/sock.h>
#include <net/sock.h>
#include <asm/bitops.h>
MODULE_LICENSE
(
"GPL"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_AUTHOR
(
"Harald Welte <laforge@gnumonks.org>"
);
MODULE_DESCRIPTION
(
"IP tables userspace logging module"
);
#define ULOG_NL_EVENT 111
/* Harald's favorite number */
#define ULOG_NL_EVENT 111
/* Harald's favorite number */
#define ULOG_MAXNLGROUPS 32
/* numer of nlgroups */
#define ULOG_MAXNLGROUPS 32
/* numer of nlgroups */
...
@@ -63,10 +68,6 @@ MODULE_LICENSE("GPL");
...
@@ -63,10 +68,6 @@ MODULE_LICENSE("GPL");
#define PRINTR(format, args...) do { if (net_ratelimit()) printk(format, ## args); } while (0)
#define PRINTR(format, args...) do { if (net_ratelimit()) printk(format, ## args); } while (0)
MODULE_AUTHOR
(
"Harald Welte <laforge@gnumonks.org>"
);
MODULE_DESCRIPTION
(
"IP tables userspace logging module"
);
static
unsigned
int
nlbufsiz
=
4096
;
static
unsigned
int
nlbufsiz
=
4096
;
MODULE_PARM
(
nlbufsiz
,
"i"
);
MODULE_PARM
(
nlbufsiz
,
"i"
);
MODULE_PARM_DESC
(
nlbufsiz
,
"netlink buffer size"
);
MODULE_PARM_DESC
(
nlbufsiz
,
"netlink buffer size"
);
...
@@ -91,9 +92,9 @@ static size_t qlen; /* current length of multipart-nlmsg */
...
@@ -91,9 +92,9 @@ static size_t qlen; /* current length of multipart-nlmsg */
DECLARE_LOCK
(
ulog_lock
);
/* spinlock */
DECLARE_LOCK
(
ulog_lock
);
/* spinlock */
/* send one ulog_buff_t to userspace */
/* send one ulog_buff_t to userspace */
static
void
ulog_send
(
unsigned
int
nlgroup
)
static
void
ulog_send
(
unsigned
int
nlgroup
num
)
{
{
ulog_buff_t
*
ub
=
&
ulog_buffers
[
nlgroup
];
ulog_buff_t
*
ub
=
&
ulog_buffers
[
nlgroup
num
];
if
(
timer_pending
(
&
ub
->
timer
))
{
if
(
timer_pending
(
&
ub
->
timer
))
{
DEBUGP
(
"ipt_ULOG: ulog_send: timer was pending, deleting
\n
"
);
DEBUGP
(
"ipt_ULOG: ulog_send: timer was pending, deleting
\n
"
);
...
@@ -104,10 +105,10 @@ static void ulog_send(unsigned int nlgroup)
...
@@ -104,10 +105,10 @@ static void ulog_send(unsigned int nlgroup)
if
(
ub
->
qlen
>
1
)
if
(
ub
->
qlen
>
1
)
ub
->
lastnlh
->
nlmsg_type
=
NLMSG_DONE
;
ub
->
lastnlh
->
nlmsg_type
=
NLMSG_DONE
;
NETLINK_CB
(
ub
->
skb
).
dst_groups
=
nlgroup
;
NETLINK_CB
(
ub
->
skb
).
dst_groups
=
(
1
<<
nlgroupnum
)
;
DEBUGP
(
"ipt_ULOG: throwing %d packets to netlink mask %u
\n
"
,
DEBUGP
(
"ipt_ULOG: throwing %d packets to netlink mask %u
\n
"
,
ub
->
qlen
,
nlgroup
);
ub
->
qlen
,
nlgroup
);
netlink_broadcast
(
nflognl
,
ub
->
skb
,
0
,
nlgroup
,
GFP_ATOMIC
);
netlink_broadcast
(
nflognl
,
ub
->
skb
,
0
,
(
1
<<
nlgroupnum
)
,
GFP_ATOMIC
);
ub
->
qlen
=
0
;
ub
->
qlen
=
0
;
ub
->
skb
=
NULL
;
ub
->
skb
=
NULL
;
...
@@ -128,11 +129,6 @@ static void ulog_timer(unsigned long data)
...
@@ -128,11 +129,6 @@ static void ulog_timer(unsigned long data)
UNLOCK_BH
(
&
ulog_lock
);
UNLOCK_BH
(
&
ulog_lock
);
}
}
static
void
nflog_rcv
(
struct
sock
*
sk
,
int
len
)
{
printk
(
"ipt_ULOG:nflog_rcv() did receive netlink message ?!?
\n
"
);
}
struct
sk_buff
*
ulog_alloc_skb
(
unsigned
int
size
)
struct
sk_buff
*
ulog_alloc_skb
(
unsigned
int
size
)
{
{
struct
sk_buff
*
skb
;
struct
sk_buff
*
skb
;
...
@@ -169,6 +165,11 @@ static unsigned int ipt_ulog_target(struct sk_buff **pskb,
...
@@ -169,6 +165,11 @@ static unsigned int ipt_ulog_target(struct sk_buff **pskb,
struct
nlmsghdr
*
nlh
;
struct
nlmsghdr
*
nlh
;
struct
ipt_ulog_info
*
loginfo
=
(
struct
ipt_ulog_info
*
)
targinfo
;
struct
ipt_ulog_info
*
loginfo
=
(
struct
ipt_ulog_info
*
)
targinfo
;
/* ffs == find first bit set, necessary because userspace
* is already shifting groupnumber, but we need unshifted.
* ffs() returns [1..32], we need [0..31] */
unsigned
int
groupnum
=
ffs
(
loginfo
->
nl_group
)
-
1
;
/* calculate the size of the skb needed */
/* calculate the size of the skb needed */
if
((
loginfo
->
copy_range
==
0
)
||
if
((
loginfo
->
copy_range
==
0
)
||
(
loginfo
->
copy_range
>
(
*
pskb
)
->
len
))
{
(
loginfo
->
copy_range
>
(
*
pskb
)
->
len
))
{
...
@@ -179,7 +180,7 @@ static unsigned int ipt_ulog_target(struct sk_buff **pskb,
...
@@ -179,7 +180,7 @@ static unsigned int ipt_ulog_target(struct sk_buff **pskb,
size
=
NLMSG_SPACE
(
sizeof
(
*
pm
)
+
copy_len
);
size
=
NLMSG_SPACE
(
sizeof
(
*
pm
)
+
copy_len
);
ub
=
&
ulog_buffers
[
loginfo
->
nl_group
];
ub
=
&
ulog_buffers
[
groupnum
];
LOCK_BH
(
&
ulog_lock
);
LOCK_BH
(
&
ulog_lock
);
...
@@ -191,7 +192,7 @@ static unsigned int ipt_ulog_target(struct sk_buff **pskb,
...
@@ -191,7 +192,7 @@ static unsigned int ipt_ulog_target(struct sk_buff **pskb,
/* either the queue len is too high or we don't have
/* either the queue len is too high or we don't have
* enough room in nlskb left. send it to userspace. */
* enough room in nlskb left. send it to userspace. */
ulog_send
(
loginfo
->
nl_group
);
ulog_send
(
groupnum
);
if
(
!
(
ub
->
skb
=
ulog_alloc_skb
(
size
)))
if
(
!
(
ub
->
skb
=
ulog_alloc_skb
(
size
)))
goto
alloc_failure
;
goto
alloc_failure
;
...
@@ -325,7 +326,7 @@ static int __init init(void)
...
@@ -325,7 +326,7 @@ static int __init init(void)
ulog_buffers
[
i
].
timer
.
data
=
i
;
ulog_buffers
[
i
].
timer
.
data
=
i
;
}
}
nflognl
=
netlink_kernel_create
(
NETLINK_NFLOG
,
nflog_rcv
);
nflognl
=
netlink_kernel_create
(
NETLINK_NFLOG
,
NULL
);
if
(
!
nflognl
)
if
(
!
nflognl
)
return
-
ENOMEM
;
return
-
ENOMEM
;
...
...
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