diff options
| author | Sam Varshavchik | 2018-04-27 19:17:42 -0400 | 
|---|---|---|
| committer | Sam Varshavchik | 2018-04-27 19:17:42 -0400 | 
| commit | 9ad6c58af31f682374bdbf136d6e9f337ea39209 (patch) | |
| tree | 1607a69a4e70e79b905943b717670369cc08d523 /libmail/tmpaccount.C | |
| parent | a6074e9074e02423f879d2d8bf923ca815cee760 (diff) | |
| download | courier-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.C | 417 | 
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); -	} -}  | 
