68
fprintf(stderr, "Usage: %s <fd>\n", argv[0]);
72
int socketnum = atoi(argv[1]);
73
if (!(socketnum > 0 && socketnum < 20)) {
74
fprintf(stderr, "Passed socket ID not within a valid range: %d\n", socketnum);
69
fprintf(stderr, "Usage: %s <socket name>\n", argv[0]);
73
char * socketname = argv[1];
75
int socketfd = socket(AF_UNIX, SOCK_STREAM, 0);
77
fprintf(stderr, "Unable to create socket");
81
struct sockaddr_un socketaddr = {0};
82
socketaddr.sun_family = AF_UNIX;
83
strcpy(socketaddr.sun_path, socketname);
84
socketaddr.sun_path[0] = 0;
86
if (connect(socketfd, (const struct sockaddr *)&socketaddr, sizeof(struct sockaddr_un)) < 0) {
87
fprintf(stderr, "Unable to connect socket");
78
91
/* Dump envvars to socket */
79
copyenv(socketnum, "DISPLAY");
80
copyenv(socketnum, "DBUS_SESSION_BUS_ADDRESS");
92
copyenv(socketfd, "DISPLAY");
93
copyenv(socketfd, "DBUS_SESSION_BUS_ADDRESS");
82
95
/* Close the socket */
85
98
/* Wait for sigterm */
86
99
signal(SIGTERM, termhandler);