PCI: adds device-specific data pointer
[akaros.git] / user / bsd / _sock_ipattr.c
1 /* 
2  * This file is part of the UCB release of Plan 9. It is subject to the license
3  * terms in the LICENSE file found in the top-level directory of this
4  * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
5  * part of the UCB release of Plan 9, including this file, may be copied,
6  * modified, propagated, or distributed except according to the terms contained
7  * in the LICENSE file.
8  */
9 /* posix */
10 #include <sys/types.h>
11 #include <sys/stat.h>
12 #include <unistd.h>
13 #include <ctype.h>
14
15 /* bsd extensions */
16 #include <sys/uio.h>
17 #include <sys/socket.h>
18 #include <netinet/in.h>
19
20 #include "priv.h"
21
22 /*
23  *  return ndb attribute type of an ip name
24  */
25 int
26 _sock_ipattr(const char *name)
27 {
28         const char *p;
29         int dot = 0;
30         int alpha = 0;
31
32         for(p = name; *p; p++){
33                 if(isdigit(*p))
34                         ;
35                 else if(isalpha(*p) || *p == '-')
36                         alpha = 1;
37                 else if(*p == '.')
38                         dot = 1;
39                 else
40                         return Tsys;
41         }
42
43         if(alpha){
44                 if(dot)
45                         return Tdom;
46                 else
47                         return Tsys;
48         }
49
50         if(dot)
51                 return Tip;
52         else
53                 return Tsys;
54 }