diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/CMakeLists.txt | 78 | ||||
| -rw-r--r-- | src/audio/CMakeLists.txt | 12 | ||||
| -rw-r--r-- | src/base/CMakeLists.txt | 12 | ||||
| -rw-r--r-- | src/base/path.h.in | 1 | ||||
| -rw-r--r-- | src/base/tcp_server.c | 291 | ||||
| -rw-r--r-- | src/base/tcp_server.h | 19 | ||||
| -rw-r--r-- | src/client/CMakeLists.txt | 12 | ||||
| -rw-r--r-- | src/modules/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/net/CMakeLists.txt | 12 | ||||
| -rw-r--r-- | src/screen/CMakeLists.txt | 12 | ||||
| -rw-r--r-- | src/server/CMakeLists.txt | 12 | ||||
| -rw-r--r-- | src/widget/CMakeLists.txt | 12 |
12 files changed, 98 insertions, 376 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9f80566..2d19042 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -22,64 +22,15 @@ ENDIF ( BUILD_SERVER ) ############################################################################### # SOURCE SPECIFICATION ############################################################################### -# Command for finding correct file names in directory, replace DIR with -# directory name you want eg: base -# find ./ -maxdepth 1 -type f -name \*.c |grep "$" |sed -e 's/^\.\//\$\{WORKDIR\}\/DIR\//' -e 's/\.c//' |tr '\n' ' ' -SET ( SRC_base - ${WORKDIR}/net/udp ${WORKDIR}/net/tcp - ${WORKDIR}/base/udp_server - ${WORKDIR}/base/main ${WORKDIR}/base/shot - ${WORKDIR}/base/space ${WORKDIR}/base/checkFront - ${WORKDIR}/base/storage ${WORKDIR}/base/myTimer - ${WORKDIR}/base/protect ${WORKDIR}/base/list - ${WORKDIR}/base/arena ${WORKDIR}/base/server - ${WORKDIR}/base/serverSelect ${WORKDIR}/base/serverSendMsg - ${WORKDIR}/base/textFile ${WORKDIR}/base/gun - ${WORKDIR}/base/arenaFile ${WORKDIR}/base/modules - ${WORKDIR}/base/net_multiplayer ${WORKDIR}/base/index - ${WORKDIR}/base/item ${WORKDIR}/base/tux - ${WORKDIR}/base/director ${WORKDIR}/base/idManager - ${WORKDIR}/base/homeDirector ${WORKDIR}/base/proto - ${WORKDIR}/base/shareFunction ${WORKDIR}/base/buffer - ${WORKDIR}/base/archive ${WORKDIR}/base/downServer - ${WORKDIR}/net/dns -) - -SET ( SRC_client - ${WORKDIR}/client/layer ${WORKDIR}/client/term - ${WORKDIR}/client/screen ${WORKDIR}/client/interface - ${WORKDIR}/client/client ${WORKDIR}/client/chat - ${WORKDIR}/client/configFile ${WORKDIR}/client/saveLoad - ${WORKDIR}/client/font ${WORKDIR}/client/game - ${WORKDIR}/client/radar ${WORKDIR}/client/panel - ${WORKDIR}/client/image ${WORKDIR}/client/keyboardBuffer - ${WORKDIR}/client/pauza ${WORKDIR}/client/saveDialog - ${WORKDIR}/client/hotKey ${WORKDIR}/client/fontConfig - - ${WORKDIR}/screen/choiceArena - ${WORKDIR}/screen/settingKeys ${WORKDIR}/screen/table - ${WORKDIR}/screen/setting ${WORKDIR}/screen/credits - ${WORKDIR}/screen/world ${WORKDIR}/screen/analyze - ${WORKDIR}/screen/mainMenu ${WORKDIR}/screen/browser - ${WORKDIR}/screen/gameType ${WORKDIR}/screen/downArena - - ${WORKDIR}/widget/widget_check ${WORKDIR}/widget/widget_button - ${WORKDIR}/widget/widget_textfield ${WORKDIR}/widget/widget_label - ${WORKDIR}/widget/widget_buttonimage ${WORKDIR}/widget/widget_image - ${WORKDIR}/widget/widget_select ${WORKDIR}/widget/widget_catchkey - ${WORKDIR}/widget/widget_choicegroup ${WORKDIR}/widget/widget_statusbar - ${WORKDIR}/widget/widget -) - -SET ( SRC_audio - ${WORKDIR}/audio/audio ${WORKDIR}/audio/music - ${WORKDIR}/audio/sound -) - -SET ( SRC_server - ${WORKDIR}/server/log ${WORKDIR}/server/serverConfigFile - ${WORKDIR}/server/highScore ${WORKDIR}/server/publicServer -) +FILE ( GLOB DIRS * ) +FOREACH ( dir ${DIRS} ) + GET_FILENAME_COMPONENT (fn ${dir} NAME) + IF ( ${fn} STREQUAL "modules" ) + ADD_SUBDIRECTORY ( ${fn} ) + ELSE ( ${fn} STREQUAL "modules" ) + INCLUDE ( ${fn}/CMakeLists.txt OPTIONAL ) + ENDIF ( ${fn} STREQUAL "modules" ) +ENDFOREACH ( dir ) ############################################################################### # INCLUDE CONFIGURED HEADERS ############################################################################### @@ -94,10 +45,11 @@ ENDIF ( ENABLE_IPV6 ) # AUDIO CHECK ############################################################################### IF ( NOT BUILD_SERVER ) + SET ( SRC_compile ${SRC_net} ${SRC_widget} ${SRC_screen} ${SRC_base} ${SRC_client} ) IF ( WITH_AUDIO ) MESSAGE ( STATUS "<Building with audio as requested>" ) - SET ( SRC_compile ${SRC_base} ${SRC_client} ${SRC_audio} ) - INCLUDE_DIRECTORIES ( ${WORKDIR}/audio ) + SET ( SRC_compile ${SRC_compile} ${SRC_audio} ) + INCLUDE_DIRECTORIES ( ${CMAKE_CURRENT_SOURCE_DIR}/audio ) ELSE ( WITH_AUDIO ) ADD_DEFINITIONS ( -DNO_SOUND ) ENDIF ( WITH_AUDIO ) @@ -109,15 +61,11 @@ IF ( WITH_OPENGL ) ADD_DEFINITIONS ( -DSUPPORT_OPENGL ) ENDIF ( WITH_OPENGL ) ############################################################################### -# MODULES -############################################################################### -ADD_SUBDIRECTORY ( modules ) -############################################################################### # SERVER COMPILATION ############################################################################### IF ( BUILD_SERVER ) MESSAGE ( STATUS "<Building server as requested>" ) - SET ( SRC_compile ${SRC_base} ${SRC_server} ) + SET ( SRC_compile ${SRC_net} ${SRC_server} ${SRC_base} ) ADD_EXECUTABLE ( ${APPNAME} ${SRC_compile} ) ELSE ( BUILD_SERVER ) ############################################################################### diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt new file mode 100644 index 0000000..6c8c7a1 --- /dev/null +++ b/src/audio/CMakeLists.txt @@ -0,0 +1,12 @@ +############################################################################### +# tuxanci/src/*/CMakeLists.txt +############################################################################### +# Generate source_code files from .c files we find in directory +############################################################################### +FILE ( GLOB src ${fn}/*.c ) +FOREACH ( fle ${src} ) + GET_FILENAME_COMPONENT ( fnp ${fle} NAME_WE ) + GET_FILENAME_COMPONENT ( pth ${fle} PATH ) + SET ( SRC_${fn} ${SRC_${fn}} ${pth}/${fnp} ) +ENDFOREACH ( fle ) +############################################################################### diff --git a/src/base/CMakeLists.txt b/src/base/CMakeLists.txt new file mode 100644 index 0000000..6c8c7a1 --- /dev/null +++ b/src/base/CMakeLists.txt @@ -0,0 +1,12 @@ +############################################################################### +# tuxanci/src/*/CMakeLists.txt +############################################################################### +# Generate source_code files from .c files we find in directory +############################################################################### +FILE ( GLOB src ${fn}/*.c ) +FOREACH ( fle ${src} ) + GET_FILENAME_COMPONENT ( fnp ${fle} NAME_WE ) + GET_FILENAME_COMPONENT ( pth ${fle} PATH ) + SET ( SRC_${fn} ${SRC_${fn}} ${pth}/${fnp} ) +ENDFOREACH ( fle ) +############################################################################### diff --git a/src/base/path.h.in b/src/base/path.h.in index 79bce33..7e3a7a6 100644 --- a/src/base/path.h.in +++ b/src/base/path.h.in @@ -1,4 +1,3 @@ - #ifndef PATH_H #cmakedefine USE_MAGICK #define TUXANCI_VERSION "@TUXANCI_VERSION@" diff --git a/src/base/tcp_server.c b/src/base/tcp_server.c deleted file mode 100644 index 1635c1a..0000000 --- a/src/base/tcp_server.c +++ /dev/null @@ -1,291 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <sys/types.h> - -#include <unistd.h> -#include <fcntl.h> -#include <sys/time.h> - -#ifndef __WIN32__ -# include <sys/ioctl.h> -# include <sys/socket.h> -# include <sys/select.h> -#else -# include <io.h> -# include <winsock2.h> -#endif - -#include "main.h" -#include "list.h" -#include "tux.h" -#include "proto.h" -#include "server.h" -#include "myTimer.h" -#include "arena.h" -#include "net_multiplayer.h" -#include "checkFront.h" -#include "protect.h" -#include "index.h" - -#ifndef PUBLIC_SERVER -# include "screen_world.h" -#endif - -#ifdef PUBLIC_SERVER -# include "publicServer.h" -# include "highScore.h" -# include "log.h" -#endif - -#include "tcp.h" -#include "tcp_server.h" -#include "serverSelect.h" - -static sock_tcp_t *sock_server_tcp; -static sock_tcp_t *sock_server_tcp_second; - -client_t *server_tcp_new_client(sock_tcp_t * sock_tcp) -{ - client_t *new; - - assert(sock_tcp != NULL); - - new = server_new_any_client(); - new->type = CLIENT_TYPE_TCP; - new->socket_tcp = sock_tcp; - new->recvBuffer = buffer_new(SERVER_TCP_BUFFER_LIMIT); - new->sendBuffer = buffer_new(SERVER_TCP_BUFFER_LIMIT); - -#ifdef PUBLIC_SERVER - char str_log[STR_LOG_SIZE]; - char str_ip[STR_IP_SIZE]; - - sock_tcp_get_ip(sock_tcp, str_ip, STR_IP_SIZE); - sprintf(str_log, _("New client \"%s\" on port \"%d\" connected"), str_ip, - sock_tcp_get_port(sock_tcp)); - log_add(LOG_INF, str_log); -#endif - - return new; -} - -void server_tcp_send_client_buffer(client_t * client) -{ - void *data; - int len; - int res; - - len = buffer_get_size(client->sendBuffer); - - if (len == 0) { - return; - } - - data = buffer_get_data(client->sendBuffer); - - res = sock_tcp_write(client->socket_tcp, data, len); - //printf("sock_tcp_write = %d\n", res); - - if (res < 0) { - client->status = NET_STATUS_ZOMBIE; - return; - } - - buffer_cut(client->sendBuffer, res); -} - -void server_tcp_destroy_client(client_t * client) -{ - check_front_event(client); - server_tcp_send_client_buffer(client); - -#ifdef PUBLIC_SERVER - char str_log[STR_LOG_SIZE]; - char str_ip[STR_IP_SIZE]; - - sock_tcp_get_ip(client->socket_tcp, str_ip, STR_IP_SIZE); - sprintf(str_log, _("Client \"%s\" on port \"%d\" disconnected"), str_ip, - sock_tcp_get_port(client->socket_tcp)); - log_add(LOG_INF, str_log); -#endif - - sock_tcp_close(client->socket_tcp); - buffer_destroy(client->recvBuffer); - buffer_destroy(client->sendBuffer); - - server_destroy_any_client(client); -} - -int server_tcp_init(char *ip4, int port4, char *ip6, int port6) -{ - int ret; - - ret = 0; - - if (ip4 != NULL) { - sock_server_tcp = sock_tcp_bind(ip4, port4, PROTO_UDPv4); - - if (sock_server_tcp != NULL) { - ret++; - sock_tcp_diable_nagle(sock_server_tcp); - - DEBUG_MSG(_("Starting server: \"%s\" on port: \"%d\"\n"), ip4, port4); - } else { - DEBUG_MSG(_("Starting server: \"%s\" on port: \"%d\" FAILED!\n"), ip4, port4); - - } - } - - if (ip6 != NULL) { - sock_server_tcp_second = sock_tcp_bind(ip6, port6, PROTO_UDPv6); - - if (sock_server_tcp_second != NULL) { - ret++; - sock_tcp_diable_nagle(sock_server_tcp_second); - - DEBUG_MSG(_("Starting server: \"%s\" on port: \"%d\"\n"), ip6, port6); - } else { - - DEBUG_MSG(_("Starting server: \"%s\" on port: \"%d\" FAILED!\n"), ip6, port6); - } - } - - return ret; -} - -static void eventNewClient(sock_tcp_t * server_sock) -{ - list_t *listClient; - sock_tcp_t *sock; - client_t *client; - - listClient = server_get_list_clients(); - - sock = sock_tcp_accept(server_sock); - sock_tcp_diable_nagle(sock); - sock_tcp_set_non_block(sock); - - client = server_tcp_new_client(sock); - list_add(listClient, client); -} - -static void eventTcpClient(client_t * client) -{ - char buffer[STR_PROTO_SIZE]; - int ret; - - memset(buffer, 0, STR_PROTO_SIZE); - - ret = sock_tcp_read(client->socket_tcp, buffer, STR_PROTO_SIZE - 1); - //printf("sock_tcp_read = %d\n", ret); - - if (ret <= 0) { - client->status = NET_STATUS_ZOMBIE; - return; - } - - if (buffer_append(client->recvBuffer, buffer, ret) < 0) { - client->status = NET_STATUS_ZOMBIE; - return; - } - - while (buffer_get_line(client->recvBuffer, buffer, STR_PROTO_SIZE) >= 0) { - list_add(client->listRecvMsg, strdup(buffer)); - } -} - -void server_tcp_set_select() -{ - list_t *listClient; - int i; - - listClient = server_get_list_clients(); - - if (sock_server_tcp != NULL) { - select_add_sock_for_read(sock_server_tcp->sock); - } - - if (sock_server_tcp_second != NULL) { - select_add_sock_for_read(sock_server_tcp_second->sock); - } - - for (i = 0; i < listClient->count; i++) { - client_t *client; - - client = (client_t *) listClient->list[i]; - - if (client->status != NET_STATUS_OK || client->type != CLIENT_TYPE_TCP) { - continue; - } - - select_add_sock_for_read(client->socket_tcp->sock); - } -} - -int server_tcp_select_sock() -{ - list_t *listClient; - int count; - int i; - - count = 0; - - if (sock_server_tcp != NULL) { - if (select_is_change_sock_for_read(sock_server_tcp->sock)) { - eventNewClient(sock_server_tcp); - count++; - } - } - - if (sock_server_tcp_second != NULL) { - if (select_is_change_sock_for_read(sock_server_tcp_second->sock)) { - eventNewClient(sock_server_tcp_second); - count++; - } - } - - listClient = server_get_list_clients(); - - for (i = 0; i < listClient->count; i++) { - client_t *client; - - client = (client_t *) listClient->list[i]; - - if (client->status != NET_STATUS_OK || client->type != CLIENT_TYPE_TCP) { - continue; - } - - if (select_is_change_sock_for_read(client->socket_tcp->sock)) { - //printf("sChangeSockInSelectRead\n"); - eventTcpClient(client); - count++; - } -/* - if( select_is_change_sock_for_write(client->socket_tcp->sock) ) - { - //printf("select_is_change_sock_for_write\n"); - server_tcp_send_client_buffer(client); - count++; - } -*/ - } - - return count; -} - -void server_tcp_quit() -{ - if (sock_server_tcp != NULL) { - DEBUG_MSG(_("Closing port: \"%d\"\n"), sock_tcp_get_port(sock_server_tcp)); - sock_tcp_close(sock_server_tcp); - } - - if (sock_server_tcp_second != NULL) { - DEBUG_MSG(_("Closing port: \"%d\"\n"), sock_tcp_get_port(sock_server_tcp_second)); - sock_tcp_close(sock_server_tcp_second); - } - - DEBUG_MSG("Quitting TCP\n"); -} diff --git a/src/base/tcp_server.h b/src/base/tcp_server.h deleted file mode 100644 index e206402..0000000 --- a/src/base/tcp_server.h +++ /dev/null @@ -1,19 +0,0 @@ - -#ifndef SERVER_TCP_H - -# define SERVER_TCP_H - -# include "server.h" -# include "tcp.h" - -# define SERVER_TCP_BUFFER_LIMIT 4096 - -extern client_t *server_tcp_new_client(sock_tcp_t * sock_tcp); -extern void server_tcp_destroy_client(client_t * p); -extern int server_tcp_init(char *ip4, int port4, char *ip6, int port6); -extern void server_tcp_set_select(); -extern int server_tcp_select_sock(); -extern void server_tcp_send_client_buffer(client_t * p); -extern void server_tcp_quit(); - -#endif diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt new file mode 100644 index 0000000..6c8c7a1 --- /dev/null +++ b/src/client/CMakeLists.txt @@ -0,0 +1,12 @@ +############################################################################### +# tuxanci/src/*/CMakeLists.txt +############################################################################### +# Generate source_code files from .c files we find in directory +############################################################################### +FILE ( GLOB src ${fn}/*.c ) +FOREACH ( fle ${src} ) + GET_FILENAME_COMPONENT ( fnp ${fle} NAME_WE ) + GET_FILENAME_COMPONENT ( pth ${fle} PATH ) + SET ( SRC_${fn} ${SRC_${fn}} ${pth}/${fnp} ) +ENDFOREACH ( fle ) +############################################################################### diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt index a041e87..33952ad 100644 --- a/src/modules/CMakeLists.txt +++ b/src/modules/CMakeLists.txt @@ -8,6 +8,7 @@ LINK_LIBRARIES ( ${CMAKE_DL_LIBS} ) ############################################################################### # SOURCE SPECIFICATION ############################################################################### +INCLUDE_DIRECTORIES ( ${CMAKE_BINARY_DIR}/src/base/ ) IF ( BUILD_SERVER ) SET ( SRC_base_modules ${WORKDIR}/server/publicServer.h diff --git a/src/net/CMakeLists.txt b/src/net/CMakeLists.txt new file mode 100644 index 0000000..6c8c7a1 --- /dev/null +++ b/src/net/CMakeLists.txt @@ -0,0 +1,12 @@ +############################################################################### +# tuxanci/src/*/CMakeLists.txt +############################################################################### +# Generate source_code files from .c files we find in directory +############################################################################### +FILE ( GLOB src ${fn}/*.c ) +FOREACH ( fle ${src} ) + GET_FILENAME_COMPONENT ( fnp ${fle} NAME_WE ) + GET_FILENAME_COMPONENT ( pth ${fle} PATH ) + SET ( SRC_${fn} ${SRC_${fn}} ${pth}/${fnp} ) +ENDFOREACH ( fle ) +############################################################################### diff --git a/src/screen/CMakeLists.txt b/src/screen/CMakeLists.txt new file mode 100644 index 0000000..6c8c7a1 --- /dev/null +++ b/src/screen/CMakeLists.txt @@ -0,0 +1,12 @@ +############################################################################### +# tuxanci/src/*/CMakeLists.txt +############################################################################### +# Generate source_code files from .c files we find in directory +############################################################################### +FILE ( GLOB src ${fn}/*.c ) +FOREACH ( fle ${src} ) + GET_FILENAME_COMPONENT ( fnp ${fle} NAME_WE ) + GET_FILENAME_COMPONENT ( pth ${fle} PATH ) + SET ( SRC_${fn} ${SRC_${fn}} ${pth}/${fnp} ) +ENDFOREACH ( fle ) +############################################################################### diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt new file mode 100644 index 0000000..6c8c7a1 --- /dev/null +++ b/src/server/CMakeLists.txt @@ -0,0 +1,12 @@ +############################################################################### +# tuxanci/src/*/CMakeLists.txt +############################################################################### +# Generate source_code files from .c files we find in directory +############################################################################### +FILE ( GLOB src ${fn}/*.c ) +FOREACH ( fle ${src} ) + GET_FILENAME_COMPONENT ( fnp ${fle} NAME_WE ) + GET_FILENAME_COMPONENT ( pth ${fle} PATH ) + SET ( SRC_${fn} ${SRC_${fn}} ${pth}/${fnp} ) +ENDFOREACH ( fle ) +############################################################################### diff --git a/src/widget/CMakeLists.txt b/src/widget/CMakeLists.txt new file mode 100644 index 0000000..6c8c7a1 --- /dev/null +++ b/src/widget/CMakeLists.txt @@ -0,0 +1,12 @@ +############################################################################### +# tuxanci/src/*/CMakeLists.txt +############################################################################### +# Generate source_code files from .c files we find in directory +############################################################################### +FILE ( GLOB src ${fn}/*.c ) +FOREACH ( fle ${src} ) + GET_FILENAME_COMPONENT ( fnp ${fle} NAME_WE ) + GET_FILENAME_COMPONENT ( pth ${fle} PATH ) + SET ( SRC_${fn} ${SRC_${fn}} ${pth}/${fnp} ) +ENDFOREACH ( fle ) +############################################################################### |