Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
D
Dnsmasq
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
Dnsmasq
Commits
005c46d6
Commit
005c46d6
authored
Apr 11, 2017
by
David Flamand
Committed by
Simon Kelley
Apr 11, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add mtu facility to --ra-param.
parent
503c6091
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
44 additions
and
20 deletions
+44
-20
CHANGELOG
CHANGELOG
+3
-0
man/dnsmasq.8
man/dnsmasq.8
+3
-3
man/fr/dnsmasq.8
man/fr/dnsmasq.8
+4
-4
src/dnsmasq.h
src/dnsmasq.h
+1
-1
src/option.c
src/option.c
+13
-1
src/radv.c
src/radv.c
+20
-11
No files found.
CHANGELOG
View file @
005c46d6
...
@@ -86,6 +86,9 @@ version 2.77
...
@@ -86,6 +86,9 @@ version 2.77
Add --dhcp-reply-delay option. Thanks to Floris Bos
Add --dhcp-reply-delay option. Thanks to Floris Bos
for the patch.
for the patch.
Add mtu setting facility to --ra-param. Thanks to David
Flamand for the patch.
version 2.76
version 2.76
Include 0.0.0.0/8 in DNS rebind checks. This range
Include 0.0.0.0/8 in DNS rebind checks. This range
...
...
man/dnsmasq.8
View file @
005c46d6
...
@@ -1776,7 +1776,7 @@ the relevant link-local address of the machine running dnsmasq is sent
...
@@ -1776,7 +1776,7 @@ the relevant link-local address of the machine running dnsmasq is sent
as recursive DNS server. If provided, the DHCPv6 options dns-server and
as recursive DNS server. If provided, the DHCPv6 options dns-server and
domain-search are used for the DNS server (RDNSS) and the domain search list (DNSSL).
domain-search are used for the DNS server (RDNSS) and the domain search list (DNSSL).
.TP
.TP
.B --ra-param=<interface>,[
high|low],[[<ra-interval>]
,<router lifetime>]
.B --ra-param=<interface>,[
mtu:<integer>|off,][high,|low,]<ra-interval>[
,<router lifetime>]
Set non-default values for router advertisements sent via an
Set non-default values for router advertisements sent via an
interface. The priority field for the router may be altered from the
interface. The priority field for the router may be altered from the
default of medium with eg
default of medium with eg
...
@@ -1786,8 +1786,8 @@ The interval between router advertisements may be set (in seconds) with
...
@@ -1786,8 +1786,8 @@ The interval between router advertisements may be set (in seconds) with
The lifetime of the route may be changed or set to zero, which allows
The lifetime of the route may be changed or set to zero, which allows
a router to advertise prefixes but not a route via itself.
a router to advertise prefixes but not a route via itself.
.B --ra-parm=eth0,0,0
.B --ra-parm=eth0,0,0
(A value of zero for the interval means the default value.) All
three
parameters may be set at once.
(A value of zero for the interval means the default value.) All
four
parameters may be set at once.
.B --ra-param=low,60,1200
.B --ra-param=
eth0,mtu:1280,
low,60,1200
The interface field may include a wildcard.
The interface field may include a wildcard.
.TP
.TP
.B --dhcp-reply-delay=[tag:<tag>,]<integer>
.B --dhcp-reply-delay=[tag:<tag>,]<integer>
...
...
man/fr/dnsmasq.8
View file @
005c46d6
...
@@ -1756,20 +1756,20 @@ dnsmasq est spécifiée comme DNS récursif. Si elles sont fournies, les
...
@@ -1756,20 +1756,20 @@ dnsmasq est spécifiée comme DNS récursif. Si elles sont fournies, les
options dns-server et domain-search sont utilisées respectivement pour RDNSS et
options dns-server et domain-search sont utilisées respectivement pour RDNSS et
DNSSL.
DNSSL.
.TP
.TP
.B --ra-param=<interface>,[
high|low],[[<intervalle d'annonce routeur>]
,<durée de vie route>]
.B --ra-param=<interface>,[
mtu:<valeur>|off,][high,|low,]<intervalle d'annonce routeur>[
,<durée de vie route>]
Configure pour une interface donnée des valeurs pour les annonces routeurs
Configure pour une interface donnée des valeurs pour les annonces routeurs
différentes des valeurs par défaut. La valeur par défaut du champ priorité
différentes des valeurs par défaut. La valeur par défaut du champ priorité
pour le routeur peut-être changée de "medium" (moyen) à "high" (haute) ou
pour le routeur peut-être changée de "medium" (moyen) à "high" (haute) ou
"low" (basse). Par exemple :
"low" (basse). Par exemple :
.B --ra-param=eth0,high.
.B --ra-param=eth0,high
,0
.
Un intervalle (en secondes) entre les annonces routeur peut-être fourni par :
Un intervalle (en secondes) entre les annonces routeur peut-être fourni par :
.B --ra-param=eth0,60.
.B --ra-param=eth0,60.
La durée de vie de la route peut-être changée ou mise à zéro, auquel cas
La durée de vie de la route peut-être changée ou mise à zéro, auquel cas
le routeur peut annoncer les préfixes mais pas de route :
le routeur peut annoncer les préfixes mais pas de route :
.B --ra-parm=eth0,0,0
.B --ra-parm=eth0,0,0
(une valeur de zéro pour l'intervalle signifie qu'il garde la valeur par défaut).
(une valeur de zéro pour l'intervalle signifie qu'il garde la valeur par défaut).
Ces
trois
paramètres peuvent-être configurés en une fois :
Ces
quatre
paramètres peuvent-être configurés en une fois :
.B --ra-param=low,60,1200
.B --ra-param=
eth0,mtu:1280,
low,60,1200
La valeur pour l'interface peut inclure un caractère joker.
La valeur pour l'interface peut inclure un caractère joker.
.TP
.TP
.B --enable-tftp[=<interface>[,<interface>]]
.B --enable-tftp[=<interface>[,<interface>]]
...
...
src/dnsmasq.h
View file @
005c46d6
...
@@ -839,7 +839,7 @@ struct prefix_class {
...
@@ -839,7 +839,7 @@ struct prefix_class {
struct
ra_interface
{
struct
ra_interface
{
char
*
name
;
char
*
name
;
int
interval
,
lifetime
,
prio
;
int
interval
,
lifetime
,
prio
,
mtu
;
struct
ra_interface
*
next
;
struct
ra_interface
*
next
;
};
};
...
...
src/option.c
View file @
005c46d6
...
@@ -488,7 +488,7 @@ static struct {
...
@@ -488,7 +488,7 @@ static struct {
#ifdef OPTION6_PREFIX_CLASS
#ifdef OPTION6_PREFIX_CLASS
{
LOPT_PREF_CLSS
,
ARG_DUP
,
"set:tag,<class>"
,
gettext_noop
(
"Specify DHCPv6 prefix class"
),
NULL
},
{
LOPT_PREF_CLSS
,
ARG_DUP
,
"set:tag,<class>"
,
gettext_noop
(
"Specify DHCPv6 prefix class"
),
NULL
},
#endif
#endif
{
LOPT_RA_PARAM
,
ARG_DUP
,
"<iface>,[
<prio>,]<intval>[,<lifetime>]"
,
gettext_noop
(
"Set
priority, resend-interval and router-lifetime"
),
NULL
},
{
LOPT_RA_PARAM
,
ARG_DUP
,
"<iface>,[
mtu:<value>|off,][<prio>,]<intval>[,<lifetime>]"
,
gettext_noop
(
"Set MTU,
priority, resend-interval and router-lifetime"
),
NULL
},
{
LOPT_QUIET_DHCP
,
OPT_QUIET_DHCP
,
NULL
,
gettext_noop
(
"Do not log routine DHCP."
),
NULL
},
{
LOPT_QUIET_DHCP
,
OPT_QUIET_DHCP
,
NULL
,
gettext_noop
(
"Do not log routine DHCP."
),
NULL
},
{
LOPT_QUIET_DHCP6
,
OPT_QUIET_DHCP6
,
NULL
,
gettext_noop
(
"Do not log routine DHCPv6."
),
NULL
},
{
LOPT_QUIET_DHCP6
,
OPT_QUIET_DHCP6
,
NULL
,
gettext_noop
(
"Do not log routine DHCPv6."
),
NULL
},
{
LOPT_QUIET_RA
,
OPT_QUIET_RA
,
NULL
,
gettext_noop
(
"Do not log RA."
),
NULL
},
{
LOPT_QUIET_RA
,
OPT_QUIET_RA
,
NULL
,
gettext_noop
(
"Do not log RA."
),
NULL
},
...
@@ -3706,7 +3706,18 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
...
@@ -3706,7 +3706,18 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
struct
ra_interface
*
new
=
opt_malloc
(
sizeof
(
struct
ra_interface
));
struct
ra_interface
*
new
=
opt_malloc
(
sizeof
(
struct
ra_interface
));
new
->
lifetime
=
-
1
;
new
->
lifetime
=
-
1
;
new
->
prio
=
0
;
new
->
prio
=
0
;
new
->
mtu
=
0
;
new
->
name
=
opt_string_alloc
(
arg
);
new
->
name
=
opt_string_alloc
(
arg
);
if
(
strcasestr
(
comma
,
"mtu:"
)
==
comma
)
{
arg
=
comma
+
4
;
if
(
!
(
comma
=
split
(
comma
)))
goto
err
;
if
(
!
strcasecmp
(
arg
,
"off"
))
new
->
mtu
=
-
1
;
else
if
(
!
atoi_check
(
arg
,
&
new
->
mtu
)
||
new
->
mtu
<
1280
)
goto
err
;
}
if
(
strcasestr
(
comma
,
"high"
)
==
comma
||
strcasestr
(
comma
,
"low"
)
==
comma
)
if
(
strcasestr
(
comma
,
"high"
)
==
comma
||
strcasestr
(
comma
,
"low"
)
==
comma
)
{
{
if
(
*
comma
==
'l'
||
*
comma
==
'L'
)
if
(
*
comma
==
'l'
||
*
comma
==
'L'
)
...
@@ -3718,6 +3729,7 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
...
@@ -3718,6 +3729,7 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
arg
=
split
(
comma
);
arg
=
split
(
comma
);
if
(
!
atoi_check
(
comma
,
&
new
->
interval
)
||
if
(
!
atoi_check
(
comma
,
&
new
->
interval
)
||
(
arg
&&
!
atoi_check
(
arg
,
&
new
->
lifetime
)))
(
arg
&&
!
atoi_check
(
arg
,
&
new
->
lifetime
)))
err:
ret_err
(
_
(
"bad RA-params"
));
ret_err
(
_
(
"bad RA-params"
));
new
->
next
=
daemon
->
ra_interfaces
;
new
->
next
=
daemon
->
ra_interfaces
;
...
...
src/radv.c
View file @
005c46d6
...
@@ -243,7 +243,7 @@ static void send_ra_alias(time_t now, int iface, char *iface_name, struct in6_ad
...
@@ -243,7 +243,7 @@ static void send_ra_alias(time_t now, int iface, char *iface_name, struct in6_ad
struct
dhcp_netid
iface_id
;
struct
dhcp_netid
iface_id
;
struct
dhcp_opt
*
opt_cfg
;
struct
dhcp_opt
*
opt_cfg
;
struct
ra_interface
*
ra_param
=
find_iface_param
(
iface_name
);
struct
ra_interface
*
ra_param
=
find_iface_param
(
iface_name
);
int
done_dns
=
0
,
old_prefix
=
0
;
int
done_dns
=
0
,
old_prefix
=
0
,
mtu
=
0
;
unsigned
int
min_pref_time
;
unsigned
int
min_pref_time
;
#ifdef HAVE_LINUX_NETWORK
#ifdef HAVE_LINUX_NETWORK
FILE
*
f
;
FILE
*
f
;
...
@@ -399,22 +399,31 @@ static void send_ra_alias(time_t now, int iface, char *iface_name, struct in6_ad
...
@@ -399,22 +399,31 @@ static void send_ra_alias(time_t now, int iface, char *iface_name, struct in6_ad
put_opt6_long
(
1000
*
calc_interval
(
find_iface_param
(
iface_name
)));
put_opt6_long
(
1000
*
calc_interval
(
find_iface_param
(
iface_name
)));
}
}
/* Set the MTU from ra_param if any, an MTU of 0 mean automatic for linux, */
/* an MTU of -1 prevents the option from being sent. */
if
(
ra_param
)
mtu
=
ra_param
->
mtu
;
#ifdef HAVE_LINUX_NETWORK
#ifdef HAVE_LINUX_NETWORK
/* Note that IPv6 MTU is not neccessarily the same as the IPv4 MTU
/* Note that IPv6 MTU is not neccessarily the same as the IPv4 MTU
available from SIOCGIFMTU */
available from SIOCGIFMTU */
if
(
mtu
==
0
)
{
sprintf
(
daemon
->
namebuff
,
"/proc/sys/net/ipv6/conf/%s/mtu"
,
iface_name
);
sprintf
(
daemon
->
namebuff
,
"/proc/sys/net/ipv6/conf/%s/mtu"
,
iface_name
);
if
((
f
=
fopen
(
daemon
->
namebuff
,
"r"
)))
if
((
f
=
fopen
(
daemon
->
namebuff
,
"r"
)))
{
{
if
(
fgets
(
daemon
->
namebuff
,
MAXDNAME
,
f
))
if
(
fgets
(
daemon
->
namebuff
,
MAXDNAME
,
f
))
mtu
=
atoi
(
daemon
->
namebuff
);
fclose
(
f
);
}
}
#endif
if
(
mtu
>
0
)
{
{
put_opt6_char
(
ICMP6_OPT_MTU
);
put_opt6_char
(
ICMP6_OPT_MTU
);
put_opt6_char
(
1
);
put_opt6_char
(
1
);
put_opt6_short
(
0
);
put_opt6_short
(
0
);
put_opt6_long
(
atoi
(
daemon
->
namebuff
));
put_opt6_long
(
mtu
);
}
fclose
(
f
);
}
}
#endif
iface_enumerate
(
AF_LOCAL
,
&
send_iface
,
add_lla
);
iface_enumerate
(
AF_LOCAL
,
&
send_iface
,
add_lla
);
...
...
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