add basic unixsocket support
Allow to connect to a unix socket for communicating with LAPD.
Change-Id: Ia5723b09a5c68a0505829dc732def981e60a907a
diff --git a/src/e1_input_vty.c b/src/e1_input_vty.c
index 5320bb3..9d69586 100644
--- a/src/e1_input_vty.c
+++ b/src/e1_input_vty.c
@@ -38,12 +38,13 @@
/* CONFIG */
-#define E1_DRIVER_NAMES "(misdn|misdn_lapd|dahdi|ipa)"
+#define E1_DRIVER_NAMES "(misdn|misdn_lapd|dahdi|ipa|unixsocket)"
#define E1_DRIVER_HELP "mISDN supported E1 Card (kernel LAPD)\n" \
"mISDN supported E1 Card (userspace LAPD)\n" \
"DAHDI supported E1/T1/J1 Card\n" \
"IPA TCP/IP input\n" \
- "HSL TCP/IP input"
+ "HSL TCP/IP input\n" \
+ "Unix socket input\n"
#define E1_LINE_HELP "Configure E1/T1/J1 Line\n" "Line Number\n"
@@ -88,6 +89,25 @@
return CMD_SUCCESS;
}
+DEFUN(cfg_e1line_socket, cfg_e1_line_socket_cmd,
+ "e1_line <0-255> socket .SOCKET",
+ E1_LINE_HELP "Set socket path for unixsocket\n"
+ "socket path\n")
+{
+ struct e1inp_line *line;
+ int e1_nr = atoi(argv[0]);
+
+ line = e1inp_line_find(e1_nr);
+ if (!line) {
+ vty_out(vty, "%% Line %d doesn't exist%s", e1_nr, VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ line->sock_path = talloc_strdup(line, argv[1]);
+
+ return CMD_SUCCESS;
+}
+
#define KEEPALIVE_HELP "Enable keep-alive probing\n"
static int set_keepalive_params(struct vty *vty, int e1_nr,
int idle, int num_probes, int probe_interval)
@@ -363,6 +383,7 @@
vty_install_default(L_E1INP_NODE);
install_element(L_E1INP_NODE, &cfg_e1_line_driver_cmd);
install_element(L_E1INP_NODE, &cfg_e1_line_port_cmd);
+ install_element(L_E1INP_NODE, &cfg_e1_line_socket_cmd);
install_element(L_E1INP_NODE, &cfg_e1_line_name_cmd);
install_element(L_E1INP_NODE, &cfg_e1_line_keepalive_cmd);
install_element(L_E1INP_NODE, &cfg_e1_line_keepalive_params_cmd);