experiment: translation from standard notations to plan 9 in netmkaddr
This commit is contained in:
parent
73a5509ae9
commit
6215fd56f1
3 changed files with 36 additions and 13 deletions
|
|
@ -16,21 +16,25 @@ netmkaddr(char *linear, char *defnet, char *defsrv)
|
|||
*/
|
||||
cp = strchr(linear, '!');
|
||||
if(cp == 0){
|
||||
if(defnet==0){
|
||||
if(defsrv)
|
||||
snprint(addr, sizeof(addr), "net!%s!%s",
|
||||
linear, defsrv);
|
||||
else
|
||||
snprint(addr, sizeof(addr), "net!%s", linear);
|
||||
if(defnet == 0)
|
||||
defnet = "net";
|
||||
/* allow unix sockets to omit unix! prefix */
|
||||
if(access(linear, 0) >= 0){
|
||||
snprint(addr, sizeof(addr), "unix!%s", linear);
|
||||
return addr;
|
||||
}
|
||||
else {
|
||||
if(defsrv)
|
||||
snprint(addr, sizeof(addr), "%s!%s!%s", defnet,
|
||||
linear, defsrv);
|
||||
else
|
||||
snprint(addr, sizeof(addr), "%s!%s", defnet,
|
||||
linear);
|
||||
/* allow host:service in deference to Unix convention */
|
||||
if((cp = strchr(linear, ':')) != nil){
|
||||
snprint(addr, sizeof(addr), "%s!%.*s!%s",
|
||||
defnet, utfnlen(linear, cp-linear),
|
||||
linear, cp+1);
|
||||
return addr;
|
||||
}
|
||||
if(defsrv)
|
||||
snprint(addr, sizeof(addr), "%s!%s!%s",
|
||||
defnet, linear, defsrv);
|
||||
else
|
||||
snprint(addr, sizeof(addr), "%s!%s", defnet, linear);
|
||||
return addr;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue