Example #1
0
bool
ListCommand::HandleUntagged(Response& response)
{
	if (response.IsCommand(_Command()) && response.IsStringAt(2)
		&& response.IsStringAt(3)) {
		fSeparator = response.StringAt(2);

		BString folder = response.StringAt(3);
		if (folder == "")
			return true;

		try {
			folder = fEncoding.Decode(folder);
			// The folder INBOX is always case insensitive
			if (folder.ICompare("INBOX") == 0)
				folder = "Inbox";
			fFolders.push_back(folder);
		} catch (ParseException& exception) {
			// Decoding failed, just add the plain text
			fprintf(stderr, "Decoding \"%s\" failed: %s\n", folder.String(),
				exception.Message());
			fFolders.push_back(folder);
		}
		return true;
	}

	return false;
}
Example #2
0
status_t
Command::HandleTagged(Response& response)
{
	if (response.StringAt(0) == "OK")
		return B_OK;
	if (response.StringAt(0) == "BAD")
		return B_BAD_VALUE;
	if (response.StringAt(0) == "NO")
		return B_NOT_ALLOWED;

	return B_ERROR;
}