Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
B
babeld
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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
babeld
Commits
2eed758a
Commit
2eed758a
authored
7 years ago
by
Matthieu Boutier
Committed by
Juliusz Chroboczek
7 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix unlikely corner-cases (not bugs).
parent
13ad5faf
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
11 deletions
+16
-11
message.c
message.c
+16
-11
No files found.
message.c
View file @
2eed758a
...
...
@@ -586,14 +586,14 @@ parse_packet(const unsigned char *from, struct interface *ifp,
format_address
(
from
),
ifp
->
name
);
if
(
message
[
2
]
==
0
)
{
rc
=
parse_other_subtlv
(
message
+
12
,
len
-
8
);
if
(
rc
<
0
)
goto
done
;
if
(
metric
<
0xFFFF
)
{
fprintf
(
stderr
,
"Received wildcard update with finite metric.
\n
"
);
goto
done
;
}
rc
=
parse_other_subtlv
(
message
+
12
,
len
-
8
);
if
(
rc
<
0
)
goto
done
;
retract_neighbour_routes
(
neigh
);
goto
done
;
}
else
if
(
message
[
2
]
==
1
)
{
...
...
@@ -606,15 +606,16 @@ parse_packet(const unsigned char *from, struct interface *ifp,
nh
=
neigh
->
address
;
}
rc
=
parse_update_subtlv
(
ifp
,
metric
,
message
+
2
+
parsed_len
,
len
-
parsed_len
,
channels
,
&
channels_len
);
if
(
rc
<
0
)
goto
done
;
if
(
message
[
2
]
==
1
)
{
if
(
!
ifp
->
ipv4
)
goto
done
;
}
rc
=
parse_update_subtlv
(
ifp
,
metric
,
message
+
2
+
parsed_len
,
len
-
parsed_len
,
channels
,
&
channels_len
);
if
(
rc
<
0
)
goto
done
;
update_route
(
router_id
,
prefix
,
plen
,
src_prefix
,
src_plen
,
seqno
,
metric
,
interval
,
neigh
,
nh
,
channels
,
channels_len
);
...
...
@@ -730,6 +731,9 @@ parse_packet(const unsigned char *from, struct interface *ifp,
if
(
ae
==
0
)
{
debugf
(
"Received invalid Source-Specific wildcard update.
\n
"
);
rc
=
parse_other_subtlv
(
message
+
12
,
len
-
8
);
if
(
rc
<
0
)
goto
done
;
retract_neighbour_routes
(
neigh
);
goto
done
;
}
else
if
(
ae
==
1
)
{
...
...
@@ -742,15 +746,16 @@ parse_packet(const unsigned char *from, struct interface *ifp,
nh
=
neigh
->
address
;
}
rc
=
parse_update_subtlv
(
ifp
,
metric
,
message
+
2
+
parsed_len
,
len
-
parsed_len
,
channels
,
&
channels_len
);
if
(
rc
<
0
)
goto
done
;
if
(
ae
==
1
)
{
if
(
!
ifp
->
ipv4
)
goto
done
;
}
rc
=
parse_update_subtlv
(
ifp
,
metric
,
message
+
2
+
parsed_len
,
len
-
parsed_len
,
channels
,
&
channels_len
);
if
(
rc
<
0
)
goto
done
;
update_route
(
router_id
,
prefix
,
plen
,
src_prefix
,
src_plen
,
seqno
,
metric
,
interval
,
neigh
,
nh
,
channels
,
channels_len
);
...
...
This diff is collapsed.
Click to expand it.
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