sd-lldp: hide internal details

Currently, sd-lldp.h exports "UPDATE_INFO".. and defines it to a magic
constant '10'. This is completely bogus, so fix it to follow our coding
standards:

  - Prefix exported symbols by SD_LLDP_*

  - Define a separate event-enum for event types

  - Translate internal state to external event-types
This commit is contained in:
David Herrmann 2015-09-22 15:19:42 +02:00
parent 8955cf0a45
commit 9ef61f2e48
3 changed files with 22 additions and 13 deletions

View File

@ -366,10 +366,16 @@ static void lldp_set_state(sd_lldp *lldp, LLDPAgentRXState state) {
}
static void lldp_run_state_machine(sd_lldp *lldp) {
if (!lldp->cb)
return;
if (lldp->rx_state == LLDP_AGENT_RX_UPDATE_INFO)
if (lldp->cb)
lldp->cb(lldp, LLDP_AGENT_RX_UPDATE_INFO, lldp->userdata);
switch (lldp->rx_state) {
case LLDP_AGENT_RX_UPDATE_INFO:
lldp->cb(lldp, SD_LLDP_EVENT_UPDATE_INFO, lldp->userdata);
break;
default:
break;
}
}
/* 10.5.5.2.1 mibDeleteObjects ()

View File

@ -1112,13 +1112,16 @@ static void lldp_handler(sd_lldp *lldp, int event, void *userdata) {
assert(link->network);
assert(link->manager);
if (event != UPDATE_INFO)
return;
r = sd_lldp_save(link->lldp, link->lldp_file);
if (r < 0)
log_link_warning_errno(link, r, "Could not save LLDP: %m");
switch (event) {
case SD_LLDP_EVENT_UPDATE_INFO:
r = sd_lldp_save(link->lldp, link->lldp_file);
if (r < 0)
log_link_warning_errno(link, r, "Could not save LLDP: %m");
break;
default:
break;
}
}
static int link_acquire_conf(Link *link) {

View File

@ -24,14 +24,14 @@
#include "sd-event.h"
enum {
SD_LLDP_EVENT_UPDATE_INFO = 0,
};
typedef struct sd_lldp sd_lldp;
typedef void (*sd_lldp_cb_t)(sd_lldp *lldp, int event, void *userdata);
enum {
UPDATE_INFO = 10,
};
int sd_lldp_new(int ifindex, const char *ifname, const struct ether_addr *mac, sd_lldp **ret);
void sd_lldp_free(sd_lldp *lldp);