From bd9caeefe3cfc9b4194c31052b0ddd4da26f604c Mon Sep 17 00:00:00 2001 From: Greg Burri Date: Tue, 29 Jul 2008 12:10:26 +0000 Subject: [PATCH] =?utf8?q?D=C3=A9placement=20de=20fonction=20dans=20euphor?= =?utf8?q?ik=5Fcommon.erl?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- doc/architecture_serveur.svg | 9 ++++++++- modules/erl/euphorik_bd.erl | 17 ++++------------- modules/erl/euphorik_common.erl | 16 +++++++++++++--- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/doc/architecture_serveur.svg b/doc/architecture_serveur.svg index 67c1d55..7051db2 100644 --- a/doc/architecture_serveur.svg +++ b/doc/architecture_serveur.svg @@ -59,7 +59,7 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="1.4" - inkscape:cx="327.96873" + inkscape:cx="198.32587" inkscape:cy="545.33419" inkscape:document-units="px" inkscape:current-layer="layer1" @@ -440,5 +440,12 @@ id="tspan2569" x="575.31531" y="608.81085">Utilise + diff --git a/modules/erl/euphorik_bd.erl b/modules/erl/euphorik_bd.erl index cad8183..921bac5 100755 --- a/modules/erl/euphorik_bd.erl +++ b/modules/erl/euphorik_bd.erl @@ -285,7 +285,7 @@ nouveau_message(Mess, Auteur_id, Repond_A_ids) -> {erreur, "Un ou plusieurs messages introuvable"}; true -> % comparaison entre la date du dernier poste et maintenant (gestion du flood) - Delta = delta_date_ms(Auteur#user.date_derniere_connexion, now()), + Delta = euphorik_common:delta_date_ms(Auteur#user.date_derniere_connexion, now()), Nouvel_indice_flood = Auteur#user.indice_flood + if Delta =< ?DUREE_SPAM -> 2; true -> -1 end, Auteur_maj = Auteur#user{ indice_flood = if Nouvel_indice_flood > ?INDICE_SPAM_MAX -> ?INDICE_SPAM_MAX; Nouvel_indice_flood < 0 -> 0; true -> Nouvel_indice_flood end, @@ -554,7 +554,7 @@ list_ban() -> e(qlc:keysort(1, q([ { IP#ip_table.ip, - delta_date_minute(date_plus_minutes(IP#ip_table.ban, IP#ip_table.ban_duration), Now), + euphorik_common:delta_date_minute(date_plus_minutes(IP#ip_table.ban, IP#ip_table.ban_duration), Now), e(q([{Profile#profile.pseudo, U#user.login} || #user{profile = Profile} = U <- mnesia:table(user), U#user.last_ip =:= IP#ip_table.ip]), [{tmpdir, ?KEY_SORT_TEMP_DIR}]) } || IP <- mnesia:table(ip_table), @@ -601,7 +601,7 @@ est_banni(User_id) -> if Echeance < Now -> % l'échéance est passée false; true -> - {true, delta_date_minute(Echeance, Now)} + {true, euphorik_common:delta_date_minute(Echeance, Now)} end; _ -> false @@ -630,7 +630,7 @@ can_register(IP) -> mnesia:write(#ip_table{ip = IP, date_last_try_register = now()}), true; [T] -> - Delta = delta_date_ms(T#ip_table.date_last_try_register, now()), + Delta = euphorik_common:delta_date_ms(T#ip_table.date_last_try_register, now()), if T#ip_table.nb_try_register =:= ?NB_MAX_FLOOD_REGISTER, Delta < ?TEMPS_BAN_FLOOD_REGISTER -> false; true -> @@ -798,15 +798,6 @@ message_id_associe(Troll_id) -> % Renvoie le résultat d'une transaction (en décomposant le tuple fournit) resultat_transaction({_, T}) -> T. - - -% Retourne la difference entre deux timestamp (erlang:now()) en miliseconde -delta_date_ms(D1, D2) -> - 1000000000 * abs(element(1, D1) - element(1, D2)) + 1000 * abs(element(2, D1) - element(2, D2)) + trunc(abs(element(3, D1) - element(3, D2)) / 1000). - -% Retourne la différence entre deux timestamp (erlang:now) en minutes -delta_date_minute(D1, D2) -> - trunc(delta_date_ms(D1, D2) / 1000 / 60). % Renvoie un nouvel id pour une table donnée diff --git a/modules/erl/euphorik_common.erl b/modules/erl/euphorik_common.erl index e91eff6..ff251d7 100644 --- a/modules/erl/euphorik_common.erl +++ b/modules/erl/euphorik_common.erl @@ -16,7 +16,7 @@ % You should have received a copy of the GNU General Public License % along with Euphorik. If not, see . % -% Module avec plein de bordel utile à l'intérieur +% Module avec plein de bordel utile à l'intérieur. % @author G.Burri @@ -37,8 +37,18 @@ ceiling(X) -> Neg when Neg < 0 -> T; Pos when Pos > 0 -> T + 1; _ -> T - end. - + end. + + +% Retourne la difference entre deux timestamp (erlang:now()) en miliseconde +delta_date_ms(D1, D2) -> + 1000000000 * abs(element(1, D1) - element(1, D2)) + 1000 * abs(element(2, D1) - element(2, D2)) + trunc(abs(element(3, D1) - element(3, D2)) / 1000). + + +% Retourne la différence entre deux timestamp (erlang:now) en minutes +delta_date_minute(D1, D2) -> + trunc(delta_date_ms(D1, D2) / 1000 / 60). + serialize_ip(undefined) -> ""; -- 2.43.0