/*
DBOX Module
Copyright (C) 1994-2000 Daniel Kroening <kroening@handshake.de>
Purpose:
*/
#include <iostream>
#include <strstream>
#include <stringtools.h>
#include "dboximap4.h"
#include "mod-utf7.h"
void dboximap4t::doselect()
{
command_ok=FALSE;
readonly=(stringcasecmp(command, "EXAMINE")==0);
if(arguments.size()!=1)
{
std::cout << tag << " NO give a mailbox name\r\n";
return;
}
std::string _subfolder, mailbox_name=arguments[0].data,
_folder_owner, _folder_name;
if(process_mailbox_name(mailbox_name, _folder_owner,
_subfolder, _folder_name))
return;
folder_grantst grants;
::get_folder_grants(_folder_owner, _subfolder, up, gp, grants);
if(!grants.read)
{
std::cout << tag << " NO permission denied\r\n";
return;
}
if(mailbox!="")
{
mailbox=subfolder=folder_owner="";
close();
}
if(open_mail(_folder_owner, _subfolder))
{
std::cout << tag << " NO internal error while opening folder\r\n";
return;
}
subfolder=_subfolder;
folder_owner=_folder_owner;
mailbox=mailbox_name;
uidvalidity=atol(fp|"imap.uidvalidity");
if(uidvalidity==0) uidvalidity=1;
std::cout << "* FLAGS (\\Answered \\Flagged \\Deleted \\Seen \\Draft)\r\n"
<< "* OK [PERMANENTFLAGS (\\Answered \\Flagged \\Deleted \\Seen \\Draft)]\r\n"
<< "* OK [UIDVALIDITY " << uidvalidity << "]\r\n";
#ifdef DBOX_STANDALONE
if(mailbox=="INBOX")
movemail();
#endif
showstatus();
std::cout << tag << " OK [" << (readonly?"READ-ONLY":"READ-WRITE")
<< "] SELECT completed\r\n";
}
syntax highlighted by Code2HTML, v. 0.9.1