summaryrefslogtreecommitdiff
path: root/src/client.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.c')
-rw-r--r--src/client.c306
1 files changed, 0 insertions, 306 deletions
diff --git a/src/client.c b/src/client.c
deleted file mode 100644
index f49fefb..0000000
--- a/src/client.c
+++ /dev/null
@@ -1,306 +0,0 @@
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/socket.h>
-#include <sys/select.h>
-
-#include "main.h"
-#include "list.h"
-#include "tux.h"
-#include "network.h"
-#include "buffer.h"
-#include "net_multiplayer.h"
-#include "screen_world.h"
-#include "proto.h"
-#include "client.h"
-#include "language.h"
-#include "screen_analyze.h"
-
-static int protocolType;
-
-#ifdef SUPPORT_NET_UNIX_UDP
-#include "udp.h"
-static sock_udp_t *sock_server_udp;
-#endif
-
-#ifdef SUPPORT_NET_SDL_UDP
-#include "sdl_udp.h"
-static sock_sdl_udp_t *sock_server_sdl_udp;
-#endif
-
-static list_t *clientBuffer;
-static my_time_t lastPing;
-static my_time_t lastPingServerAlive;
-
-static void initClient()
-{
- char name[STR_NAME_SIZE];
-
- clientBuffer = newList();
- lastPing = getMyTime();
- lastPingServerAlive = getMyTime();
-
- getSettingNameRight(name);
- proto_send_hello_client(name);
-}
-
-#ifdef SUPPORT_NET_UNIX_UDP
-
-int initUdpClient(char *ip, int port, int proto)
-{
- sock_server_udp = connectUdpSocket(ip, port, proto);
-
- if( sock_server_udp == NULL )
- {
- return -1;
- }
-
- printf("connect UDP %s %d\n", ip, port);
-
- protocolType = NET_PROTOCOL_TYPE_UDP;
- initClient();
-
- return 0;
-}
-
-#endif
-
-#ifdef SUPPORT_NET_SDL_UDP
-
-int initSdlUdpClient(char *ip, int port)
-{
- sock_server_sdl_udp = connectSdlUdpSocket(ip, port);
-
- if( sock_server_sdl_udp == NULL )
- {
- return -1;
- }
-
- printf("connect UDP %s %d\n", ip, port);
-
- protocolType = NET_PROTOCOL_TYPE_UDP;
- initClient();
-
- return 0;
-}
-
-#endif
-
-void sendServer(char *msg)
-{
- int ret;
-
- assert( msg != NULL );
-
-#ifndef PUBLIC_SERVER
- if( isParamFlag("--send") )
- {
- printf("send -> %s", msg);
- }
-#endif
-
-#ifdef SUPPORT_NET_UNIX_UDP
- ret = writeUdpSocket(sock_server_udp, sock_server_udp, msg, strlen(msg));
-#endif
-
-#ifdef SUPPORT_NET_SDL_UDP
- ret = writeSdlUdpSocket(sock_server_sdl_udp, sock_server_sdl_udp, msg, strlen(msg));
-#endif
-}
-
-static int eventServerSelect()
-{
- char buffer[STR_PROTO_SIZE];
- int ret;
-
- memset(buffer,0 ,STR_PROTO_SIZE);
-
-#ifdef SUPPORT_NET_UNIX_UDP
- ret = readUdpSocket(sock_server_udp, sock_server_udp, buffer, STR_PROTO_SIZE-1);
-#endif
-
-#ifdef SUPPORT_NET_SDL_UDP
- ret = readSdlUdpSocket(sock_server_sdl_udp, sock_server_sdl_udp, buffer, STR_PROTO_SIZE-1);
-
- if( ret < 0 )
- {
- return ret;
- }
-#endif
-
- addList(clientBuffer, strdup(buffer) );
-/*
- if( addBuffer(clientBuffer, buffer, ret) != 0 )
- {
- fprintf(stderr, "chyba, nemozem zapisovat do mojho buffera !\n");
- setWorldEnd();
- return ret;
- }
-*/
- return ret;
-}
-
-void eventServerBuffer()
-{
- char *line;
- int i;
-
- /* obsluha udalosti od servera */
-
- assert( clientBuffer != NULL );
-
- for( i = 0 ; i < clientBuffer->count ; i++ )
- {
- line = (char *)clientBuffer->list[i];
-
-#ifndef PUBLIC_SERVER
- if( isParamFlag("--recv") )
- {
- printf("recv -> %s", line);
- }
-#endif
- if( strncmp(line, "error", 5) == 0 )proto_recv_error_client(line);
- if( strncmp(line, "init", 4) == 0 )proto_recv_init_client(line);
- if( strncmp(line, "event", 5) == 0 )proto_recv_event_client(line);
- if( strncmp(line, "newtux", 6) == 0 )proto_recv_newtux_client(line);
- if( strncmp(line, "del", 3) == 0 )proto_recv_del_client(line);
- if( strncmp(line, "additem", 7) == 0 )proto_recv_additem_client(line);
- if( strncmp(line, "shot", 4) == 0 )proto_recv_shot_client(line);
- if( strncmp(line, "kill", 4) == 0 )proto_recv_kill_client(line);
- if( strncmp(line, "ping", 4) == 0 )proto_recv_ping_client(line);
- if( strncmp(line, "end", 3) == 0 )proto_recv_end_client(line);
-
- lastPingServerAlive = getMyTime();
- }
-
- destroyListItem(clientBuffer, free);
- clientBuffer = newList();
-}
-
-void eventPingServer()
-{
- my_time_t currentTime;
-
- currentTime = getMyTime();
-
- if( currentTime - lastPing > CLIENT_TIMEOUT )
- {
- proto_send_ping_client();
- lastPing = getMyTime();
- }
-}
-
-bool_t isServerAlive()
-{
- my_time_t currentTime;
-
- currentTime = getMyTime();
-
- if( currentTime - lastPingServerAlive > SERVER_TIMEOUT_ALIVE )
- {
- return FALSE;
- }
-
- return TRUE;
-}
-
-#ifdef SUPPORT_NET_UNIX_UDP
-
-void selectClientUdpSocket()
-{
- fd_set readfds;
- struct timeval tv;
- int max_fd;
- bool_t isNext;
-
- if( isServerAlive() == FALSE )
- {
- fprintf(stderr, "server neodpoveda !\n");
- setWorldEnd();
- return;
- }
-
- do{
- isNext = FALSE;
-
- tv.tv_sec = 0;
- tv.tv_usec = 0;
-
- FD_ZERO(&readfds);
- FD_SET(sock_server_udp->sock, &readfds);
- max_fd = sock_server_udp->sock;
-
- select(max_fd+1, &readfds, (fd_set *)NULL, (fd_set *)NULL, &tv);
-
- if( FD_ISSET(sock_server_udp->sock, &readfds) )
- {
- eventServerSelect();
- isNext = TRUE;
- }
-
- }while( isNext == TRUE );
-
-}
-
-#endif
-
-#ifdef SUPPORT_NET_SDL_UDP
-
-void selectClientSdlUdpSocket()
-{
- int ret;
-
- if( isServerAlive() == FALSE )
- {
- setMsgToAnalyze(getMyText("ERROR_SERVER_DONT_ALIVE"));
- setWorldEnd();
- return;
- }
-
- do{
- ret = eventServerSelect();
- }while( ret > 0);
-}
-
-#endif
-
-static void quitClient()
-{
- proto_send_end_client();
- assert( clientBuffer != NULL );
- destroyListItem(clientBuffer, free);
-}
-
-#ifdef SUPPORT_NET_UNIX_UDP
-
-void quitUdpClient()
-{
- quitClient();
-
- assert( sock_server_udp != NULL );
- closeUdpSocket(sock_server_udp);
-
- printf("quit UDP conenct\n");
-}
-
-#endif
-
-#ifdef SUPPORT_NET_SDL_UDP
-
-void quitSdlUdpClient()
-{
- quitClient();
-
- assert( sock_server_sdl_udp != NULL );
- closeSdlUdpSocket(sock_server_sdl_udp);
-
- printf("quit UDP conenct\n");
-}
-
-#endif