[linux-cifs-client] Patch to get cifs.upcall to compile with Heimdal
Torsten Kurbad
samba-technical at tk-webart.de
Thu Apr 1 06:01:42 MDT 2010
Hi Jeff,
find attached a new version of the patch against current git.
On Wed, 31 Mar 2010 15:16:07 -0400, Jeff Layton <jlayton at samba.org>
wrote:
>> #include <getopt.h>
>> +#ifdef HAVE_KRB5_KRB5_H
>> #include <krb5/krb5.h>
>> +#elif defined(HAVE_KRB5_H)
>> +#include <krb5.h>
>> +#endif
>
>^^^^
>I think it would be better to munge the CFLAGS so that
>-I/usr/include/krb5 precedes the other paths if HAVE_KRB5_KRB5_H is
>set. That would leave cifs.upcall.c with less #ifdef goop.
The new patch incorporates a quick hack to accomplish this. I didn't do
much refinement here yet, since there's one problem: We don't really
know the "base directory" of the headers. Consider an installation
where the krb5.h resides in /usr/local/include/krb5/. User invokes
configure by setting CPPFLAGS="-I/usr/local/include", AC_CHECK_HEADERS
_does_ find <krb5/krb5.h>, but setting "-I/usr/include/krb5" would not
lead to the desired result... So, there must be a way to find out,
_where_ exactly AC_CHECK_HEADERS found krb5.h. I don't know how to do
that, though, even after some very intense googling. ;-)
>>
>> +#ifdef HAVE_KRB5_AUTH_CON_GETSENDSUBKEY
>> ret = krb5_auth_con_getsendsubkey(context, auth_context,
>> &tokb); +#else
>> + ret = krb5_auth_con_getlocalsubkey(context, auth_context,
>> &tokb); +#endif
I fixed that one, too, similar to how we handle
HAVE_KRB5_PRINCIPAL_GET_REALM.
>> +
>> +#ifdef HAVE_KRB5_KEYBLOCK_KEYVALUE /* Heimdal */
>> + *sess_key = data_blob(tokb->keyvalue.data,
>> tokb->keyvalue.length); +#else /* MIT */
>> *sess_key = data_blob(tokb->contents, tokb->length);
>> +#endif
>>
>
>I think it would be better to declare the same macros that samba uses:
>
>KRB5_KEY_DATA
>KRB5_KEY_LENGTH
I put the necessary macros in replace.h. Looks much clea(n|r)er now.
Best regards,
Torsten
--
There is one way to find out if a man is honest -- ask him. If he says
"Yes" you know he is crooked.
-- Groucho Marx
More information about the linux-cifs-client
mailing list