comparison rvinterf/lowlevel/localsock.c @ 187:f5f8776f7c66

rvinterf: added -s option for changing the local socket pathname
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Sun, 24 Nov 2013 23:25:59 +0000
parents ec040f521cc2
children 549e6cd1e77d
comparison
equal deleted inserted replaced
186:faa31a47f102 187:f5f8776f7c66
11 #include <stdlib.h> 11 #include <stdlib.h>
12 #include <unistd.h> 12 #include <unistd.h>
13 #include "../localsock.h" 13 #include "../localsock.h"
14 #include "client.h" 14 #include "client.h"
15 15
16 static char sockpath[] = "/tmp/rvinterf_socket";
17
18 int listener; 16 int listener;
19 17
20 extern struct client *client_head; 18 extern struct client *client_head;
21 extern int max_fd; 19 extern int max_fd;
20 extern char *socket_pathname;
22 21
23 create_listener_socket() 22 create_listener_socket()
24 { 23 {
25 /* local socket binding voodoo copied from osmocon */ 24 /* local socket binding voodoo copied from osmocon */
26 struct sockaddr_un local; 25 struct sockaddr_un local;
32 perror("socket(AF_UNIX, SOCK_STREAM, 0)"); 31 perror("socket(AF_UNIX, SOCK_STREAM, 0)");
33 exit(1); 32 exit(1);
34 } 33 }
35 34
36 local.sun_family = AF_UNIX; 35 local.sun_family = AF_UNIX;
37 strncpy(local.sun_path, sockpath, sizeof(local.sun_path)); 36 strncpy(local.sun_path, socket_pathname, sizeof(local.sun_path));
38 local.sun_path[sizeof(local.sun_path) - 1] = '\0'; 37 local.sun_path[sizeof(local.sun_path) - 1] = '\0';
39 unlink(local.sun_path); 38 unlink(local.sun_path);
40 39
41 /* we use the same magic that X11 uses in Xtranssock.c for 40 /* we use the same magic that X11 uses in Xtranssock.c for
42 * calculating the proper length of the sockaddr */ 41 * calculating the proper length of the sockaddr */