1#include <sys/socket.h>
2#include <sys/un.h>
3#include <string.h>
4#include <unistd.h>
5#include <stdbool.h>
6
7#include "pmap_wakeup.h"
8
9int pmap_wakeup(void)
10{
11	struct sockaddr_un sun;
12	int fd;
13	char b;
14
15	memset(&sun, 0, sizeof(sun));
16
17	sun.sun_family = AF_UNIX;
18	strcpy(sun.sun_path, "/var/run/portmap.socket");
19
20	fd = socket(AF_UNIX, SOCK_STREAM, 0);
21	if (fd == -1)
22		return -1;
23
24	if (connect(fd, (struct sockaddr *)&sun, sizeof(sun)) == -1) {
25		close(fd);
26		return -1;
27	}
28
29	read(fd, &b, sizeof(b));
30	close(fd);
31	return 0;
32}
33