contact->fqdn=rou_freestr(contact->fqdn);
contact->peername=rou_freestr(contact->peername);
contact->peerip=rou_freestr(contact->peerip);
- contact->locname=rou_freestr(contact->locname);
contact->locserv=rou_freestr(contact->locserv);
+ contact->locip=rou_freestr(contact->locip);
+ contact->locname=rou_freestr(contact->locname);
(void) free(contact);
contact=(CONTYP *)0;
}
{
_Bool status;
+time_t curtime;
+int phase;
+_Bool proceed;
status=true;
-(void) fprintf(data,"Received: from %s ([%s])\n",contact->peername,contact->peerip);
-(void) fprintf(data,"\t by %s ([%s]/%s-%s)\n",
- contact->locname,contact->locserv,
- appname,rou_getversion());
-(void) fprintf(data,"\t id <%s@%s>;\n",contact->cursesid,contact->locname);
+curtime=time((time_t *)0);
+phase=0;
+proceed=true;
+while (proceed==true) {
+ switch (phase) {
+ case 0 : //Inserting the remote information
+ (void) fprintf(data,"Received: from %s ([%s])\n",
+ contact->peername,contact->peerip);
+ break;
+ case 1 : //Inserting the Receive information
+ (void) fprintf(data,"\tby %s ([%s:%s]/%s-%s) with ESMTP\n",
+ contact->locname,contact->locip,contact->locserv,
+ appname,rou_getversion());
+ break;
+ case 2 : //Inserting TLS information
+ if (soc_iscrypted(contact->socptr)==true) {
+ (void) fprintf(data,"\t(JMPDBG crypted)\n");
+ }
+ break;
+ case 3 : //Inserting ID information
+ (void) fprintf(data,"\tid <%s@%s>;\n",
+ contact->cursesid,contact->locname);
+ break;
+ case 4 : //date information
+ (void) fprintf(data,"\t%s\n",rou_ascsysstamp(curtime));
+ break;
+ default : //SAFE Guard
+ proceed=false;
+ break;
+ }
+ phase++;
+ }
return status;
}
/*
contact->mainsesid=eml_getmainsesid();
contact->cursesid=eml_getcursesid(contact->mainsesid,contact->numreset);
contact->locname=soc_getaddrinfo(contact->socptr,true,true);
- contact->locserv=soc_getaddrinfo(contact->socptr,true,false);
+ contact->locip=soc_getaddrinfo(contact->socptr,true,false);
+ if (contact->locip!=(char *)0) {
+ char *ptr;
+
+ //extracting service port number
+ if ((ptr=strrchr(contact->locip,':'))!=(char *)0) {
+ *ptr='\000';
+ contact->locserv=strdup(ptr+1);
+ }
+ }
contact->peername=soc_getaddrinfo(contact->socptr,false,true);
contact->peerip=soc_getaddrinfo(contact->socptr,false,false);
contact->logptr=log_openlog(contact->mainsesid,true);