1 #include <lib9.h> 2 3 /* 4 * make an address, add the defaults 5 */ 6 char * 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