]> SAFE projects GIT repository - jmp/mailleur/commitdiff
Unified credit report format
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Fri, 8 Aug 2025 10:45:37 +0000 (06:45 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Fri, 8 Aug 2025 10:46:18 +0000 (06:46 -0400)
app/scanner.c
lib/lvleml.c
lib/modrec.c
lib/unieml.c
lib/unieml.h

index cd7afb32340dafb6fa0c5ecaf9d1488de0ac9c2e..0ecce7b6ff7ec56da089f279d7e6c0ad123a5d6f 100644 (file)
@@ -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
index cdd189d6288d9c9ba83198c418ecba020d72f195..04ba667bbfa77bda31376957a89ba608bac20159 100644 (file)
@@ -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",
index fcb045ac5386660c47491899a4123115d2993bd3..5af0a31cad3bedd1d3800a82ca36d4e185dc77b9 100644 (file)
@@ -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;
index 518d9216ec3ab109cfeef4883d504311722f99cc..f505c920bd68864c907a5713b0c844fcf85cacbe 100644 (file)
@@ -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;
+}
index 2197374d6eb69343df36ca19043367a595338882..db2067592588e3c01e7d73425364e36cbb552772 100644 (file)
@@ -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