2 * Original author : tridge@samba.org, January 2002
4 * Copyright (c) 2005 Christophe Varoqui
5 * Copyright (c) 2005 Benjamin Marzinski, Redhat
12 #include <sys/ioctl.h>
13 #include <sys/types.h>
14 #include <sys/socket.h>
17 #include <readline/readline.h>
18 #include <readline/history.h>
27 static void print_reply(char *s)
33 /* strip ANSI color markers */
35 if ((*s == 0x1b) && (*(s+1) == '['))
36 while ((*s++ != 'm') && (*s != '\0')) {};
43 static void process(int fd)
49 rl_readline_name = "multipathd";
50 rl_completion_entry_function = key_generator;
51 while ((line = readline("multipathd> "))) {
53 size_t llen = strlen(line);
59 if (!strncmp(line, "exit", 4) && llen == 4)
61 if (!strncmp(line, "quit", 4) && llen == 4)
64 if (send_packet(fd, line, llen + 1) != 0) break;
65 if (recv_packet(fd, &reply, &len) != 0) break;
77 static void process_req(int fd, char * inbuf)
82 if (send_packet(fd, inbuf, strlen(inbuf) + 1) != 0) {
83 printf("cannot send packet\n");
86 if (recv_packet(fd, &reply, &len) != 0)
87 printf("error receiving packet\n");
97 int uxclnt(char * inbuf)
101 fd = ux_socket_connect(DEFAULT_SOCKET);
103 perror("ux_socket_connect");
108 process_req(fd, inbuf);