您的位置:程序门 -> windows专区 -> 安全技术/病毒



请问opsec的mainloop如何退出?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请问opsec的mainloop如何退出?[无满意答案结贴,结贴人:ffb]
发表于:2007-04-18 16:22:52 楼主
请问checkpoint的opsecsdk中的
opsec_mainloop
这个函数该如何让他退出?

我使用lea_online参数创建的lea_new_session,在opsec_mainloop方法调用之后程序收集完所有的日志之后依然处于连接状态(opsec_mainloop方法不返回),此时我希望在另外线程中可以终止这个过程,我使用的方法是opsec_end_session(m_popsecsession);但是发现opsec_mainloop依然不能被终止,经查sdk文档,说使用opsec_del_event_handler和opsec_unraise_event之后可以让opsec_mainloop终止,但是这两个方法都需要一个eventid参数,请问eventid参数从何处得来?(文档中说用opsec_new_id,但是何时调用?)


附代码片断:

调用opseclea的线程
m_popsecclient   =   opsec_init_entity(m_popsecenv,   lea_client,
opsec_session_start_handler,   cfw::leastarthandler,
lea_record_handler,   cfw::learecordhandler,
lea_eof_handler,   cfw::leaeofhandler,
opsec_session_end_handler,   cfw::leaendhandler,
opsec_eol);

...

if(!(m_popsecsession   =   lea_new_session(m_popsecclient,   m_popsecserver,   lea_online,   lea_filename,   lea_normal,   lea_at_pos,   m_nlastpos)))
{
return   s_false;
}

commfunc::debugview( "opsec   lea   session建立完毕. ");

int   nret   =   opsec_mainloop(m_popsecenv);

commfunc::debugview( "lea   session结束. ");     //   此句从未执行


用于终止的线程:
opsec_end_session(m_popsecsession);
ace_time_value   timeout(5);  
m_plog_thread-> wait(&timeout);   //   这里一定超时

delete   m_plog_thread;
m_plog_thread   =   null;
发表于:2007-04-27 13:37:481楼 得分:0
发表于:2007-05-29 09:51:232楼 得分:0
晕什么啊


快速检索

最新资讯
热门点击