Mercurial > pidgin
view src/protocols/zephyr/ZCkIfNot.c @ 6101:e4a5085fb870
[gaim-migrate @ 6560]
This should fix some icon uploading looping.
Sean, the problem was that, when adding the md5 sum to ssi, the code was
checking if it existed by looking for an item named "0", but it was
actually adding an item named "1." So for accounts with no icon info yet,
Gaim would end up getting in a loop and spiraling into oblivion, only far
less dramatic.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sat, 12 Jul 2003 19:08:19 +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 ZCheckIfNotice function. * * Created by: Robert French * * $Source$ * $Author: warmenhoven $ * * Copyright (c) 1987,1988 by the Massachusetts Institute of Technology. * For copying and distribution information, see the file * "mit-copyright.h". */ /* $Header$ */ #include <internal.h> #ifndef lint static const char rcsid_ZCheckIfNotice_c[] = "$Id: ZCkIfNot.c 2096 2001-07-31 01:00:39Z warmenhoven $"; #endif Code_t ZCheckIfNotice(notice, from, predicate, args) ZNotice_t *notice; struct sockaddr_in *from; register int (*predicate) __P((ZNotice_t *, void *)); void *args; { ZNotice_t tmpnotice; Code_t retval; register char *buffer; register struct _Z_InputQ *qptr; if ((retval = Z_ReadEnqueue()) != ZERR_NONE) return (retval); qptr = Z_GetFirstComplete(); while (qptr) { if ((retval = ZParseNotice(qptr->packet, qptr->packet_len, &tmpnotice)) != ZERR_NONE) return (retval); if ((*predicate)(&tmpnotice, args)) { if (!(buffer = (char *) malloc((unsigned) qptr->packet_len))) return (ENOMEM); (void) memcpy(buffer, qptr->packet, qptr->packet_len); if (from) *from = qptr->from; if ((retval = ZParseNotice(buffer, qptr->packet_len, notice)) != ZERR_NONE) { free(buffer); return (retval); } Z_RemQueue(qptr); return (ZERR_NONE); } qptr = Z_GetNextComplete(qptr); } return (ZERR_NONOTICE); }