eXosip笔记

最近自己联系使用eXosip库来做一个sip协议相关的东西,之前在公司用的是老的版本,好像是2.3来的,这几天刚下了一个2.4的版本试了一下,写完感觉基本上差不多;不过到最后一直出来内存泄露的问题,用了十几分钟定位问题,最后发现不是自己写的代码处的问题,而是在eXosip库退出时的退出函数eXosip_quit本身里面处理存在内存泄露问题,代码如下:

初始化中:m_ctx = eXosip_malloc();

                int iRet &#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
eXosip中的401状态码表示服务器需要用户再次发送带认证信息的注册请求。当用户第一次发送注册请求后,如果收到了401状态码的响应,用户可以根据这个状态码来判断是否需要重新发送带认证信息的注册请求。在处理EXOSIP_REGISTRATION_FAILURE事件时,可以选择两种方式进行处理。 第一种方式是自动处理。在eXosip事件处理循环中调用eXosip_automatic_action()函数,该函数会自动帮助用户处理401状态码,用户不需要手动发送带认证信息的注册请求,只需要在第一次注册时就添加好认证信息即可。 第二种方式是手动处理。在EXOSIP_REGISTRATION_FAILURE事件中,可以添加以下代码来处理401状态码: ```c if ((event->response != NULL) && (event->response->status_code == 401)) { osip_message_t *reg = NULL; eXosip_lock(); eXosip_clear_authentication_info(); // 清空认证信息 eXosip_add_authentication_info(username, username, password, "MD5", NULL); // 添加认证信息 eXosip_register_build_register(event->rid, expires, &reg); eXosip_register_send_register(event->rid, reg); // 发送注册请求 eXosip_unlock(); } else { // 注册失败处理 ... } ``` 以上代码会在收到401状态码时,清空认证信息并添加新的认证信息,然后重新构建并发送带认证信息的注册请求。 总结起来,当eXosip收到401状态码时,用户可以选择自动处理或手动处理来发送带认证信息的注册请求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值