Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e3e1bacd authored by Abhishek Aggarwal's avatar Abhishek Aggarwal
Browse files

dnsresolver: Adapt for Unix socket

parent bbfdbb00
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -324,23 +324,26 @@ int validateHints(const addrinfo* _Nonnull hints) {
}  // namespace

int shouldBlockRequest(const char* hostname, int uid){
        int sock;
	struct sockaddr_in server;
        int sock, len;
	struct sockaddr_un server;
	char message[1000], server_reply[2000];

	//Create socket
	sock = socket(AF_INET, SOCK_STREAM | SOCK_CLOEXEC, IPPROTO_TCP);
	sock = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
	if (sock == -1)	{
		LOG(DEBUG) << "Socket: Could not create socket";
	}
	LOG(DEBUG) << "Socket: created";

	server.sin_addr.s_addr = inet_addr("127.0.0.1");
	server.sin_family = AF_INET;
	server.sin_port = htons( 8888 );
        char const* name = "foundation.e.privacy";
        int nameLen = strlen(name);
        server.sun_path[0] = '\0'; /* abstract namespace */
        strncpy(server.sun_path + 1, name, nameLen);
        server.sun_family = AF_UNIX;
        len = 1 + nameLen + offsetof(struct sockaddr_un, sun_path);

	//Connect to remote server
	if (connect(sock, (struct sockaddr *)&server, sizeof(server)) < 0) {
	if (connect(sock, (struct sockaddr *)&server, len) < 0) {
		LOG(DEBUG) << "Socket: connect failed. Error";
                close(sock);
		return -1;