ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/socket/init.C
(Generate patch)

Comparing deliantra/server/socket/init.C (file contents):
Revision 1.27 by root, Thu Dec 21 06:12:37 2006 UTC vs.
Revision 1.30 by root, Fri Dec 22 16:34:00 2006 UTC

118 118
119 buflen = sizeof (oldbufsize); 119 buflen = sizeof (oldbufsize);
120 getsockopt (fd, SOL_SOCKET, SO_SNDBUF, (char *) &oldbufsize, (socklen_t *) & buflen); 120 getsockopt (fd, SOL_SOCKET, SO_SNDBUF, (char *) &oldbufsize, (socklen_t *) & buflen);
121 } 121 }
122 122
123 state = ST_SETUP;
123 mapmode = Map0Cmd; 124 mapmode = Map0Cmd;
124 darkness = 1; 125 darkness = 1;
125 mapx = 11; 126 mapx = 11;
126 mapy = 11; 127 mapy = 11;
127 itemcmd = 1; /* Default is version item1 command */ 128 itemcmd = 1; /* Default is version item1 command */
156} 157}
157 158
158client::~client () 159client::~client ()
159{ 160{
160 if (pl) 161 if (pl)
162 {
163 pl->save ();
164 leave (pl, 1);
161 pl->socket = 0; 165 pl->ns = 0;
166
167 delete pl;
168 }
162 169
163 if (fd >= 0) 170 if (fd >= 0)
164 close (fd); 171 close (fd);
165 172
166 sfree<uint8> (faces_sent, nrofpixmaps); 173 sfree<uint8> (faces_sent, nrofpixmaps);
170} 177}
171 178
172void 179void
173client::destroy () 180client::destroy ()
174{ 181{
175 destroyed = true; 182 INVOKE_CLIENT (DESTROY, this);
183
184 state = ST_DEAD;
176 185
177 socket_ev.suspend (); 186 socket_ev.suspend ();
178 cmd_ev.suspend (); 187 cmd_ev.suspend ();
179} 188}
180 189
201void 210void
202free_all_newserver (void) 211free_all_newserver (void)
203{ 212{
204 LOG (llevDebug, "Freeing all new client/server information.\n"); 213 LOG (llevDebug, "Freeing all new client/server information.\n");
205 free_socket_images (); 214 free_socket_images ();
206}
207
208/** Sends the 'goodbye' command to the player, and closes connection. */
209void
210final_free_player (player *pl)
211{
212 free_player (pl);
213} 215}
214 216
215client * 217client *
216client::create (int fd, const char *peername) 218client::create (int fd, const char *peername)
217{ 219{

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines