Пример #1
0
void on_tcp_read(uv_stream_t *stream, ssize_t nrd, const uv_buf_t *data)
{
    uv_tls_t *parent = CONTAINER_OF(stream, uv_tls_t, skt);
    assert( parent != NULL);
    if ( nrd <= 0 ) {
        if( nrd == UV_EOF) {
            uv_tls_close((uv_handle_t*)stream, (uv_close_cb)free);
        }
        free(data->base);
        return;
    }

    static int is_tls = 0;
    static int is_first = 1;
    if (is_first) {
        if (is_tls_stream(data->base, nrd)) {
            evt_tls_feed_data(parent->tls, data->base, nrd);
            is_tls = 1;
        }
        is_first = 0;
    }
    else {
        if(is_tls) {
            evt_tls_feed_data(parent->tls, data->base, nrd);
        }
    }
    free(data->base);
}
Пример #2
0
//Callback for testing
void on_read(uv_tls_t* clnt, int nread, uv_buf_t* dcrypted)
{
    if( nread <= 0 ) {
        if( nread == UV_EOF) {
            uv_tls_close(clnt, on_close);
        }
        return;
    }
    uv_write_t *rq = (uv_write_t*)malloc(sizeof(*rq));
    assert(rq != 0);
    uv_tls_write(rq, clnt, dcrypted, on_write);
    free(dcrypted->base);
    dcrypted->base = NULL;
}
Пример #3
0
void on_tcp_read(uv_stream_t *stream, ssize_t nrd, const uv_buf_t *data)
{
    uv_tls_t *parent = CONTAINER_OF(stream, uv_tls_t, skt);
    assert( parent != NULL);
    if ( nrd <= 0 ) {
        if( nrd == UV_EOF) {
            uv_tls_close((uv_handle_t*)stream, (uv_close_cb)free);
        }
        free(data->base);
        return;
    }

    evt_tls_feed_data(parent->tls, data->base, nrd);
    free(data->base);
}
Пример #4
0
void on_uv_handshake(uv_tls_t *ut, int status) {
    if ( 0 == status )
        uv_tls_read((uv_stream_t*)ut, NULL, uv_rd_cb);
    else
        uv_tls_close((uv_handle_t*)ut, (uv_close_cb)free);
}
Пример #5
0
void on_write(uv_tls_t *tls, int status) {
    uv_tls_close((uv_handle_t*)&tls->skt, (uv_close_cb)free);
}