Skip to content

Commit

Permalink
[nozzle] move set up and down to the stable API section
Browse files Browse the repository at this point in the history
Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
  • Loading branch information
fabbione committed Jan 19, 2018
1 parent f85d5c6 commit a13d45a
Show file tree
Hide file tree
Showing 2 changed files with 104 additions and 237 deletions.
133 changes: 0 additions & 133 deletions libnozzle/internals.c
Original file line number Diff line number Diff line change
Expand Up @@ -518,139 +518,6 @@ 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 err = 0, savederrno = 0;
struct ifreq ifr;

if (!nozzle) {
errno = EINVAL;
return -1;
}

savederrno = pthread_mutex_lock(&config_mutex);
if (savederrno) {
errno = savederrno;
return -1;
}

if (!_check(nozzle)) {
savederrno = EINVAL;
err = -1;
goto out_clean;
}

if ((nozzle->hasupdown) && ((!error_preup) || (!error_up))) {
savederrno = EINVAL;
err = -1;
goto out_clean;
}

if (nozzle->up) {
goto out_clean;
}

memset(&ifr, 0, sizeof(struct ifreq));
strncpy(ifname, nozzle->name, IFNAMSIZ);

err = ioctl(lib_cfg.ioctlfd, SIOCGIFFLAGS, &ifr);
if (err) {
savederrno = errno;
goto out_clean;
}

_exec_updown(nozzle, "pre-up.d", error_preup);

ifr.ifr_flags |= IFF_UP | IFF_RUNNING;
err = ioctl(lib_cfg.ioctlfd, SIOCSIFFLAGS, &ifr);
if (err) {
savederrno = errno;
goto out_clean;
}

_exec_updown(nozzle, "up.d", error_up);

nozzle->up = 1;

out_clean:
pthread_mutex_unlock(&config_mutex);
errno = savederrno;
return err;
}

static int _set_down(nozzle_t nozzle, char **error_down, char **error_postdown)
{
int err = 0, savederrno = 0;
struct ifreq ifr;

if (!nozzle->up) {
goto out_clean;
}

memset(&ifr, 0, sizeof(struct ifreq));
strncpy(ifname, nozzle->name, IFNAMSIZ);

err = ioctl(lib_cfg.ioctlfd, SIOCGIFFLAGS, &ifr);
if (err) {
savederrno = errno;
goto out_clean;
}

_exec_updown(nozzle, "down.d", error_down);

ifr.ifr_flags &= ~IFF_UP;

err = ioctl(lib_cfg.ioctlfd, SIOCSIFFLAGS, &ifr);
if (err) {
savederrno = errno;
goto out_clean;
}

_exec_updown(nozzle, "post-down.d", error_postdown);

nozzle->up = 0;

out_clean:
errno = savederrno;
return err;
}

int nozzle_set_down(nozzle_t nozzle, char **error_down, char **error_postdown)
{
int err = 0, savederrno = 0;

if (!nozzle) {
errno = EINVAL;
return -1;
}

savederrno = pthread_mutex_lock(&config_mutex);
if (savederrno) {
errno = savederrno;
return -1;
}

if (!_check(nozzle)) {
savederrno = EINVAL;
err = -1;
goto out_clean;
}

if ((nozzle->hasupdown) && ((!error_down) || (!error_postdown))) {
savederrno = EINVAL;
err = -1;
goto out_clean;
}

err = _set_down(nozzle, error_down, error_postdown);
savederrno = errno;

out_clean:
pthread_mutex_unlock(&config_mutex);
errno = savederrno;
return err;
}

static int _set_ip(nozzle_t nozzle, const char *command,
const char *ipaddr, const char *prefix,
char **error_string, int secondary)
Expand Down
208 changes: 104 additions & 104 deletions libnozzle/libnozzle.c
Original file line number Diff line number Diff line change
Expand Up @@ -81,39 +81,6 @@ static void _close_cfg(void)
}
}

static int _set_down(nozzle_t nozzle)
{
int err = 0, savederrno = 0;
struct ifreq ifr;

if (!nozzle->up) {
goto out_clean;
}

memset(&ifr, 0, sizeof(struct ifreq));
strncpy(ifname, nozzle->name, IFNAMSIZ);

err = ioctl(lib_cfg.ioctlfd, SIOCGIFFLAGS, &ifr);
if (err) {
savederrno = errno;
goto out_clean;
}

ifr.ifr_flags &= ~IFF_UP;

err = ioctl(lib_cfg.ioctlfd, SIOCSIFFLAGS, &ifr);
if (err) {
savederrno = errno;
goto out_clean;
}

nozzle->up = 0;

out_clean:
errno = savederrno;
return err;
}

static int _set_ip(nozzle_t nozzle, const char *command,
const char *ipaddr, const char *prefix,
char **error_string, int secondary)
Expand Down Expand Up @@ -305,6 +272,39 @@ static int get_iface_mac(const nozzle_t nozzle, char **ether_addr)
return err;
}

