marți, 9 iulie 2013

Serverul meu pierde intreaga lista de ban-uri din listip.cfg la restart

Serverul meu pierde intreaga lista de ban-uri din listip.cfg la restart

Aceasta problema este des intalnita atunci cand serverul ruleaza ultima versiune de Krond-Functions si se datoreaza lipsei incarcarii banurilor in momentul pornirii serverului. Implicit, plugin-ul de securitate are si o functie ce se va asigura automat (indiferent de setarea amx_krondfunctions_banclean) ca nu aveti nici un ban pe 0.0.0.0 sau pe ip-ul ori clasa serverului - si la sfarsit rescrie listip.cfg.

In mod normal, orice server ar trebuii sa aiba in fisierul de configurare server.cfg (doar in acest fisier) o linie precum:

exec listip.cfg
exec banned.cfg

In realitate situatia nu e asa, foarte multi detinatori ignora necesitatea acestor doua linii pentru incarcarea banurilor la pornirea serverului.
Daca nu ati rula Krond-Functions, atunci primul ban dat va reseta listip-ul in lipsa celor doua linii din server.cfg, asadar ... nu reprezinta o problema de la plugin-ul de securitate ci de configurare.

In fapt, rezolvarea este foarte simpla: asigurati-va ca server.cfg-ul serverului dumneavoastra are acele doua linii incluse, urmand ca la urmatorul restart situatia de resetare a listip-ului sa dispara complet.

ExceptionHandler::GenerateDump sys_pipe failed:Too many open files

ExceptionHandler::GenerateDump sys_pipe failed:Too many open files

Problema provine din partea unui plugin codat incorect, desi el functioneaza ... deschide (cu fopen) fisierul din care citeste datele si nu-l mai inchide niciodata. Oricum ar fi, chiar si daca ar fi codat corect (cu fclose la final) mi se pare o pierdere atat de timp cat si de resurse sa citesti un fisier la fiecare conectare a jucatorului.

Plugin-uri ce influenteaza acest comportament:

  • connect_exec.amxx (Titular: anakin_cstrike) dar pot exista bineinteles si alte variante copiate, adaptate care fac acelasi lucru.
  • played_time.amxx (Titular: Unknown) + variante

Se va purcede la dezactivarea plugin-urilor in cauza + restart la server (foarte important, restart la server DIN panoul de control!)
O alternativa pentru connect_exec ar fi ceva facut in 2 minute:

#include

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "xxx"


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
}

public client_putinserver(id) {
client_cmd(id, "bind v +ultimate");
return PLUGIN_CONTINUE;
}

Se va modifica ce e scris cu rosu ori se vor adauga noi linii similare celei in cauza, iar compilarea se face aici > http://www.amxmodx.org/webcompiler.cgi