Mercurial > pidgin
view src/protocols/zephyr/ZFmtList.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 ZFormatNoticeList function. * * Created by: Robert French * * $Source$ * $Author: warmenhoven $ * * Copyright (c) 1987,1991 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_ZFormatNoticeList_c[] = "$Id: ZFmtList.c 2096 2001-07-31 01:00:39Z warmenhoven $"; #endif Code_t ZFormatNoticeList(notice, list, nitems, buffer, ret_len, cert_routine) ZNotice_t *notice; register char **list; int nitems; char **buffer; int *ret_len; Z_AuthProc cert_routine; { char header[Z_MAXHEADERLEN]; register int i; int hdrlen, size; char *ptr; Code_t retval; if ((retval = Z_FormatHeader(notice, header, sizeof(header), &hdrlen, cert_routine)) != ZERR_NONE) return (retval); size = 0; for (i=0;i<nitems;i++) size += strlen(list[i])+1; *ret_len = hdrlen+size; /* *ret_len can never be zero here, no need to worry about malloc(0). */ if (!(*buffer = (char *) malloc((unsigned)*ret_len))) return (ENOMEM); (void) memcpy(*buffer, header, hdrlen); ptr = *buffer+hdrlen; for (;nitems;nitems--, list++) { i = strlen(*list)+1; (void) memcpy(ptr, *list, i); ptr += i; } return (ZERR_NONE); }