Blob
1 #include <u.h>2 #include <libc.h>3 #include <ctype.h>5 /*6 * make an address, add the defaults7 */8 char *9 netmkaddr(char *linear, char *defnet, char *defsrv)10 {11 static char addr[256];12 char *cp;14 /*15 * dump network name16 */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 else24 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 else31 snprint(addr, sizeof(addr), "%s!%s", defnet,32 linear);33 }34 return addr;35 }37 /*38 * if there is already a service, use it39 */40 cp = strchr(cp+1, '!');41 if(cp)42 return linear;44 /*45 * add default service46 */47 if(defsrv == 0)48 return linear;49 snprint(addr, sizeof(addr), "%s!%s", linear, defsrv);51 return addr;52 }