Better explain why the connection fails
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
This commit is contained in:
24
src/ctl.c
24
src/ctl.c
@@ -36,7 +36,7 @@ ctl_rundir(char *dst, size_t size)
|
|||||||
return dst;
|
return dst;
|
||||||
}
|
}
|
||||||
|
|
||||||
errno = EINTR;
|
errno = EPERM;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -151,7 +151,7 @@ ctl_connect(const char *file)
|
|||||||
|
|
||||||
if (!file) {
|
if (!file) {
|
||||||
if (dp = opendir(dir), !dp)
|
if (dp = opendir(dir), !dp)
|
||||||
return -1;
|
return CTL_ERROR_NONE;
|
||||||
|
|
||||||
struct dirent *d = NULL;
|
struct dirent *d = NULL;
|
||||||
|
|
||||||
@@ -197,3 +197,23 @@ ctl_connect(const char *file)
|
|||||||
|
|
||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ctl_explain_connect(int ret)
|
||||||
|
{
|
||||||
|
switch (ret) {
|
||||||
|
case 0:
|
||||||
|
break;
|
||||||
|
case CTL_ERROR_MANY:
|
||||||
|
gt_log("please select a tunnel\n");
|
||||||
|
break;
|
||||||
|
case CTL_ERROR_NONE:
|
||||||
|
gt_log("no active tunnel\n");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
gt_log("unknown error\n"); /* FALLTHRU */
|
||||||
|
case -1:
|
||||||
|
if (errno)
|
||||||
|
perror("connect");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -48,3 +48,5 @@ int ctl_create (const char *);
|
|||||||
int ctl_connect (const char *);
|
int ctl_connect (const char *);
|
||||||
int ctl_reply (int, struct ctl_msg *, struct ctl_msg *);
|
int ctl_reply (int, struct ctl_msg *, struct ctl_msg *);
|
||||||
void ctl_delete (int);
|
void ctl_delete (int);
|
||||||
|
|
||||||
|
void ctl_explain_connect (int);
|
||||||
|
|||||||
14
src/path.c
14
src/path.c
@@ -135,19 +135,7 @@ gt_path(int argc, char **argv)
|
|||||||
int fd = ctl_connect(dev);
|
int fd = ctl_connect(dev);
|
||||||
|
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
switch (fd) {
|
ctl_explain_connect(fd);
|
||||||
case -1:
|
|
||||||
perror("path");
|
|
||||||
break;
|
|
||||||
case CTL_ERROR_NONE:
|
|
||||||
gt_log("no device\n");
|
|
||||||
break;
|
|
||||||
case CTL_ERROR_MANY:
|
|
||||||
gt_log("please choose a device\n");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
gt_log("couldn't connect\n");
|
|
||||||
}
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
14
src/set.c
14
src/set.c
@@ -54,19 +54,7 @@ gt_set(int argc, char **argv)
|
|||||||
int fd = ctl_connect(dev);
|
int fd = ctl_connect(dev);
|
||||||
|
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
switch (fd) {
|
ctl_explain_connect(fd);
|
||||||
case -1:
|
|
||||||
perror("set");
|
|
||||||
break;
|
|
||||||
case CTL_ERROR_NONE:
|
|
||||||
gt_log("no device\n");
|
|
||||||
break;
|
|
||||||
case CTL_ERROR_MANY:
|
|
||||||
gt_log("please choose a device\n");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
gt_log("couldn't connect\n");
|
|
||||||
}
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
14
src/show.c
14
src/show.c
@@ -126,19 +126,7 @@ gt_show(int argc, char **argv)
|
|||||||
int fd = ctl_connect(dev);
|
int fd = ctl_connect(dev);
|
||||||
|
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
switch (fd) {
|
ctl_explain_connect(fd);
|
||||||
case -1:
|
|
||||||
perror("show");
|
|
||||||
break;
|
|
||||||
case CTL_ERROR_NONE:
|
|
||||||
gt_log("no device\n");
|
|
||||||
break;
|
|
||||||
case CTL_ERROR_MANY:
|
|
||||||
gt_log("please choose a device\n");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
gt_log("couldn't connect\n");
|
|
||||||
}
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user