/*
* Implements the message store.
*
- * Copyright (c) 1987-2011 by the citadel.org team
+ * Copyright (c) 1987-2012 by the citadel.org team
*
* This program is open source software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
+ * it under the terms of the GNU General Public License version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "sysdep.h"
char *encoding, char *cbid, void *cbuserdata)
{
int rv = 0;
+ CitContext *CCC = MyContext();
/* Silently go away if there's already a download open. */
- if (CC->download_fp != NULL)
+ if (CCC->download_fp != NULL)
return;
if (
- (!IsEmptyStr(partnum) && (!strcasecmp(CC->download_desired_section, partnum)))
- || (!IsEmptyStr(cbid) && (!strcasecmp(CC->download_desired_section, cbid)))
+ (!IsEmptyStr(partnum) && (!strcasecmp(CCC->download_desired_section, partnum)))
+ || (!IsEmptyStr(cbid) && (!strcasecmp(CCC->download_desired_section, cbid)))
) {
- CC->download_fp = tmpfile();
- if (CC->download_fp == NULL)
+ CCC->download_fp = tmpfile();
+ if (CCC->download_fp == NULL) {
+ syslog(LOG_EMERG, "mime_download(): Couldn't write: %s\n",
+ strerror(errno));
+ cprintf("%d cannot open temporary file: %s\n",
+ ERROR + INTERNAL_ERROR, strerror(errno));
return;
+ }
rv = fwrite(content, length, 1, CC->download_fp);
- if (rv == -1) {
+ if (rv <= 0) {
syslog(LOG_EMERG, "mime_download(): Couldn't write: %s\n",
strerror(errno));
+ cprintf("%d unable to write tempfile.\n",
+ ERROR + TOO_BIG);
+ fclose(CCC->download_fp);
+ CCC->download_fp = NULL;
+ return;
}
- fflush(CC->download_fp);
- rewind(CC->download_fp);
+ fflush(CCC->download_fp);
+ rewind(CCC->download_fp);
OpenCmdResult(filename, cbtype);
}
struct arcq new_arcq;
int rv = 0;
- syslog(LOG_DEBUG, "AdjRefCount() msg %ld ref count delta %+d\n",
- msgnum, incr
- );
+ syslog(LOG_DEBUG, "AdjRefCount() msg %ld ref count delta %+d\n", msgnum, incr);
begin_critical_section(S_SUPPMSGMAIN);
if (arcfp == NULL) {
arcfp = fopen(file_arcq, "ab+");
+ chown(file_arcq, CTDLUID, (-1));
+ chmod(file_arcq, 0600);
}
end_critical_section(S_SUPPMSGMAIN);