git.shiar.nl
/
netris.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
declaration cleanup
[netris.git]
/
server.c
diff --git
a/server.c
b/server.c
index 3d6652ac43118fb24fb4bf724a32ae9491b7d9fd..d33cf2444a8ad7181a900e978dc6f7aa98e1e13f 100644
(file)
--- a/
server.c
+++ b/
server.c
@@
-21,6
+21,7
@@
#include "netris.h"
#include <stdlib.h>
#include "netris.h"
#include <stdlib.h>
+#include <stdbool.h>
#include <ctype.h>
#include <string.h>
#include <sys/types.h>
#include <ctype.h>
#include <string.h>
#include <sys/types.h>
@@
-32,6
+33,7
@@
#include <setjmp.h>
#include "util.h"
#include <setjmp.h>
#include "util.h"
+#include "msg.h"
#define HEADER_SIZE sizeof(netint4[3])
#define HEADER_SIZE sizeof(netint4[3])
@@
-57,7
+59,7
@@
static char verbose = 0;
struct sockaddr_in addr;
struct sockaddr_in addr;
-MyEventType NetGenFunc(EventGenRec *gen, MyEvent *event);
+
static
MyEventType NetGenFunc(EventGenRec *gen, MyEvent *event);
static EventGenRec netGen[MAX_SCREENS] = {
{ NULL, 0, FT_read, -1, NetGenFunc, EM_net, 0, "\0", 0, HEADER_SIZE }
};
static EventGenRec netGen[MAX_SCREENS] = {
{ NULL, 0, FT_read, -1, NetGenFunc, EM_net, 0, "\0", 0, HEADER_SIZE }
};
@@
-77,13
+79,13
@@
static EventGenRec *nextGen = &alarmGen;
static sigjmp_buf close_env;
static sigjmp_buf close_env;
-void SendPacketTo(short playa, short uid, NetPacketType type, int size, void *data)
+
static
void SendPacketTo(short playa, short uid, NetPacketType type, int size, void *data)
{ //send to someone
netint4 header[3];
if (netGen[playa].fd >= 0) {
if (verbose)
{ //send to someone
netint4 header[3];
if (netGen[playa].fd >= 0) {
if (verbose)
- fprintf(stderr,
": send %d from %d to %d
\n", type, uid, playa);
+ fprintf(stderr,
MSG_SERVER_DBG_SEND "
\n", type, uid, playa);
header[0] = hton4(uid);
header[1] = hton4(type);
header[2] = hton4(size + HEADER_SIZE);
header[0] = hton4(uid);
header[1] = hton4(type);
header[2] = hton4(size + HEADER_SIZE);
@@
-99,7
+101,7
@@
static MyEventType AlarmGenFunc(EventGenRec *gen, MyEvent *event)
return E_alarm;
}
return E_alarm;
}
-void SCloseNet(short playa)
+
static
void SCloseNet(short playa)
{ //kick some connection's ass!
MyEvent event;
{ //kick some connection's ass!
MyEvent event;
@@
-115,17
+117,17
@@
void SCloseNet(short playa)
RemoveEventGen(&netGen[playa]);
}
RemoveEventGen(&netGen[playa]);
}
-void CloseNets(void)
+
static
void CloseNets(void)
{ //nou oogjes dicht en snaveltjes toe
int i;
{ //nou oogjes dicht en snaveltjes toe
int i;
- fprintf(stderr,
"- Closing connections...
\n");
+ fprintf(stderr,
MSG_SERVER_CLOSE_ALL "
\n");
for (i = 1; i < MAX_SCREENS; i++)
SCloseNet(i); // bye everybuddy
for (i = 1; i < MAX_SCREENS; i++)
SCloseNet(i); // bye everybuddy
- fprintf(stderr,
"* All Done
\n\n");
+ fprintf(stderr,
MSG_SERVER_CLOSE_ALL_DONE "
\n\n");
}
}
-MyEventType NetGenFunc(EventGenRec *gen, MyEvent *event)
+
static
MyEventType NetGenFunc(EventGenRec *gen, MyEvent *event)
{ //receive
int result;
short uid, type, size;
{ //receive
int result;
short uid, type, size;
@@
-134,7
+136,7
@@
MyEventType NetGenFunc(EventGenRec *gen, MyEvent *event)
result = MyRead(gen->fd, gen->buf + gen->bufSize,
gen->bufGoal - gen->bufSize);
if (result < 0) {
result = MyRead(gen->fd, gen->buf + gen->bufSize,
gen->bufGoal - gen->bufSize);
if (result < 0) {
- fprintf(stderr,
"- Closed connection to player #%d
\n", gen->player);
+ fprintf(stderr,
MSG_SERVER_PLAYER_CLOSED "
\n", gen->player);
return E_lostConn;
}
gen->bufSize += result;
return E_lostConn;
}
gen->bufSize += result;
@@
-155,7
+157,7
@@
MyEventType NetGenFunc(EventGenRec *gen, MyEvent *event)
event->u.net.size = size - HEADER_SIZE;
event->u.net.data = gen->buf + HEADER_SIZE;
if (type == NP_endConn) {
event->u.net.size = size - HEADER_SIZE;
event->u.net.data = gen->buf + HEADER_SIZE;
if (type == NP_endConn) {
- fprintf(stderr,
"- Quit player #%d
\n", gen->player);
+ fprintf(stderr,
MSG_SERVER_PLAYER_QUIT "
\n", gen->player);
return E_lostConn;
} //client sent quit signal
return E_net;
return E_lostConn;
} //client sent quit signal
return E_net;
@@
-177,7
+179,7
@@
static MyEventType ConnGenFunc(EventGenRec *gen, MyEvent *event)
netGen[new].fd = accept(gen->fd, (struct sockaddr *)&addr, &addrLen)
) < 0)
die("accept");
netGen[new].fd = accept(gen->fd, (struct sockaddr *)&addr, &addrLen)
) < 0)
die("accept");
- fprintf(stderr,
"+ Connection: %s
\n", inet_ntoa(addr.sin_addr));
+ fprintf(stderr,
MSG_SERVER_CONNECT "
\n", inet_ntoa(addr.sin_addr));
val2.l_onoff = 1;
val2.l_linger = 0;
setsockopt(netGen[new].fd, SOL_SOCKET, SO_LINGER,(void *)&val2,
val2.l_onoff = 1;
val2.l_linger = 0;
setsockopt(netGen[new].fd, SOL_SOCKET, SO_LINGER,(void *)&val2,
@@
-202,7
+204,7
@@
static MyEventType ConnGenFunc(EventGenRec *gen, MyEvent *event)
return E_connect;
}
return E_connect;
}
-void CountPlayers(void)
+
static
void CountPlayers(void)
{ //count number of players/teams
int i, j;
playercount = 0;
{ //count number of players/teams
int i, j;
playercount = 0;
@@
-217,17
+219,13
@@
void CountPlayers(void)
} //player alive
}
} //player alive
}
-int StartServer(void)
+
static
int StartServer(void)
{
MyEvent event;
netint2 currentpiece[MAX_SCREENS];
int playersReady = 0;
{
MyEvent event;
netint2 currentpiece[MAX_SCREENS];
int playersReady = 0;
-
int
paused = 1;
+
bool
paused = 1;
int i;
int i;
- char teams[10][7] = {
- "", "Green", "Cyan", "Blue", "Purple",
- "Red", "Grey", "White", "*Orange"
- };
do {
switch (WaitMyEvent(&event, EM_any)) {
do {
switch (WaitMyEvent(&event, EM_any)) {
@@
-241,7
+239,7
@@
int StartServer(void)
SCloseNet(event.u.net.sender);
break; //NP_endConn
case E_net:
SCloseNet(event.u.net.sender);
break; //NP_endConn
case E_net:
- if (verbose) fprintf(stderr,
": %d sent %d
\n",
+ if (verbose) fprintf(stderr,
MSG_SERVER_DBG_RECV "
\n",
netGen[event.u.net.sender].fd, event.u.net.type);
switch(event.u.net.type) {
case NP_hello:
netGen[event.u.net.sender].fd, event.u.net.type);
switch(event.u.net.type) {
case NP_hello:
@@
-260,13
+258,13
@@
int StartServer(void)
snprintf(data, sizeof(data),
"Version mismatch: received %d.%d",
major, protocolVersion);
snprintf(data, sizeof(data),
"Version mismatch: received %d.%d",
major, protocolVersion);
- fprintf(stderr,
"= Wrong version player #%d (%s)
\n",
+ fprintf(stderr,
MSG_SERVER_PLAYER_EVERSION "
\n",
event.u.net.sender, data);
SendPacketTo(event.u.net.sender, 0, NP_error,
strlen(data)+1, data);
SCloseNet(event.u.net.sender);
} //version mismatch
event.u.net.sender, data);
SendPacketTo(event.u.net.sender, 0, NP_error,
strlen(data)+1, data);
SCloseNet(event.u.net.sender);
} //version mismatch
- fprintf(stderr,
"* Accepted player #%d
\n",
+ fprintf(stderr,
MSG_SERVER_PLAYER_ACCEPT "
\n",
event.u.net.sender);
break;
} //NP_hello
event.u.net.sender);
break;
} //NP_hello
@@
-294,8
+292,8
@@
int StartServer(void)
if (!Game.continuous && Game.started >= 2) {
char data[40];
strcpy(data, "Can't join: Game has already started");
if (!Game.continuous && Game.started >= 2) {
char data[40];
strcpy(data, "Can't join: Game has already started");
- fprintf(stderr,
"- Can't join player #%d in "
-
"non-continuous game\n",
event.u.net.sender);
+ fprintf(stderr,
MSG_SERVER_PLAYER_JOIN_ESTARTED,
+ event.u.net.sender);
SendPacketTo(event.u.net.sender, 0, NP_error,
strlen(data)+1, data);
// SCloseNet(event.u.net.sender, 0);
SendPacketTo(event.u.net.sender, 0, NP_error,
strlen(data)+1, data);
// SCloseNet(event.u.net.sender, 0);
@@
-327,11
+325,11
@@
int StartServer(void)
SendPacketTo(i, event.u.net.sender, NP_newPlayer,
sizeof(_Player), &Players[event.u.net.sender]);
} //send (to) players
SendPacketTo(i, event.u.net.sender, NP_newPlayer,
sizeof(_Player), &Players[event.u.net.sender]);
} //send (to) players
- fprintf(stderr,
"> Joined player #%d: %s <%s> (%s)
\n",
+ fprintf(stderr,
MSG_SERVER_PLAYER_JOIN "
\n",
event.u.net.sender,
Players[event.u.net.sender].name,
Players[event.u.net.sender].host,
event.u.net.sender,
Players[event.u.net.sender].name,
Players[event.u.net.sender].host,
- team
s
[Players[event.u.net.sender].team]);
+ team
name
[Players[event.u.net.sender].team]);
if (++playersReady >= minplayers) {
if (Game.started > 1)
SendPacketTo(event.u.net.sender, 0,
if (++playersReady >= minplayers) {
if (Game.started > 1)
SendPacketTo(event.u.net.sender, 0,
@@
-351,7
+349,7
@@
int StartServer(void)
goto sendtoall;
case NP_argghhh:
Players[event.u.net.sender].alive = 0;
goto sendtoall;
case NP_argghhh:
Players[event.u.net.sender].alive = 0;
- fprintf(stderr,
"< Player #%d died
\n",
+ fprintf(stderr,
MSG_SERVER_PLAYER_DIE "
\n",
event.u.net.sender);
//check for unpaused game
case NP_pause:
event.u.net.sender);
//check for unpaused game
case NP_pause:
@@
-360,10
+358,9
@@
int StartServer(void)
paused = Game.started < 1;
for (i = 1; i < MAX_SCREENS; i++)
if (Players[i].alive > 0)
paused = Game.started < 1;
for (i = 1; i < MAX_SCREENS; i++)
if (Players[i].alive > 0)
- paused |=
Players[i].flags & SCF_paused
;
- fprintf(stderr,
"* Player #%d (un)paused (pause=%d)
\n",
+ paused |=
(Players[i].flags & SCF_paused) != 0
;
+ fprintf(stderr,
MSG_SERVER_PLAYER_PAUSE "
\n",
event.u.net.sender, paused);
event.u.net.sender, paused);
- if (paused) paused = 1;
goto sendtoall;
} //NP_pause
default: //relay data to all players
goto sendtoall;
} //NP_pause
default: //relay data to all players
@@
-395,13
+392,13
@@
int StartServer(void)
CountPlayers();
if (Game.started < 1) {
if (playercount >= 2) {
CountPlayers();
if (Game.started < 1) {
if (playercount >= 2) {
- fprintf(stderr,
"* Game (%010d) ready to start
\n", Game.seed);
+ fprintf(stderr,
MSG_SERVER_GAME_READY "
\n", Game.seed);
Game.started++;
} //give goahead
} //game not yet started
else {
if (playercount < 2) {
Game.started++;
} //give goahead
} //game not yet started
else {
if (playercount < 2) {
- fprintf(stderr,
"* Stopping game
\n");
+ fprintf(stderr,
MSG_SERVER_GAME_STOP "
\n");
if (Game.seed) Game.seed++;
if (Game.started > 1) for (i = 1; i < MAX_SCREENS; i++) {
if (Players[i].alive >= 0) {
if (Game.seed) Game.seed++;
if (Game.started > 1) for (i = 1; i < MAX_SCREENS; i++) {
if (Players[i].alive >= 0) {
@@
-416,7
+413,7
@@
int StartServer(void)
} //too few players for game
if (Game.started == 1 && !paused) {
Game.started++;
} //too few players for game
if (Game.started == 1 && !paused) {
Game.started++;
- fprintf(stderr,
"* Game starts
\n");
+ fprintf(stderr,
MSG_SERVER_GAME_START "
\n");
for (i = 1; i < MAX_SCREENS; i++)
if (Players[i].alive > 0)
SendPacketTo(i, 0, NP_start, 0, NULL);
for (i = 1; i < MAX_SCREENS; i++)
if (Players[i].alive > 0)
SendPacketTo(i, 0, NP_start, 0, NULL);
@@
-427,14
+424,12
@@
int StartServer(void)
}
}
-void SHeader(void)
+
static
void SHeader(void)
{
{
- fprintf(stderr,
- "NETRIS Server %s\t(c) 2002 Shiar <shiar@shiar.org>\n\n",
- version_string);
+ fprintf(stderr, MSG_SERVER_TITLE "\n\n", version_string);
}
}
-void SUsage(void)
+
static
void SUsage(void)
{
SHeader();
fprintf(stderr,
{
SHeader();
fprintf(stderr,
@@
-455,7
+450,7
@@
void SUsage(void)
);
}
);
}
-void HandleOption(char tag, char *value)
+
static
void HandleOption(char tag, char *value)
{
switch (tag) {
case 'v': //verbose
{
switch (tag) {
case 'v': //verbose
@@
-494,7
+489,7
@@
void HandleOption(char tag, char *value)
}
}
}
}
-void ReadConf(char *filename)
+
static
void ReadConf(char *filename)
{
FILE *file_in;
char buf[513];
{
FILE *file_in;
char buf[513];
@@
-529,7
+524,7
@@
void ReadConf(char *filename)
}
}
-void CatchInt(int sig)
+
static
void CatchInt(int sig)
{
siglongjmp(close_env, 1);
}
{
siglongjmp(close_env, 1);
}