Exemplo n.º 1
0
void
fs_node_recv_data(struct fs_node* node, BYTE* data, size_t len){
    
    if(!node->recv_buffer){
        fprintf(stderr, "fs_node_recv_data but node recvbuffer is NULL\n");
        return ;
    }
    
    fs_stream_write_data(node->recv_buffer, data, len);
    
    const BYTE* stream_data = fs_output_stream_get_dataptr(node->recv_buffer);
    size_t stream_len = fs_output_stream_get_len(node->recv_buffer);
    
    struct fs_pack* pack = NULL;
    size_t offset = 0;
    do{
        pack = NULL;
        if(node->server != NULL){
            size_t pack_len = fs_server_parse_pack(node->server, stream_data + offset, stream_len - offset, node->node_id, &pack);
            if(pack_len){
                fs_server_on_recv_pack(node->server, pack);
            }
            offset += pack_len;
        }
        
    }while (pack != NULL);
    
    if(offset > 0 && node->recv_buffer){
        fs_output_stream_sub(node->recv_buffer, offset, stream_len - offset);
    }
}
Exemplo n.º 2
0
void
fs_ruby_on_node_shudown( struct fs_server* server, fs_id node_id){

    fs_server_on_recv_pack(server, fs_create_diconnect_pack(node_id));
    
}
Exemplo n.º 3
0
void
fs_ruby_on_server_start( struct fs_server* server ){
    
    fs_server_on_recv_pack(server, fs_create_server_start(server));

}