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

Contents of /pvpgn-1.7.4/ANTIBOT/pvpgn-1.7.4-antibot-20051002.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 -ruNa 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-10-02 12:41:13.850474328 +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 -ruNa 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-10-02 12:41:14.407389664 +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 -ruNa 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-10-02 12:41:14.416388296 +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 -ruNa 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-10-02 12:41:14.622356984 +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,19 @@
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 + /* send checknum to channel and display it, i wont use this way any more, 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 + /* dont use this way,so...*/
189 + //message_send_checknum(c,c,checknum);
190 + }
191 }
192 // here we set channel flags on user
193 channel_set_userflags(c);
194 diff -ruNa pvpgn-1.7.4/src/bnetd/handle_d2cs.c pvpgn-1.7.4-antibot/src/bnetd/handle_d2cs.c
195 --- pvpgn-1.7.4/src/bnetd/handle_d2cs.c 2005-03-04 12:33:31.000000000 +0800
196 +++ pvpgn-1.7.4-antibot/src/bnetd/handle_d2cs.c 2005-10-02 12:41:14.691346496 +0800
197 @@ -257,6 +257,7 @@
198 char const * realmname;
199 unsigned int pos, reply;
200 t_packet * rpacket;
201 + char const *checknum;
202
203 if (packet_get_size(packet)<sizeof(t_d2cs_bnetd_charloginreq)) {
204 eventlog(eventlog_level_error,__FUNCTION__,"got bad packet size");
205 @@ -273,6 +274,14 @@
206 eventlog(eventlog_level_error,__FUNCTION__,"got bad character portrait");
207 return -1;
208 }
209 +
210 + /* get checknum generated by d2cs from packet, by sowater,20050401 */
211 + pos+=strlen(portrait)+1;
212 + if(!(checknum=packet_get_data_const(packet,pos,sizeof(char)))) {
213 + eventlog(eventlog_level_error,__FUNCTION__,"get bad checknum");
214 + return -1;
215 + }
216 +
217 if (!(client=connlist_find_connection_by_sessionnum(sessionnum))) {
218 eventlog(eventlog_level_error,__FUNCTION__,"user %d not found",sessionnum);
219 reply = BNETD_D2CS_CHARLOGINREPLY_FAILED;
220 @@ -297,6 +306,12 @@
221 xfree(temp);
222 eventlog(eventlog_level_debug,__FUNCTION__,
223 "loaded portrait for character %s",charname);
224 + /* save checknum in t_connection, by sowater */
225 + if(conn_set_checknum(client,*checknum)<0) {
226 + eventlog(eventlog_level_error,__FUNCTION__,"set checknum to connection fail");
227 + }
228 +
229 +
230 }
231 if ((rpacket=packet_create(packet_class_d2cs_bnetd))) {
232 packet_set_size(rpacket,sizeof(t_bnetd_d2cs_charloginreply));
233 diff -ruNa pvpgn-1.7.4/src/bnetd/message.c pvpgn-1.7.4-antibot/src/bnetd/message.c
234 --- pvpgn-1.7.4/src/bnetd/message.c 2005-03-04 12:33:32.000000000 +0800
235 +++ pvpgn-1.7.4-antibot/src/bnetd/message.c 2005-10-02 12:41:15.241262896 +0800
236 @@ -1630,3 +1630,21 @@
237
238 return 0;
239 }
240 +
241 +/* sowater, 20050401 */
242 +extern int message_send_checknum(t_connection * dst,t_connection * src, char checknum)
243 +{
244 + char msgbuf[30];
245 + if(!dst) {
246 + eventlog(eventlog_level_error,__FUNCTION__,"got NULL connection");
247 + return -1;
248 + }
249 + if(!checknum) {
250 + eventlog(eventlog_level_error,__FUNCTION__,"got NULL checknum");
251 + return -1;
252 + }
253 + sprintf(msgbuf,"your check id is: %c ",checknum);
254 + message_send_text(dst,message_type_error,src,msgbuf);
255 + return 0;
256 +}
257 +
258 diff -ruNa pvpgn-1.7.4/src/bnetd/message.h pvpgn-1.7.4-antibot/src/bnetd/message.h
259 --- pvpgn-1.7.4/src/bnetd/message.h 2005-03-04 12:33:32.000000000 +0800
260 +++ pvpgn-1.7.4-antibot/src/bnetd/message.h 2005-10-02 12:41:15.246262136 +0800
261 @@ -101,5 +101,9 @@
262 extern int message_send_formatted(t_connection * dst, char const * text);
263 extern int message_send_file(t_connection * dst, FILE * fd);
264
265 +/* sowater, 20050401 */
266 +extern int message_send_checknum(t_connection * dst,t_connection * src, char checknum);
267 +
268 +
269 #endif
270 #endif
271 diff -ruNa pvpgn-1.7.4/src/d2cs/connection.c pvpgn-1.7.4-antibot/src/d2cs/connection.c
272 --- pvpgn-1.7.4/src/d2cs/connection.c 2005-03-04 12:33:33.000000000 +0800
273 +++ pvpgn-1.7.4-antibot/src/d2cs/connection.c 2005-10-02 12:41:16.002147224 +0800
274 @@ -843,3 +843,18 @@
275 c->fdw_idx = fdwatch_add_fd(c->sock,rw,handler,c);
276 return c->fdw_idx;
277 }
278 +
279 +/* sowater */
280 +extern int d2cs_conn_set_checknum(t_connection *c, char checknum)
281 +{
282 + ASSERT(c,-1);
283 + c->checknum=checknum;
284 + return 0;
285 +}
286 +
287 +extern char d2cs_conn_get_checknum(t_connection *c)
288 +{
289 + ASSERT(c,-1);
290 + return c->checknum;
291 +}
292 +
293 diff -ruNa pvpgn-1.7.4/src/d2cs/connection.h pvpgn-1.7.4-antibot/src/d2cs/connection.h
294 --- pvpgn-1.7.4/src/d2cs/connection.h 2005-03-04 12:33:33.000000000 +0800
295 +++ pvpgn-1.7.4-antibot/src/d2cs/connection.h 2005-10-02 12:41:16.009146160 +0800
296 @@ -73,6 +73,10 @@
297 unsigned int bnetd_sessionnum;
298 unsigned int sessionnum_hash;
299 unsigned int charname_hash;
300 +
301 + /* by sowater, 200503031 */
302 + char checknum;
303 +
304 } t_connection;
305
306 typedef int ( * packet_handle_func) (t_connection * c, t_packet * packet);
307 @@ -137,4 +141,8 @@
308 extern int conn_add_fd(t_connection * c, t_fdwatch_type rw, fdwatch_handler handler);
309 extern int connlist_check_timeout(void);
310
311 +/* by sowater, 20050331 */
312 +extern int d2cs_conn_set_checknum(t_connection * c, char checknum);
313 +extern char d2cs_conn_get_checknum(t_connection * c);
314 +
315 #endif
316 diff -ruNa pvpgn-1.7.4/src/d2cs/d2cs_random.c pvpgn-1.7.4-antibot/src/d2cs/d2cs_random.c
317 --- pvpgn-1.7.4/src/d2cs/d2cs_random.c 1970-01-01 08:00:00.000000000 +0800
318 +++ pvpgn-1.7.4-antibot/src/d2cs/d2cs_random.c 2005-10-02 12:41:16.674045080 +0800
319 @@ -0,0 +1,30 @@
320 +#include <time.h>
321 +#include <stdlib.h>
322 +
323 +static int d2cs_random_init(void)
324 +{
325 + struct timeval tv;
326 +
327 + if(!gettimeofday(&tv,NULL)) {
328 + const unsigned int seed=(unsigned int)tv.tv_sec^tv.tv_usec;
329 + srandom(seed);
330 + return 0;
331 + }else{
332 + return -1;
333 + }
334 +
335 +}
336 +
337 +extern int d2cs_random_num(void)
338 +{
339 + if(d2cs_random_init())
340 + return -1;
341 + return (random()%10);
342 +}
343 +
344 +extern char d2cs_random_char(void)
345 +{
346 + if(d2cs_random_init())
347 + return -1;
348 + return (random()%7+97);
349 +}
350 diff -ruNa pvpgn-1.7.4/src/d2cs/d2cs_random.h pvpgn-1.7.4-antibot/src/d2cs/d2cs_random.h
351 --- pvpgn-1.7.4/src/d2cs/d2cs_random.h 1970-01-01 08:00:00.000000000 +0800
352 +++ pvpgn-1.7.4-antibot/src/d2cs/d2cs_random.h 2005-10-02 12:41:16.677044624 +0800
353 @@ -0,0 +1,6 @@
354 +#ifndef __D2CS_RANDOM_H__
355 +#define __D2CS_RANDOM_H__
356 +
357 +extern int d2cs_random_num(void);
358 +extern char d2cs_random_char(void);
359 +#endif
360 diff -ruNa pvpgn-1.7.4/src/d2cs/handle_d2cs.c pvpgn-1.7.4-antibot/src/d2cs/handle_d2cs.c
361 --- pvpgn-1.7.4/src/d2cs/handle_d2cs.c 2005-03-04 12:33:33.000000000 +0800
362 +++ pvpgn-1.7.4-antibot/src/d2cs/handle_d2cs.c 2005-10-02 12:41:16.279105120 +0800
363 @@ -90,6 +90,8 @@
364 #include "common/xalloc.h"
365 #include "common/setup_after.h"
366
367 +/* sowater */
368 +#include "d2cs_random.h"
369
370 static int d2cs_send_client_ladder(t_connection * c, unsigned char type, unsigned short from);
371 static unsigned int d2cs_try_joingame(t_connection const * c, t_game const * game, char const * gamepass);
372 @@ -200,7 +202,7 @@
373 unsigned int reply;
374 unsigned short status, class;
375 t_d2charinfo_file data;
376 -
377 + char checknum;
378 if (!(charname=packet_get_str_const(packet,sizeof(t_client_d2cs_createcharreq),MAX_CHARNAME_LEN))) {
379 eventlog(eventlog_level_error,__FUNCTION__,"got bad character name");
380 return -1;
381 @@ -222,6 +224,13 @@
382 p_closedir(dir);
383 xfree(path);
384
385 + /* generate checknum, save it in t_connection, and send it to bnetd, by sowater */
386 + do {
387 + checknum=d2cs_random_char();
388 + }while(d2cs_conn_get_checknum(c)==checknum);
389 + d2cs_conn_set_checknum(c,checknum);
390 + eventlog(eventlog_level_info,__FUNCTION__,"set checknum %c to connection",checknum);
391 +
392 if (d2char_create(account,charname,class,status)<0) {
393 eventlog(eventlog_level_warn,__FUNCTION__,"error create character %s for account %s",charname,account);
394 reply=D2CS_CLIENT_CREATECHARREPLY_ALREADY_EXIST;
395 @@ -241,6 +250,10 @@
396 conn_get_bnetd_sessionnum(c));
397 packet_append_string(bnpacket,charname);
398 packet_append_string(bnpacket,(char const *)&data.portrait);
399 +
400 + /* sowater */
401 + packet_append_data(bnpacket,&checknum,sizeof(checknum));
402 +
403 conn_push_outqueue(bnetd_conn(),bnpacket);
404 }
405 packet_del_ref(bnpacket);
406 @@ -270,7 +283,10 @@
407 unsigned int seqno, reply;
408 unsigned int pos;
409 t_elem * elem;
410 + char checksum_con;
411 +
412
413 +
414 pos=sizeof(t_client_d2cs_creategamereq);
415 if (!(gamename=packet_get_str_const(packet,pos,MAX_GAMENAME_LEN))) {
416 eventlog(eventlog_level_error,__FUNCTION__,"got bad game name");
417 @@ -286,6 +302,11 @@
418 eventlog(eventlog_level_error,__FUNCTION__,"got bad game desc");
419 return -1;
420 }
421 +
422 + /* get checknum from client, by sowater */
423 + checksum_con=d2cs_conn_get_checknum(c);
424 +
425 +
426 tempflag=bn_int_get(packet->u.client_d2cs_creategamereq.gameflag);
427 leveldiff=bn_byte_get(packet->u.client_d2cs_creategamereq.leveldiff);
428 maxchar=bn_byte_get(packet->u.client_d2cs_creategamereq.maxchar);
429 @@ -306,6 +327,16 @@
430 if (d2cs_gamelist_find_game(gamename)) {
431 eventlog(eventlog_level_info,__FUNCTION__,"game name %s is already exist in gamelist",gamename);
432 reply=D2CS_CLIENT_CREATEGAMEREPLY_NAME_EXIST;
433 +
434 + /* right checknum? sowater */
435 + } else if((*gamedesc!=checksum_con) && (prefs_antibot_when_password()==0) && prefs_enable_antibot()) {
436 + eventlog(eventlog_level_info,__FUNCTION__,"checksum %c from packet not match checksum %c from connection",*gamedesc,checksum_con);
437 + reply=D2CS_CLIENT_CREATEGAMEREPLY_FAILED;
438 + /* when antibot_when_password is true, by sowater, 20051001 */
439 + } else if((*gamedesc!=checksum_con) && (strlen(gamepass)!=0) && prefs_antibot_when_password()
440 + && prefs_enable_antibot()) {
441 +
442 +
443 } else if (!gq && gqlist_find_game(gamename)) {
444 eventlog(eventlog_level_info,__FUNCTION__,"game name %s is already exist in game queue",gamename);
445 reply=D2CS_CLIENT_CREATEGAMEREPLY_NAME_EXIST;
446 @@ -602,6 +633,7 @@
447 t_sq * sq;
448 t_d2charinfo_file data;
449 unsigned int expire_time;
450 + char checknum;
451
452 if (!(charname=packet_get_str_const(packet,sizeof(t_client_d2cs_charloginreq),MAX_CHARNAME_LEN))) {
453 eventlog(eventlog_level_error,__FUNCTION__,"got bad character name");
454 @@ -635,6 +667,14 @@
455
456 conn_set_charinfo(c,&data.summary);
457 eventlog(eventlog_level_info,__FUNCTION__,"got character %s(*%s) login request",charname,account);
458 +
459 + /* generate checknum, save it in t_connection, and send it to bnetd, by sowater */
460 + do {
461 + checknum=d2cs_random_char();
462 + }while(d2cs_conn_get_checknum(c)==checknum);
463 + d2cs_conn_set_checknum(c,checknum);
464 + eventlog(eventlog_level_info,__FUNCTION__,"set checknum %c to connection",checknum);
465 +
466 if ((bnpacket=packet_create(packet_class_d2cs_bnetd))) {
467 if ((sq=sq_create(d2cs_conn_get_sessionnum(c),packet,0))) {
468 packet_set_size(bnpacket,sizeof(t_d2cs_bnetd_charloginreq));
469 @@ -644,6 +684,10 @@
470 conn_get_bnetd_sessionnum(c));
471 packet_append_string(bnpacket,charname);
472 packet_append_string(bnpacket,(char const *)&data.portrait);
473 +
474 + /*sowater */
475 + packet_append_data(bnpacket,&checknum,sizeof(checknum));
476 +
477 conn_push_outqueue(bnetd_conn(),bnpacket);
478 }
479 packet_del_ref(bnpacket);
480 diff -ruNa pvpgn-1.7.4/src/d2cs/handle_d2gs.c pvpgn-1.7.4-antibot/src/d2cs/handle_d2gs.c
481 --- pvpgn-1.7.4/src/d2cs/handle_d2gs.c 2005-09-14 11:18:32.000000000 +0800
482 +++ pvpgn-1.7.4-antibot/src/d2cs/handle_d2gs.c 2005-10-02 12:41:16.297102384 +0800
483 @@ -387,8 +387,12 @@
484 result=bn_int_get(packet->u.d2gs_d2cs_joingamereply.result);
485 switch (result) {
486 case D2GS_D2CS_JOINGAME_SUCCEED:
487 - eventlog(eventlog_level_info,__FUNCTION__,"added %s to game %s on gs %d",d2cs_conn_get_charname(client),
488 - d2cs_game_get_name(game),conn_get_d2gs_id(c));
489 + /* eventlog(eventlog_level_info,__FUNCTION__,"added %s to game %s on gs %d",d2cs_conn_get_charname(client),
490 + d2cs_game_get_name(game),conn_get_d2gs_id(c));*/
491 +
492 + /* We can see ip of char login from, by sowater, 2005.3.25 */
493 + 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));
494 +
495 reply=D2CS_CLIENT_JOINGAMEREPLY_SUCCEED;
496 break;
497
498 diff -ruNa pvpgn-1.7.4/src/d2cs/prefs.c pvpgn-1.7.4-antibot/src/d2cs/prefs.c
499 --- pvpgn-1.7.4/src/d2cs/prefs.c 2005-03-04 12:33:33.000000000 +0800
500 +++ pvpgn-1.7.4-antibot/src/d2cs/prefs.c 2005-10-02 12:41:16.349094480 +0800
501 @@ -92,6 +92,9 @@
502 { "charlist_sort", offsetof(t_prefs,charlist_sort), conf_type_str, 0, "none" },
503 { "charlist_sort_order", offsetof(t_prefs,charlist_sort_order), conf_type_str, 0, "ASC" },
504 { "max_connections", offsetof(t_prefs,max_connections), conf_type_int, BNETD_MAX_SOCKETS, NULL },
505 + /* instructions for antibot, by sowater, 20051001 */
506 + { "enable_antibot", offsetof(t_prefs,enable_antibot), conf_type_bool, 0, NULL},
507 + { "antibot_when_password", offsetof(t_prefs,antibot_when_password), conf_type_bool, 0, NULL},
508 { NULL, 0, conf_type_none, 0, NULL }
509 };
510
511 @@ -362,3 +365,17 @@
512 {
513 return prefs_conf.max_connections;
514 }
515 +
516 +/* get values of instructions for antibot, by sowater ,20051001 */
517 +
518 +extern unsigned int prefs_enable_antibot(void)
519 +{
520 + return prefs_conf.enable_antibot;
521 +}
522 +
523 +extern unsigned int prefs_antibot_when_password(void)
524 +{
525 + return prefs_conf.antibot_when_password;
526 +}
527 +
528 +
529 diff -ruNa pvpgn-1.7.4/src/d2cs/prefs.h pvpgn-1.7.4-antibot/src/d2cs/prefs.h
530 --- pvpgn-1.7.4/src/d2cs/prefs.h 2005-03-04 12:33:33.000000000 +0800
531 +++ pvpgn-1.7.4-antibot/src/d2cs/prefs.h 2005-10-02 12:41:16.398087032 +0800
532 @@ -65,6 +65,11 @@
533 unsigned int d2gs_restart_delay;
534 unsigned int ladder_start_time;
535 unsigned int char_expire_day;
536 +
537 + /* instruction for antibot, by sowater, 20051001 */
538 + unsigned int enable_antibot;
539 + unsigned int antibot_when_password;
540 +
541 char const * charlist_sort;
542 char const * charlist_sort_order;
543 unsigned int max_connections;
544 @@ -124,4 +129,8 @@
545 extern char const * prefs_get_charlist_sort_order(void);
546 extern unsigned int prefs_get_max_connections(void);
547
548 +/* get values of instructions for antibot, by sowater, 20051001 */
549 +extern unsigned int prefs_enable_antibot(void);
550 +extern unsigned int prefs_antibot_when_password(void);
551 +
552 #endif
553 diff -ruNa pvpgn-1.7.4/src/Makefile.in pvpgn-1.7.4-antibot/src/Makefile.in
554 --- pvpgn-1.7.4/src/Makefile.in 2005-03-04 12:33:34.000000000 +0800
555 +++ pvpgn-1.7.4-antibot/src/Makefile.in 2005-10-02 12:41:17.292950992 +0800
556 @@ -250,6 +250,7 @@
557 ${SRC_D2CSDIR}/net.o \
558 ${SRC_D2CSDIR}/d2ladder.o \
559 ${SRC_D2CSDIR}/handle_signal.o \
560 +${SRC_D2CSDIR}/d2cs_random.o \
561 ${SRC_COMMONDIR}/hashtable.o \
562 ${SRC_COMMONDIR}/hexdump.o \
563 ${SRC_COMMONDIR}/eventlog.o \

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