/*

  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