static int set_iface_down(nozzle_t nozzle)
{
int err = 0, savederrno = 0;
struct ifreq ifr;

if (!nozzle->up) {
goto out_clean;
}

memset(&ifr, 0, sizeof(struct ifreq));
strncpy(ifname, nozzle->name, IFNAMSIZ);

err = ioctl(lib_cfg.ioctlfd, SIOCGIFFLAGS, &ifr);
if (err) {
savederrno = errno;
goto out_clean;
}

ifr.ifr_flags &= ~IFF_UP;

err = ioctl(lib_cfg.ioctlfd, SIOCSIFFLAGS, &ifr);
if (err) {
savederrno = errno;
goto out_clean;
}

nozzle->up = 0;

out_clean:
errno = savederrno;
return err;
}

/*
* public API
*/
Expand Down Expand Up @@ -522,7 +522,7 @@ int nozzle_close(nozzle_t nozzle)
prev->next = nozzle->next;
}

_set_down(nozzle);
set_iface_down(nozzle);

ip = nozzle->ip;
while (ip) {
Expand Down Expand Up @@ -610,76 +610,6 @@ 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)
{
int err = 0, savederrno = 0;
struct ifreq ifr;

savederrno = pthread_mutex_lock(&config_mutex);
if (savederrno) {
errno = savederrno;
return -1;
}

if (!is_valid_nozzle(nozzle)) {
savederrno = EINVAL;
err = -1;
goto out_clean;
}

if (nozzle->up) {
goto out_clean;
}

memset(&ifr, 0, sizeof(struct ifreq));
strncpy(ifname, nozzle->name, IFNAMSIZ);

err = ioctl(lib_cfg.ioctlfd, SIOCGIFFLAGS, &ifr);
if (err) {
savederrno = errno;
goto out_clean;
}

ifr.ifr_flags |= IFF_UP | IFF_RUNNING;
err = ioctl(lib_cfg.ioctlfd, SIOCSIFFLAGS, &ifr);
if (err) {
savederrno = errno;
goto out_clean;
}

nozzle->up = 1;

out_clean:
pthread_mutex_unlock(&config_mutex);
errno = savederrno;
return err;
}

int nozzle_set_down(nozzle_t nozzle)
{
int err = 0, savederrno = 0;

savederrno = pthread_mutex_lock(&config_mutex);
if (savederrno) {
errno = savederrno;
return -1;
}

if (!is_valid_nozzle(nozzle)) {
savederrno = EINVAL;
err = -1;
goto out_clean;
}

err = _set_down(nozzle);
savederrno = errno;

out_clean:
pthread_mutex_unlock(&config_mutex);
errno = savederrno;
return err;
}

int nozzle_add_ip(nozzle_t nozzle, const char *ipaddr, const char *prefix, char **error_string)
{
int err = 0, savederrno = 0;
Expand Down Expand Up @@ -947,6 +877,76 @@ int nozzle_run_updown(const nozzle_t nozzle, uint8_t action, char **exec_string)
* functions below should be completed
*/

int nozzle_set_up(nozzle_t nozzle)
{
int err = 0, savederrno = 0;
struct ifreq ifr;

savederrno = pthread_mutex_lock(&config_mutex);
if (savederrno) {
errno = savederrno;
return -1;
}

if (!is_valid_nozzle(nozzle)) {
savederrno = EINVAL;
err = -1;
goto out_clean;
}

if (nozzle->up) {
goto out_clean;
}

memset(&ifr, 0, sizeof(struct ifreq));
strncpy(ifname, nozzle->name, IFNAMSIZ);

err = ioctl(lib_cfg.ioctlfd, SIOCGIFFLAGS, &ifr);
if (err) {
savederrno = errno;
goto out_clean;
}

ifr.ifr_flags |= IFF_UP | IFF_RUNNING;
err = ioctl(lib_cfg.ioctlfd, SIOCSIFFLAGS, &ifr);
if (err) {
savederrno = errno;
goto out_clean;
}

nozzle->up = 1;

out_clean:
pthread_mutex_unlock(&config_mutex);
errno = savederrno;
return err;
}

int nozzle_set_down(nozzle_t nozzle)
{
int err = 0, savederrno = 0;

savederrno = pthread_mutex_lock(&config_mutex);
if (savederrno) {
errno = savederrno;
return -1;
}

if (!is_valid_nozzle(nozzle)) {
savederrno = EINVAL;
err = -1;
goto out_clean;
}

err = set_iface_down(nozzle);
savederrno = errno;

out_clean:
pthread_mutex_unlock(&config_mutex);
errno = savederrno;
return err;
}

int nozzle_get_mtu(const nozzle_t nozzle)
{
int err = 0, savederrno = 0;
Expand Down

0 comments on commit a13d45a

Please sign in to comment.