1219b2ee8SDavid du Colombier /* posix */ 2219b2ee8SDavid du Colombier #include <sys/types.h> 3219b2ee8SDavid du Colombier #include <unistd.h> 4219b2ee8SDavid du Colombier #include <ctype.h> 5219b2ee8SDavid du Colombier 6219b2ee8SDavid du Colombier /* bsd extensions */ 7219b2ee8SDavid du Colombier #include <sys/uio.h> 8219b2ee8SDavid du Colombier #include <sys/socket.h> 9219b2ee8SDavid du Colombier #include <netinet/in.h> 10219b2ee8SDavid du Colombier 11219b2ee8SDavid du Colombier #include "priv.h" 12219b2ee8SDavid du Colombier 13219b2ee8SDavid du Colombier /* 14219b2ee8SDavid du Colombier * return ndb attribute type of an ip name 15219b2ee8SDavid du Colombier */ 16219b2ee8SDavid du Colombier int _sock_ipattr(char * name)17219b2ee8SDavid du Colombier_sock_ipattr(char *name) 18219b2ee8SDavid du Colombier { 19219b2ee8SDavid du Colombier char *p; 20219b2ee8SDavid du Colombier int dot = 0; 21219b2ee8SDavid du Colombier int alpha = 0; 22219b2ee8SDavid du Colombier 23219b2ee8SDavid du Colombier for(p = name; *p; p++){ 24*781103c4SDavid du Colombier if(isdigit(*p)){ 25219b2ee8SDavid du Colombier ; 26*781103c4SDavid du Colombier }else if(isalpha(*p) || *p == '-') 27219b2ee8SDavid du Colombier alpha = 1; 28219b2ee8SDavid du Colombier else if(*p == '.') 29219b2ee8SDavid du Colombier dot = 1; 30219b2ee8SDavid du Colombier else 31219b2ee8SDavid du Colombier return Tsys; 32219b2ee8SDavid du Colombier } 33219b2ee8SDavid du Colombier 34219b2ee8SDavid du Colombier if(alpha){ 35219b2ee8SDavid du Colombier if(dot) 36219b2ee8SDavid du Colombier return Tdom; 37219b2ee8SDavid du Colombier else 38219b2ee8SDavid du Colombier return Tsys; 39219b2ee8SDavid du Colombier } 40219b2ee8SDavid du Colombier 41219b2ee8SDavid du Colombier if(dot) 42219b2ee8SDavid du Colombier return Tip; 43219b2ee8SDavid du Colombier else 44219b2ee8SDavid du Colombier return Tsys; 45219b2ee8SDavid du Colombier } 46