several functions that are defined in /sys/include/ape/libnet.h were missing from the library. i've added those, configured them to use POSIX functions and modified the mkfile to compile them. Reference: /n/sources/patch/applied/ape-libnet-missing-functions Date: Tue Nov 27 20:56:39 CET 2007 Signed-off-by: mirtchovski@gmail.com --- /sys/src/ape/lib/net/netmkaddr.c Thu Jan 1 00:00:00 1970 +++ /sys/src/ape/lib/net/netmkaddr.c Tue Nov 27 20:55:29 2007 @@ -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; +} --- /sys/src/ape/lib/net/hangup.c Thu Jan 1 00:00:00 1970 +++ /sys/src/ape/lib/net/hangup.c Tue Nov 27 20:55:32 2007 @@ -0,0 +1,16 @@ +#include +#include +#include +#include +#include +#include +#include + +/* + * force a connection to hangup + */ +int +hangup(int ctl) +{ + return write(ctl, "hangup", sizeof("hangup")-1) != sizeof("hangup")-1; +} --- /sys/src/ape/lib/net/mkfile Tue Nov 27 20:55:36 2007 +++ /sys/src/ape/lib/net/mkfile Tue Nov 27 20:55:34 2007 @@ -4,6 +4,9 @@ LIB=/$objtype/lib/ape/libnet.a OFILES=dial.$O\ announce.$O\ + netmkaddr.$O\ + hangup.$O\ +