我正在尝试诊断OpenSIPS(一种SIP代理)应用程序的问题。
当向相同的IP和端口发送两个不同的UDP数据包时,一个呼叫失败并显示
这两个呼叫都是从同一个进程(至少是相同的PID)发出的。
有关疑问的代码在github上。
以下是strace输出:
当向相同的IP和端口发送两个不同的UDP数据包时,一个呼叫失败并显示
-1 EPERM(操作不允许)
,而另一个则正常。这两个呼叫都是从同一个进程(至少是相同的PID)发出的。
有关疑问的代码在github上。
以下是strace输出:
strace -e sendto
sendto(7, "SIP/2.0 100 Giving a try\r\nVia: S"..., 315, 0, {sa_family=AF_INET, sin_port=htons(5060), sin_addr=inet_addr("yyy.yyy.yyy.yyy")}, 16) = 315
sendto(7, "INVITE sip:myHomeDesktop@xxx"..., 1253, 0, {sa_family=AF_INET, sin_port=htons(5060), sin_addr=inet_addr("xxx.xxx.xxx.xxx")}, 16) = 1253
sendto(7, "SIP/2.0 200 OK\r\nVia: SIP/2.0/UDP"..., 707, 0, {sa_family=AF_INET, sin_port=htons(5060), sin_addr=inet_addr("yyy.yyy.yyy.yyy")}, 16) = -1 EPERM (Operation not permitted)