mirror of
https://github.com/kanjitalk755/macemu.git
synced 2024-06-02 13:41:37 +00:00
Added error messages.
This commit is contained in:
parent
5aa782acc0
commit
8f863effbc
|
@ -55,7 +55,8 @@ static void handler(int signum);
|
||||||
static int install_signal_handlers();
|
static int install_signal_handlers();
|
||||||
static void do_exit();
|
static void do_exit();
|
||||||
|
|
||||||
static int removeBridge = 0;
|
static int remove_bridge = 0;
|
||||||
|
static const char *exec_name = "etherslavetool";
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
@ -68,12 +69,14 @@ int main(int argc, char **argv)
|
||||||
if (argc != 2) {
|
if (argc != 2) {
|
||||||
return 255;
|
return 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
if_name = argv[1];
|
if_name = argv[1];
|
||||||
|
|
||||||
do {
|
do {
|
||||||
ret = retreive_auth_info();
|
ret = retreive_auth_info();
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
|
fprintf(stderr, "%s: authorization failed.\n",
|
||||||
|
exec_name);
|
||||||
ret = 254;
|
ret = 254;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -87,11 +90,16 @@ int main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sd < 0) {
|
if (sd < 0) {
|
||||||
|
fprintf(stderr, "%s: open device failed.\n",
|
||||||
|
exec_name);
|
||||||
ret = 253;
|
ret = 253;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (install_signal_handlers() != 0) {
|
if (install_signal_handlers() != 0) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"%s: failed to install signal handers.\n",
|
||||||
|
exec_name);
|
||||||
ret = 252;
|
ret = 252;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -123,6 +131,9 @@ static int main_loop(int sd, int use_bpf)
|
||||||
|
|
||||||
if (use_bpf) {
|
if (use_bpf) {
|
||||||
if (ioctl(sd, BIOCGBLEN, &blen) < 0) {
|
if (ioctl(sd, BIOCGBLEN, &blen) < 0) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"%s: ioctl() failed.\n",
|
||||||
|
exec_name);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -131,12 +142,18 @@ static int main_loop(int sd, int use_bpf)
|
||||||
|
|
||||||
incoming = malloc(blen);
|
incoming = malloc(blen);
|
||||||
if (incoming == NULL) {
|
if (incoming == NULL) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"%s: malloc() failed.\n",
|
||||||
|
exec_name);
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
outgoing = malloc(blen);
|
outgoing = malloc(blen);
|
||||||
if (outgoing == NULL) {
|
if (outgoing == NULL) {
|
||||||
free(outgoing);
|
free(outgoing);
|
||||||
|
fprintf(stderr,
|
||||||
|
"%s: malloc() failed.\n",
|
||||||
|
exec_name);
|
||||||
return -3;
|
return -3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,6 +173,9 @@ static int main_loop(int sd, int use_bpf)
|
||||||
|
|
||||||
ret = select(sd + 1, &readSet, NULL, NULL, NULL);
|
ret = select(sd + 1, &readSet, NULL, NULL, NULL);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"%s: select() failed.\n",
|
||||||
|
exec_name);
|
||||||
fret = -4;
|
fret = -4;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -168,14 +188,17 @@ static int main_loop(int sd, int use_bpf)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret < 1) {
|
if (ret < 1) {
|
||||||
|
if(ret < 0) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"%s: read() failed.\n",
|
||||||
|
exec_name);
|
||||||
|
}
|
||||||
fret = -5;
|
fret = -5;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
out_index += ret;
|
out_index += ret;
|
||||||
if (out_index > 1) {
|
if (out_index > 1) {
|
||||||
fflush(stdout);
|
|
||||||
|
|
||||||
if ((*out_len + 2) > blen) {
|
if ((*out_len + 2) > blen) {
|
||||||
fret = -6;
|
fret = -6;
|
||||||
break;
|
break;
|
||||||
|
@ -184,6 +207,9 @@ static int main_loop(int sd, int use_bpf)
|
||||||
if (out_index == (*out_len + 2)) {
|
if (out_index == (*out_len + 2)) {
|
||||||
ret = write(sd, out_len + 1, *out_len);
|
ret = write(sd, out_len + 1, *out_len);
|
||||||
if (ret != *out_len) {
|
if (ret != *out_len) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"%s: write() failed.\n",
|
||||||
|
exec_name);
|
||||||
fret = -7;
|
fret = -7;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -198,6 +224,11 @@ static int main_loop(int sd, int use_bpf)
|
||||||
|
|
||||||
ret = read(sd, incoming, blen);
|
ret = read(sd, incoming, blen);
|
||||||
if (ret < 1) {
|
if (ret < 1) {
|
||||||
|
if(ret < 0) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"%s: read() failed %d.\n",
|
||||||
|
exec_name, errno);
|
||||||
|
}
|
||||||
fret = -8;
|
fret = -8;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -232,6 +263,9 @@ static int main_loop(int sd, int use_bpf)
|
||||||
} while (ret > 0);
|
} while (ret > 0);
|
||||||
|
|
||||||
if (fret != 0) {
|
if (fret != 0) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"%s: fret == %d.\n",
|
||||||
|
exec_name, fret);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -241,12 +275,18 @@ static int main_loop(int sd, int use_bpf)
|
||||||
|
|
||||||
pkt_len = read(sd, in_len + 1, blen-2);
|
pkt_len = read(sd, in_len + 1, blen-2);
|
||||||
if (pkt_len < 14) {
|
if (pkt_len < 14) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"%s: read() returned %d.\n",
|
||||||
|
exec_name, pkt_len);
|
||||||
fret = -8;
|
fret = -8;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
*in_len = pkt_len;
|
*in_len = pkt_len;
|
||||||
if (write(0, in_len, pkt_len + 2) < (pkt_len + 2)) {
|
if (write(0, in_len, pkt_len + 2) < (pkt_len + 2)) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"%s: write() failed\n",
|
||||||
|
exec_name);
|
||||||
fret = -10;
|
fret = -10;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -357,7 +397,7 @@ static int open_tap(char *ifname)
|
||||||
if (bridge != NULL) {
|
if (bridge != NULL) {
|
||||||
snprintf(str, STR_MAX, "/sbin/ifconfig %s create", bridge);
|
snprintf(str, STR_MAX, "/sbin/ifconfig %s create", bridge);
|
||||||
if (run_cmd(str) == 0) {
|
if (run_cmd(str) == 0) {
|
||||||
removeBridge = 1;
|
remove_bridge = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
snprintf(str, STR_MAX, "/sbin/ifconfig %s up", bridge);
|
snprintf(str, STR_MAX, "/sbin/ifconfig %s up", bridge);
|
||||||
|
@ -510,7 +550,7 @@ static int install_signal_handlers() {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void do_exit() {
|
static void do_exit() {
|
||||||
if (removeBridge) {
|
if (remove_bridge) {
|
||||||
run_cmd("/sbin/ifconfig bridge0 destroy");
|
run_cmd("/sbin/ifconfig bridge0 destroy");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user