aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitri Kalashnik <dmitri.kalashnik@travelping.com>2020-04-28 13:10:56 +0400
committerDmitri Kalashnik <dmitri.kalashnik@travelping.com>2020-04-28 13:14:52 +0400
commitdb98f309a9e26b3bb531efb0b92bafad7b5ddff7 (patch)
treeb2dc15a60d529a0310a15b5e81d7dc203601948c
parent04715d284f5abc6bce6cd6401c5700e3031662de (diff)
sgsnemu: use real tun device name after the device is up.
The device name option could be empty, using it without checking would crash sgsnemu. Using the real device is better anyway. Change-Id: Ic3934281bfc2e433323e4ab72cf5be2cbd1c962a
-rw-r--r--sgsnemu/sgsnemu.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sgsnemu/sgsnemu.c b/sgsnemu/sgsnemu.c
index 4c51157..f137f2c 100644
--- a/sgsnemu/sgsnemu.c
+++ b/sgsnemu/sgsnemu.c
@@ -1928,11 +1928,11 @@ int main(int argc, char **argv)
we don't need it. Don't exit on error since this sysctl is
only available starting with linux 4.11. */
snprintf(buf, sizeof(buf), "%u", IN6_ADDR_GEN_MODE_NONE);
- if (proc_ipv6_conf_write(options.tun_dev_name, "addr_gen_mode", buf) < 0) {
+ if (proc_ipv6_conf_write(tun->devname, "addr_gen_mode", buf) < 0) {
SYS_ERR(DSGSN, LOGL_ERROR, errno,
"Failed to disable addr_gen_mode on %s, an extra link-local "
"ip address will appear on the tun device.\n",
- options.tun_dev_name);
+ tun->devname);
}
#endif
@@ -1940,9 +1940,9 @@ int main(int argc, char **argv)
if (tun->fd > maxfd)
maxfd = tun->fd;
- if (proc_ipv6_conf_write(options.tun_dev_name, "accept_ra", "0") < 0) {
+ if (proc_ipv6_conf_write(tun->devname, "accept_ra", "0") < 0) {
SYS_ERR(DSGSN, LOGL_ERROR, 0,
- "Failed to disable IPv6 SLAAC on %s\n", options.tun_dev_name);
+ "Failed to disable IPv6 SLAAC on %s\n", tun->devname);
exit(1);
}
}