changeset 421:ab8fb95a28da

rvinterf/rvtat converted to use libinterf
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 27 Oct 2018 23:48:20 +0000
parents 322e75a1c8b9
children c1aadfcd185f
files rvinterf/rvtat/Makefile rvinterf/rvtat/connect.c rvinterf/rvtat/launchrvif.c
diffstat 3 files changed, 4 insertions(+), 122 deletions(-) [+]
line wrap: on
line diff
--- a/rvinterf/rvtat/Makefile	Sat Oct 27 23:39:57 2018 +0000
+++ b/rvinterf/rvtat/Makefile	Sat Oct 27 23:48:20 2018 +0000
@@ -1,13 +1,14 @@
 CC=	gcc
 CFLAGS=	-O2 -I../include
 PROG=	fcup-rvtat
-OBJS=	connect.o interf.o launchrvif.o main.o
+OBJS=	interf.o main.o
+LIBS=	../libinterf/libinterf.a
 INSTBIN=/opt/freecalypso/bin
 
 all:	${PROG}
 
-${PROG}: ${OBJS}
-	${CC} ${CFLAGS} -o $@ ${OBJS}
+${PROG}: ${OBJS} ${LIBS}
+	${CC} ${CFLAGS} -o $@ ${OBJS} ${LIBS}
 
 install:	${PROG}
 	mkdir -p ${INSTBIN}
--- a/rvinterf/rvtat/connect.c	Sat Oct 27 23:39:57 2018 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
- * Connecting to an already running rvinterf process
- */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <stdio.h>
-#include <string.h>
-#include <strings.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include "pktmux.h"
-#include "localsock.h"
-#include "exitcodes.h"
-
-char *socket_pathname = "/tmp/rvinterf_socket";
-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);
-}
--- a/rvinterf/rvtat/launchrvif.c	Sat Oct 27 23:39:57 2018 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * This module implements the optional "behind the scenes" invokation
- * of rvinterf from fc-fsio etc.
- */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include "exitcodes.h"
-
-static char rvinterf_pathname[] = "/opt/freecalypso/bin/rvinterf";
-
-extern int sock;
-
-char *rvinterf_ttyport, *rvinterf_Bopt, *rvinterf_lopt, *rvinterf_wopt;
-
-launch_rvinterf()
-{
-	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++ = rvinterf_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;
-}