| 869 | } |
| 870 | |
| 871 | void NNTPSession::postMessage(Data * messageData, NNTPProgressCallback * callback, ErrorCode * pError) |
| 872 | { |
| 873 | int r; |
| 874 | |
| 875 | messageData = dataWithFilteredBcc(messageData); |
| 876 | |
| 877 | mProgressCallback = callback; |
| 878 | bodyProgress(0, messageData->length()); |
| 879 | |
| 880 | MCLog("setup"); |
| 881 | |
| 882 | MCLog("connect"); |
| 883 | loginIfNeeded(pError); |
| 884 | if (* pError != ErrorNone) { |
| 885 | goto err; |
| 886 | } |
| 887 | |
| 888 | MCLog("send"); |
| 889 | r = newsnntp_post(mNNTP, messageData->bytes(), messageData->length()); |
| 890 | |
| 891 | String * response; |
| 892 | |
| 893 | response = NULL; |
| 894 | if (mNNTP->nntp_response != NULL) { |
| 895 | response = String::stringWithUTF8Characters(mNNTP->nntp_response); |
| 896 | } |
| 897 | |
| 898 | if (r == NEWSNNTP_ERROR_STREAM) { |
| 899 | * pError = ErrorConnection; |
| 900 | goto err; |
| 901 | } |
| 902 | else if (r != NEWSNNTP_NO_ERROR) { |
| 903 | * pError = ErrorSendMessage; |
| 904 | goto err; |
| 905 | } |
| 906 | |
| 907 | bodyProgress(messageData->length(), messageData->length()); |
| 908 | * pError = ErrorNone; |
| 909 | |
| 910 | err: |
| 911 | mProgressCallback = NULL; |
| 912 | } |
| 913 | |
| 914 | void NNTPSession::postMessage(String * messagePath, NNTPProgressCallback * callback, ErrorCode * pError) |
| 915 | { |