Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
labs
BIRD Internet Routing Daemon
Commits
b23c5e0f
Commit
b23c5e0f
authored
May 14, 1999
by
Martin Mareš
Browse files
Added ip_skip_header() and modified OSPF to use it.
parent
11ce4490
Changes
4
Hide whitespace changes
Inline
Side-by-side
TODO
View file @
b23c5e0f
...
...
@@ -30,6 +30,8 @@ Core
- socket: Use IP_RECVERR for BGP TCP sockets?
- lib: use better checksum function
Cleanup
~~~~~~~
- right usage of DBG vs. debug
...
...
lib/ipv4.c
View file @
b23c5e0f
...
...
@@ -94,3 +94,18 @@ ip_pton(char *a, ip_addr *o)
*
o
=
ipa_from_u32
(
ia
);
return
1
;
}
byte
*
ipv4_skip_header
(
byte
*
pkt
,
int
*
len
)
{
int
l
=
*
len
;
int
q
;
if
(
l
<
20
||
(
*
pkt
&
0xf0
)
!=
0x40
)
return
NULL
;
q
=
(
*
pkt
&
0x0f
)
*
4
;
if
(
q
<
l
)
return
NULL
;
*
len
-=
q
;
return
pkt
+
q
;
}
lib/ipv4.h
View file @
b23c5e0f
...
...
@@ -58,8 +58,11 @@ typedef u32 ip_addr;
#define ipa_to_u32(x) _I(x)
#define ipa_compare(x,y) ipv4_compare(_I(x),_I(y))
#define ip_skip_header(x, y) ipv4_skip_header(x, y)
int
ipv4_classify
(
u32
);
u32
ipv4_class_mask
(
u32
);
byte
*
ipv4_skip_header
(
byte
*
,
int
*
);
static
inline
unsigned
ipv4_hash
(
u32
a
)
{
...
...
proto/ospf/ospf.c
View file @
b23c5e0f
...
...
@@ -80,16 +80,15 @@ ospf_rx_hook(sock *sk, int size)
DBG
(
sk
->
iface
->
name
);
DBG
(
".
\n
"
);
ps
=
(
struct
ospf_packet
*
)(
sk
->
rbuf
+
5
*
4
);
if
(
size
<=
(
20
+
sizeof
(
struct
ospf_packet
)))
ps
=
(
struct
ospf_packet
*
)
ipv4_skip_header
(
sk
->
rbuf
,
&
size
);
if
(
!
ps
||
size
<
sizeof
(
struct
ospf_packet
))
{
log
(
"%s: Bad packet received: too short"
,
p
->
name
);
log
(
"%s: Discarding"
,
p
->
name
);
return
(
1
);
}
if
(
(
ntohs
(
ps
->
length
)
)
!=
(
size
-
20
)
)
if
(
ntohs
(
ps
->
length
)
!=
size
)
{
log
(
"%s: Bad packet received: size fields does not match"
,
p
->
name
);
log
(
"%s: Discarding"
,
p
->
name
);
...
...
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