//(void) rou_alert(0,"JMPDBG %s phase='%d' parm=<%s>",OPEP,phase,parameter);
switch (phase) {
case 0 : //checking if we have a parameter
- if ((parameter==(char *)0)||(strlen(parameter)==0))
+ if ((parameter==(char *)0)||(strlen(parameter)==0)) {
+ (void) rou_alert(0,"%s sesid=<%s> fqdn is missing!",
+ OPEP,contact->mainsesid);
phase=999; //no parameter
+ }
+ break;
+ case 1 : //do we have only good character
+ if (strpbrk(parameter,"@(&$")!=(char *)0) {
+ (void) rou_alert(0,"%s sesid=<%s> fqdn <%s> wrong contents",
+ OPEP,contact->mainsesid,parameter);
+ phase=999; //bad parameter
+ }
+ break;
+ case 2 : //do we start with a dot or 2 dot
+ if ((parameter[0]=='.')||(strstr(parameter,"..")!=(char *)0)) {
+ (void) rou_alert(0,"%s sesid=<%s> fqdn <%s> not a good domain",
+ OPEP,contact->mainsesid,parameter);
+ phase=999; //bad parameter
+ }
+ break;
+ case 3 : //could it be localhost or localdomain
+ if (strcasecmp(parameter,"localhost.localdomain")==0) {
+ (void) rou_alert(0,"%s sesid=<%s> fqdn <%s> local!",
+ OPEP,contact->mainsesid,parameter);
+ phase=999;
+ }
+ break;
+ case 4 : //check if it only a hostname
+ if (strstr(parameter,".")==(char *)0) {
+ (void) rou_alert(0,"%s sesid=<%s> fqdn <%s> is an host name!",
+ OPEP,contact->mainsesid,parameter);
+ phase=999;
+ }
+ break;
+ case 5 : //could it be an IP
+ if (parameter[0]=='[') {
+ (void) rou_alert(0,"%s sesid=<%s> fqdn <%s> could be an ip",
+ OPEP,contact->mainsesid,parameter);
+ phase=999; //bad parameter
+ }
+ break;
+ case 6 : //is is an ip
+ if (strlen(parameter)==strspn(parameter,".0123456789")) {
+ (void) rou_alert(0,"%s sesid=<%s> fqdn <%s> is an ip",
+ OPEP,contact->mainsesid,parameter);
+ phase=999; //bad parameter
+ }
break;
- case 1 : //seems to be a good fqdn
+ case 7 : //seems to be a good fqdn
char *ptr;
ptr=contact->fqdn; //parameter could be the SAME!