From: Jean-Marc Pigeon (Delson) Date: Fri, 8 Aug 2025 10:45:37 +0000 (-0400) Subject: Unified credit report format X-Git-Tag: tag-0.15~24 X-Git-Url: https://jmp-git.ovh.safe.ca/?a=commitdiff_plain;h=bb679c123c29be40c46e506f7d8a08a356fc840f;p=jmp%2Fmailleur Unified credit report format --- diff --git a/app/scanner.c b/app/scanner.c index cd7afb3..0ecce7b 100644 --- a/app/scanner.c +++ b/app/scanner.c @@ -1,7 +1,7 @@ // vim: smarttab tabstop=8 shiftwidth=2 expandtab /********************************************************/ /* */ -/* Handle all remote IP creditbilty level */ +/* Handle all remote IP credibility level */ /* By scanning database for new entry within */ /* database tables remotes and try to establish */ /* remote server "credibility" according remote IP.*/ @@ -82,6 +82,11 @@ while (proceed==true) { srv->credit=0; srv->lastscan=time((time_t *)0); if (dnsblk!=(BLKTYP **)0) { + int delta; + char *bank; + + delta=0; + bank=(char *)0; while (*dnsblk!=(BLKTYP *)0) { char *report; char *listed; @@ -91,8 +96,8 @@ while (proceed==true) { listed=dns_is_blacklisted(*dnsblk,reversip); (void) snprintf(cst,sizeof(cst),"IP[%02d]: %s\t",num,rmtip); if (listed!=(char *)0) { + delta+=(*dnsblk)->delta; (void) rou_asprintf(&report,"%s%s",cst,listed); - srv->credit+=(*dnsblk)->delta; if (srv->listing==(char *)0) srv->listing=strdup(listed); } @@ -104,11 +109,11 @@ while (proceed==true) { listed=rou_freestr(listed); dnsblk++; } - (void) log_fprintlog(scanref->logptr,true,"IP[%02d]: %s\tRVS='%s'\tCurrent " - "credit='%3d'", - num,rmtip, - srv->reverse,srv->credit); + srv->credit+=delta; + bank=eml_showcredit(rmtip,srv->reverse,delta,srv->credit); + (void) log_fprintlog(scanref->logptr,true,"IP[%02d]: %s",num,bank); (void) log_fprintlog(scanref->logptr,false,""); + bank=rou_freestr(bank); } break; case 4 : //updating record diff --git a/lib/lvleml.c b/lib/lvleml.c index cdd189d..04ba667 100644 --- a/lib/lvleml.c +++ b/lib/lvleml.c @@ -2683,13 +2683,21 @@ while (proceed==true) { } break; case 2 : //Updating remote server data - srv->credit+=contact->credit; - srv->update=time((time_t *)0); - if (sql_mngremote(contact->sqlptr,sql_update,contact->peerip,&srv)==false) { - (void) rou_alert(0,"%s Unable to UPDATE remote [%s] data (Bug!?)", - OPEP,contact->peerip); + if (srv!=(SRVTYP *)0) { //Always + char *bank; + + srv->credit+=contact->credit; + srv->update=time((time_t *)0); + if (sql_mngremote(contact->sqlptr,sql_update,contact->peerip,&srv)==false) { + (void) rou_alert(0,"%s Unable to UPDATE remote [%s] data (Bug!?)", + OPEP,contact->peerip); + } + bank=eml_showcredit(contact->peerip,contact->peername, + contact->credit,srv->credit); + (void) log_fprintlog(contact->logptr,true,"(%s)",bank); + bank=rou_freestr(bank); + srv=sql_freesrv(srv); } - srv=sql_freesrv(srv); break; case 3 : //properly closing remote contact (void) rou_alert(0,"Contact from peer <%s> to port <%s> terminated", diff --git a/lib/modrec.c b/lib/modrec.c index fcb045a..5af0a31 100644 --- a/lib/modrec.c +++ b/lib/modrec.c @@ -211,7 +211,7 @@ while (proceed==true) { SRVTYP *srv; int total; - cmt="(Contact terminated, credit='%3d/%3d' condition=<%s>)"; + cmt="(Contact terminated, condition=<%s>)"; total=0; if (sql_mngremote(contact->sqlptr,sql_select,contact->peerip,&srv)==true) { total=srv->credit; @@ -220,6 +220,7 @@ while (proceed==true) { (void) log_fprintlog(contact->logptr,true,cmt,contact->credit,total, contact->termend); (void) sql_newconnect(contact->sqlptr,contact->peerip,-1); + cmt="(Contact terminated, credit='%3d/%3d' condition=<%s>)"; contact=eml_dropcontact(contact); } break; diff --git a/lib/unieml.c b/lib/unieml.c index 518d921..f505c92 100644 --- a/lib/unieml.c +++ b/lib/unieml.c @@ -1052,3 +1052,23 @@ return success; #undef CNT #undef OPEP } +/* +^L +*/ +/********************************************************/ +/* */ +/* Procedure to format a string with remote server */ +/* credit report. */ +/* */ +/********************************************************/ +PUBLIC char *eml_showcredit(char *rmtip,char *reverse,int delta,int credit) + +{ +static const char *cmt="%s\tRVS='%s'\tdelta='%3d' -> new credit='%3d'"; + +char *fmt; + +fmt=(char *)0; +(void) rou_asprintf(&fmt,cmt,rmtip,reverse,delta,credit); +return fmt; +} diff --git a/lib/unieml.h b/lib/unieml.h index 2197374..db20675 100644 --- a/lib/unieml.h +++ b/lib/unieml.h @@ -165,4 +165,7 @@ extern RCPTYP *eml_isemailok(char *email,char **report); //procedure to create an attachement for email data part. extern int eml_attache(FILE *qout,char *toaddfile,char **explain,int nbrlines); +//Procedure to format a remote server credit report +extern char *eml_showcredit(char *rmtip,char *reverse,int delta,int credit); + #endif