# HG changeset patch # User Mychaela Falconia # Date 1540684851 0 # Node ID c1aadfcd185f9bbecfc70e35d1baf09a19f79334 # Parent ab8fb95a28da10aaccbf40b79654f1957fe35f8d rvinterf client refactoring: libasync clients converted to use libinterf diff -r ab8fb95a28da -r c1aadfcd185f rvinterf/asyncshell/Makefile --- a/rvinterf/asyncshell/Makefile Sat Oct 27 23:48:20 2018 +0000 +++ b/rvinterf/asyncshell/Makefile Sun Oct 28 00:00:51 2018 +0000 @@ -4,7 +4,7 @@ OBJS= at.o help.o init.o keypress.o main.o oneshot.o parse.o pktsort.o \ poweroff.o rxctl.o sendarb.o sendsp.o tchcmd.o tchplay.o tchrec.o \ usercmd.o -LIBS= ../libasync/libasync.a ../libg23/libg23.a +LIBS= ../libasync/libasync.a ../libg23/libg23.a ../libinterf/libinterf.a INSTBIN=/opt/freecalypso/bin INSTHELP=/opt/freecalypso/helpfiles diff -r ab8fb95a28da -r c1aadfcd185f rvinterf/asyncshell/main.c --- a/rvinterf/asyncshell/main.c Sat Oct 27 23:48:20 2018 +0000 +++ b/rvinterf/asyncshell/main.c Sun Oct 28 00:00:51 2018 +0000 @@ -9,15 +9,13 @@ #include #include "exitcodes.h" -char *socket_pathname = "/tmp/rvinterf_socket"; -char *rvinterf_ttyport; +extern char *socket_pathname; +extern char *rvinterf_ttyport, *rvinterf_Bopt, *rvinterf_lopt, *rvinterf_wopt; +extern int sock; + int ttyhacks, dflag; int oneshot_mode, oneshot_nowait; -int sock; - -extern char *rvinterf_Bopt, *rvinterf_lopt, *rvinterf_wopt; - main(argc, argv) char **argv; { @@ -62,7 +60,7 @@ argv[0]); exit(ERROR_USAGE); } - launch_rvinterf(rvinterf_ttyport); + launch_rvinterf(); } else { if (rvinterf_Bopt || rvinterf_lopt || rvinterf_wopt) { fprintf(stderr, diff -r ab8fb95a28da -r c1aadfcd185f rvinterf/libasync/Makefile --- a/rvinterf/libasync/Makefile Sat Oct 27 23:48:20 2018 +0000 +++ b/rvinterf/libasync/Makefile Sun Oct 28 00:00:51 2018 +0000 @@ -1,6 +1,6 @@ CC= gcc CFLAGS= -O2 -I../include -OBJS= init.o interf.o launchrvif.o rvtrace.o ttymagic.o +OBJS= init.o interf.o rvtrace.o ttymagic.o LIB= libasync.a all: ${LIB} diff -r ab8fb95a28da -r c1aadfcd185f rvinterf/libasync/init.c --- a/rvinterf/libasync/init.c Sat Oct 27 23:48:20 2018 +0000 +++ b/rvinterf/libasync/init.c Sun Oct 28 00:00:51 2018 +0000 @@ -1,60 +1,15 @@ /* - * This module contains the common initialization code for fc-shell and fc-tmsh. + * This module contains some common initialization code + * for fc-shell and fc-tmsh. */ #include -#include -#include #include -#include -#include #include #include -#include "pktmux.h" -#include "localsock.h" -#include "exitcodes.h" -extern char *socket_pathname; extern int sock; -connect_local_socket() -{ - /* local socket binding voodoo copied from osmocon */ - struct sockaddr_un local; - unsigned int namelen; - int rc; - - sock = socket(AF_UNIX, SOCK_STREAM, 0); - if (sock < 0) { - perror("socket(AF_UNIX, SOCK_STREAM, 0)"); - exit(ERROR_UNIX); - } - - local.sun_family = AF_UNIX; - strncpy(local.sun_path, socket_pathname, sizeof(local.sun_path)); - local.sun_path[sizeof(local.sun_path) - 1] = '\0'; - - /* we use the same magic that X11 uses in Xtranssock.c for - * calculating the proper length of the sockaddr */ -#if defined(BSD44SOCKETS) || defined(__UNIXWARE__) - local.sun_len = strlen(local.sun_path); -#endif -#if defined(BSD44SOCKETS) || defined(SUN_LEN) - namelen = SUN_LEN(&local); -#else - namelen = strlen(local.sun_path) + - offsetof(struct sockaddr_un, sun_path) + 1; -#endif - - rc = connect(sock, (struct sockaddr *) &local, namelen); - if (rc != 0) { - perror(socket_pathname); - exit(ERROR_RVINTERF); - } - - return(0); -} - send_init_command(cmdpkt, cmdlen) u_char *cmdpkt; { diff -r ab8fb95a28da -r c1aadfcd185f rvinterf/libasync/launchrvif.c --- a/rvinterf/libasync/launchrvif.c Sat Oct 27 23:48:20 2018 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -/* - * This module implements the optional "behind the scenes" invokation - * of rvinterf from fc-shell or fc-tmsh. - */ - -#include -#include -#include -#include -#include -#include "exitcodes.h" - -static char rvinterf_pathname[] = "/opt/freecalypso/bin/rvinterf"; - -extern int sock; - -char *rvinterf_Bopt, *rvinterf_lopt, *rvinterf_wopt; - -launch_rvinterf(ttyport) - char *ttyport; -{ - int sp[2], rc; - char *rvif_argv[11], Sarg[16], **ap; - - rc = socketpair(AF_UNIX, SOCK_STREAM, 0, sp); - if (rc < 0) { - perror("socketpair"); - exit(ERROR_UNIX); - } - sock = sp[0]; - sprintf(Sarg, "-S%d", sp[1]); - ap = rvif_argv; - *ap++ = "rvinterf"; - *ap++ = Sarg; - *ap++ = "-n"; - if (rvinterf_Bopt) { - *ap++ = "-B"; - *ap++ = rvinterf_Bopt; - } - if (rvinterf_lopt) { - *ap++ = "-l"; - *ap++ = rvinterf_lopt; - } - if (rvinterf_wopt) { - *ap++ = "-w"; - *ap++ = rvinterf_wopt; - } - *ap++ = ttyport; - *ap = 0; - rc = vfork(); - if (rc < 0) { - perror("vfork for launching rvinterf"); - exit(ERROR_UNIX); - } - if (!rc) { - /* we are in the child - do the exec */ - close(sp[0]); - execv(rvinterf_pathname, rvif_argv); - perror(rvinterf_pathname); - _exit(1); - } - close(sp[1]); - return 0; -} diff -r ab8fb95a28da -r c1aadfcd185f rvinterf/tmsh/Makefile --- a/rvinterf/tmsh/Makefile Sat Oct 27 23:48:20 2018 +0000 +++ b/rvinterf/tmsh/Makefile Sun Oct 28 00:00:51 2018 +0000 @@ -4,7 +4,8 @@ OBJS= abb.o abbtm3.o audiocmd.o audioresp.o etmbasic.o ffs2.o ffs2resp.o \ init.o l1cmd.o l1resp.o main.o misc.o omr.o omw.o oneshot.o pktsort.o \ rftablechk.o saverftab.o tmcore.o usercmd.o -LIBS= ../libasync/libasync.a ../../librftab/librftab.a +LIBS= ../libasync/libasync.a ../libinterf/libinterf.a \ + ../../librftab/librftab.a INSTBIN=/opt/freecalypso/bin all: ${PROG} diff -r ab8fb95a28da -r c1aadfcd185f rvinterf/tmsh/main.c --- a/rvinterf/tmsh/main.c Sat Oct 27 23:48:20 2018 +0000 +++ b/rvinterf/tmsh/main.c Sun Oct 28 00:00:51 2018 +0000 @@ -9,15 +9,13 @@ #include #include "exitcodes.h" -char *socket_pathname = "/tmp/rvinterf_socket"; -char *rvinterf_ttyport; +extern char *socket_pathname; +extern char *rvinterf_ttyport, *rvinterf_Bopt, *rvinterf_lopt, *rvinterf_wopt; +extern int sock; + int ttyhacks, dflag; int oneshot_nowait; -int sock; - -extern char *rvinterf_Bopt, *rvinterf_lopt, *rvinterf_wopt; - main(argc, argv) char **argv; { @@ -62,7 +60,7 @@ argv[0]); exit(ERROR_USAGE); } - launch_rvinterf(rvinterf_ttyport); + launch_rvinterf(); } else { if (rvinterf_Bopt || rvinterf_lopt || rvinterf_wopt) { fprintf(stderr,