| #include <stdlib.h> | |
| #include <stdio.h> | |
| #include <parlib.h> | |
| #include <unistd.h> | |
| #include <signal.h> | |
| #include <fcntl.h> | |
| #include <ctype.h> | |
| #include <nixip.h> | |
| #include <ndb.h> | |
| /* | |
| * return ndb attribute type of an ip name | |
| */ | |
| char* | |
| ipattr(char *name) | |
| { | |
| char *p, c; | |
| int dot = 0; | |
| int alpha = 0; | |
| int colon = 0; | |
| int hex = 0; | |
| for(p = name; *p; p++){ | |
| c = *p; | |
| if(isdigit(c)) | |
| continue; | |
| if(isxdigit(c)) | |
| hex = 1; | |
| else if(isalpha(c) || c == '-') | |
| alpha = 1; | |
| else if(c == '.') | |
| dot = 1; | |
| else if(c == ':') | |
| colon = 1; | |
| else | |
| return "sys"; | |
| } | |
| if(alpha){ | |
| if(dot) | |
| return "dom"; | |
| else | |
| return "sys"; | |
| } | |
| if(colon) | |
| return "ip"; /* ip v6 */ | |
| if(dot && !hex) | |
| return "ip"; | |
| else | |
| return "sys"; | |
| } |