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

Annotation of /pvpgn-1.7.4/ANTIBOT/pvpgn-1.7.4-antibot-20051002.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide 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 sysadm 1.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