lldpad/lldpad-0.9.43-some-minor-bugfixes.patch
2011-09-08 08:34:30 +02:00

187 lines
4.9 KiB
Diff

From 384ba242de2b71c42f90e8451e01bbded47dcc8c Mon Sep 17 00:00:00 2001
From: Jens Osterkamp <jens@linux.vnet.ibm.com>
Date: Mon, 15 Aug 2011 18:18:06 -0700
Subject: [PATCH 29/29] some minor bugfixes
This patch summarizes a number of minor bugfixes:
- In case lldpad.conf cannot be created, add a line break to error message.
- add IFLA_AF_SPEC and IFLA_GROUP from newer kernels to lldpad
- consolidate while (port != NULL) loops to port_find_by_name().
- whitespace fixes in lldp_dcbx.c
Signed-off-by: Jens Osterkamp <jens@linux.vnet.ibm.com>
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: Petr Sabata <contyk@redhat.com>
---
config.c | 2 +-
event_iface.c | 6 +++++
include/linux/if_link.h | 2 +
lldp/ports.c | 51 ++++++----------------------------------------
lldp_dcbx.c | 4 +-
5 files changed, 18 insertions(+), 47 deletions(-)
diff --git a/config.c b/config.c
index 4c82bb6..648f6f9 100644
--- a/config.c
+++ b/config.c
@@ -201,7 +201,7 @@ int check_cfg_file(void)
O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
if (fd < 0) {
retval = errno;
- LLDPAD_ERR("error creating %s", cfg_file_name);
+ LLDPAD_ERR("error creating %s !\n", cfg_file_name);
} else {
close(fd);
create_default_cfg_file();
diff --git a/event_iface.c b/event_iface.c
index e581bce..1288fae 100644
--- a/event_iface.c
+++ b/event_iface.c
@@ -174,6 +174,12 @@ static void event_if_decode_rta(int type, struct rtattr *rta, int *ls, char *d)
case IFLA_PORT_SELF:
LLDPAD_DBG(" IFLA_PORT_SELF\n");
break;
+ case IFLA_AF_SPEC:
+ LLDPAD_DBG(" IFLA_AF_SPEC\n");
+ break;
+ case IFLA_GROUP:
+ LLDPAD_DBG(" IFLA_GROUP\n");
+ break;
default:
LLDPAD_DBG(" unknown type : 0x%02x\n", type);
break;
diff --git a/include/linux/if_link.h b/include/linux/if_link.h
index 2fc66dd..4fdfd38 100644
--- a/include/linux/if_link.h
+++ b/include/linux/if_link.h
@@ -116,6 +116,8 @@ enum {
IFLA_STATS64,
IFLA_VF_PORTS,
IFLA_PORT_SELF,
+ IFLA_AF_SPEC,
+ IFLA_GROUP, /* Group the device belongs to */
__IFLA_MAX
};
diff --git a/lldp/ports.c b/lldp/ports.c
index 925a2ad..596e68b 100644
--- a/lldp/ports.c
+++ b/lldp/ports.c
@@ -156,16 +156,10 @@ void set_lldp_port_enable_state(const char *ifname, int enable)
{
struct port *port = NULL;
- port = porthead;
- while (port != NULL) {
- if (!strncmp(ifname, port->ifname, IFNAMSIZ))
- break;
- port = port->next;
- }
+ port = port_find_by_name(ifname);
- if (port == NULL) {
+ if (port == NULL)
return;
- }
port->portEnabled = (u8)enable;
@@ -178,14 +172,7 @@ void set_lldp_port_enable_state(const char *ifname, int enable)
void set_port_oper_delay(const char *ifname)
{
- struct port *port = NULL;
-
- port = porthead;
- while (port != NULL) {
- if (!strncmp(ifname, port->ifname, IFNAMSIZ))
- break;
- port = port->next;
- }
+ struct port *port = port_find_by_name(ifname);
if (port == NULL)
return;
@@ -198,13 +185,7 @@ int set_port_hw_resetting(const char *ifname, int resetting)
{
struct port *port = NULL;
- port = porthead;
- while (port != NULL) {
- if (!strncmp(ifname, port->ifname, IFNAMSIZ)) {
- break;
- }
- port = port->next;
- }
+ port = port_find_by_name(ifname);
if (port == NULL)
return -1;
@@ -218,12 +199,7 @@ int get_port_hw_resetting(const char *ifname)
{
struct port *port = NULL;
- port = porthead;
- while (port != NULL) {
- if (!strncmp(ifname, port->ifname, IFNAMSIZ))
- break;
- port = port->next;
- }
+ port = port_find_by_name(ifname);
if (port)
return port->hw_resetting;
@@ -235,12 +211,7 @@ int reinit_port(const char *ifname)
{
struct port *port;
- port = porthead;
- while (port != NULL) {
- if (!strncmp(ifname, port->ifname, IFNAMSIZ))
- break;
- port = port->next;
- }
+ port = port_find_by_name(ifname);
if (!port)
return -1;
@@ -347,15 +318,7 @@ int remove_port(const char *ifname)
struct port *port = NULL; /* Pointer to port to remove */
struct port *parent = NULL; /* Pointer to previous on port stack */
- port = porthead;
- while (port != NULL) {
- if (!strncmp(ifname, port->ifname, IFNAMSIZ)) {
- LLDPAD_DBG("In remove_port: Found port %s\n",port->ifname);
- break;
- }
- parent = port;
- port = port->next;
- }
+ port = port_find_by_name(ifname);
if (port == NULL) {
LLDPAD_DBG("remove_port: port not present\n");
diff --git a/lldp_dcbx.c b/lldp_dcbx.c
index 7949147..6ca290c 100644
--- a/lldp_dcbx.c
+++ b/lldp_dcbx.c
@@ -58,8 +58,8 @@ void dcbx_free_tlv(struct dcbx_tlvs *tlvs);
static int dcbx_check_operstate(struct port *port);
const struct lldp_mod_ops dcbx_ops = {
- .lldp_mod_register = dcbx_register,
- .lldp_mod_unregister = dcbx_unregister,
+ .lldp_mod_register = dcbx_register,
+ .lldp_mod_unregister = dcbx_unregister,
.lldp_mod_gettlv = dcbx_gettlv,
.lldp_mod_rchange = dcbx_rchange,
.lldp_mod_ifup = dcbx_ifup,
--
1.7.6