-cert certs/localhost-cert.pem \
-key certs/localhost-key.pem \
-starttls smtp \
- -connect $(TESTSRV):$(TESTPORT)
+ -connect courriel.colba.net:587
# -connect mailprod1.safe.ca:587
# -connect courriel.colba.net:25
# -connect courriel.colba.net:587
# -connect smtp.google.com:25
+# -connect $(TESTSRV):$(TESTPORT)
#--------------------------------------------------------------------
#starting email receiver
(void) transmit(contact,true,"%d 5.7.1 Please provide auth sequence",SENDB64);
got=tcp_getline(contact->socptr,delay,&line);
if (got>0) {
+ (void) log_fprintlog(contact->logptr,false,"%s",line);
(void) strncpy(local,line,sizeof(local)-1);
line=rou_freestr(line);
}
(void) transmit(contact,true,"%d 5.7.2 auth sequence missing",UKNUSER);
break; //exiting from loop
}
+ (void) log_fprintlog(contact->logptr,false,"%s",line);
if ((ptr=cnv_getb64(line))!=(char *)0) {
(void) rou_alert(0,"JMPDBG line[%d]=<%s> ptr=<%s>",i,line,ptr);
(void) strncat(local,ptr,(sizeof(local)-1)-strlen(ptr));
/* NULL if unable to extract login */
/* */
/********************************************************/
-static void getauth(CONTYP *contact,int delay,char *buffer)
+static _Bool getauth(CONTYP *contact,int delay,char *buffer)
{
#define OPEP "lvleml.c:getauth,"
static char *vocloc[]={"plain","login",(char *)0};
+_Bool isok;
int code;
char *decoded;
char local[200];
int phase;
_Bool proceed;
+isok=false;
code=-1;
decoded=(char *)0;
(void) memset(local,'\000',sizeof(memset));
phase=0;
-proceed=(strlen(buffer)>0);
+proceed=true;
while (proceed==true) {
//(void) rou_alert(0,"%s JMPDBG phase='%d'",OPEP,phase);
switch (phase) {
case 4 : //we have a decoded sequence, check password
(void) rou_alert(0,"JMPDBG decoded=<%s>",decoded);
if (checklogin(contact->sqlptr,decoded)==false) {
+ char *fmt;
+ char *user;
+ char *pass;
+
+ user=decoded;
+ if ((pass=strchr(decoded,' '))!=(char *)0) {
+ *pass='\000';
+ pass++;
+ }
+ fmt="Auth Rejected status='%d' for user=<%s> pass=<%s>";
+ (void) log_fprintlog(contact->logptr,true,fmt,BADAUTH,user,pass);
+ (void) sleep(2);
(void) transmit(contact,true,"%d 5.7.4 authentication failed",BADAUTH);
phase=999;
}
break;
case 5 : //everything is fine
(void) transmit(contact,true,"%d 5.7.5 Authentication successful",IDOK);
+ isok=true;
break;
default : //SAFE Guard
proceed=false;
}
phase++;
}
-
+return isok;
#undef OPEP
}
/*