<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<div>
<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>
<div vlink=purple link=blue>
<div>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy'>Hi Jeremy, </span></font><font color=navy><span
style='color:navy'><o:p></o:p></span></font></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:.5in'><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>When this happens do you, by chance,
notice the CPU utilization go close to 100% on your target?</span></font><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>I checked, and I don't experience this.<br>
<br>
Mostly, I just need a way of knowing that stuff is erroring out, but as far as
I see, I don't get any feedback. The stream never times out (I'm using a
DarwinInjector), none of the callbacks get fired (i.e.
ByeHandler/AfterPlaying), etc. At this point I'm thinking I'll have to
make code changes to make this work correctly, but maybe Ross will have some
feedback.<br>
<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>I just pulled the network cable on my
setup (RTSPoverHTTP)…I get an EAGAIN returned from send() (as my TCP tunnel
socket is non-blocking)… the TCP connection hasn’t timed out…the
Socket buffer just fills up…<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Do your send() calls fail inside
sendRTPOverTCP() (with EAGAIN)? <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>The current code checks, but doesn’t
return the status…it simply returns after the first failed call. Note, it
is a void return from sendRTPOverTCP(), so you’d never know that data isn’t
making it down the stack (nor that the connection is “broken”).<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Note, I didn’t conditionalize my
error handling for specific errno returns…which I probably should have…and,
it may be better to pass the status further up, to allow for error handling at
a higher, more appropriate layer…Ross may have some ideas here (maybe a
client provided error “handler” function could be used).<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>In my case the send() call(s) fail with
errno= broken-pipe once that connection gets closed by the peer…that is
the clue upon which my experiment is triggering the cleanup (i.e. removing the
socket). The status is returned at the same point that RTPOverTCP_OK
would be set FALSE in previous releases of code…as you’ve pointed
out before, that is a global, and doesn’t work for multiple
connections/streams…however, the returned status should.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>I believe both the RTP and RTCP sockets
from the RTPInterface are non-blocking, so your behavior should be same (send()
returns EAGAIN, after socket buffer fills up)…you could take action after
some number of retry attempts on the send??<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Randy<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'><br>
<o:p></o:p></span></font></p>
</div>
</div>
</div>
</body>
</html>