From d924ef79a2944555b4af0e829a7526dc95235d84 Mon Sep 17 00:00:00 2001 From: "Fabio M. Di Nitto" Date: Fri, 22 Dec 2017 06:51:10 +0100 Subject: [PATCH] [nozzle] decouple running pre-up.d/up.d/down.d/post-down.d from interface status (part 4) Signed-off-by: Fabio M. Di Nitto --- libnozzle/libnozzle.c | 8 +- libnozzle/libnozzle.h | 15 +--- libnozzle/tests/nozzle_test.c | 146 ++++++++++++++-------------------- 3 files changed, 61 insertions(+), 108 deletions(-) diff --git a/libnozzle/libnozzle.c b/libnozzle/libnozzle.c index 0b583d905..afed9f9b0 100644 --- a/libnozzle/libnozzle.c +++ b/libnozzle/libnozzle.c @@ -610,7 +610,7 @@ int nozzle_reset_mtu(nozzle_t nozzle, char **error_string) return nozzle_set_mtu(nozzle, nozzle->default_mtu, error_string); } -int nozzle_set_up(nozzle_t nozzle, char **error_preup, char **error_up) +int nozzle_set_up(nozzle_t nozzle) { int err = 0, savederrno = 0; struct ifreq ifr; @@ -627,12 +627,6 @@ int nozzle_set_up(nozzle_t nozzle, char **error_preup, char **error_up) goto out_clean; } - if ((nozzle->hasupdown) && ((!error_preup) || (!error_up))) { - savederrno = EINVAL; - err = -1; - goto out_clean; - } - if (nozzle->up) { goto out_clean; } diff --git a/libnozzle/libnozzle.h b/libnozzle/libnozzle.h index 562d37675..e4fc51a1b 100644 --- a/libnozzle/libnozzle.h +++ b/libnozzle/libnozzle.h @@ -93,27 +93,16 @@ int nozzle_run_updown(const nozzle_t nozzle, uint8_t action, char **exec_string) /** * nozzle_set_up - * @brief equivalent of ifconfig up, executes pre-up.d up.d if configured + * @brief equivalent of ifconfig up * * nozzle - pointer to the nozzle struct * - * error_preup - pointer to string pointer to record errors from executing pre-up.d - * when configured. The string is malloc'ed, the caller needs to free that - * buffer. - * - * error_up - pointer to string pointer to record errors from executing up.d - * when configured. The string is malloc'ed, the caller needs to free that - * buffer. - * * @return * 0 on success * -1 on error and errno is set. - * error_preup / error_up are set to NULL if execution of external scripts - * is sucessful - * error_preup / error_up will contain strings recording the execution error. */ -int nozzle_set_up(nozzle_t nozzle, char **error_preup, char **error_up); +int nozzle_set_up(nozzle_t nozzle); /** * nozzle_set_down diff --git a/libnozzle/tests/nozzle_test.c b/libnozzle/tests/nozzle_test.c index c79a1090b..2fa3566df 100644 --- a/libnozzle/tests/nozzle_test.c +++ b/libnozzle/tests/nozzle_test.c @@ -736,8 +736,6 @@ static int check_knet_up_down(void) int err=0; nozzle_t nozzle; char *error_string = NULL; - char *error_preup = NULL, *error_up = NULL; - char *error_down = NULL, *error_postdown = NULL; printf("Testing interface up/down\n"); @@ -750,17 +748,7 @@ static int check_knet_up_down(void) printf("Put the interface up\n"); - err = nozzle_set_up(nozzle, &error_preup, &error_up); - if (error_preup) { - printf("preup output: %s\n", error_preup); - free(error_preup); - error_preup = NULL; - } - if (error_up) { - printf("up output: %s\n", error_up); - free(error_up); - error_up = NULL; - } + err = nozzle_set_up(nozzle); if (err < 0) { printf("Unable to set interface up\n"); err = -1; @@ -789,30 +777,12 @@ static int check_knet_up_down(void) printf("Put the interface down\n"); - err = nozzle_run_updown(nozzle, NOZZLE_DOWN, &error_down); - if (err) { - printf("nozzle_run_updown NOZZLE_DOWN error: %s\n", strerror(errno)); - } - if (error_down) { - printf("down output: %s\n", error_down); - free(error_down); - error_down = NULL; - } err = nozzle_set_down(nozzle); if (err < 0) { printf("Unable to put the interface down\n"); err = -1; goto out_clean; } - err = nozzle_run_updown(nozzle, NOZZLE_POSTDOWN, &error_postdown); - if (err) { - printf("nozzle_run_updown NOZZLE_POSTDOWN error: %s\n", strerror(errno)); - } - if (error_postdown) { - printf("postdown output: %s\n", error_down); - free(error_down); - error_down = NULL; - } memset(verifycmd, 0, sizeof(verifycmd)); snprintf(verifycmd, sizeof(verifycmd)-1, @@ -847,33 +817,41 @@ static int check_knet_up_down(void) printf("Put the interface up\n"); - err = nozzle_set_up(nozzle, &error_preup, &error_up); - if (error_preup) { - printf("preup output: %s\n", error_preup); - free(error_preup); - error_preup = NULL; + err = nozzle_run_updown(nozzle, NOZZLE_PREUP, &error_string); + if (err) { + printf("nozzle_run_updown NOZZLE_PREUP error: %s\n", strerror(errno)); } - if (error_up) { - printf("up output: %s\n", error_up); - free(error_up); - error_up = NULL; + if (error_string) { + printf("preup output: %s\n", error_string); + free(error_string); + error_string = NULL; } + err = nozzle_set_up(nozzle); if (err < 0) { - printf("Unable to set interface up\n"); + printf("Unable to put the interface up\n"); err = -1; goto out_clean; } + err = nozzle_run_updown(nozzle, NOZZLE_UP, &error_string); + if (err) { + printf("nozzle_run_updown NOZZLE_UP error: %s\n", strerror(errno)); + } + if (error_string) { + printf("up output: %s\n", error_string); + free(error_string); + error_string = NULL; + } printf("Put the interface down\n"); - err = nozzle_run_updown(nozzle, NOZZLE_DOWN, &error_down); + err = nozzle_run_updown(nozzle, NOZZLE_DOWN, &error_string); if (err) { printf("nozzle_run_updown NOZZLE_DOWN error: %s\n", strerror(errno)); } - if (error_down) { - printf("down output: %s\n", error_down); - free(error_down); - error_down = NULL; + if (error_string) { + printf("down output: %s\n", error_string); + free(error_string); + error_string = NULL; } err = nozzle_set_down(nozzle); if (err < 0) { @@ -881,14 +859,14 @@ static int check_knet_up_down(void) err = -1; goto out_clean; } - err = nozzle_run_updown(nozzle, NOZZLE_POSTDOWN, &error_postdown); + err = nozzle_run_updown(nozzle, NOZZLE_POSTDOWN, &error_string); if (err) { printf("nozzle_run_updown NOZZLE_POSTDOWN error: %s\n", strerror(errno)); } - if (error_postdown) { - printf("postdown output: %s\n", error_down); - free(error_down); - error_down = NULL; + if (error_string) { + printf("postdown output: %s\n", error_string); + free(error_string); + error_string = NULL; } nozzle_close(nozzle); @@ -905,33 +883,41 @@ static int check_knet_up_down(void) printf("Put the interface up\n"); - err = nozzle_set_up(nozzle, &error_preup, &error_up); - if (error_preup) { - printf("preup output: %s\n", error_preup); - free(error_preup); - error_preup = NULL; + err = nozzle_run_updown(nozzle, NOZZLE_PREUP, &error_string); + if (err) { + printf("nozzle_run_updown NOZZLE_PREUP error: %s\n", strerror(errno)); } - if (error_up) { - printf("up output: %s\n", error_up); - free(error_up); - error_up = NULL; + if (error_string) { + printf("preup output: %s\n", error_string); + free(error_string); + error_string = NULL; } + err = nozzle_set_up(nozzle); if (err < 0) { - printf("Unable to set interface up\n"); + printf("Unable to put the interface up\n"); err = -1; goto out_clean; } + err = nozzle_run_updown(nozzle, NOZZLE_UP, &error_string); + if (err) { + printf("nozzle_run_updown NOZZLE_UP error: %s\n", strerror(errno)); + } + if (error_string) { + printf("up output: %s\n", error_string); + free(error_string); + error_string = NULL; + } printf("Put the interface down\n"); - err = nozzle_run_updown(nozzle, NOZZLE_DOWN, &error_down); + err = nozzle_run_updown(nozzle, NOZZLE_DOWN, &error_string); if (err) { printf("nozzle_run_updown NOZZLE_DOWN error: %s\n", strerror(errno)); } - if (error_down) { - printf("down output: %s\n", error_down); - free(error_down); - error_down = NULL; + if (error_string) { + printf("down output: %s\n", error_string); + free(error_string); + error_string = NULL; } err = nozzle_set_down(nozzle); if (err < 0) { @@ -939,14 +925,14 @@ static int check_knet_up_down(void) err = -1; goto out_clean; } - err = nozzle_run_updown(nozzle, NOZZLE_POSTDOWN, &error_postdown); + err = nozzle_run_updown(nozzle, NOZZLE_POSTDOWN, &error_string); if (err) { printf("nozzle_run_updown NOZZLE_POSTDOWN error: %s\n", strerror(errno)); } - if (error_postdown) { - printf("postdown output: %s\n", error_down); - free(error_down); - error_down = NULL; + if (error_string) { + printf("postdown output: %s\n", error_string); + free(error_string); + error_string = NULL; } nozzle_close(nozzle); @@ -956,23 +942,7 @@ static int check_knet_up_down(void) printf("Pass NULL to nozzle set_up\n"); err = 0; errno = 0; - if ((nozzle_set_up(NULL, &error_preup, &error_up) >= 0) || (errno != EINVAL)) { - printf("Something is wrong in nozzle_set_up sanity checks\n"); - err = -1; - goto out_clean; - } - - printf("Pass NULL to error_preup set_up\n"); - errno = 0; - if ((nozzle_set_up(nozzle, NULL, &error_up) >= 0) || (errno != EINVAL)) { - printf("Something is wrong in nozzle_set_up sanity checks\n"); - err = -1; - goto out_clean; - } - - printf("Pass NULL to error_up set_up\n"); - errno = 0; - if ((nozzle_set_up(nozzle, &error_preup, NULL) >= 0) || (errno != EINVAL)) { + if ((nozzle_set_up(NULL) >= 0) || (errno != EINVAL)) { printf("Something is wrong in nozzle_set_up sanity checks\n"); err = -1; goto out_clean;