Hi
From API httpsrv_write, you can see the offset usage.
int32_t httpsrv_write(HTTPSRV_SESSION_STRUCT *session, char *src, int32_t length)
{
uint32_t space = HTTPSRV_SES_BUF_SIZE_PRV - session->buffer.offset;
int32_t retval = length;
uint32_t n_send;
RTCS_ASSERT(session != NULL);
RTCS_ASSERT(src != NULL);
/* User buffer is bigger than session buffer - send user data directly */
if (length > HTTPSRV_SES_BUF_SIZE_PRV)
{
/* If there are some data already buffered send them to client first */
if (httpsrv_ses_flush(session) == RTCS_ERROR)
{
return(RTCS_ERROR);
}
else
{
return(httpsrv_send(session, src, length, 0));
}
}
/* No space in buffer - make some */
if
(
(space < length) &&
(httpsrv_ses_flush(session) == RTCS_ERROR)
)
{
return(RTCS_ERROR);
}
/* Now we can save user data to buffer and eventually send them to client */
space = HTTPSRV_SES_BUF_SIZE_PRV - session->buffer.offset;
n_send = (space < length) ? space : length;
_mem_copy(src, session->buffer.data+session->buffer.offset, n_send);
session->buffer.offset += n_send;
if (session->buffer.offset >= HTTPSRV_SES_BUF_SIZE_PRV)
{
if (httpsrv_ses_flush(session) == RTCS_ERROR)
{
return(RTCS_ERROR);
}
else
{
retval = n_send;
}
}
return(retval);
}
Regards
Daniel