Annotation of researchv9/ipc/src/libipc/tcp.c, revision 1.1

1.1     ! root        1: #include "defs.h"
        !             2: #include <ctype.h>
        !             3: 
        !             4: /*
        !             5:  *  convert a port number into a file system name
        !             6:  */
        !             7: char *
        !             8: tcptofs(port)
        !             9:        int port;
        !            10: {
        !            11:        static char name[PATHLEN];
        !            12: 
        !            13:        sprintf(name, "/cs/tcp.%d", port);
        !            14:        return name;
        !            15: }
        !            16: 
        !            17: /*
        !            18:  *  convert an internal name into a port number
        !            19:  */
        !            20: fstotcp(name)
        !            21:        char *name;
        !            22: {
        !            23:        int port;
        !            24: 
        !            25:        if (strncmp(name, CSROOT, sizeof(CSROOT)-1)==0)
        !            26:                name += sizeof(CSROOT)-1;
        !            27:        if (strncmp(name, "tcp.", sizeof("tcp.")-1)==0)
        !            28:                name += sizeof("tcp.")-1;
        !            29:        for (port=0; *name; name++) {
        !            30:                if (!isdigit(*name))
        !            31:                        return -1;
        !            32:                port = port*10 + (*name - '0');
        !            33:        }
        !            34:        return port;
        !            35: }
        !            36: 
        !            37: /*
        !            38:  *  ipccreate a tcp usable port.  a bit of a crock.
        !            39:  */
        !            40: tcpcreat(name, param)
        !            41:        char *name;
        !            42:        char *param;
        !            43: {
        !            44:        int p;
        !            45:        int offset;
        !            46:        int fd= -1;
        !            47: 
        !            48:        if (getuid()==0)
        !            49:                offset = 512;
        !            50:        else
        !            51:                offset = 1024;
        !            52:        for (p=0; p<511 && fd<0; p++) {
        !            53:                strcpy(name, tcptofs(p+offset));
        !            54:                fd = ipccreat(name, param);
        !            55:                if (fd<0)
        !            56:                        continue;
        !            57:        }
        !            58:        return fd;
        !            59: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.