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