Blame


1 fd04aace 2003-11-23 devnull #include <u.h>
2 fd04aace 2003-11-23 devnull #include <libc.h>
3 fd04aace 2003-11-23 devnull #include <ctype.h>
4 fd04aace 2003-11-23 devnull
5 fd04aace 2003-11-23 devnull /*
6 fd04aace 2003-11-23 devnull * make an address, add the defaults
7 fd04aace 2003-11-23 devnull */
8 fd04aace 2003-11-23 devnull char *
9 fd04aace 2003-11-23 devnull netmkaddr(char *linear, char *defnet, char *defsrv)
10 fd04aace 2003-11-23 devnull {
11 fd04aace 2003-11-23 devnull static char addr[256];
12 fd04aace 2003-11-23 devnull char *cp;
13 fd04aace 2003-11-23 devnull
14 fd04aace 2003-11-23 devnull /*
15 fd04aace 2003-11-23 devnull * dump network name
16 fd04aace 2003-11-23 devnull */
17 fd04aace 2003-11-23 devnull cp = strchr(linear, '!');
18 fd04aace 2003-11-23 devnull if(cp == 0){
19 fd04aace 2003-11-23 devnull if(defnet==0){
20 fd04aace 2003-11-23 devnull if(defsrv)
21 fd04aace 2003-11-23 devnull snprint(addr, sizeof(addr), "net!%s!%s",
22 fd04aace 2003-11-23 devnull linear, defsrv);
23 fd04aace 2003-11-23 devnull else
24 fd04aace 2003-11-23 devnull snprint(addr, sizeof(addr), "net!%s", linear);
25 fd04aace 2003-11-23 devnull }
26 fd04aace 2003-11-23 devnull else {
27 fd04aace 2003-11-23 devnull if(defsrv)
28 fd04aace 2003-11-23 devnull snprint(addr, sizeof(addr), "%s!%s!%s", defnet,
29 fd04aace 2003-11-23 devnull linear, defsrv);
30 fd04aace 2003-11-23 devnull else
31 fd04aace 2003-11-23 devnull snprint(addr, sizeof(addr), "%s!%s", defnet,
32 fd04aace 2003-11-23 devnull linear);
33 fd04aace 2003-11-23 devnull }
34 fd04aace 2003-11-23 devnull return addr;
35 fd04aace 2003-11-23 devnull }
36 fd04aace 2003-11-23 devnull
37 fd04aace 2003-11-23 devnull /*
38 fd04aace 2003-11-23 devnull * if there is already a service, use it
39 fd04aace 2003-11-23 devnull */
40 fd04aace 2003-11-23 devnull cp = strchr(cp+1, '!');
41 fd04aace 2003-11-23 devnull if(cp)
42 fd04aace 2003-11-23 devnull return linear;
43 fd04aace 2003-11-23 devnull
44 fd04aace 2003-11-23 devnull /*
45 fd04aace 2003-11-23 devnull * add default service
46 fd04aace 2003-11-23 devnull */
47 fd04aace 2003-11-23 devnull if(defsrv == 0)
48 fd04aace 2003-11-23 devnull return linear;
49 fd04aace 2003-11-23 devnull snprint(addr, sizeof(addr), "%s!%s", linear, defsrv);
50 fd04aace 2003-11-23 devnull
51 fd04aace 2003-11-23 devnull return addr;
52 fd04aace 2003-11-23 devnull }