From 61d99111955f5d6b36e54778495765a407437374 Mon Sep 17 00:00:00 2001 From: Vinicius Date: Tue, 19 Dec 2023 00:12:50 -0300 Subject: [PATCH 1/7] Replate includes to diamonds --- src/main_client.c | 6 +++--- src/main_server.c | 6 +++--- src/pipe.c | 4 ++-- src/socket.c | 4 ++-- src/utils.c | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main_client.c b/src/main_client.c index ecb2e1d..22f681b 100644 --- a/src/main_client.c +++ b/src/main_client.c @@ -1,6 +1,6 @@ -#include "../include/socket.h" -#include "../include/pipe.h" -#include "../include/utils.h" +#include +#include +#include #define N 10000 diff --git a/src/main_server.c b/src/main_server.c index c8e1662..b20e4f0 100644 --- a/src/main_server.c +++ b/src/main_server.c @@ -1,6 +1,6 @@ -#include "../include/socket.h" -#include "../include/pipe.h" -#include "../include/utils.h" +#include +#include +#include int num_of_read_bytes = 0; diff --git a/src/pipe.c b/src/pipe.c index 8f19606..b57dc62 100644 --- a/src/pipe.c +++ b/src/pipe.c @@ -1,8 +1,8 @@ #include #include -#include "../include/pipe.h" -#include "../include/utils.h" +#include +#include int *create_pipe() diff --git a/src/socket.c b/src/socket.c index 3a47d5a..22b5294 100644 --- a/src/socket.c +++ b/src/socket.c @@ -7,8 +7,8 @@ #include #include -#include "../include/socket.h" -#include "../include/utils.h" +#include +#include int create_socket(int sin_family, int sock) { diff --git a/src/utils.c b/src/utils.c index 75e229e..8b4b193 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1,7 +1,7 @@ #include #include -#include "../include/utils.h" +#include void panic(char* message) { From 89a8a2fda90d11c51389fda7004c7b314a340909 Mon Sep 17 00:00:00 2001 From: Vinicius Date: Tue, 19 Dec 2023 23:35:33 -0300 Subject: [PATCH 2/7] Configuring cmake to install own includes to pattern include --- CMakeLists.txt | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ea7bae9..b78cc6c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,23 +1,35 @@ cmake_minimum_required(VERSION 2.8) project(pingpong) +set(INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include) +set(SRC_DIR ${CMAKE_SOURCE_DIR}/src) + execute_process( COMMAND mkdir -p bin + COMMAND mkdir -p /usr/include/pingpong/ +) + +set(INCLUDE_FILES + ${INCLUDE_DIR}/pipe.h + ${INCLUDE_DIR}/socket.h + ${INCLUDE_DIR}/utils.h ) set(SOURCE_FILES - src/socket.c - src/pipe.c - src/utils.c + ${SRC_DIR}/socket.c + ${SRC_DIR}/pipe.c + ${SRC_DIR}/utils.c ) +set(INSTALL_DIR /usr/include/pingpong/) + +install(FILES ${INCLUDE_FILES} DESTINATION ${INSTALL_DIR}) + set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -march=native") -include_directories(include) - add_executable(./bin/server ${SOURCE_FILES} ./src/main_server.c) add_executable(./bin/client ${SOURCE_FILES} ./src/main_client.c) From 00c06e2badf9262096ee5260500a596ec20c845a Mon Sep 17 00:00:00 2001 From: Vinicius Date: Tue, 19 Dec 2023 23:47:10 -0300 Subject: [PATCH 3/7] Fix include problems --- CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b78cc6c..bc803b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 2.8.12) project(pingpong) set(INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include) @@ -15,6 +15,7 @@ set(INCLUDE_FILES ${INCLUDE_DIR}/utils.h ) + set(SOURCE_FILES ${SRC_DIR}/socket.c ${SRC_DIR}/pipe.c From af470b670bc74b7d7c34ef5aab79f1abd929e13c Mon Sep 17 00:00:00 2001 From: Vinicius Date: Tue, 19 Dec 2023 23:54:44 -0300 Subject: [PATCH 4/7] Configuring CMake file --- CMakeLists.txt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bc803b8..4b1625a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8.12) +cmake_minimum_required(VERSION 3.10) project(pingpong) set(INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include) @@ -15,7 +15,6 @@ set(INCLUDE_FILES ${INCLUDE_DIR}/utils.h ) - set(SOURCE_FILES ${SRC_DIR}/socket.c ${SRC_DIR}/pipe.c @@ -26,11 +25,13 @@ set(INSTALL_DIR /usr/include/pingpong/) install(FILES ${INCLUDE_FILES} DESTINATION ${INSTALL_DIR}) +include_directories(${CMAKE_SOURCE_DIR}/include) + set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -march=native") -add_executable(./bin/server ${SOURCE_FILES} ./src/main_server.c) -add_executable(./bin/client ${SOURCE_FILES} ./src/main_client.c) +add_executable(server ${SOURCE_FILES} ./src/main_server.c) +add_executable(client ${SOURCE_FILES} ./src/main_client.c) From b5ff77cc41b040a67b2a601ffc9e5f4a045c9a53 Mon Sep 17 00:00:00 2001 From: Vinicius Date: Tue, 19 Dec 2023 23:55:33 -0300 Subject: [PATCH 5/7] Configuring CMake file --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b1625a..e2cf953 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,5 +33,5 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -march=native") -add_executable(server ${SOURCE_FILES} ./src/main_server.c) -add_executable(client ${SOURCE_FILES} ./src/main_client.c) +add_executable(./bin/server ${SOURCE_FILES} ./src/main_server.c) +add_executable(./bin/client ${SOURCE_FILES} ./src/main_client.c) From b85e479c476c13f4403f3e5e229638333deed147 Mon Sep 17 00:00:00 2001 From: Vinicius Date: Wed, 20 Dec 2023 09:31:46 -0300 Subject: [PATCH 6/7] Inlcude own libraries fixed --- CMakeLists.txt | 19 +++++++++---------- src/main_client.c | 6 +++--- src/main_server.c | 6 +++--- src/pipe.c | 4 ++-- src/socket.c | 4 ++-- src/utils.c | 2 +- 6 files changed, 20 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e2cf953..33b049d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.10) +cmake_minimum_required(VERSION 2.8) project(pingpong) set(INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include) @@ -9,10 +9,12 @@ execute_process( COMMAND mkdir -p /usr/include/pingpong/ ) +include_directories(${INCLUDE_DIR}) + set(INCLUDE_FILES - ${INCLUDE_DIR}/pipe.h - ${INCLUDE_DIR}/socket.h - ${INCLUDE_DIR}/utils.h + ${INCLUDE_DIR}/socket + ${INCLUDE_DIR}/pipe + ${INCLUDE_DIR}/utils ) set(SOURCE_FILES @@ -21,12 +23,6 @@ set(SOURCE_FILES ${SRC_DIR}/utils.c ) -set(INSTALL_DIR /usr/include/pingpong/) - -install(FILES ${INCLUDE_FILES} DESTINATION ${INSTALL_DIR}) - -include_directories(${CMAKE_SOURCE_DIR}/include) - set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") @@ -35,3 +31,6 @@ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -march=native") add_executable(./bin/server ${SOURCE_FILES} ./src/main_server.c) add_executable(./bin/client ${SOURCE_FILES} ./src/main_client.c) + +target_include_directories(./bin/server PUBLIC ${INCLUDE_DIR}) +target_include_directories(./bin/client PUBLIC ${INCLUDE_DIR}) \ No newline at end of file diff --git a/src/main_client.c b/src/main_client.c index 22f681b..d3cf448 100644 --- a/src/main_client.c +++ b/src/main_client.c @@ -1,6 +1,6 @@ -#include -#include -#include +#include +#include +#include #define N 10000 diff --git a/src/main_server.c b/src/main_server.c index b20e4f0..0b7845e 100644 --- a/src/main_server.c +++ b/src/main_server.c @@ -1,6 +1,6 @@ -#include -#include -#include +#include +#include +#include int num_of_read_bytes = 0; diff --git a/src/pipe.c b/src/pipe.c index b57dc62..ff6ee07 100644 --- a/src/pipe.c +++ b/src/pipe.c @@ -1,8 +1,8 @@ #include #include -#include -#include +#include +#include int *create_pipe() diff --git a/src/socket.c b/src/socket.c index 22b5294..33babce 100644 --- a/src/socket.c +++ b/src/socket.c @@ -7,8 +7,8 @@ #include #include -#include -#include +#include +#include int create_socket(int sin_family, int sock) { diff --git a/src/utils.c b/src/utils.c index 8b4b193..b52cdef 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1,7 +1,7 @@ #include #include -#include +#include void panic(char* message) { From b4330a0b1fbc19a2ea11fbcac939b06f31fe2c70 Mon Sep 17 00:00:00 2001 From: Vinicius Date: Wed, 20 Dec 2023 12:08:14 -0300 Subject: [PATCH 7/7] Fix error socket connection with void* --- include/socket.h | 5 +++-- src/main_client.c | 6 +++--- src/socket.c | 38 ++++++++++++++++++++++++++++---------- 3 files changed, 34 insertions(+), 15 deletions(-) diff --git a/include/socket.h b/include/socket.h index a12e954..6114a5a 100644 --- a/include/socket.h +++ b/include/socket.h @@ -20,8 +20,9 @@ extern int create_socket(int sin_family, int sock); extern socket_address_unix config_unixdomain_server_address(); extern socket_address_ipv4 config_tcp_upd_server_address(); - extern void connect_to_server(void* server_address, int client_socket); + extern void connect_to_server(int socket_type, void* server_address, int client_socket); extern void bind_server(void* server_address, int socket_type, int server_socket); - extern int accept_connection(int client_socket, void* client_address, int server_socket); + extern int accept_connection(int socket_type, int client_socket, void* client_address, int server_socket); + extern socklen_t attribuite_type_and_getsizeof(int socket_type, struct sockaddr* address, void* socket_address); #endif // __SOCKET_H__ \ No newline at end of file diff --git a/src/main_client.c b/src/main_client.c index d3cf448..c7f3623 100644 --- a/src/main_client.c +++ b/src/main_client.c @@ -73,14 +73,14 @@ void attribuite_and_init_socket(int socket_type) client_socket = create_socket(AF_INET, SOCK_STREAM); socket_address_ipv4 tcp_ip_address = config_tcp_upd_server_address(); server_address = (void*)&tcp_ip_address; - connect_to_server(server_address,client_socket); + connect_to_server(socket_type, server_address,client_socket); break; case UDP_SOCKET_FLAG: // UDP SOCKET client_socket = create_socket(AF_INET, SOCK_STREAM); socket_address_ipv4 udp_ip_address = config_tcp_upd_server_address(); server_address = (void*)&udp_ip_address; - connect_to_server(server_address,client_socket); + connect_to_server(socket_type, server_address,client_socket); break; @@ -88,7 +88,7 @@ void attribuite_and_init_socket(int socket_type) client_socket = create_socket(AF_UNIX, SOCK_DGRAM); socket_address_unix unix_ip_address = config_unixdomain_server_address(); server_address = (void*)&unix_ip_address; - connect_to_server(server_address,client_socket); + connect_to_server(socket_type, server_address,client_socket); break; diff --git a/src/socket.c b/src/socket.c index 33babce..20be483 100644 --- a/src/socket.c +++ b/src/socket.c @@ -43,13 +43,14 @@ socket_address_ipv4 config_tcp_upd_server_address() return server_address; } -void connect_to_server(void *server_address, int client_socket) +void connect_to_server(int socket_type, void *server_address, int client_socket) { - struct sockaddr* address = (struct sockaddr*)&server_address; + struct sockaddr address; + socklen_t address_sizeof = attribuite_type_and_getsizeof(socket_type, &address, server_address); int connection_response = connect(client_socket, - address, - (socklen_t)sizeof(server_address) + &address, + address_sizeof ); if(connection_response == SOCKET_ERROR_CODE) @@ -61,14 +62,29 @@ void connect_to_server(void *server_address, int client_socket) } +socklen_t attribuite_type_and_getsizeof(int socket_type, struct sockaddr* address, void* socket_address) +{ + if(socket_type == UNIX_SOCKET_FLAG) + { + address = (struct sockaddr*)&*((socket_address_unix*)socket_address); + return (socklen_t)sizeof(*(socket_address_unix*)socket_address); + }else + { + address = (struct sockaddr*)&*((socket_address_ipv4*)socket_address); + return (socklen_t)sizeof(*(socket_address_ipv4*)socket_address); + } +} + void bind_server(void *server_address, int socket_type, int server_socket) { - struct sockaddr* address = (struct sockaddr*)&server_address; + + struct sockaddr address; + socklen_t address_sizeof = attribuite_type_and_getsizeof(socket_type, &address, server_address); - int server_bind_response = bind(server_socket, address, sizeof(server_address)); + int server_bind_response = bind(server_socket, &address, address_sizeof); - if (socket_type == UNIX_SOCKET_FLAG) unlink((const char*)address); + if (socket_type == UNIX_SOCKET_FLAG) unlink((const char*)&address); if(server_bind_response == SOCKET_ERROR_CODE) { @@ -77,12 +93,14 @@ void bind_server(void *server_address, int socket_type, int server_socket) } } -int accept_connection(int client_socket, void *client_address, int server_socket) +int accept_connection(int socket_type, int client_socket, void *client_address, int server_socket) { socklen_t client_addr_len = sizeof(client_address); - struct sockaddr *address = (struct sockaddr*)&client_address; + + struct sockaddr address; + attribuite_type_and_getsizeof(socket_type, &address, client_address); - client_socket = accept(server_socket, address, &client_addr_len); + client_socket = accept(server_socket, &address, &client_addr_len); if(client_socket == SYSTEM_EXIT_FAILED) {