From 727d0eeaed37a03d2667f85341092f8602c15c4c Mon Sep 17 00:00:00 2001 From: "Fabio M. Di Nitto" Date: Fri, 17 Dec 2010 11:28:38 +0100 Subject: [PATCH] libtap: fold interface name into libtap and avoid dup use Signed-off-by: Fabio M. Di Nitto --- cfg.c | 4 +--- cfg.h | 1 - libtap/libtap.c | 5 +++++ libtap/libtap.h | 2 ++ vty_cli_cmds.c | 14 +++++++------- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/cfg.c b/cfg.c index 4ed67d520..4c55bced7 100644 --- a/cfg.c +++ b/cfg.c @@ -93,7 +93,7 @@ struct knet_cfg *knet_get_iface(const char *name, int create) int found = 0; while (knet_iface != NULL) { - if (!strcmp(knet_iface->cfg_eth.name, name)) { + if (!strcmp(knet_tap_get_name(knet_iface->cfg_eth.knet_tap), name)) { found = 1; break; } @@ -106,8 +106,6 @@ struct knet_cfg *knet_get_iface(const char *name, int create) goto out_clean; memset(knet_iface, 0, sizeof(struct knet_cfg)); - memcpy(knet_iface->cfg_eth.name, name, - sizeof(knet_iface->cfg_eth.name)); knet_iface->cfg_ring.base_port = KNET_RING_DEFPORT; diff --git a/cfg.h b/cfg.h index 61e609854..eb7401d21 100644 --- a/cfg.h +++ b/cfg.h @@ -16,7 +16,6 @@ struct knet_cfg_ip { struct knet_cfg_eth { knet_tap_t knet_tap; - char name[IFNAMSIZ]; uint8_t node_id; struct knet_cfg_ip *knet_ip; }; diff --git a/libtap/libtap.c b/libtap/libtap.c index 6a509502e..93473d991 100644 --- a/libtap/libtap.c +++ b/libtap/libtap.c @@ -577,3 +577,8 @@ int knet_tap_get_fd(const knet_tap_t knet_tap) { return knet_tap->knet_tap_fd; } + +const char *knet_tap_get_name(const knet_tap_t knet_tap) +{ + return knet_tap->ifname; +} diff --git a/libtap/libtap.h b/libtap/libtap.h index ae8881d8c..b6c080baf 100644 --- a/libtap/libtap.h +++ b/libtap/libtap.h @@ -10,6 +10,8 @@ knet_tap_t knet_tap_find(char *dev, size_t dev_size); int knet_tap_get_fd(const knet_tap_t knet_tap); +const char *knet_tap_get_name(const knet_tap_t knet_tap); + int knet_tap_get_mtu(const knet_tap_t knet_tap); int knet_tap_set_mtu(knet_tap_t knet_tap, const int mtu); int knet_tap_reset_mtu(knet_tap_t knet_tap); diff --git a/vty_cli_cmds.c b/vty_cli_cmds.c index eb08ea76c..caf14df63 100644 --- a/vty_cli_cmds.c +++ b/vty_cli_cmds.c @@ -949,7 +949,7 @@ static int knet_cmd_no_ip(struct knet_vty *vty) if (knet_tap_del_ip(knet_iface->cfg_eth.knet_tap, ipaddr, prefix) < 0) { knet_vty_write(vty, "Error: Unable to del ip addr %s/%s on device %s%s", - ipaddr, prefix, knet_iface->cfg_eth.name, telnet_newline); + ipaddr, prefix, knet_tap_get_name(knet_iface->cfg_eth.knet_tap), telnet_newline); return -1; } @@ -982,7 +982,7 @@ static int knet_cmd_ip(struct knet_vty *vty) return 0; if (knet_tap_add_ip(knet_iface->cfg_eth.knet_tap, ipaddr, prefix) < 0) { knet_vty_write(vty, "Error: Unable to set ip addr %s/%s on device %s%s", - ipaddr, prefix, knet_iface->cfg_eth.name, telnet_newline); + ipaddr, prefix, knet_tap_get_name(knet_iface->cfg_eth.knet_tap), telnet_newline); knet_destroy_ip(knet_iface, knet_ip); } knet_ip->active = 1; @@ -996,7 +996,7 @@ static int knet_cmd_no_mtu(struct knet_vty *vty) if (knet_tap_reset_mtu(knet_iface->cfg_eth.knet_tap) < 0) { knet_vty_write(vty, "Error: Unable to set default mtu on device %s%s", - knet_iface->cfg_eth.name, telnet_newline); + knet_tap_get_name(knet_iface->cfg_eth.knet_tap), telnet_newline); return -1; } @@ -1014,7 +1014,7 @@ static int knet_cmd_mtu(struct knet_vty *vty) if (knet_tap_set_mtu(knet_iface->cfg_eth.knet_tap, expected_mtu) < 0) { knet_vty_write(vty, "Error: Unable to set requested mtu %d on device %s%s", - expected_mtu, knet_iface->cfg_eth.name, telnet_newline); + expected_mtu, knet_tap_get_name(knet_iface->cfg_eth.knet_tap), telnet_newline); return -1; } @@ -1026,7 +1026,7 @@ static int knet_cmd_stop(struct knet_vty *vty) struct knet_cfg *knet_iface = (struct knet_cfg *)vty->iface; if (knet_tap_set_down(knet_iface->cfg_eth.knet_tap) < 0) - knet_vty_write(vty, "Error: Unable to set interface %s down!%s", knet_iface->cfg_eth.name, telnet_newline); + knet_vty_write(vty, "Error: Unable to set interface %s down!%s", knet_tap_get_name(knet_iface->cfg_eth.knet_tap), telnet_newline); knet_handle_setfwd(knet_iface->cfg_ring.knet_h, 0); @@ -1042,7 +1042,7 @@ static int knet_cmd_start(struct knet_vty *vty) knet_handle_setfwd(knet_iface->cfg_ring.knet_h, 1); if (knet_tap_set_up(knet_iface->cfg_eth.knet_tap) < 0) { - knet_vty_write(vty, "Error: Unable to set interface %s up!%s", knet_iface->cfg_eth.name, telnet_newline); + knet_vty_write(vty, "Error: Unable to set interface %s up!%s", knet_tap_get_name(knet_iface->cfg_eth.knet_tap), telnet_newline); knet_handle_setfwd(knet_iface->cfg_ring.knet_h, 0); return -1; } @@ -1246,7 +1246,7 @@ static int knet_cmd_print_conf(struct knet_vty *vty) while (knet_iface != NULL) { struct knet_cfg_ip *knet_ip = knet_iface->cfg_eth.knet_ip; - knet_vty_write(vty, " interface %s %d%s", knet_iface->cfg_eth.name, knet_iface->cfg_eth.node_id, nl); + knet_vty_write(vty, " interface %s %d%s", knet_tap_get_name(knet_iface->cfg_eth.knet_tap), knet_iface->cfg_eth.node_id, nl); knet_vty_write(vty, " mtu %d%s", knet_tap_get_mtu(knet_iface->cfg_eth.knet_tap), nl);