1 d957951b 2005-02-11 devnull #include <u.h>
2 d957951b 2005-02-11 devnull #include <ctype.h>
5 d957951b 2005-02-11 devnull * return ndb attribute type of an ip name
8 d957951b 2005-02-11 devnull ipattr(char *name)
10 d957951b 2005-02-11 devnull char *p, c;
11 d957951b 2005-02-11 devnull int dot = 0;
12 d957951b 2005-02-11 devnull int alpha = 0;
13 d957951b 2005-02-11 devnull int colon = 0;
14 d957951b 2005-02-11 devnull int hex = 0;
16 d957951b 2005-02-11 devnull for(p = name; *p; p++){
18 1c171e3a 2005-07-19 devnull if(isdigit((uchar)c))
19 d957951b 2005-02-11 devnull continue;
20 1c171e3a 2005-07-19 devnull if(isxdigit((uchar)c))
22 1c171e3a 2005-07-19 devnull else if(isalpha((uchar)c) || c == '-')
23 d957951b 2005-02-11 devnull alpha = 1;
24 d957951b 2005-02-11 devnull else if(c == '.')
26 d957951b 2005-02-11 devnull else if(c == ':')
27 d957951b 2005-02-11 devnull colon = 1;
29 d957951b 2005-02-11 devnull return "sys";
32 d957951b 2005-02-11 devnull if(alpha){
34 d957951b 2005-02-11 devnull return "dom";
36 d957951b 2005-02-11 devnull return "sys";
39 d957951b 2005-02-11 devnull if(colon)
40 d957951b 2005-02-11 devnull return "ip"; /* ip v6 */
42 d957951b 2005-02-11 devnull if(dot && !hex)
43 d957951b 2005-02-11 devnull return "ip";
45 d957951b 2005-02-11 devnull return "sys";