From 4e09bca9e34c226b6d7e34b4fa11248405fd988e Mon Sep 17 00:00:00 2001 From: Anton Kling Date: Sun, 22 Oct 2023 19:50:38 +0200 Subject: Move everything into a new repo. --- socket.h | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 socket.h (limited to 'socket.h') diff --git a/socket.h b/socket.h new file mode 100644 index 0000000..debe29d --- /dev/null +++ b/socket.h @@ -0,0 +1,66 @@ +#ifndef SOCKET_H +#define SOCKET_H +#include "fs/vfs.h" +#include +#include + +/* +// Create a directory with the proper permissions +mkdir(path, 0700); +// Append the name of the socket +strcat(path, "/socket_name"); + +// Create the socket normally +sockaddr_un address; +address.sun_family = AF_UNIX; +strcpy(address.sun_path, path); +int fd = socket(AF_UNIX, SOCK_STREAM, 0); +bind(fd, (sockaddr*)(&address), sizeof(address)); +listen(fd, 100); +*/ + +#define AF_UNIX 0 +#define AF_LOCAL AF_UNIX + +#define INADDR_ANY 0 + +typedef struct { + int fifo_fd; + vfs_fd_t *ptr_fifo_fd; + + vfs_fd_t *ptr_socket_fd; + + int domain; + int type; + int protocol; + + // UNIX socket + char *path; + vfs_fd_t *incoming_fd; +} SOCKET; + +typedef struct { + char *path; + SOCKET *s; +} OPEN_UNIX_SOCKET; + +typedef uint32_t in_addr_t; +typedef uint16_t in_port_t; +typedef unsigned int sa_family_t; +typedef uint32_t socklen_t; + +struct sockaddr { + sa_family_t sa_family; /* Address family */ + char *sa_data; /* Socket address */ +}; + +struct sockaddr_un { + sa_family_t sun_family; /* Address family */ + char *sun_path; /* Socket pathname */ +}; + +int uds_open(const char *path); +int socket(int domain, int type, int protocol); +int accept(int socket, struct sockaddr *address, socklen_t *address_len); +int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); +#endif -- cgit v1.2.3