Mercurial > pidgin
view src/protocols/zephyr/ZFmtAuth.c @ 8354:43dec50d8d51
[gaim-migrate @ 9078]
" An update to com_err on debian appears to have broken
the ability of the zephyr plugin to compile with krb4.
Here's a patch, tested against comerr-dev
2.1-1.34+1.35-WIP-2004.01.31-1 in debian, and an older
version of com_err local to MIT, that fixes this. I
haven't tested this against non-kerberized zephyr, or
against other versions of com_err. A lot of the comerr
(error table) related code appears to be unnecessary.
This also fixes two other issues:
1) Upon each login, every entry in the "Anyone" group
was getting added to the Buddies group. I didn't notice
this earlier, since I usually don't restart gaim very
often.
2) No more compile warnings.
This also replaces occurrences of ZGetSender and
ZGetRealm with gaim_zephyr_get_sender and
gaim_zephyr_get_realm(),
in preparation for getting gaim to alternately use an
external program, "tzc" to talk to zephyr."
--Arun A Tharuvai, aka, the lone gaim zepher user
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Fri, 27 Feb 2004 19:25:27 +0000 |
parents | 424a40f12a6c |
children | 43d6c08d7e96 |
line wrap: on
line source
/* This file is part of the Project Athena Zephyr Notification System. * It contains source for the ZFormatAuthenticNotice function. * * Created by: Robert French * * $Source$ * $Author: lschiere $ * * Copyright (c) 1987,1988 by the Massachusetts Institute of Technology. * For copying and distribution information, see the file * "mit-copyright.h". */ /* $Header$ */ #ifndef lint static char rcsid_ZFormatAuthenticNotice_c[] = "$Header$"; #endif #include <internal.h> #ifdef ZEPHYR_USES_KERBEROS Code_t ZFormatAuthenticNotice(notice, buffer, buffer_len, len, session) ZNotice_t *notice; register char *buffer; register int buffer_len; int *len; C_Block session; { ZNotice_t newnotice; char *ptr; int retval, hdrlen; newnotice = *notice; newnotice.z_auth = 1; newnotice.z_authent_len = 0; newnotice.z_ascii_authent = ""; if ((retval = Z_FormatRawHeader(&newnotice, buffer, buffer_len, &hdrlen, &ptr, NULL)) != ZERR_NONE) return (retval); #ifdef NOENCRYPTION newnotice.z_checksum = 0; #else newnotice.z_checksum = (ZChecksum_t)des_quad_cksum(buffer, NULL, ptr - buffer, 0, (C_Block*)session); #endif if ((retval = Z_FormatRawHeader(&newnotice, buffer, buffer_len, &hdrlen, NULL, NULL)) != ZERR_NONE) return (retval); ptr = buffer+hdrlen; if (newnotice.z_message_len+hdrlen > buffer_len) return (ZERR_PKTLEN); (void) memcpy(ptr, newnotice.z_message, newnotice.z_message_len); *len = hdrlen+newnotice.z_message_len; if (*len > Z_MAXPKTLEN) return (ZERR_PKTLEN); return (ZERR_NONE); } #endif