--- deliantra/server/socket/init.C 2008/04/22 07:01:47 1.57
+++ deliantra/server/socket/init.C 2010/04/12 05:22:38 1.67
@@ -1,35 +1,27 @@
/*
* This file is part of Deliantra, the Roguelike Realtime MMORPG.
*
- * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
- * Copyright (©) 2001,2007 Mark Wedel
- * Copyright (©) 1992,2007 Frank Tore Johansen
+ * Copyright (©) 2005,2006,2007,2008,2009,2010 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
*
- * Deliantra is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * Deliantra is free software: you can redistribute it and/or modify it under
+ * the terms of the Affero GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or (at your
+ * option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
+ * You should have received a copy of the Affero GNU General Public License
+ * and the GNU General Public License along with this program. If not, see
+ * .
*
* The authors can be reached via e-mail to
*/
-/**
- * \file
+/*
* Socket general functions
- *
- * \date 2003-12-02
- *
- * Mainly deals with initialization and higher level socket
- * maintenance (checking for lost connections and if data has arrived.)
- * The reading of data is handled in ericserver.c
*/
#include
@@ -68,6 +60,8 @@
mss = 1500 - 52; // 1500 typical ethernet frame, 66 typical tcp header overhead
+ socket_timeout = 16.;
+
{
struct linger linger_opt;
@@ -136,8 +130,7 @@
LOG (llevError, "InitConnection: Error on fcntl.\n");
state = ST_SETUP;
- mapmode = Map0Cmd;
- darkness = 1;
+ mapmode = Map1aCmd;
mapx = 11;
mapy = 11;
itemcmd = 1; /* Default is version item1 command */
@@ -155,7 +148,8 @@
socket_ev.start ();
// initialisation done, kick it!
- send_packet_printf ("version %d %d %s\n", VERSION_CS, VERSION_SC, VERSION_INFO);
+ INVOKE_CLIENT (CONNECT, this);
+
flush ();
reset_stats ();
@@ -176,6 +170,7 @@
void
client::do_destroy ()
{
+ INVOKE_CLIENT (CLIENT_DESTROY, this);
attachable::do_destroy ();
if (pl)
@@ -213,8 +208,8 @@
last_weapon_sp = -1;
last_level = -1;
last_stats.exp = -1;
- //last_weight = -1;
last_flags = 0;
+ last_weight = -1;
last_weight_limit = 0;
last_path_attuned = 0;
last_path_repelled = 0;
@@ -230,8 +225,9 @@
client::create (int fd, const char *peername)
{
client *ns = new client (dup (fd), peername);
+
ns->instantiate (); // effectively a nop right now
- INVOKE_CLIENT (CONNECT, ns);
+
return ns;
}