ZBLOG

逐步分析解释一下这段代码 ``` static bool conn_update_state_alg(struct conntrack *ct, struct dp_packet *pkt, struct conn_lookup_ctx *ctx, struct conn *conn, const struct nat_action_info_t *nat_action_info, ...

该函数的作用是更新连接状态。具体来说,函数接受一个名为ct的指向conntrack结构体的指针、一个名为pkt的指向dp_packet结构体的指针、一个名为ctx的指向conn_lookup_ctx结构体的指针、一个名为conn的指向conn结构体的指针、一个名为nat_action_info的指向nat_action_info_t结构体的指针、一个类型为enum ct_alg_ctl_type的参数ct_alg_ctl、一个名为now的长整型数值、一个无符号整型数值bucket和一个名为create_new_conn的指向布尔类型变量的指针。

首先函数判断ct_alg_ctl是否为ftp_ctl,如果是,则进行一些特殊处理。具体来说,如果ctx->reply不等于conn->seq_skew_dir,则调用handle_ftp_ctl函数,然后通过调用conn_update_state函数更新连接状态,并将返回值赋值给*create_new_conn。如果ctx->reply等于conn->seq_skew_dir,则直接调用conn_update_state函数更新连接状态,并将返回值赋值给*create_new_conn。在这种情况下,如果*create_new_conn为假,则调用handle_ftp_ctl函数。最后,函数返回真值。

如果ct_alg_ctl不为ftp_ctl,则函数只是调用conn_update_state函数更新连接状态,并将返回值赋值给*create_new_conn。最后,函数返回假值。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=393

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?