commit 07590dfc647bc7e461db85563795873e903799c8
parent 678baa7b5fc8333f826aacd3a85856b9e4d3ad9d
Author: Kyle Milz <kyle@getaddrinfo.net>
Date: Wed, 23 Mar 2016 18:33:35 -0600
lib: add env var override to viewer socket
Diffstat:
3 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/SCV/Project.pm b/SCV/Project.pm
@@ -68,6 +68,8 @@ sub instrumented_src {
sub run {
my ($self, @args) = @_;
+ $ENV{SCV_VIEWER_SOCKET} = "SCV::Viewer.socket";
+
my $tmp_dir = $self->{tmp_dir};
$self->{pid} = open3(undef, undef, \*CHLD_ERR, "wrap/scv_wrap", "$tmp_dir/program", @args);
}
diff --git a/SCV/Viewer.pm b/SCV/Viewer.pm
@@ -11,7 +11,7 @@ sub new {
my $viewer_socket = IO::Socket::UNIX->new(
Type => SOCK_STREAM(),
- Local => "viewer_test.socket",
+ Local => "SCV::Viewer.socket",
Listen => 1,
);
die "socket error: $!\n" unless ($viewer_socket);
@@ -104,7 +104,7 @@ sub DESTROY {
my ($self) = @_;
close($self->{viewer_socket});
- unlink "viewer_test.socket";
+ unlink "SCV::Viewer.socket";
}
1;
diff --git a/lib/runtime.c b/lib/runtime.c
@@ -2,7 +2,7 @@
#include <err.h>
#include <limits.h> // PATH_MAX
#include <pthread.h>
-#include <stdio.h>
+#include <stdlib.h> // getenv
#include <string.h>
#include <sys/socket.h>
#include <sys/un.h>
@@ -37,17 +37,22 @@ void *
control_thread(void *arg)
{
int fd;
- int i;
uint8_t response;
+ struct sockaddr_un addr;
+ char *viewer_sock = NULL;
- fd = socket(AF_UNIX, SOCK_STREAM, 0);
- if (fd == -1)
+ if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
err(1, "socket");
- struct sockaddr_un addr;
+ /* The default socket location can be overridden */
+ if ((viewer_sock = getenv("SCV_VIEWER_SOCKET")) == NULL)
+ /* There was an error getting the env var, use the default */
+ viewer_sock = "/tmp/scv_viewer.socket";
+
+ /* Connect the socket to the server which should already be running */
memset(&addr, 0, sizeof(addr));
addr.sun_family = AF_UNIX;
- strncpy(addr.sun_path, "viewer_test.socket", sizeof(addr.sun_path) - 1);
+ strncpy(addr.sun_path, viewer_sock, sizeof(addr.sun_path) - 1);
if (connect(fd, (struct sockaddr *)&addr, sizeof(addr))) {
err(1, "connect");