首页 > 其他分享 >eXosip底层库升级修改记录

eXosip底层库升级修改记录

时间:2023-06-12 19:32:29浏览次数:42  
标签:sdp ERR equal next char 修改 eXosip 底层

前言

libosip2-4.1.0升级到libosip2-5.30


修改代码

sdp_message_parse_m

旧版本

static int
sdp_message_parse_m (sdp_message_t * sdp, char *buf, char **next)
{
  char *equal;
  char *crlf;
  char *tmp;
  char *tmp_next;
  int i;
  sdp_media_t *m_header;
  char *slash;
  char *space;

  *next = buf;

  equal = buf;
  while ((*equal != '=') && (*equal != '\0'))
    equal++;
  if (*equal == '\0')
    return ERR_ERROR;

  /* check if header is "m" */
  if (equal[-1] != 'm')
    return ERR_DISCARD;

新版本

static int sdp_message_parse_m(sdp_message_t *sdp, char *buf, char **next) {
  char *equal;
  char *crlf;
  char *tmp;
  char *tmp_next;
  int i;
  sdp_media_t *m_header;
  char *slash;
  char *space;

  *next = buf;

  equal = buf;

  while ((*equal != '=') && (*equal != '\0'))
    equal++;

  if (*equal == '\0')
    return ERR_ERROR;

  /* check if header is "m" */
  if (equal[-1] != 'm')
    return ERR_ERROR; /* fixed Jan 10,2020: avoid a possible memory leak with m being not detected */

区别

if (equal[-1] != 'm')应该返回ERR_ERROR(-1)还是ERR_DISCARD(0)

实际上如果出现f=参数,不应该返回-1,而应该返回0,旧版本才是正确的返回方式,因此多余的f=参数

eXosip_call_send_ack_to_peer

修改为

eXosip_call_send_ack

eXosip_call_terminate_to_peer

修改为

eXosip_call_terminate

订阅函数

旧版本

eXosip_subscribe_build_initial_request

新版本

eXoisp_subscription_build_initial_subscribe


自动订阅和定时发送注册信息

旧版本

eXosip_automatic_refresh    

新版本

eXoisp_auomatic_action


标签:sdp,ERR,equal,next,char,修改,eXosip,底层
From: https://blog.51cto.com/fengyuzaitu/6464995

相关文章

  • 【Ubuntu22.04】安装MySQL数据库,修改root用户密码,实现远程访问,
    预备条件本次实验使用静态IP的地址192.168.1.81作为mysql-001服务器地址,并配置为本地域名mysql-001:打开Powershell(Window自带)使用SSH方式连接服务器,用户名test,密码:123456:安装Mysql:更新软件源aptupdate安装MySQL8.0,因为Ubuntu22.04不支持MySQL5.7sudoaptinst......
  • DML-操作数据-修改-删除
     SELECT*fromstu;--修改数据UPDATE表名SET列名1=值1,列名2=值2,...[WHERE条件1];--将张三的性别改为女updatestusetsex='女'WHEREname='张三';--将张三的生日改为199-12-12分数改为99.99updatestusetbirthday='1999-12-12',score=99.9WHEREname='......
  • 0001.Excel文件新建读取修改保存
    一、文件读取python办公自动化,会用到xlrd库,所以需要先安装xlrd库。importxlrdwb=xlrd.open_workbook('招生表.xls')#读取工作簿ws=wb.sheets()#文件sheets包含项,列表式的键值对print(ws)wsname=wb.sheet_names()#列表式工作簿下的所有工作表对象p......
  • 域账户设置后 公司桌面图标被限制 如何修改?
    packagemainimport( "fmt" "os" "syscall" "unsafe")const( SPI_SETDESKWALLPAPER=0x0014 SPIF_UPDATEINIFILE =0x0001 SPIF_SENDCHANGE   =0x0002)funcmain(){ //获取指定的图片文件路径 //args:=o......
  • kanzi的android程序修改包名和应用程序名字
    1、修改进程名: 2、修改应用程序名字: 3、修改系统调度ID 通知权限 ......
  • CNCF Alibaba 云原生技术底层知识点以及核心概念
    1、入门:1.Kubernetes并不支持为应用固定IP,于是我自己通过编写网络插件把应用IP管理在了etcd里,然后上线。请问这破坏了云原生的理念了吗?AA.否B.是2.云原生技术与容器技术的关系是?BA.完全相同B.容器技术是云原生的基础技术之一C.没有关系3.容器启动后,我会时常SSH......
  • idea java项目中,中文显示成Unicode(UTF-16编码)的字符,修改为中文显示
    idea选择File选择Setings搜索框搜索fileencodings勾选Transparentnative-to-asciiconversion      ......
  • 修改eyou里留言发送邮件时的发件人信息问题
    如题,默认情况下,如果发件件箱是[email protected],那么收到的发件人信息是12345。想改成其它内容的话,就要改这个文件application/common/logic/EmailLogic.php。找到 privatefunctionsend_phpmailer  里面的内容$mail->setFrom(发邮件地,发送者昵称),不填第二个参数的话,如上述地址的话......
  • STL之Stack与queue的模拟实现与duque的底层结构(3千字长文详解)
    STL之Stack与queue的模拟实现与duque的底层结构设计模式的概念设计模式像是古代的兵法,是以前的人总结出来的一些在特定的情况下,某种特定的好用的方法总结STL中迭代器也是一种设计模式——==迭代器模式==STL中stack和queue的实现就是使用了一种设计模式——==适配器模式!==适......
  • ArangoDB介绍——未知架构和底层原理
    ArangoDB介绍ArangoDB是一个开源NoSQL数据库,官网:https://www.ArangoDB.org/ArangoDB支持灵活的数据模型,比如文档Document、图Graph以及键值对Key-Value存储。ArangoDB同时也是一个高性能的数据库,它使用类SQL查询或JavaScript扩展来构建高性能应用。ArangoDB值得称赞的一点,可以在树......