Mercurial > pidgin
view src/protocols/zephyr/ZSendPkt.c @ 3941:23c430e780eb
[gaim-migrate @ 4117]
(23:03:23) Luke: gaim cvs has a fairly significant memory leak
(23:04:09) Sean: yes--it leaks the size of every message received
(23:04:21) Luke: ffuunn
(23:09:33) Sean: do me a favor and fix it for me
(23:09:41) Luke: fix what
(23:09:48) Sean: the leak
(23:10:03) Sean: uncomment g_free(ws); in gtk_imhtml_append_text
(23:10:14) Luke: how many crashes will that cause
(23:10:17) Sean: none
(23:10:22) Sean: I fixed the crashing
(23:10:27) Sean: but forgot to uncomment that
(23:10:48) Luke: what file is that in
(23:11:06) Sean: gtkimhtml.c
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Mon, 11 Nov 2002 04:17:25 +0000 |
parents | 7ba69b8e0de5 |
children | 08ce2a94d9c7 |
line wrap: on
line source
/* This file is part of the Project Athena Zephyr Notification System. * It contains source for the ZSendPacket 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$ */ #ifndef lint static char rcsid_ZSendPacket_c[] = "$Zephyr: /mit/zephyr/src/lib/RCS/ZSendPacket.c,v 1.29 91/03/21 11:57:08 raeburn Exp $"; #endif #include <internal.h> #include <sys/socket.h> static int wait_for_hmack(); Code_t ZSendPacket(packet, len, waitforack) char *packet; int len; int waitforack; { Code_t retval; struct sockaddr_in dest; ZNotice_t notice, acknotice; if (!packet || len < 0) return (ZERR_ILLVAL); if (len > Z_MAXPKTLEN) return (ZERR_PKTLEN); if (ZGetFD() < 0) if ((retval = ZOpenPort((u_short *)0)) != ZERR_NONE) return (retval); dest = ZGetDestAddr(); if (sendto(ZGetFD(), packet, len, 0, (struct sockaddr *)&dest, sizeof(dest)) < 0) return (errno); if (!waitforack) return (ZERR_NONE); if ((retval = ZParseNotice(packet, len, ¬ice)) != ZERR_NONE) return (retval); retval = Z_WaitForNotice (&acknotice, wait_for_hmack, ¬ice.z_uid, HM_TIMEOUT); if (retval == ETIMEDOUT) return ZERR_HMDEAD; if (retval == ZERR_NONE) ZFreeNotice (&acknotice); return retval; } static int wait_for_hmack(notice, uid) ZNotice_t *notice; ZUnique_Id_t *uid; { return (notice->z_kind == HMACK && ZCompareUID(¬ice->z_uid, uid)); }