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; }
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; }