Blob


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