/[LeafOK_CVS]/pvpgn-1.7.4/ANTIBOT/pvpgn-1.7.4-antibot.patch
ViewVC logotype

Contents of /pvpgn-1.7.4/ANTIBOT/pvpgn-1.7.4-antibot.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations)
Sat Jun 10 16:29:09 2006 UTC (19 years, 9 months ago) by sysadm
Branch: MAIN
CVS Tags: pvpgn_1-7-4-0_MIL, HEAD
Content type: text/x-diff
Antibot

1 diff -urNa pvpgn-1.7.4/src/bnetd/adbanner.c pvpgn-1.7.4-antibot/src/bnetd/adbanner.c
2 --- pvpgn-1.7.4/src/bnetd/adbanner.c 2005-03-04 12:33:31.000000000 +0800
3 +++ pvpgn-1.7.4-antibot/src/bnetd/adbanner.c 2005-05-26 22:33:02.000000000 +0800
4 @@ -156,6 +156,7 @@
5 unsigned int next_id;
6 t_clienttag ctag;
7
8 +
9 if (!c)
10 {
11 eventlog(eventlog_level_error,__FUNCTION__,"got NULL connection");
12 @@ -164,12 +165,27 @@
13
14 ctag = conn_get_clienttag(c);
15
16 - /* eventlog(eventlog_level_debug,__FUNCTION__,"prev_id=%u init_count=%u start_count=%u norm_count=%u",prev_id,adbannerlist_init_count,adbannerlist_start_count,adbannerlist_norm_count); */
17 + /* sowater, 2005-04-14 */
18 + if(ctag=clienttag_str_to_uint("D2XP")) {
19 + char checknum;
20 + unsigned int id=0;
21 + t_connection * t=c;
22 + t_adbanner * adbanner_checknum;
23 + checknum=conn_get_checknum(t);
24 + id|=checknum;
25 + eventlog(eventlog_level_debug,__FUNCTION__,"got checknum: %c, banner id: %u",checknum,id);
26 + if(adbanner_checknum=adbannerlist_find_adbanner_by_id(adbannerlist_norm_head,id,ctag))
27 + return adbanner_checknum;
28 + eventlog(eventlog_level_debug,__FUNCTION__,"not sending checknum banner");
29 + return NULL;
30 + }else{
31 +
32 + eventlog(eventlog_level_debug,__FUNCTION__,"prev_id=%u init_count=%u start_count=%u norm_count=%u",prev_id,adbannerlist_init_count,adbannerlist_start_count,adbannerlist_norm_count);
33 /* if this is the first ad, randomly choose an init sequence (if there is one) */
34 if (prev_id==0 && adbannerlist_init_count>0)
35 return adbannerlist_get_random(adbannerlist_init_head,ctag);
36 // return list_get_data_by_pos(adbannerlist_init_head,((unsigned int)rand())%adbannerlist_init_count);
37 - /* eventlog(eventlog_level_debug,__FUNCTION__,"not sending init banner"); */
38 + eventlog(eventlog_level_debug,__FUNCTION__,"not sending init banner");
39
40 /* find the previous adbanner */
41 if ((prev = adbannerlist_find_adbanner_by_id(adbannerlist_init_head,prev_id,ctag)))
42 @@ -201,8 +217,10 @@
43 if (adbannerlist_start_count>0)
44 return adbannerlist_get_random(adbannerlist_start_head,ctag);
45
46 - /* eventlog(eventlog_level_debug,__FUNCTION__,"not sending start banner... nothing to return"); */
47 + eventlog(eventlog_level_debug,__FUNCTION__,"not sending start banner... nothing to return");
48 return NULL; /* nothing else to return */
49 +
50 + }
51 }
52
53
54 @@ -532,3 +550,5 @@
55
56 return 0;
57 }
58 +
59 +
60 diff -urNa pvpgn-1.7.4/src/bnetd/connection.c pvpgn-1.7.4-antibot/src/bnetd/connection.c
61 --- pvpgn-1.7.4/src/bnetd/connection.c 2005-03-04 12:33:31.000000000 +0800
62 +++ pvpgn-1.7.4-antibot/src/bnetd/connection.c 2005-05-26 22:33:02.000000000 +0800
63 @@ -140,6 +140,23 @@
64 static unsigned connarray_add_conn(t_connection *c);
65 static void connarray_del_conn(unsigned index);
66
67 +/* send ckeck num to client in channel, by sowater,20050331 */
68 +
69 +static void conn_send_checknum(t_connection * c)
70 +{
71 + if (!c) {
72 + eventlog(eventlog_level_error,__FUNCTION__,"got NULL connection");
73 + return;
74 + }
75 +
76 + if(c->protocol.class!=conn_class_bnet) {
77 + eventlog(eventlog_level_error,__FUNCTION__,"not bnet connection");
78 + return;
79 + }
80 + message_send_text(c,message_type_info,c,"your check number is: ");
81 + eventlog(eventlog_level_info,__FUNCTION__,"have sent check number: ");
82 +}
83 +
84 static void conn_send_welcome(t_connection * c)
85 {
86 char const * filename;
87 @@ -1962,6 +1979,9 @@
88
89 eventlog(eventlog_level_info,__FUNCTION__,"[%d] joined channel \"%s\"",conn_get_socket(c),channel_get_name(c->protocol.chat.channel));
90 conn_send_welcome(c);
91 +
92 + /* by sowater, 20050330 */
93 + /*conn_send_checknum(c);*/
94
95 if(c->protocol.chat.channel && (channel_get_flags(c->protocol.chat.channel) & channel_flags_thevoid))
96 message_send_text(c,message_type_info,c,"This channel does not have chat privileges.");
97 @@ -3776,3 +3796,25 @@
98 curr->c = NULL;
99 elist_add_tail(&arrayflist,&curr->freelist);
100 }
101 +
102 +/* by sowater, 20050331 */
103 +extern char conn_get_checknum(t_connection * c)
104 +{
105 + if(!c) {
106 + eventlog(eventlog_level_error,__FUNCTION__,"got NULL connection");
107 + return -1;
108 + }
109 + return c->protocol.checknum;
110 +}
111 +
112 +extern int conn_set_checknum(t_connection * c, char checknum)
113 +{
114 + if(!c) {
115 + eventlog(eventlog_level_error,__FUNCTION__,"got NULL connection");
116 + return -1;
117 + }
118 + c->protocol.checknum=checknum;
119 + return 0;
120 +}
121 +
122 +
123 diff -urNa pvpgn-1.7.4/src/bnetd/connection.h pvpgn-1.7.4-antibot/src/bnetd/connection.h
124 --- pvpgn-1.7.4/src/bnetd/connection.h 2005-03-04 12:33:31.000000000 +0800
125 +++ pvpgn-1.7.4-antibot/src/bnetd/connection.h 2005-05-26 22:33:02.000000000 +0800
126 @@ -141,6 +141,10 @@
127 unsigned int flags;
128 unsigned int latency;
129 t_account * account;
130 +
131 + /* by sowater, 20050331 */
132 + char checknum;
133 +
134 struct {
135 t_tag archtag;
136 t_tag gamelang;
137 @@ -426,5 +430,8 @@
138 extern t_elist *conn_get_timer(t_connection * c);
139 extern int conn_add_fdwatch(t_connection *c, fdwatch_handler handle);
140
141 +/* by sowater, 20050331 */
142 +extern char conn_get_checknum(t_connection *c);
143 +extern int conn_set_checknum(t_connection *c, char checknum);
144 #endif
145 #endif
146 diff -urNa pvpgn-1.7.4/src/bnetd/handle_bnet.c pvpgn-1.7.4-antibot/src/bnetd/handle_bnet.c
147 --- pvpgn-1.7.4/src/bnetd/handle_bnet.c 2005-03-04 12:33:31.000000000 +0800
148 +++ pvpgn-1.7.4-antibot/src/bnetd/handle_bnet.c 2005-05-26 22:33:02.000000000 +0800
149 @@ -2867,19 +2867,21 @@
150 static int _client_adreq(t_connection * c, t_packet const *const packet)
151 {
152 t_packet *rpacket;
153 + t_clienttag ctag;
154
155 +
156 if (packet_get_size(packet) < sizeof(t_client_adreq)) {
157 eventlog(eventlog_level_error, __FUNCTION__, "[%d] got bad ADREQ packet (expected %u bytes, got %u)", conn_get_socket(c), sizeof(t_client_adreq), packet_get_size(packet));
158 return -1;
159 }
160 -
161 +
162 {
163 t_adbanner *ad;
164
165 if (!(ad = adbanner_pick(c, bn_int_get(packet->u.client_adreq.prev_adid))))
166 return 0;
167
168 - /* eventlog(eventlog_level_debug,__FUNCTION__,"[%d] picking ad file=\"%s\" id=0x%06x tag=%u",conn_get_socket(c),adbanner_get_filename(ad),adbanner_get_id(ad),adbanner_get_extensiontag(ad)); */
169 + eventlog(eventlog_level_debug,__FUNCTION__,"[%d] picking ad file=\"%s\" id=0x%06x tag=%u",conn_get_socket(c),adbanner_get_filename(ad),adbanner_get_id(ad),adbanner_get_extensiontag(ad));
170 if ((rpacket = packet_create(packet_class_bnet))) {
171 packet_set_size(rpacket, sizeof(t_server_adreply));
172 packet_set_type(rpacket, SERVER_ADREPLY);
173 @@ -3169,8 +3171,18 @@
174 } else {
175
176 // not W3
177 - if (conn_set_channel(c, cname) < 0)
178 + if (conn_set_channel(c, cname) < 0) {
179 conn_set_channel(c, CHANNEL_NAME_BANNED); /* should not fail */
180 +
181 + /* by sowater, 20050401 */
182 + }else{
183 + char checknum;
184 + if((checknum=conn_get_checknum(c))<0) {
185 + eventlog(eventlog_level_error,__FUNCTION__,"get checknum form conn fail");
186 + return -1;
187 + }
188 + //message_send_checknum(c,c,checknum);
189 + }
190 }
191 // here we set channel flags on user
192 channel_set_userflags(c);
193 diff -urNa pvpgn-1.7.4/src/bnetd/handle_d2cs.c pvpgn-1.7.4-antibot/src/bnetd/handle_d2cs.c
194 --- pvpgn-1.7.4/src/bnetd/handle_d2cs.c 2005-03-04 12:33:31.000000000 +0800
195 +++ pvpgn-1.7.4-antibot/src/bnetd/handle_d2cs.c 2005-05-26 22:33:02.000000000 +0800
196 @@ -257,6 +257,7 @@
197 char const * realmname;
198 unsigned int pos, reply;
199 t_packet * rpacket;
200 + char const *checknum;
201
202 if (packet_get_size(packet)<sizeof(t_d2cs_bnetd_charloginreq)) {
203 eventlog(eventlog_level_error,__FUNCTION__,"got bad packet size");
204 @@ -273,6 +274,14 @@
205 eventlog(eventlog_level_error,__FUNCTION__,"got bad character portrait");
206 return -1;
207 }
208 +
209 + /* by sowater, 20050401 */
210 + pos+=strlen(portrait)+1;
211 + if(!(checknum=packet_get_data_const(packet,pos,sizeof(char)))) {
212 + eventlog(eventlog_level_error,__FUNCTION__,"get bad checknum");
213 + return -1;
214 + }
215 +
216 if (!(client=connlist_find_connection_by_sessionnum(sessionnum))) {
217 eventlog(eventlog_level_error,__FUNCTION__,"user %d not found",sessionnum);
218 reply = BNETD_D2CS_CHARLOGINREPLY_FAILED;
219 @@ -297,6 +306,12 @@
220 xfree(temp);
221 eventlog(eventlog_level_debug,__FUNCTION__,
222 "loaded portrait for character %s",charname);
223 + /* by sowater */
224 + if(conn_set_checknum(client,*checknum)<0) {
225 + eventlog(eventlog_level_error,__FUNCTION__,"set checknum to connection fail");
226 + }
227 +
228 +
229 }
230 if ((rpacket=packet_create(packet_class_d2cs_bnetd))) {
231 packet_set_size(rpacket,sizeof(t_bnetd_d2cs_charloginreply));
232 diff -urNa pvpgn-1.7.4/src/bnetd/message.c pvpgn-1.7.4-antibot/src/bnetd/message.c
233 --- pvpgn-1.7.4/src/bnetd/message.c 2005-03-04 12:33:32.000000000 +0800
234 +++ pvpgn-1.7.4-antibot/src/bnetd/message.c 2005-05-26 22:33:03.000000000 +0800
235 @@ -1630,3 +1630,21 @@
236
237 return 0;
238 }
239 +
240 +/* sowater, 20050401 */
241 +extern int message_send_checknum(t_connection * dst,t_connection * src, char checknum)
242 +{
243 + char msgbuf[30];
244 + if(!dst) {
245 + eventlog(eventlog_level_error,__FUNCTION__,"got NULL connection");
246 + return -1;
247 + }
248 + if(!checknum) {
249 + eventlog(eventlog_level_error,__FUNCTION__,"got NULL checknum");
250 + return -1;
251 + }
252 + sprintf(msgbuf,"your check id is: %c ",checknum);
253 + message_send_text(dst,message_type_error,src,msgbuf);
254 + return 0;
255 +}
256 +
257 diff -urNa pvpgn-1.7.4/src/bnetd/message.h pvpgn-1.7.4-antibot/src/bnetd/message.h
258 --- pvpgn-1.7.4/src/bnetd/message.h 2005-03-04 12:33:32.000000000 +0800
259 +++ pvpgn-1.7.4-antibot/src/bnetd/message.h 2005-05-26 22:33:03.000000000 +0800
260 @@ -101,5 +101,9 @@
261 extern int message_send_formatted(t_connection * dst, char const * text);
262 extern int message_send_file(t_connection * dst, FILE * fd);
263
264 +/* sowater, 20050401 */
265 +extern int message_send_checknum(t_connection * dst,t_connection * src, char checknum);
266 +
267 +
268 #endif
269 #endif
270 diff -urNa pvpgn-1.7.4/src/d2cs/connection.c pvpgn-1.7.4-antibot/src/d2cs/connection.c
271 --- pvpgn-1.7.4/src/d2cs/connection.c 2005-03-04 12:33:33.000000000 +0800
272 +++ pvpgn-1.7.4-antibot/src/d2cs/connection.c 2005-05-26 22:33:06.000000000 +0800
273 @@ -843,3 +843,18 @@
274 c->fdw_idx = fdwatch_add_fd(c->sock,rw,handler,c);
275 return c->fdw_idx;
276 }
277 +
278 +/* sowater */
279 +extern int d2cs_conn_set_checknum(t_connection *c, char checknum)
280 +{
281 + ASSERT(c,-1);
282 + c->checknum=checknum;
283 + return 0;
284 +}
285 +
286 +extern char d2cs_conn_get_checknum(t_connection *c)
287 +{
288 + ASSERT(c,-1);
289 + return c->checknum;
290 +}
291 +
292 diff -urNa pvpgn-1.7.4/src/d2cs/connection.h pvpgn-1.7.4-antibot/src/d2cs/connection.h
293 --- pvpgn-1.7.4/src/d2cs/connection.h 2005-03-04 12:33:33.000000000 +0800
294 +++ pvpgn-1.7.4-antibot/src/d2cs/connection.h 2005-05-26 22:33:06.000000000 +0800
295 @@ -73,6 +73,10 @@
296 unsigned int bnetd_sessionnum;
297 unsigned int sessionnum_hash;
298 unsigned int charname_hash;
299 +
300 + /* by sowater, 200503031 */
301 + char checknum;
302 +
303 } t_connection;
304
305 typedef int ( * packet_handle_func) (t_connection * c, t_packet * packet);
306 @@ -137,4 +141,8 @@
307 extern int conn_add_fd(t_connection * c, t_fdwatch_type rw, fdwatch_handler handler);
308 extern int connlist_check_timeout(void);
309
310 +/* by sowater, 20050331 */
311 +extern int d2cs_conn_set_checknum(t_connection * c, char checknum);
312 +extern char d2cs_conn_get_checknum(t_connection * c);
313 +
314 #endif
315 diff -urNa pvpgn-1.7.4/src/d2cs/d2cs_random.c pvpgn-1.7.4-antibot/src/d2cs/d2cs_random.c
316 --- pvpgn-1.7.4/src/d2cs/d2cs_random.c 1970-01-01 08:00:00.000000000 +0800
317 +++ pvpgn-1.7.4-antibot/src/d2cs/d2cs_random.c 2005-05-26 22:33:07.000000000 +0800
318 @@ -0,0 +1,30 @@
319 +#include <time.h>
320 +#include <stdlib.h>
321 +
322 +static int d2cs_random_init(void)
323 +{
324 + struct timeval tv;
325 +
326 + if(!gettimeofday(&tv,NULL)) {
327 + const unsigned int seed=(unsigned int)tv.tv_sec^tv.tv_usec;
328 + srandom(seed);
329 + return 0;
330 + }else{
331 + return -1;
332 + }
333 +
334 +}
335 +
336 +extern int d2cs_random_num(void)
337 +{
338 + if(d2cs_random_init())
339 + return -1;
340 + return (random()%10);
341 +}
342 +
343 +extern char d2cs_random_char(void)
344 +{
345 + if(d2cs_random_init())
346 + return -1;
347 + return (random()%7+97);
348 +}
349 diff -urNa pvpgn-1.7.4/src/d2cs/d2cs_random.h pvpgn-1.7.4-antibot/src/d2cs/d2cs_random.h
350 --- pvpgn-1.7.4/src/d2cs/d2cs_random.h 1970-01-01 08:00:00.000000000 +0800
351 +++ pvpgn-1.7.4-antibot/src/d2cs/d2cs_random.h 2005-05-26 22:33:07.000000000 +0800
352 @@ -0,0 +1,6 @@
353 +#ifndef __D2CS_RANDOM_H__
354 +#define __D2CS_RANDOM_H__
355 +
356 +extern int d2cs_random_num(void);
357 +extern char d2cs_random_char(void);
358 +#endif
359 diff -urNa pvpgn-1.7.4/src/d2cs/handle_d2cs.c pvpgn-1.7.4-antibot/src/d2cs/handle_d2cs.c
360 --- pvpgn-1.7.4/src/d2cs/handle_d2cs.c 2005-03-04 12:33:33.000000000 +0800
361 +++ pvpgn-1.7.4-antibot/src/d2cs/handle_d2cs.c 2005-05-26 22:33:06.000000000 +0800
362 @@ -90,6 +90,8 @@
363 #include "common/xalloc.h"
364 #include "common/setup_after.h"
365
366 +/* sowater */
367 +#include "d2cs_random.h"
368
369 static int d2cs_send_client_ladder(t_connection * c, unsigned char type, unsigned short from);
370 static unsigned int d2cs_try_joingame(t_connection const * c, t_game const * game, char const * gamepass);
371 @@ -200,7 +202,7 @@
372 unsigned int reply;
373 unsigned short status, class;
374 t_d2charinfo_file data;
375 -
376 + char checknum;
377 if (!(charname=packet_get_str_const(packet,sizeof(t_client_d2cs_createcharreq),MAX_CHARNAME_LEN))) {
378 eventlog(eventlog_level_error,__FUNCTION__,"got bad character name");
379 return -1;
380 @@ -222,6 +224,13 @@
381 p_closedir(dir);
382 xfree(path);
383
384 + /* sowater */
385 + do {
386 + checknum=d2cs_random_char();
387 + }while(d2cs_conn_get_checknum(c)==checknum);
388 + d2cs_conn_set_checknum(c,checknum);
389 + eventlog(eventlog_level_info,__FUNCTION__,"set checknum %c to connection",checknum);
390 +
391 if (d2char_create(account,charname,class,status)<0) {
392 eventlog(eventlog_level_warn,__FUNCTION__,"error create character %s for account %s",charname,account);
393 reply=D2CS_CLIENT_CREATECHARREPLY_ALREADY_EXIST;
394 @@ -241,6 +250,10 @@
395 conn_get_bnetd_sessionnum(c));
396 packet_append_string(bnpacket,charname);
397 packet_append_string(bnpacket,(char const *)&data.portrait);
398 +
399 + /* sowater */
400 + packet_append_data(bnpacket,&checknum,sizeof(checknum));
401 +
402 conn_push_outqueue(bnetd_conn(),bnpacket);
403 }
404 packet_del_ref(bnpacket);
405 @@ -270,7 +283,10 @@
406 unsigned int seqno, reply;
407 unsigned int pos;
408 t_elem * elem;
409 + char checksum_con;
410 +
411
412 +
413 pos=sizeof(t_client_d2cs_creategamereq);
414 if (!(gamename=packet_get_str_const(packet,pos,MAX_GAMENAME_LEN))) {
415 eventlog(eventlog_level_error,__FUNCTION__,"got bad game name");
416 @@ -286,6 +302,11 @@
417 eventlog(eventlog_level_error,__FUNCTION__,"got bad game desc");
418 return -1;
419 }
420 +
421 + /* sowater */
422 + checksum_con=d2cs_conn_get_checknum(c);
423 +
424 +
425 tempflag=bn_int_get(packet->u.client_d2cs_creategamereq.gameflag);
426 leveldiff=bn_byte_get(packet->u.client_d2cs_creategamereq.leveldiff);
427 maxchar=bn_byte_get(packet->u.client_d2cs_creategamereq.maxchar);
428 @@ -306,6 +327,12 @@
429 if (d2cs_gamelist_find_game(gamename)) {
430 eventlog(eventlog_level_info,__FUNCTION__,"game name %s is already exist in gamelist",gamename);
431 reply=D2CS_CLIENT_CREATEGAMEREPLY_NAME_EXIST;
432 +
433 + /* sowater */
434 + } else if(*gamedesc!=checksum_con) {
435 + eventlog(eventlog_level_info,__FUNCTION__,"checksum %c from packet not match checksum %c from connection",*gamedesc,checksum_con);
436 + reply=D2CS_CLIENT_CREATEGAMEREPLY_FAILED;
437 +
438 } else if (!gq && gqlist_find_game(gamename)) {
439 eventlog(eventlog_level_info,__FUNCTION__,"game name %s is already exist in game queue",gamename);
440 reply=D2CS_CLIENT_CREATEGAMEREPLY_NAME_EXIST;
441 @@ -602,6 +629,7 @@
442 t_sq * sq;
443 t_d2charinfo_file data;
444 unsigned int expire_time;
445 + char checknum;
446
447 if (!(charname=packet_get_str_const(packet,sizeof(t_client_d2cs_charloginreq),MAX_CHARNAME_LEN))) {
448 eventlog(eventlog_level_error,__FUNCTION__,"got bad character name");
449 @@ -635,6 +663,14 @@
450
451 conn_set_charinfo(c,&data.summary);
452 eventlog(eventlog_level_info,__FUNCTION__,"got character %s(*%s) login request",charname,account);
453 +
454 + /*sowater */
455 + do {
456 + checknum=d2cs_random_char();
457 + }while(d2cs_conn_get_checknum(c)==checknum);
458 + d2cs_conn_set_checknum(c,checknum);
459 + eventlog(eventlog_level_info,__FUNCTION__,"set checknum %c to connection",checknum);
460 +
461 if ((bnpacket=packet_create(packet_class_d2cs_bnetd))) {
462 if ((sq=sq_create(d2cs_conn_get_sessionnum(c),packet,0))) {
463 packet_set_size(bnpacket,sizeof(t_d2cs_bnetd_charloginreq));
464 @@ -644,6 +680,10 @@
465 conn_get_bnetd_sessionnum(c));
466 packet_append_string(bnpacket,charname);
467 packet_append_string(bnpacket,(char const *)&data.portrait);
468 +
469 + /*sowater */
470 + packet_append_data(bnpacket,&checknum,sizeof(checknum));
471 +
472 conn_push_outqueue(bnetd_conn(),bnpacket);
473 }
474 packet_del_ref(bnpacket);
475 diff -urNa pvpgn-1.7.4/src/d2cs/handle_d2gs.c pvpgn-1.7.4-antibot/src/d2cs/handle_d2gs.c
476 --- pvpgn-1.7.4/src/d2cs/handle_d2gs.c 2005-09-14 11:18:32.000000000 +0800
477 +++ pvpgn-1.7.4-antibot/src/d2cs/handle_d2gs.c 2005-05-26 22:33:06.000000000 +0800
478 @@ -387,8 +387,12 @@
479 result=bn_int_get(packet->u.d2gs_d2cs_joingamereply.result);
480 switch (result) {
481 case D2GS_D2CS_JOINGAME_SUCCEED:
482 - eventlog(eventlog_level_info,__FUNCTION__,"added %s to game %s on gs %d",d2cs_conn_get_charname(client),
483 - d2cs_game_get_name(game),conn_get_d2gs_id(c));
484 + /* eventlog(eventlog_level_info,__FUNCTION__,"added %s to game %s on gs %d",d2cs_conn_get_charname(client),
485 + d2cs_game_get_name(game),conn_get_d2gs_id(c));*/
486 +
487 + /* We can see ip of char login from, by sowater, 2005.3.25 */
488 + eventlog(eventlog_level_trace,__FUNCTION__,"account %s char %s from %s join game %s",d2cs_conn_get_account(client),d2cs_conn_get_charname(client),addr_num_to_ip_str(d2cs_conn_get_addr(client)),d2cs_game_get_name(game));
489 +
490 reply=D2CS_CLIENT_JOINGAMEREPLY_SUCCEED;
491 break;
492
493 diff -urNa pvpgn-1.7.4/src/Makefile.in pvpgn-1.7.4-antibot/src/Makefile.in
494 --- pvpgn-1.7.4/src/Makefile.in 2005-03-04 12:33:34.000000000 +0800
495 +++ pvpgn-1.7.4-antibot/src/Makefile.in 2005-09-14 15:00:35.887325440 +0800
496 @@ -250,6 +250,7 @@
497 ${SRC_D2CSDIR}/net.o \
498 ${SRC_D2CSDIR}/d2ladder.o \
499 ${SRC_D2CSDIR}/handle_signal.o \
500 +${SRC_D2CSDIR}/d2cs_random.o \
501 ${SRC_COMMONDIR}/hashtable.o \
502 ${SRC_COMMONDIR}/hexdump.o \
503 ${SRC_COMMONDIR}/eventlog.o \

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1