[OPEN-ILS-DEV] transport_session.c: use of $HOSTNAME

Mike Rylander mrylander at gmail.com
Sun Mar 9 18:44:17 EDT 2008


On Sun, Mar 9, 2008 at 5:10 PM, Bill Erickson <erickson at esilibrary.com> wrote:
>
> Scott McKellar wrote:
>  > Similar questions apply to two other cases where we look for $HOSTNAME:
>  >
>  > 1. osrfChatMkAuthKey(), in osrf_chat.c
>  >
>  > 2. osrfSystemBootstrapClientResc(), in osrf_system.c
>  >
>  > Scott McKellar
>  > http://home.swbell.net/mck9/ct/
>  >
>  > --- Scott McKellar <mck9 at swbell.net> wrote:
>  >
>  >
>  >> In session_connect() we have have the following fragment:
>  >>
>  >>     /* the first Jabber connect stanza */
>  >>     char* our_hostname = getenv("HOSTNAME");
>  >>     size1 = 150 + strlen( server );
>  >>     char stanza1[ size1 ];
>  >>     snprintf( stanza1, sizeof(stanza1),
>  >>         "<long message abbreviated here> %s %s",
>  >>         username, our_hostname );
>  >>
>  >> My first observation is that in calculating size1 we presumably
>  >> should
>  >> have used strlen(our_hostname), not strlen(server), since server is
>  >> not included in the formatted stanza that we build.
>  >>
>  >> I could fix that myself.  But what I'm writing about is the use of
>  >> the environmental variable $HOSTNAME.
>  >>
>  >> Is there a reason why we don't get the host name by calling
>  >> gethostname()?
>  >>
>  >> Normally the two methods will yield the same result.  The difference
>  >> is that the user can change the value of $HOSTNAME to anything he
>  >> likes, or even unset it entirely.  The resulting stanza that we
>  >> build here will then be different accordingly.  But gethostname() is
>  >> not affected by changes in $HOSTNAME, as I confirmed by a little
>  >> experimentation.
>  >>
>  >> Unless we want the user to be able to change the contents of this
>  >> stanza, I suggest that we use gethostname().  Give me the go-ahead
>  >> and I'll prepare a patch to do so
>
>  Hi Scott,
>
>  In each of these cases, the hostname is used for informational purpose
>  or to seed a random string.  gethostname() matches the original intent
>  and, to me, looks cleaner.  I say go for it for all of the mentioned
>  instances.

Is there a need for these to match over time?  If so, the environment
may be safer, since the result of gethostname() may change from one
call to the next, no?

-- 
Mike Rylander
 | VP, Research and Design
 | Equinox Software, Inc. / The Evergreen Experts
 | phone:  1-877-OPEN-ILS (673-6457)
 | email:  miker at esilibrary.com
 | web:  http://www.esilibrary.com


More information about the Open-ils-dev mailing list