pmap_wakeup.c   [plain text]


#include <sys/socket.h>
#include <sys/un.h>
#include <string.h>
#include <unistd.h>
#include <stdbool.h>

#include "pmap_wakeup.h"

void pmap_wakeup(void)
{
	struct sockaddr_un sun;
	int fd;
	char b;

	memset(&sun, 0, sizeof(sun));

	sun.sun_family = AF_UNIX;
	strcpy(sun.sun_path, "/var/run/portmap.socket");

	fd = socket(AF_UNIX, SOCK_STREAM, 0);
	if (fd == -1)
		return;

	if (connect(fd, (struct sockaddr *)&sun, sizeof(sun)) == -1) {
		close(fd);
		return;
	}

	read(fd, &b, sizeof(b));
	close(fd);
}