lprng uses private Kerberos Functions?

Miro Jurisic meeroh at MIT.EDU
Wed Feb 20 08:52:01 EST 2002

>  > >I'm trying to compile LPRNG with Kerberos support for MacOS X but
>  > >I'm getting an undefined symbols for _krb5_read_message
>  > >_krb5_write_message _krb5_xfree _valid_cksumtype.  I have included
>  > >the Kerberos5Core framework which seems to have these symbols
>>  >defined.  This is the prototype found in the code, are they
>>  >different from the version of Kerberos for the Mac?
>Try downloading the latest Kerberos release from MIT, install
>it,  then use:
>./configure --with-ldopts="-L/usr/local/lib" \
>   --with-cppopts="-I/usr/local/include" --enable-kerberos

This is not a useful answer. It is not helpful to tell him to replace 
a component with his own, because a. it will be blown away the next 
time he upgrades the OS b. his users won't have the 'fixed' version 
anyway c. your suggestion wouldn't even work correctly because you 
would end up with /usr/lib binaries which work differently from 
/System/Library/Frameworks binaries, which is a recipe for disaster.

>  > krb5_read_message, krb5_write_message, krb5_xfree, valid_cksumtype
>>  are private functions internal to the Kerberos 5 library.  As a
>>  result, they are not exported by the Kerberos framework, and you
>>  should not be calling them.  Yes, I realize that they are in the
>>  krb5.h header file, but they shouldn't be.
>Ummm... have you heard of 'legacy software support?'

Yes, we have. This is one of the cases in which we consciously 
decided to break it. This API has been wrong to use for years, and 
that didn't have any influence on whether people use it or not. Now 
that we removed it, finally people are fixing their code. Since they 
have to recompile for Mac OS X _anyway_, it was a reasonable point to 
force them to fix their code in our opinion.

>The various kerberized utilities use them,  and I ripped the
>code out of the kerberos utilities :-)

That is what we recommend in general -- it is not the responsibility 
of Kerberos libraries to provide you with network send and receive 
code, but if you need an example of how to do it, you should feel 
free to look at our code which does it. Sounds like that's exactly 
what you are doing :-)



<http://web.meeroh.org/> | MIT I/S Mac developer | KB1FMP

"Well, I must endure the presence of two or three caterpillars if I 
wish to become acquainted with the butterflies." -- Antoine de 
Saint-Exupery, "The Little Prince"

More information about the krbdev mailing list