[lxc-devel] [PATCH 4/9] lxc_user_nic: only exit from main and usage
Serge Hallyn
serge at mail.hallyn.com
Tue Nov 19 16:17:47 UTC 2013
From: Serge Hallyn <serge.hallyn at ubuntu.com>
Everywhere else return an error code instead.
Signed-off-by: Serge Hallyn <serge.hallyn at ubuntu.com>
---
src/lxc/lxc_user_nic.c | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/src/lxc/lxc_user_nic.c b/src/lxc/lxc_user_nic.c
index 8c73b55..0b82a50 100644
--- a/src/lxc/lxc_user_nic.c
+++ b/src/lxc/lxc_user_nic.c
@@ -115,7 +115,7 @@ int open_and_lock(char *path)
lk.l_len = 0;
if (fcntl(fd, F_SETLKW, &lk) < 0) {
perror("fcntl lock");
- exit(1);
+ return -1;
}
return fd;
@@ -220,17 +220,17 @@ next:
bool nic_exists(char *nic)
{
- char path[200];
+ char path[MAXPATHLEN];
int ret;
struct stat sb;
#if ISTEST
- ret = snprintf(path, 200, "/tmp/lxcnettest/%s", nic);
+ ret = snprintf(path, MAXPATHLEN, "/tmp/lxcnettest/%s", nic);
#else
- ret = snprintf(path, 200, "/sys/class/net/%s", nic);
+ ret = snprintf(path, MAXPATHLEN, "/sys/class/net/%s", nic);
#endif
- if (ret < 0 || ret >= 200)
- exit(1);
+ if (ret < 0 || ret >= MAXPATHLEN) // should never happen!
+ return true;
ret = stat(path, &sb);
if (ret != 0)
return false;
@@ -436,14 +436,14 @@ static int instanciate_veth(char *n1, char **n2)
err = snprintf(*n2, IFNAMSIZ, "%sp", n1);
if (err < 0 || err >= IFNAMSIZ) {
fprintf(stderr, "nic name too long\n");
- exit(1);
+ return -1;
}
err = lxc_veth_create(n1, *n2);
if (err) {
fprintf(stderr, "failed to create %s-%s : %s\n", n1, *n2,
strerror(-err));
- exit(1);
+ return -1;
}
/* changing the high byte of the mac address to 0xfe, the bridge interface
@@ -551,7 +551,6 @@ bool create_nic(char *nic, char *br, int pid, char **cnic)
close(fd);
return true;
#else
- // not yet implemented
char *veth1buf, *veth2buf;
veth1buf = alloca(IFNAMSIZ);
veth2buf = alloca(IFNAMSIZ);
@@ -560,7 +559,7 @@ bool create_nic(char *nic, char *br, int pid, char **cnic)
ret = snprintf(veth1buf, IFNAMSIZ, "%s", nic);
if (ret < 0 || ret >= IFNAMSIZ) {
fprintf(stderr, "host nic name too long\n");
- exit(1);
+ return false;
}
/* create the nics */
@@ -586,7 +585,7 @@ bool create_nic(char *nic, char *br, int pid, char **cnic)
out_del:
lxc_netdev_delete_by_name(veth1buf);
- exit(1);
+ return false;
#endif
}
--
1.8.3.2
More information about the lxc-devel
mailing list