diff options
| author | Tomas Chvatal (scarabeus) <tomas.chvatal@gmail.com> | 2008-10-22 22:53:48 +0200 |
|---|---|---|
| committer | Tomas Chvatal (scarabeus) <tomas.chvatal@gmail.com> | 2008-10-22 22:53:48 +0200 |
| commit | 130d45bfc935da1702a7b5c246a099ea3b4a0bdf (patch) | |
| tree | 5cc4b029f24e7a3cfaf1fcbc671772059a9b8e73 /src/base/server.c | |
| parent | 44daf03024fbf7cbffa10349044786f6ab784821 (diff) | |
Ident all code correctly.
Diffstat (limited to 'src/base/server.c')
| -rw-r--r-- | src/base/server.c | 454 |
1 files changed, 231 insertions, 223 deletions
diff --git a/src/base/server.c b/src/base/server.c index 836b9d2..ac7bfc0 100644 --- a/src/base/server.c +++ b/src/base/server.c @@ -51,348 +51,356 @@ static int maxClients; typedef struct proto_cmd_server_struct { - char *name; - int len; - int tux; - void (*fce_proto)(client_t *,char *msg); + char *name; + int len; + int tux; + void (*fce_proto) (client_t *, char *msg); } proto_cmd_server_t; -static proto_cmd_server_t proto_cmd_list[] = -{ - { .name = "hello", .len = 5, .tux = 0, .fce_proto = proto_recv_hello_server }, - { .name = "status", .len = 6, .tux = 0, .fce_proto = proto_recv_status_server }, +static proto_cmd_server_t proto_cmd_list[] = { + {.name = "hello",.len = 5,.tux = 0,.fce_proto = proto_recv_hello_server}, + {.name = "status",.len = 6,.tux = 0,.fce_proto = + proto_recv_status_server}, #ifdef PUBLIC_SERVER - { .name = "list", .len = 4, .tux = 0, .fce_proto = proto_recv_listscore_server }, + {.name = "list",.len = 4,.tux = 0,.fce_proto = + proto_recv_listscore_server}, #endif - { .name = "event", .len = 5, .tux = 1, .fce_proto = proto_recv_event_server }, - { .name = "check", .len = 5, .tux = 1, .fce_proto = proto_recv_check_server }, - { .name = "module", .len = 6, .tux = 1, .fce_proto = proto_recv_module_server }, - { .name = "chat", .len = 4, .tux = 1, .fce_proto = proto_recv_chat_server }, - { .name = "ping", .len = 4, .tux = 1, .fce_proto = proto_recv_ping_server }, - { .name = "echo", .len = 4, .tux = 0, .fce_proto = proto_recv_echo_server }, - { .name = "end", .len = 3, .tux = 1, .fce_proto = proto_recv_end_server }, - { .name = "", .len = 0, .tux = 0, .fce_proto = NULL }, + {.name = "event",.len = 5,.tux = 1,.fce_proto = proto_recv_event_server}, + {.name = "check",.len = 5,.tux = 1,.fce_proto = proto_recv_check_server}, + {.name = "module",.len = 6,.tux = 1,.fce_proto = + proto_recv_module_server}, + {.name = "chat",.len = 4,.tux = 1,.fce_proto = proto_recv_chat_server}, + {.name = "ping",.len = 4,.tux = 1,.fce_proto = proto_recv_ping_server}, + {.name = "echo",.len = 4,.tux = 0,.fce_proto = proto_recv_echo_server}, + {.name = "end",.len = 3,.tux = 1,.fce_proto = proto_recv_end_server}, + {.name = "",.len = 0,.tux = 0,.fce_proto = NULL}, }; -static proto_cmd_server_t* findCmdProto(client_t *client, char *msg) +static proto_cmd_server_t * +findCmdProto(client_t * client, char *msg) { - int len; - int i; + int len; + int i; + + len = strlen(msg); - len = strlen(msg); + for (i = 0; proto_cmd_list[i].len != 0; i++) { + proto_cmd_server_t *thisCmd; - for( i = 0 ; proto_cmd_list[i].len != 0 ; i++ ) - { - proto_cmd_server_t *thisCmd; - - thisCmd = &proto_cmd_list[i]; + thisCmd = &proto_cmd_list[i]; - if( len >= thisCmd->len && strncmp(msg, thisCmd->name, thisCmd->len) == 0 ) - { - if( thisCmd->tux && client->tux == NULL ) - { - return NULL; - } + if (len >= thisCmd->len + && strncmp(msg, thisCmd->name, thisCmd->len) == 0) { + if (thisCmd->tux && client->tux == NULL) { + return NULL; + } - return thisCmd; - } - } + return thisCmd; + } + } - return NULL; + return NULL; } -static void startUpdateServer() +static void +startUpdateServer() { - timeUpdate = time(NULL); + timeUpdate = time(NULL); } -time_t getUpdateServer() +time_t +getUpdateServer() { - return time(NULL) - timeUpdate; + return time(NULL) - timeUpdate; } -client_t* newAnyClient() +client_t * +newAnyClient() { - client_t *new; + client_t *new; - new = malloc( sizeof(client_t) ); - memset(new, 0, sizeof(client_t)); + new = malloc(sizeof(client_t)); + memset(new, 0, sizeof(client_t)); - new->status = NET_STATUS_OK; - new->listRecvMsg = newList(); - new->listSendMsg = newCheckFront(); - new->listSeesShot = newList(); - new->protect = newProtect(); + new->status = NET_STATUS_OK; + new->listRecvMsg = newList(); + new->listSendMsg = newCheckFront(); + new->listSeesShot = newList(); + new->protect = newProtect(); - return new; + return new; } -void destroyAnyClient(client_t *p) +void +destroyAnyClient(client_t * p) { - assert( p != NULL ); + assert(p != NULL); - //eventMsgInCheckFront(p); - destroyListItem(p->listRecvMsg, free); - destroyListItem(p->listSeesShot, free); - destroyCheckFront(p->listSendMsg); + //eventMsgInCheckFront(p); + destroyListItem(p->listRecvMsg, free); + destroyListItem(p->listSeesShot, free); + destroyCheckFront(p->listSendMsg); - destroyProtect(p->protect); + destroyProtect(p->protect); - if( p->tux != NULL ) - { + if (p->tux != NULL) { #ifdef PUBLIC_SERVER - addPlayerInHighScore(p->tux->name, p->tux->score); + addPlayerInHighScore(p->tux->name, p->tux->score); #endif - delObjectFromSpaceWithObject(getCurrentArena()->spaceTux, p->tux, destroyTux); - } + delObjectFromSpaceWithObject(getCurrentArena()->spaceTux, p->tux, + destroyTux); + } - free(p); + free(p); } -static void eventDelClientFromListClient(client_t *client) +static void +eventDelClientFromListClient(client_t * client) { - int offset; + int offset; - offset = searchListItem(listClient, client); + offset = searchListItem(listClient, client); - assert( offset != -1 ); + assert(offset != -1); - delListItem(listClient, offset, destroyUdpClient); + delListItem(listClient, offset, destroyUdpClient); } -static void delZombieCLient(void *p_nothink) +static void +delZombieCLient(void *p_nothink) { - client_t *thisClient; - my_time_t currentTime; - int i; - - currentTime = getMyTime(); - - for( i = 0 ; i < listClient->count; i++) - { - thisClient = (client_t *) listClient->list[i]; - - if( isDown(thisClient->protect) == TRUE ) - { - proto_send_end_server(PROTO_SEND_ONE, thisClient); - eventMsgInCheckFront(thisClient); - thisClient->status = NET_STATUS_ZOMBIE; - } - - if( thisClient->status == NET_STATUS_ZOMBIE ) - { - if( thisClient->tux != NULL ) - { - proto_send_del_server(PROTO_SEND_ALL, NULL, thisClient->tux->id); - } - - eventDelClientFromListClient(thisClient); - i--; - } - } + client_t *thisClient; + my_time_t currentTime; + int i; + + currentTime = getMyTime(); + + for (i = 0; i < listClient->count; i++) { + thisClient = (client_t *) listClient->list[i]; + + if (isDown(thisClient->protect) == TRUE) { + proto_send_end_server(PROTO_SEND_ONE, thisClient); + eventMsgInCheckFront(thisClient); + thisClient->status = NET_STATUS_ZOMBIE; + } + + if (thisClient->status == NET_STATUS_ZOMBIE) { + if (thisClient->tux != NULL) { + proto_send_del_server(PROTO_SEND_ALL, NULL, + thisClient->tux->id); + } + + eventDelClientFromListClient(thisClient); + i--; + } + } } -static void eventPeriodicSyncClient(void *p_nothink) +static void +eventPeriodicSyncClient(void *p_nothink) { - client_t *thisClientSend; - tux_t *thisTux; - int i; + client_t *thisClientSend; + tux_t *thisTux; + int i; #ifndef PUBLIC_SERVER - proto_send_newtux_server(PROTO_SEND_ALL_SEES_TUX, NULL, getControlTux(TUX_CONTROL_KEYBOARD_RIGHT)); + proto_send_newtux_server(PROTO_SEND_ALL_SEES_TUX, NULL, + getControlTux(TUX_CONTROL_KEYBOARD_RIGHT)); #endif - for( i = 0 ; i < listClient->count; i++ ) - { - thisClientSend = (client_t *) listClient->list[i]; - thisTux = thisClientSend->tux; + for (i = 0; i < listClient->count; i++) { + thisClientSend = (client_t *) listClient->list[i]; + thisTux = thisClientSend->tux; - if( thisTux == NULL ) - { - continue; - } + if (thisTux == NULL) { + continue; + } - //proto_send_newtux_server(PROTO_SEND_ALL_SEES_TUX, thisClientSend, thisTux); - proto_send_newtux_server(PROTO_SEND_BUT, thisClientSend, thisTux); - } + //proto_send_newtux_server(PROTO_SEND_ALL_SEES_TUX, thisClientSend, thisTux); + proto_send_newtux_server(PROTO_SEND_BUT, thisClientSend, thisTux); + } } -static void eventSendPingClients(void *p_nothink) +static void +eventSendPingClients(void *p_nothink) { - proto_send_ping_server(PROTO_SEND_ALL, NULL); + proto_send_ping_server(PROTO_SEND_ALL, NULL); } -void setServerTimer() +void +setServerTimer() { - if( listServerTimer != NULL ) - { - destroyTimer(listServerTimer); - } - - restartTimer(); - listServerTimer = newTimer(); - - addTaskToTimer(listServerTimer, TIMER_PERIODIC, delZombieCLient, NULL, SERVER_TIMEOUT); - addTaskToTimer(listServerTimer, TIMER_PERIODIC, eventPeriodicSyncClient, NULL, SERVER_TIME_SYNC); - addTaskToTimer(listServerTimer, TIMER_PERIODIC, eventSendPingClients, NULL, SERVER_TIME_PING); + if (listServerTimer != NULL) { + destroyTimer(listServerTimer); + } + + restartTimer(); + listServerTimer = newTimer(); + + addTaskToTimer(listServerTimer, TIMER_PERIODIC, delZombieCLient, NULL, + SERVER_TIMEOUT); + addTaskToTimer(listServerTimer, TIMER_PERIODIC, eventPeriodicSyncClient, + NULL, SERVER_TIME_SYNC); + addTaskToTimer(listServerTimer, TIMER_PERIODIC, eventSendPingClients, + NULL, SERVER_TIME_PING); } -int initServer(char *ip4, int port4, char *ip6, int port6) +int +initServer(char *ip4, int port4, char *ip6, int port6) { - int ret; + int ret; - startUpdateServer(); - listServerTimer = NULL; + startUpdateServer(); + listServerTimer = NULL; - listClient = newList(); + listClient = newList(); - setServerMaxClients(SERVER_MAX_CLIENTS); - setServerTimer(); + setServerMaxClients(SERVER_MAX_CLIENTS); + setServerTimer(); - ret = initUdpServer(ip4, port4, ip6, port6); + ret = initUdpServer(ip4, port4, ip6, port6); - if( ret == 0 ) - { - return -1; - } + if (ret == 0) { + return -1; + } - return ret; + return ret; } -list_t* getListServerClient() +list_t * +getListServerClient() { - return listClient; + return listClient; } -int getServerMaxClients() +int +getServerMaxClients() { - return maxClients; + return maxClients; } -void setServerMaxClients(int n) +void +setServerMaxClients(int n) { - maxClients = n; + maxClients = n; } -void sendClient(client_t *p, char *msg) +void +sendClient(client_t * p, char *msg) { - assert( p != NULL ); - assert( msg != NULL ); + assert(p != NULL); + assert(msg != NULL); - if( p->status != NET_STATUS_ZOMBIE ) - { - int ret = -1; // no Warnnings + if (p->status != NET_STATUS_ZOMBIE) { + int ret = -1; // no Warnnings #ifndef PUBLIC_SERVER - if( isParamFlag("--send") ) - { - printf(_("Sending: \"%s\""), msg); - } + if (isParamFlag("--send")) { + printf(_("Sending: \"%s\""), msg); + } #endif - ret = writeUdpSocket(p->socket_udp, p->socket_udp, msg, strlen(msg)); + ret = writeUdpSocket(p->socket_udp, p->socket_udp, msg, strlen(msg)); - if( ret <= 0 ) - { - p->status = NET_STATUS_ZOMBIE; - } - } + if (ret <= 0) { + p->status = NET_STATUS_ZOMBIE; + } + } } -static void eventClientWorkRecvList(client_t *client) +static void +eventClientWorkRecvList(client_t * client) { - proto_cmd_server_t* protoCmd; - char *line; - int i; + proto_cmd_server_t *protoCmd; + char *line; + int i; + + assert(client != NULL); - assert( client != NULL ); + /* obsluha udalosti od clientov */ - /* obsluha udalosti od clientov */ - - for( i = 0 ; i < client->listRecvMsg->count ; i++ ) - { - line = (char *)client->listRecvMsg->list[i]; - protoCmd = findCmdProto(client, line); + for (i = 0; i < client->listRecvMsg->count; i++) { + line = (char *) client->listRecvMsg->list[i]; + protoCmd = findCmdProto(client, line); #ifndef PUBLIC_SERVER - if( isParamFlag("--recv") ) - { - printf(_("Recieved: \"%s\""), line); - } + if (isParamFlag("--recv")) { + printf(_("Recieved: \"%s\""), line); + } #endif - if( protoCmd != NULL ) - { - protoCmd->fce_proto(client, line); - rereshLastPing(client->protect); - } - else - { - proto_send_error_server(PROTO_SEND_ONE, client, PROTO_ERROR_CODE_BAD_COMMAND); - } - } - - destroyListItem(client->listRecvMsg, free); - client->listRecvMsg = newList(); + if (protoCmd != NULL) { + protoCmd->fce_proto(client, line); + rereshLastPing(client->protect); + } + else { + proto_send_error_server(PROTO_SEND_ONE, client, + PROTO_ERROR_CODE_BAD_COMMAND); + } + } + + destroyListItem(client->listRecvMsg, free); + client->listRecvMsg = newList(); } -static void porcesListClients() +static void +porcesListClients() { - int i; - client_t *thisClient; + int i; + client_t *thisClient; - for( i = 0 ; i < listClient->count; i++) - { - thisClient = (client_t *) listClient->list[i]; + for (i = 0; i < listClient->count; i++) { + thisClient = (client_t *) listClient->list[i]; - eventClientWorkRecvList(thisClient); - eventMsgInCheckFront(thisClient); - } + eventClientWorkRecvList(thisClient); + eventMsgInCheckFront(thisClient); + } } -void eventServer() +void +eventServer() { #ifndef PUBLIC_SERVER - int count; + int count; - do{ - restartSelect(); - setServerUdpSelect(); - actionSelect(); - count = selectServerUdpSocket(); - }while( count > 0 ); + do { + restartSelect(); + setServerUdpSelect(); + actionSelect(); + count = selectServerUdpSocket(); + } while (count > 0); #endif #ifdef PUBLIC_SERVER - int ret; + int ret; - restartSelect(); + restartSelect(); - setServerUdpSelect(); + setServerUdpSelect(); - ret = actionSelect(); + ret = actionSelect(); - if( ret > 0 ) - { - selectServerUdpSocket(); - } + if (ret > 0) { + selectServerUdpSocket(); + } #endif - porcesListClients(); - eventTimer(listServerTimer); + porcesListClients(); + eventTimer(listServerTimer); } -void quitServer() +void +quitServer() { - proto_send_end_server(PROTO_SEND_ALL, NULL); + proto_send_end_server(PROTO_SEND_ALL, NULL); - assert( listClient != NULL ); + assert(listClient != NULL); - destroyListItem(listClient, destroyUdpClient); + destroyListItem(listClient, destroyUdpClient); - destroyTimer(listServerTimer); + destroyTimer(listServerTimer); - quitUdpServer(); + quitUdpServer(); } |