Subversion Repositories planix.SVN

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include <u.h>
#include <libc.h>
#include <ctype.h>

/*
 *  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)
                                snprint(addr, sizeof(addr), "net!%s!%s",
                                        linear, defsrv);
                        else
                                snprint(addr, sizeof(addr), "net!%s", linear);
                }
                else {
                        if(defsrv)
                                snprint(addr, sizeof(addr), "%s!%s!%s", defnet,
                                        linear, defsrv);
                        else
                                snprint(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;
        snprint(addr, sizeof(addr), "%s!%s", linear, defsrv);

        return addr;
}