Mercurial > pidgin
view src/protocols/zephyr/ZSendList.c @ 13967:99b9b58b19dd
[gaim-migrate @ 16523]
Fix a crazy MSN crash. Basically it's possible to have more than one
slplink associated with a given switchboard, but our code did not
allow for that. I think it happens when you're in a multi-user
chat and you do stuff with multiple users that involves slplinks.
Like maybe file transfer and buddy icon related stuff.
Tracking this down took an ungodly amount of time, but thanks to
Meebo for letting me do it :-)
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Thu, 20 Jul 2006 07:31:15 +0000 |
parents | 64895571248f |
children |
line wrap: on
line source
/* This file is part of the Project Athena Zephyr Notification System. * It contains source for the ZSendList function. * * Created by: Robert French * * Copyright (c) 1987 by the Massachusetts Institute of Technology. * For copying and distribution information, see the file * "mit-copyright.h". */ #include "internal.h" Code_t ZSendList(notice, list, nitems, cert_routine) ZNotice_t *notice; char *list[]; int nitems; Z_AuthProc cert_routine; { return(ZSrvSendList(notice, list, nitems, cert_routine, Z_XmitFragment)); } Code_t ZSrvSendList(notice, list, nitems, cert_routine, send_routine) ZNotice_t *notice; char *list[]; int nitems; Z_AuthProc cert_routine; Code_t (*send_routine)(); { Code_t retval; ZNotice_t newnotice; char *buffer; int len; if ((retval = ZFormatNoticeList(notice, list, nitems, &buffer, &len, cert_routine)) != ZERR_NONE) return (retval); if ((retval = ZParseNotice(buffer, len, &newnotice)) != ZERR_NONE) return (retval); retval = Z_SendFragmentedNotice(&newnotice, len, cert_routine, send_routine); free(buffer); return (retval); }