Mercurial > pidgin
view libpurple/protocols/zephyr/ZFmtAuth.c @ 17370:0db74191adbb
Clean up some other ssi-related things. This commit and my last one
include a patch from reh (tracker item 1361) which solves the bug where
dragging an ICQ buddy from one group to another would result in
an authorization request being sent. It's pretty awesome that he
was able to track that down.
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Tue, 29 May 2007 10:25:05 +0000 |
parents | 5fe8042783c1 |
children | a8cc50c2279f |
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 * Copyright (c) 1987,1988 by the Massachusetts Institute of Technology. * For copying and distribution information, see the file * "mit-copyright.h". */ #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