Example #1
0
void init_port()
{
	DO_INIT();
	DI_INIT();
	CK_INIT();
	CS_INIT();
}
Example #2
0
/* Initialize connection */
CONN *conn_init(int fd, char *ip, int port)
{
    CONN *conn = NULL;

    if(fd > 0 && ip && port > 0 && (conn = calloc(1, sizeof(CONN))))
    {
        conn->fd = fd;
        strcpy(conn->ip, ip);
        conn->port = port;
        TIMER_INIT(conn->timer);
        MB_INIT(conn->buffer, MB_BLOCK_SIZE);
        MB_INIT(conn->packet, MB_BLOCK_SIZE);
        MB_INIT(conn->cache, MB_BLOCK_SIZE);
        MB_INIT(conn->oob, MB_BLOCK_SIZE);
        CK_INIT(conn->chunk);
        conn->send_queue            = QUEUE_INIT();
        conn->event                 = ev_init();
        conn->set                   = conn_set;
        conn->close                 = conn_close;
        conn->over                  = conn_over;
        conn->terminate             = conn_terminate;
        conn->start_cstate          = conn_start_cstate;
        conn->over_cstate           = conn_over_cstate;
        conn->set_timeout           = conn_set_timeout;
        conn->set_session           = conn_set_session;
        conn->push_message          = conn_push_message;
        conn->read_handler          = conn_read_handler;
        conn->write_handler         = conn_write_handler;
        conn->packet_reader         = conn_packet_reader;
        conn->packet_handler        = conn_packet_handler;
        conn->oob_handler           = conn_oob_handler;
        conn->data_handler          = conn_data_handler;
        conn->transaction_handler   = conn_transaction_handler;
        conn->save_cache            = conn_save_cache;
        conn->chunk_reader          = conn_chunk_reader;
        conn->recv_chunk            = conn_recv_chunk;
        conn->push_chunk            = conn_push_chunk;
        conn->recv_file             = conn_recv_file;
        conn->push_file             = conn_push_file;
        conn->set_session           = conn_set_session;
        conn->clean                 = conn_clean;
    }
    return conn;
}
Example #3
0
/* push chunk file */
int conn_push_file(CONN *conn, char *filename, long long offset, long long size)
{
    int ret = -1;
    CHUNK *cp = NULL;
    CONN_CHECK_RET(conn, ret);

    if(conn && conn->send_queue && filename && offset >= 0 && size > 0)
    {
        CK_INIT(cp);
        if(cp)
        {
            CK_FILE(cp, filename, offset, size);
            QUEUE_PUSH(conn->send_queue, PCHUNK, &cp);
            if((QTOTAL(conn->send_queue)) > 0 ) conn->event->add(conn->event, E_WRITE);
            DEBUG_LOGGER(conn->logger, "Pushed file[%s] [%lld][%lld] to "
                    "send_queue total %d on %s:%d via %d ", filename, offset, 
                    size, QTOTAL(conn->send_queue), conn->ip, conn->port, conn->fd);
            ret = 0;
        }
    }
    return ret;
}
Example #4
0
/* push chunk */
int conn_push_chunk(CONN *conn, void *data, int size)
{
    int ret = -1;
    CHUNK *cp = NULL;
    CONN_CHECK_RET(conn, ret);

    if(conn && conn->send_queue && data && size > 0)
    {
        CK_INIT(cp);
        if(cp)
        {
            CK_MEM(cp, size);
            CK_MEM_COPY(cp, data, size);
            QUEUE_PUSH(conn->send_queue, PCHUNK, &cp);
        }
        if(QTOTAL(conn->send_queue) > 0 ) conn->event->add(conn->event, E_WRITE);
        DEBUG_LOGGER(conn->logger, "Pushed chunk size[%d] to send_queue "
                    "total %d on %s:%d via %d ", size, QTOTAL(conn->send_queue), 
                    conn->ip, conn->port, conn->fd);
        ret = 0;
    }
    return ret;
}