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