[Prev][Next][Index][Thread]

# Re: IP # from connection_name?

- Date: Sat, 18 Jan 1997 13:22:26 PST
- From:
- cc: Moo-Cows Mailing List <moo-cows@parc.xerox.com>, moo-calves@ccat.sas.upenn.edu
- Content-Type: TEXT/PLAIN; charset=US-ASCII
- In-Reply-To: <v03007800af063c22d539@[132.76.55.49]>

    On Sat, 18 Jan 1997, Gustavo Glusman wrote:
    > >I changed my connection_name() to return strings like this:
    > >
    > >"port 3200 from localhost (127.0.0.1), port 1032"
    >
    > Could you please post the patch?

    I guess so. I'm not at all proud of it though.

    There's probably bugs in it which will destroy your database, etc.

    The code I changed was in lookup_name_from_addr() in name_lookup.c. There's 3
    small changes.

    The line:
    ensure_buffer(&buffer, &buflen, len + 1);

    becomes:
    ensure_buffer(&buffer, &buflen, len + 21);

    I don't see how an IP could be longer than 15 characters but the original code
    uses a length of 20 for them so I might as well.

    This:
    buffer[len] = '\0';
    return buffer;

    becomes:
    unsigned32      a = ntohl(addr->sin_addr.s_addr);
    sprintf((char *)buffer+len, " (%u.%u.%u.%u)",
     (unsigned) (a >> 24) & 0xff, (unsigned) (a >> 16) & 0xff,
     (unsigned) (a >> 8) & 0xff, (unsigned) a & 0xff);
    return buffer;

    This is basically just copying the code from the bottom of this function in
    the case where the lookup fails. Then I thought I wanted the IP surrounded in
    parentheses even in that case, so:
    sprintf(decimal, "%u.%u.%u.%u",

    turns into:
    sprintf(decimal, "(%u.%u.%u.%u)",

    There are better ways to do this but I wanted to change the server code as
    little as possible.

    Andy

- Prev: Re: IP # from connection_name?
- Next: Lambda Core database
- Index: MOO-cows
- Thread: MOO-cows

Home | Subject Index | Thread Index