Exemplo n.º 1
0
static void
epollserver_handle_sessionclose(struct epollserver_s* epollserver, struct session_s* session)
{
    if(SOCKET_ERROR != session->fd)
    {
        epollserver_halfclose_session(epollserver, session);
        ox_socket_close(session->fd);
        session->fd = SOCKET_ERROR;

        session->status = session_status_none;
    }

    if(session->recv_buffer != NULL)
    {
        ox_buffer_delete(session->recv_buffer);
        session->recv_buffer = NULL;
    }
    if(session->send_buffer != NULL)
    {
        ox_buffer_delete(session->send_buffer);
        session->send_buffer = NULL;
    }

    free(session);
}
Exemplo n.º 2
0
void
ox_connection_delete(struct connection_s* self)
{
    ox_fdset_delete(self->fdset);
    ox_buffer_delete(self->send_buffer);
    ox_buffer_delete(self->recv_buffer);

    ox_rwlist_delete(self->sendmsg_list);
    ox_rwlist_delete(self->free_sendmsg_list);
    ox_rwlist_delete(self->netmsg_list);
    ox_rwlist_delete(self->free_netmsg_list);
    ox_rwlist_delete(self->proc_list);

    if(self->fd != SOCKET_ERROR)
    {
        ox_socket_close(self->fd);
        self->fd = SOCKET_ERROR;
    }

    free(self);
}
Exemplo n.º 3
0
void SSDBProtocolRequest::appendBlock(const char* data, size_t len)
{
    if (ox_buffer_getwritevalidcount(m_request) < len)
    {
        buffer_s* temp = ox_buffer_new(ox_buffer_getsize(m_request) + len);
        memcpy(ox_buffer_getwriteptr(temp), ox_buffer_getreadptr(m_request), ox_buffer_getreadvalidcount(m_request));
        ox_buffer_addwritepos(temp, ox_buffer_getreadvalidcount(m_request));
        ox_buffer_delete(m_request);
        m_request = temp;
    }

    ox_buffer_write(m_request, data, len);
}
Exemplo n.º 4
0
struct buffer_s* 
ox_buffer_new(size_t buffer_size)
{
    struct buffer_s* ret = (struct buffer_s*)malloc(sizeof(struct buffer_s));

    if(ret != NULL)
    {
        if((ret->data = (char*)malloc(sizeof(char)*buffer_size)) != NULL)
        {
            ret->data_len = buffer_size;
            ret->read_pos = 0;
            ret->write_pos = 0;
        }
        else
        {
            ox_buffer_delete(ret);
            ret = NULL;
        }
    }

    return ret;
}
Exemplo n.º 5
0
SSDBProtocolRequest::~SSDBProtocolRequest()
{
    ox_buffer_delete(m_request);
    m_request = NULL;
}