if (verbosity)
conf->verbosity = verbosity;
uxsock_timeout = conf->uxsock_timeout;
- uxclnt(optarg, uxsock_timeout + 100);
+ err = uxclnt(optarg, uxsock_timeout + 100);
free_config(conf);
- exit(0);
+ return err;
case 'B':
bindings_read_only = 1;
break;
optind++;
}
c += snprintf(c, s + CMDSIZE - c, "\n");
- uxclnt(s, uxsock_timeout + 100);
+ err = uxclnt(s, uxsock_timeout + 100);
free_config(conf);
- exit(0);
+ return err;
}
if (foreground) {
}
}
-static void process_req(int fd, char * inbuf, unsigned int timeout)
+static int process_req(int fd, char * inbuf, unsigned int timeout)
{
char *reply;
int ret;
if (send_packet(fd, inbuf) != 0) {
printf("cannot send packet\n");
- return;
+ return 1;
}
ret = recv_packet(fd, &reply, timeout);
if (ret < 0) {
printf("timeout receiving packet\n");
else
printf("error %d receiving packet\n", ret);
+ return 1;
} else {
printf("%s", reply);
+ ret = (strcmp(reply, "fail\n") == 0);
FREE(reply);
+ return ret;
}
}
*/
int uxclnt(char * inbuf, unsigned int timeout)
{
- int fd;
+ int fd, ret = 0;
fd = mpath_connect();
if (fd == -1)
exit(1);
if (inbuf)
- process_req(fd, inbuf, timeout);
+ ret = process_req(fd, inbuf, timeout);
else
process(fd, timeout);
mpath_disconnect(fd);
- return 0;
+ return ret;
}