summaryrefslogtreecommitdiff
path: root/src/map/chrif.c
diff options
context:
space:
mode:
authorDennis Friis <peavey@inspircd.org>2009-07-07 00:52:08 +0200
committerDennis Friis <peavey@inspircd.org>2009-07-07 00:55:31 +0200
commit4673fd3ca06010e74f8223486b0f34e58c7b0a7e (patch)
treecfcc97752fd770eb1befa295e16f7aa4a2607ca9 /src/map/chrif.c
parent03b5e644857f80a23bd8b856b78a10cf0a564a66 (diff)
downloadtmwa-4673fd3ca06010e74f8223486b0f34e58c7b0a7e.tar.gz
tmwa-4673fd3ca06010e74f8223486b0f34e58c7b0a7e.tar.bz2
tmwa-4673fd3ca06010e74f8223486b0f34e58c7b0a7e.tar.xz
tmwa-4673fd3ca06010e74f8223486b0f34e58c7b0a7e.zip
Fixes to socket system to make it cope better with fd depletion.
Also added timeout for fullconnect, secured map server from stateless connections.
Diffstat (limited to 'src/map/chrif.c')
-rw-r--r--src/map/chrif.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/map/chrif.c b/src/map/chrif.c
index cc9437a..4318d1a 100644
--- a/src/map/chrif.c
+++ b/src/map/chrif.c
@@ -864,7 +864,7 @@ int chrif_reloadGMdb(void)
WFIFOW(char_fd,4) = job_rate;
WFIFOW(char_fd,6) = drop_rate;
- if ((fp = fopen(motd_txt, "r")) != NULL) {
+ if ((fp = fopen_(motd_txt, "r")) != NULL) {
if (fgets(buf, 250, fp) != NULL) {
for(i = 0; buf[i]; i++) {
if (buf[i] == '\r' || buf[i] == '\n') {
@@ -875,7 +875,7 @@ int chrif_reloadGMdb(void)
WFIFOW(char_fd,8) = sizeof(buf) + 10;
memcpy(WFIFOP(char_fd,10), buf, sizeof(buf));
}
- fclose(fp);
+ fclose_(fp);
} else {
WFIFOW(char_fd,8) = sizeof(buf) + 10;
memcpy(WFIFOP(char_fd,10), buf, sizeof(buf));
@@ -1113,7 +1113,8 @@ int check_connect_char_server(int tid, unsigned int tick, int id, int data) {
if (char_fd <= 0 || session[char_fd] == NULL) {
printf("Attempt to connect to char-server...\n");
chrif_state = 0;
- char_fd = make_connection(char_ip, char_port);
+ if ((char_fd = make_connection(char_ip, char_port)) < 0)
+ return 0;
session[char_fd]->func_parse = chrif_parse;
realloc_fifo(char_fd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK);