From e5888a1ffdae813d7575f5fb02275c6bb07e5199 Mon Sep 17 00:00:00 2001 From: Taru Karttunen Date: Wed, 30 Mar 2011 15:46:40 +0300 Subject: Import sources from 2011-03-30 iso image --- sys/src/ape/lib/net/netmkaddr.c | 56 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100755 sys/src/ape/lib/net/netmkaddr.c (limited to 'sys/src/ape/lib/net/netmkaddr.c') diff --git a/sys/src/ape/lib/net/netmkaddr.c b/sys/src/ape/lib/net/netmkaddr.c new file mode 100755 index 000000000..52b9710a0 --- /dev/null +++ b/sys/src/ape/lib/net/netmkaddr.c @@ -0,0 +1,56 @@ +#include +#include +#include +#include +#include +#include +#include + +/* + * make an address, add the defaults + */ +char * +netmkaddr(char *linear, char *defnet, char *defsrv) +{ + static char addr[256]; + char *cp; + + /* + * dump network name + */ + cp = strchr(linear, '!'); + if(cp == 0){ + if(defnet==0){ + if(defsrv) + snprintf(addr, sizeof(addr), "net!%s!%s", + linear, defsrv); + else + snprintf(addr, sizeof(addr), "net!%s", linear); + } + else { + if(defsrv) + snprintf(addr, sizeof(addr), "%s!%s!%s", defnet, + linear, defsrv); + else + snprintf(addr, sizeof(addr), "%s!%s", defnet, + linear); + } + return addr; + } + + /* + * if there is already a service, use it + */ + cp = strchr(cp+1, '!'); + if(cp) + return linear; + + /* + * add default service + */ + if(defsrv == 0) + return linear; + snprintf(addr, sizeof(addr), "%s!%s", linear, defsrv); + + return addr; +} -- cgit v1.2.3