<NE08E-S6E_dayangtiancheliangduan>dis cur !Software Version V300R005C00SPC200 !Last configuration was updated at 2020-09-08 13:38:28+08:00 by huawei !Last configuration was saved at 2020-11-18 00:00:07+08:00 by huawei # loop-detect trigger enable # clock timezone Beijing add 08:00:00 # sysname NE08E-S6E_dayangtiancheliangduan # set neid b47628 lldp enable-dcn authentication %^%#/vH]8;MUZ$kCQ=R-i!<-CADoCJ*zC3k]UwY)bg($%^%# # FTP client-source -a 10.50.211.1 # undo user-security-policy enable # vlan batch 1070 1100 1122 1125 # stp mode rstp stp enable # ecc peer-public-key 127.0.0.1 public-key-code begin 0400D3C4 6FE480BC C03D8CEA 8327663E CD7F7D5F F2D08DEF C6AEBD7C 8A24A69D 5702E7C7 0C150696 46DF5A09 11AFFF7D 1C57FAD6 43081D2B E16E4186 5FB74059 74263601 D6E4FD99 D84191D7 3B91DBB6 7D347829 3F5ECD04 88D6645E 096E2EBB 3BA03723 693DD706 139CFA1F 451A294B 56018F22 FC0CB1B4 29BC984A 38455B22 BBF86B67 67 public-key-code end peer-public-key end
时间: 2024-04-29 09:20:25 浏览: 318
这是一个华为路由器的配置信息,可以看到当前使用的软件版本是V300R005C00SPC200,配置最后一次更新和保存的时间分别是2020年9月8日和2020年11月18日。其中包含了一些配置命令,如启用了环路检测、设置了时区等等。还有一段 ECC peer-public-key 的配置,用于配置加密通信的公钥。
相关问题
static int fread_frame_rate(play_para_t *p_para) { int average_count; if (p_para->frame_count < 0) { p_para->frame_count = 0; p_para->mread_frame_rate.last_frame_times = 0; } if (p_para->mread_frame_rate.last_frame_times == 0) { p_para->mread_frame_rate.last_frame_times = av_gettime(); p_para->mread_frame_rate.in_count = 0; } int normal_read_framerate = am_getconfig_int_def("media.amplayer.normal_read_framerate", 50); if (av_gettime() - p_para->mread_frame_rate.last_frame_times >= 200000) { p_para->mread_frame_rate.in_count++; p_para->mread_frame_rate.last_frame_times = av_gettime(); int in_count = p_para->mread_frame_rate.in_count; if (in_count <= READ_FRAME_RATE_TIMES) { p_para->mread_frame_rate.mread_frame_info[in_count-1].read_frame_count = p_para->frame_count; p_para->mread_frame_rate.mread_frame_info[in_count-1].read_frame_time = av_gettime(); } else { int i; for (i = 0; i < (READ_FRAME_RATE_TIMES-1); i++) { p_para->mread_frame_rate.mread_frame_info[i].read_frame_count = p_para->mread_frame_rate.mread_frame_info[i+1].read_frame_count; p_para->mread_frame_rate.mread_frame_info[i].read_frame_time = p_para->mread_frame_rate.mread_frame_info[i+1].read_frame_time; } p_para->mread_frame_rate.mread_frame_info[i].read_frame_count = p_para->frame_count; p_para->mread_frame_rate.mread_frame_info[i].read_frame_time = av_gettime(); } if (in_count < READ_FRAME_RATE_TIMES) { average_count = normal_read_framerate; } else { average_count = get_average_count(p_para->mread_frame_rate.mread_frame_info); } p_para->cur_frame_rate = average_count; } else { if (p_para->mread_frame_rate.in_count < READ_FRAME_RATE_TIMES) { p_para->cur_frame_rate = normal_read_framerate; } average_count = p_para->cur_frame_rate; } return average_count; }
这段代码的作用是计算视频播放的帧率。它通过记录播放的帧数和时间,计算出最近一段时间内的平均帧率。如果记录的帧数不足 READ_FRAME_RATE_TIMES 次,则使用默认帧率 normal_read_framerate。如果记录的帧数超过了 READ_FRAME_RATE_TIMES 次,则计算平均帧率。如果在一定时间内没有读取到新的帧,则使用之前的平均帧率。最终返回的是平均帧率。
Value* ApplyOneValue(int flag = 1)//flag:0代表在hashmap外部申请,1代表在hashmap内部申请 { Value *vl = NULL; if (node_list_head_) { if (value_status_.free_num_ > 1) { ValueNode* tmp = node_list_head_ ; node_list_head_ = node_list_head_->next_node_; tmp->next_node_ = NULL; value_status_.free_num_--; tmp->value_.use_count_ = flag; vl = &(tmp->value_); //return &(tmp->value_); } else { ValueNode* tmp_node = new ValueNode[kDefaultAddSize]; ValueNode* cur_node = tmp_node; if (!tmp_node) { return NULL; } vec_memptr_.push_back(tmp_node); for (uint32_t i = 1; i< kDefaultAddSize; i++) { cur_node->value_.node_ptr_ = (void*)cur_node; cur_node->next_node_ = tmp_node + i; cur_node = cur_node->next_node_; } value_status_.free_num_ += kDefaultAddSize; value_status_.total_size_ += kDefaultAddSize; node_list_head_->next_node_ = tmp_node; node_list_tail_ = cur_node; node_list_tail_->next_node_ = NULL; node_list_tail_->value_.node_ptr_ = (void*)node_list_tail_; ValueNode* tmp = node_list_head_ ; node_list_head_ = node_list_head_->next_node_; tmp->next_node_ = NULL; value_status_.free_num_--; tmp->value_.use_count_ = flag; vl = &(tmp->value_); //return &(tmp->value_); } } if(NULL != vl) { //reverse start; if(rphead && ::is_open_reverse) { rphead->CdrRaw.ncdrid = cdrgetid(rphead->lcoreid); //创建父cdrid; rphead->CdrRaw.tstart.tm_cycles = rphead->tstart.tm_cycles; rphead->CdrRaw.cdrstat = PACKET_BEGIN; rphead->btCurStaus = PACKET_BEGIN; pubSendPkt((void*)rphead); //存储父cdr信息; vl->SetReverse(rphead->CdrRaw.ncdrid, rphead->CdrRaw.tstart.tm_cycles); } //返回; return vl; } return NULL; }代码意思
这段代码是一个函数,名为ApplyOneValue,返回值为指向Value的指针。函数的作用是从一个对象池中申请一个Value对象,并返回该对象的指针。如果对象池中没有空闲的对象,则会动态申请一块内存来存储一定数量的Value对象,并将这些对象链接成一个链表,同时将其中的一个对象返回。参数flag用于指示对象是在对象池内部还是外部申请的。如果在外部申请,需要手动释放该对象。函数中还包含一些与逆向代理相关的代码,用于存储父cdr信息和发送数据包。
阅读全文