Fix unix domain server implementation

This commit is contained in:
Vinicius Silva 2023-11-27 16:25:53 -03:00
parent c1ce100bcb
commit e9c29b1a43
2 changed files with 23 additions and 8 deletions

View File

@ -7,6 +7,7 @@
"signal.h": "c",
"string.h": "c",
"stdlib.h": "c",
"inet.h": "c"
"inet.h": "c",
"un.h": "c"
}
}

View File

@ -3,6 +3,7 @@
#include <string.h>
#include <unistd.h>
#include <signal.h>
#include <sys/un.h>
#include <netinet/in.h>
#include <arpa/inet.h>
@ -18,13 +19,17 @@
#define TCP_SOCKET_FLAG 1
#define UDP_SOCKET_FLAG 2
#define UNIX_SOCKET_FLAG 3
#define SOCK_PATH "pingpong.socket"
int num_of_read_bytes = 0;
typedef struct sockaddr_in socket_address;
typedef struct sockaddr_un socket_address_unix;
socket_address client_address;
socklen_t client_addr_len;
socket_address server_address;
socket_address_unix server_address_unix;
size_t buffer_size;
int socket_type;
@ -52,13 +57,22 @@ int create_socket()
socket_address config_server_address()
{
socket_address server_address;
if(socket_type == UNIX_SOCKET_FLAG)
{
socket_address server_address;
server_address.sin_family = sin_family;
server_address.sin_port = htons(SERVER_PORT);
server_address.sin_addr.s_addr = address;
return server_address;
}else{
socket_address_unix server_address;
server_address.sun_family = AF_UNIX;
strcpy(server_address.sun_path, SOCK_PATH);
unlink(SOCK_PATH);
}
}
void bind_server(int server_socket, socket_address server_address)