--- trunk/IMAPHandler/IMAPHandler.cpp 2003/04/01 07:08:58 114 +++ trunk/IMAPHandler/IMAPHandler.cpp 2003/04/02 23:48:57 122 @@ -198,7 +198,7 @@ string IMAPHandler::imap(const string& i } else { - result += input + "\r\n"; + result += input + "\n"; } } @@ -229,7 +229,7 @@ string IMAPHandler::imap(const string& i } else { - result += input + "\r\n"; + result += input + "\n"; } } @@ -262,7 +262,7 @@ string IMAPHandler::imap(const string& i } else { - result += input + "\r\n"; + result += input + "\n"; } } @@ -273,23 +273,33 @@ void IMAPHandler::putline(const string l { if (debug) cerr << line << "\n"; - sprintf(buffer, "%s\r\n", line.c_str()); + istringstream lines(line); - if (tls) + while (lines.good()) { - if (int code = SSL_write(ssl, buffer, strlen(buffer)) <= 0) + string line; + + std::getline(lines, line); + sprintf(buffer, "%s\r\n", line.c_str()); + + if (tls) { - error(program + ": SSL Write", code); - exit(1); + if (int code = SSL_write(ssl, buffer, strlen(buffer)) <= 0) + { + error(program + ": SSL Write", code); + exit(1); + } } - } - else - { - if (send(sock, buffer, strlen(buffer), 0) == SOCKET_ERROR) + else { - error(program + ": Send"); - exit(1); + if (send(sock, buffer, strlen(buffer), 0) == SOCKET_ERROR) + { + error(program + ": Send"); + exit(1); + } } + + lines.peek(); } }