Commit de8dd504 authored by Hans Leidekker's avatar Hans Leidekker Committed by Alexandre Julliard

inetcomm: Add an implementation of ISMTPTransport2::CommandDATA.

parent d80d9b82
......@@ -123,6 +123,40 @@ static void SMTPTransport_CallbackReadResponseDoNothing(IInternetTransport *ifac
InternetTransport_ReadLine(&This->InetTransport, SMTPTransport_CallbackDoNothing);
}
static void SMTPTransport_CallbackProcessDATAResponse(IInternetTransport *iface, char *pBuffer, int cbBuffer)
{
SMTPTransport *This = (SMTPTransport *)iface;
SMTPRESPONSE response = { 0 };
HRESULT hr;
TRACE("\n");
hr = SMTPTransport_ParseResponse(This, pBuffer, &response);
if (FAILED(hr))
{
/* FIXME: handle error */
return;
}
response.command = SMTP_DATA;
ISMTPCallback_OnResponse((ISMTPCallback *)This->InetTransport.pCallback, &response);
if (FAILED(response.rIxpResult.hrServerError))
{
ERR("server error: %s\n", debugstr_a(pBuffer));
/* FIXME: handle error */
return;
}
}
static void SMTPTransport_CallbackReadDATAResponse(IInternetTransport *iface, char *pBuffer, int cbBuffer)
{
SMTPTransport *This = (SMTPTransport *)iface;
TRACE("\n");
InternetTransport_ReadLine(&This->InetTransport, SMTPTransport_CallbackProcessDATAResponse);
}
static void SMTPTransport_CallbackProcessMAILResponse(IInternetTransport *iface, char *pBuffer, int cbBuffer)
{
SMTPTransport *This = (SMTPTransport *)iface;
......@@ -843,8 +877,12 @@ static HRESULT WINAPI SMTPTransport_CommandRSET(ISMTPTransport2 *iface)
static HRESULT WINAPI SMTPTransport_CommandDATA(ISMTPTransport2 *iface)
{
FIXME("()\n");
return E_NOTIMPL;
SMTPTransport *This = (SMTPTransport *)iface;
TRACE("()\n");
return InternetTransport_DoCommand(&This->InetTransport, "DATA\n",
SMTPTransport_CallbackReadDATAResponse);
}
static HRESULT WINAPI SMTPTransport_CommandDOT(ISMTPTransport2 *iface)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment