summaryrefslogtreecommitdiffstats
path: root/libmail/tmpaccount.C
diff options
context:
space:
mode:
authorSam Varshavchik2018-04-27 19:17:42 -0400
committerSam Varshavchik2018-04-27 19:17:42 -0400
commit9ad6c58af31f682374bdbf136d6e9f337ea39209 (patch)
tree1607a69a4e70e79b905943b717670369cc08d523 /libmail/tmpaccount.C
parenta6074e9074e02423f879d2d8bf923ca815cee760 (diff)
downloadcourier-libs-9ad6c58af31f682374bdbf136d6e9f337ea39209.tar.bz2
curses and libmail subdirectories are now in the courier/cone repo.
Diffstat (limited to 'libmail/tmpaccount.C')
-rw-r--r--libmail/tmpaccount.C417
1 files changed, 0 insertions, 417 deletions
diff --git a/libmail/tmpaccount.C b/libmail/tmpaccount.C
deleted file mode 100644
index 21d3e2e..0000000
--- a/libmail/tmpaccount.C
+++ /dev/null
@@ -1,417 +0,0 @@
-/*
-** Copyright 2003-2008, Double Precision Inc.
-**
-** See COPYING for distribution information.
-*/
-#include "tmpaccount.H"
-#include "driver.H"
-#include "file.H"
-#include "copymessage.H"
-#include "search.H"
-#include <errno.h>
-#include <sys/stat.h>
-#include <cstring>
-
-using namespace std;
-
-LIBMAIL_START
-
-static bool open_tmp(mail::account *&accountRet,
- mail::account::openInfo &oi,
- mail::callback &callback,
- mail::callback::disconnect &disconnectCallback)
-{
- if (oi.url == "tmp:")
- {
- accountRet=new mail::tmpaccount(disconnectCallback);
-
- if (accountRet)
- callback.success("Ok.");
- else
- callback.fail(strerror(errno));
- return true;
- }
- return false;
-}
-
-static bool remote_tmp(string url, bool &flag)
-{
- if (url == "tmp:")
- {
- flag=false;
- return true;
- }
-
- return false;
-}
-
-driver tmp_driver= { &open_tmp, &remote_tmp };
-
-LIBMAIL_END
-
-mail::tmpaccount::tmpaccount(callback::disconnect &disconnect_callbackArg)
- : account(disconnect_callbackArg),
- disconnect_callback(&disconnect_callbackArg),
- folder_callback(NULL), f(NULL), rfc2045p(NULL)
-{
-}
-
-void mail::tmpaccount::disconnect(const char *reason)
-{
- callback::disconnect *d=disconnect_callback;
-
- disconnect_callback=NULL;
-
- if (d)
- d->disconnected(reason);
-}
-
-mail::tmpaccount::~tmpaccount()
-{
- disconnect("Disconnected.");
- if (f)
- fclose(f);
- if (rfc2045p)
- rfc2045_free(rfc2045p);
-}
-
-
-void mail::tmpaccount::resumed()
-{
-}
-
-void mail::tmpaccount::handler(vector<pollfd> &fds, int &ioTimeout)
-{
-}
-
-void mail::tmpaccount::logout(mail::callback &callback)
-{
- disconnect("");
- callback.success("Ok.");
-}
-
-void mail::tmpaccount::checkNewMail(callback &callback)
-{
- callback.success("Ok.");
-}
-
-bool mail::tmpaccount::hasCapability(std::string capability)
-{
- if (capability == LIBMAIL_SINGLEFOLDER)
- return true;
- return false;
-}
-
-string mail::tmpaccount::getCapability(std::string capability)
-{
- if (capability == LIBMAIL_SERVERTYPE)
- return "tmp";
-
- if (capability == LIBMAIL_SERVERDESCR)
- return "Temporary account";
-
- return "";
-}
-
-mail::folder *mail::tmpaccount::folderFromString(std::string path)
-{
- return new folder(this);
-}
-
-void mail::tmpaccount::readTopLevelFolders(callback::folderList &callback1,
- callback &callback2)
-{
- folder dummyFolder(this);
-
- vector<const mail::folder *> dummy;
-
- dummy.push_back(&dummyFolder);
-
- callback1.success(dummy);
- callback2.success("Ok.");
-}
-
-void mail::tmpaccount::findFolder(std::string path,
- callback::folderList &callback1,
- callback &callback2)
-{
- folder dummyFolder(this);
-
- vector<const mail::folder *> dummy;
-
- dummy.push_back(&dummyFolder);
-
- callback1.success(dummy);
- callback2.success("Ok.");
-}
-
-std::string mail::tmpaccount::translatePath(std::string path)
-{
- return path;
-}
-
-void mail::tmpaccount::readMessageAttributes(const std::vector<size_t>
- &messages,
- MessageAttributes attributes,
- callback::message &callback)
-{
- genericAttributes(this, this, messages, attributes, callback);
-}
-
-void mail::tmpaccount::readMessageContent(const std::vector<size_t> &messages,
- bool peek,
- enum mail::readMode readType,
- callback::message &callback)
-{
- genericReadMessageContent(this, this, messages, peek,
- readType, callback);
-}
-
-void mail::tmpaccount::readMessageContent(size_t messageNum,
- bool peek,
- const class mimestruct &msginfo,
- enum mail::readMode readType,
- callback::message &callback)
-{
- genericReadMessageContent(this, this, messageNum, peek,
- msginfo, readType, callback);
-}
-
-void mail::tmpaccount::readMessageContentDecoded(size_t messageNum,
- bool peek,
- const class mimestruct
- &msginfo,
- callback::message &callback)
-{
- genericReadMessageContentDecoded(this, this,
- messageNum, peek, msginfo, callback);
-}
-
-size_t mail::tmpaccount::getFolderIndexSize()
-{
- return f ? 1:0;
-}
-
-mail::messageInfo mail::tmpaccount::getFolderIndexInfo(size_t n)
-{
- if (n == 0 && f)
- return fInfo;
-
- return mail::messageInfo();
-}
-
-void mail::tmpaccount::saveFolderIndexInfo(size_t messageNum,
- const messageInfo &msgInfo,
- callback &callback)
-{
- if (messageNum == 0 && f)
- {
- messageInfo n=msgInfo;
-
- n.uid=fInfo.uid;
- fInfo=n;
-
- if (folder_callback)
- folder_callback->messageChanged(0);
- }
-
- callback.success("Ok.");
-}
-
-void mail::tmpaccount::updateFolderIndexFlags(const std::vector<size_t>
- &messages,
- bool doFlip,
- bool enableDisable,
- const messageInfo &flags,
- callback &callback)
-{
- vector<size_t>::const_iterator b, e;
-
- b=messages.begin();
- e=messages.end();
-
- bool dirty=false;
-
- while (b != e)
- {
- size_t i= *b++;
-
- if (i == 0 && f)
- {
-#define DOFLAG(dummy, field, dummy2) \
- if (flags.field) \
- { \
- fInfo.field=\
- doFlip ? !fInfo.field\
- : enableDisable; \
- }
-
- LIBMAIL_MSGFLAGS;
-#undef DOFLAG
- dirty=true;
- }
- }
-
- if (dirty && folder_callback)
- folder_callback->messageChanged(0);
-
- callback.success("Ok.");
-}
-
-void mail::tmpaccount::updateFolderIndexInfo(callback &cb)
-{
- if (f && fInfo.deleted)
- {
- fclose(f);
- f=NULL;
-
- vector< pair<size_t, size_t> > dummy;
-
- dummy.push_back( make_pair( (size_t)0, (size_t)0));
- if (folder_callback)
- folder_callback->messagesRemoved(dummy);
- }
- cb.success("Ok.");
-}
-
-void mail::tmpaccount::removeMessages(const std::vector<size_t> &messages,
- callback &cb)
-{
- genericRemoveMessages(this, messages, cb);
-}
-
-void mail::tmpaccount::copyMessagesTo(const std::vector<size_t> &messages,
- mail::folder *copyTo,
- callback &callback)
-{
- mail::copyMessages::copy(this, messages, copyTo, callback);
-}
-
-void mail::tmpaccount::searchMessages(const searchParams &searchInfo,
- searchCallback &callback)
-{
- mail::searchMessages::search(callback, searchInfo, this);
-}
-
-void mail::tmpaccount::genericMessageRead(std::string uid,
- size_t messageNumber,
- bool peek,
- mail::readMode readType,
- mail::callback::message &callback)
-{
- if (f && fInfo.uid == uid)
- {
- if (fseek(f, 0L, SEEK_END) < 0 || fseek(f, 0L, SEEK_SET) < 0)
- {
- callback.fail(strerror(errno));
- return;
- }
-
- mail::file rf(fileno(f), "r");
-
- if (!rf)
- {
- callback.fail(strerror(errno));
- return;
- }
-
- rf.genericMessageRead(this, 0, readType, callback);
-
- if (ferror(rf))
- {
- callback.fail(strerror(errno));
- return;
- }
- }
-
- if (!peek)
- genericMarkRead(0);
-
- callback.success("Ok.");
-}
-
-void mail::tmpaccount::genericMessageSize(std::string uid,
- size_t messageNumber,
- mail::callback::message &callback)
-{
- if (f && fInfo.uid == uid)
- {
- struct stat stat_buf;
-
- if (fstat(fileno(f), &stat_buf) == 0)
- {
- callback.messageSizeCallback(0, stat_buf.st_size);
- callback.success("Ok.");
- return;
- }
-
- callback.fail(strerror(errno));
- }
- else
- callback.success("Ok.");
-}
-
-void mail::tmpaccount::genericGetMessageFd(std::string uid,
- size_t messageNumber,
- bool peek,
- int &fdRet,
- mail::callback &callback)
-{
- struct rfc2045 *dummy;
-
- genericGetMessageFdStruct(uid, messageNumber, peek, fdRet, dummy,
- callback);
-}
-
-void mail::tmpaccount::genericGetMessageStruct(std::string uid,
- size_t messageNumber,
- struct rfc2045 *&structRet,
- mail::callback &callback)
-{
- int dummy;
-
- genericGetMessageFdStruct(uid, messageNumber, true, dummy, structRet,
- callback);
-}
-
-bool mail::tmpaccount::genericCachedUid(std::string uid)
-{
- return f && uid == fInfo.uid;
-}
-
-void mail::tmpaccount::genericGetMessageFdStruct(std::string uid,
- size_t messageNumber,
- bool peek,
- int &fdRet,
- struct rfc2045 *&structret,
- mail::callback &callback)
-{
- if (f && uid == fInfo.uid)
- {
- if (fseek(f, 0L, SEEK_END) < 0 || fseek(f, 0L, SEEK_SET) < 0)
- {
- callback.fail(strerror(errno));
- return;
- }
- fdRet=fileno(f);
- structret=rfc2045p;
- if (!peek)
- genericMarkRead(0);
-
- callback.success("Ok.");
- return;
- }
-
- callback.fail(strerror(ENOENT));
-}
-
-void mail::tmpaccount::genericMarkRead(size_t messageNumber)
-{
-
- if (f && fInfo.unread)
- {
- fInfo.unread=false;
- if (folder_callback)
- folder_callback->messageChanged(0);
- }
-}