File_Watcher Orpheu
Fail 04.08.2013
#include <amxmodx> #include <orpheu> #define PLUGIN "File watcher" #define VERSION "0.2" #define AUTHOR "mazdan" #define f "file_watcher.log" new Array:aRule new Array:aFile new Array:aRuleType public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_srvcmd("fw_add_file","file_add",_,"fw_add_file <ACCEPT | BLOCK> <filename>") register_srvcmd("fw_rules","show_rules") aRule=ArrayCreate(1,32) aRuleType=ArrayCreate(1,32) aFile=ArrayCreate(128,32) server_cmd("exec filewatcher.cfg") OrpheuRegisterHook(OrpheuGetFunction("FS_Open"),"FS_Open", OrpheuHookPre) } public OrpheuHookReturn:FS_Open(test[],b[]) { if(containi(b,"w")!=-1) { new rule strtolower(test) replace_all(test,strlen(test),"/","\") new len=strlen(test) new count=ArraySize(aFile) for(new i;(i<count && !rule);i++) { new file[128] ArrayGetString(aFile,i,file,127) switch(ArrayGetCell(aRuleType,i)) { case 0:if(equal(test,file)) rule=i+1 case 1:if(containi(test,file)==len-strlen(file)) rule=i+1 case 2:if(containi(test,file)==0) rule=i+1 case 3:if(containi(test,file)!=-1) rule=i+1 } } if(rule) { if(ArrayGetCell(aRule,--rule)) { log_to_file(f,"Rule [#%d] ACCEPT %s",rule,test) return OrpheuIgnored; } else { log_to_file(f,"Rule [#%d] BLOCK %s",rule,test) return OrpheuSupercede; } } else { log_to_file(f,"No rule BLOCK %s",test) return OrpheuSupercede; } } return OrpheuIgnored; } public file_add() { new rule[10] new file[128] read_argv(1,rule,9) read_argv(2,file,127) if(!equal(rule,"ACCEPT") && !equal(rule,"BLOCK")) { log_to_file(f,"RULE ADD ERROR use <ACCEPT | BLOCK>") console_print(0,"RULE ADD ERROR use <ACCEPT | BLOCK>") return PLUGIN_HANDLED; } if(strlen(file)<1) { log_to_file(f,"RULE ADD ERROR ^" ^" to specify filename") console_print(0,"RULE ADD ERROR ^" ^" to specify filename") return PLUGIN_HANDLED; } ArrayPushCell(aRule,equal(rule,"ACCEPT")) ArrayPushCell(aRuleType,((file[0]==42) + 2*(file[strlen(file)-1]==42)) ) //Yep 42 replace_all(file,127,"*","") replace_all(file,127,"/","\") ArrayPushString(aFile,file) return PLUGIN_HANDLED; } public show_rules() { if(!ArraySize(aFile)) console_print(0,"NO RULES FOUND!") else { new count=ArraySize(aFile) for(new i;i<count;i++) { new file[128] ArrayGetString(aFile,i,file,127) console_print(0,"[%d] %s %s%s%s",i,(ArrayGetCell(aRule,i))?"ACCEPT":"BLOCK",(ArrayGetCell(aRuleType,i) & 1)?"*":"",file,(ArrayGetCell(aRuleType,i) & 2)?"*":"") } } }
Chce wgrac sobie file_watcher który zapobiegnie włamaniu ruskim hackiem i podczas kompilacji wywala mi blad:
Warning: Tag mismatch on line 91 Warning: Tag mismatch on line 91 Warning: Tag mismatch on line 109 Warning: Tag mismatch on line 109 4 Warnings. Done.
Jak to poprawic? Te linijki to:
91:
ArrayPushCell(aRuleType,((file[0]==42) + 2*(file[strlen(file)-1]==42)) ) //Yep 42
109
console_print(0,"[%d] %s %s%s%s",i,(ArrayGetCell(aRule,i))?"ACCEPT":"BLOCK",(ArrayGetCell(aRuleType,i) & 1)?"*":"",file,(ArrayGetCell(aRuleType,i) & 2)?"*":"")
dasiek
04.08.2013
Ten temat został przeniesiony z forum
Scripting AMXX → Pluginy
do
Scripting AMXX → Problemy
Scorpion Flail
04.08.2013
Plugin mimo tego erroru się kompiluje, ale nie wiem skąd go wziąłeś [zajmuje ponad 5KB]
Skorzystaj z tego tematu, w 100% działające łatki, w tym file watcher z orpheu:
http://gamehostingtalk.pl/index.php/topic/19024-ochrona-silnika-hlds/
Fail 04.08.2013
no tak, lecz tam nie ma .sma tego filewatchera a binarka w zaden sposob nie pomaga bo z ta binarka mi sie wlamali
Fail 05.08.2013
Ja nie pytam o twoje odczucia i problemy lecz proszę o naprawienie pluginu tak aby nie zawieral błędów.
DarkGL
05.08.2013
#include <amxmodx> #include <orpheu> #define PLUGIN "File watcher" #define VERSION "0.2" #define AUTHOR "mazdan" #define f "file_watcher.log" new Array:aRule new Array:aFile new Array:aRuleType public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_srvcmd("fw_add_file","file_add",_,"fw_add_file <ACCEPT | BLOCK> <filename>") register_srvcmd("fw_rules","show_rules") aRule=ArrayCreate(1,32) aRuleType=ArrayCreate(1,32) aFile=ArrayCreate(128,32) server_cmd("exec filewatcher.cfg") OrpheuRegisterHook(OrpheuGetFunction("FS_Open"),"FS_Open", OrpheuHookPre) } public OrpheuHookReturn:FS_Open(test[],b[]) { if(containi(b,"w")!=-1) { new rule strtolower(test) replace_all(test,strlen(test),"/","\") new len=strlen(test) new count=ArraySize(aFile) for(new i;(i<count && !rule);i++) { new file[128] ArrayGetString(aFile,i,file,127) switch(ArrayGetCell(aRuleType,i)) { case 0:if(equal(test,file)) rule=i+1 case 1:if(containi(test,file)==len-strlen(file)) rule=i+1 case 2:if(containi(test,file)==0) rule=i+1 case 3:if(containi(test,file)!=-1) rule=i+1 } } if(rule) { if(ArrayGetCell(aRule,--rule)) { log_to_file(f,"Rule [#%d] ACCEPT %s",rule,test) return OrpheuIgnored; } else { log_to_file(f,"Rule [#%d] BLOCK %s",rule,test) return OrpheuSupercede; } } else { log_to_file(f,"No rule BLOCK %s",test) return OrpheuSupercede; } } return OrpheuIgnored; } public file_add() { new rule[10] new file[128] read_argv(1,rule,9) read_argv(2,file,127) if(!equal(rule,"ACCEPT") && !equal(rule,"BLOCK")) { log_to_file(f,"RULE ADD ERROR use <ACCEPT | BLOCK>") console_print(0,"RULE ADD ERROR use <ACCEPT | BLOCK>") return PLUGIN_HANDLED; } if(strlen(file)<1) { log_to_file(f,"RULE ADD ERROR ^" ^" to specify filename") console_print(0,"RULE ADD ERROR ^" ^" to specify filename") return PLUGIN_HANDLED; } ArrayPushCell(aRule,equal(rule,"ACCEPT")) ArrayPushCell(aRuleType,(_:(file[0]==42) + 2*_:(file[strlen(file)-1]==42)) ) //Yep 42 replace_all(file,127,"*","") replace_all(file,127,"/","\") ArrayPushString(aFile,file) return PLUGIN_HANDLED; } public show_rules() { if(!ArraySize(aFile)) console_print(0,"NO RULES FOUND!") else { new count=ArraySize(aFile) for(new i;i<count;i++) { new file[128] ArrayGetString(aFile,i,file,127) console_print(0,"[%d] %s %s%s%s",i,(ArrayGetCell(aRule,i))?"ACCEPT":"BLOCK",(ArrayGetCell(aRuleType,i) & 1)?"*":"",file,(ArrayGetCell(aRuleType,i) & 2)?"*":"") } } }
Chce wgrac sobie file_watcher który zapobiegnie włamaniu ruskim hackiem i podczas kompilacji wywala mi blad: Warning: Tag mismatch on line 91 Warning: Tag mismatch on line 91 Warning: Tag mismatch on line 109 Warning: Tag mismatch on line 109 4 Warnings. Done.
a ja tu widzę że kompilacja przebiegła pomyśle nawet masz piękny komunikat Done.
Fail 05.08.2013
a w którym miejscu napisałem że kompilacja przebiegła w sposób nie prawidłowy? Napisałem tylko i wyłącznie że chce wyeliminować te błędy (ostrzeżenia).
wywala tag mismatch jeszcze tutaj
console_print(0,"[%d] %s %s%s%s",i,(ArrayGetCell(aRule,i))?"ACCEPT":"BLOCK",(ArrayGetCell(aRuleType,i) & 1)?"*":"",file,(ArrayGetCell(aRuleType,i) & 2)?"*":"")
Edited by Fail, 05.08.2013 12:31.