<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><blockquote type="cite"><div dir="ltr"><div class="gmail_default" style="font-family:times new roman,serif;font-size:large"><span style="">I'm looking to log information about connections for analytics.  I've written a proxy style RTSP server on top of the RTSPServer class, which is very loosely based on the proxy example with the library.  Logging new connection information is easy, but what I would like to do create a single line log entry containing the streamName and bytes sent </span><div style="display: inline;">

​​</div><span style="">at connection teardown time.   It would be nice to have the connection's starting time and ending time in that line too.   </span><br></div><div class="gmail_quote"><div dir="ltr">
<div class="gmail_quote">
<div class="gmail_extra"><div class="gmail_quote"><font face="times new roman, serif" size="4"><br>I <div style="display:inline">​don't</div> see any easy to use hooks, <div style="display:inline">
​while </div>OnDemandServerMediaSubsession::deleteStream<div style="display:inline">​ is called when a client connection ends, I'd hate to make custom implementations ​of the entire tree just to implement the equivalent of a callback with logging info, not to mention getting the specific data I'm interested in there.</div>

</font></div></div></div></div></div></div></blockquote><div><br></div>You don't need to "make custom implementations of the entire tree" (whatever that means :-)  What you can probably do is - in your "OnDemandServerMediaSubsession" subclass, redefine the virtual function<div><span class="Apple-tab-span" style="white-space: pre;">        </span>virtual void deleteStream(unsigned clientSessionId, void*& streamToken);</div><div>Have it use the "clientSessionId" as a key for whatever extra information you want to keep about this session.  (I.e., you could maintain your own hash table, indexed by "clientSessionId".)<blockquote type="cite"><div dir="ltr"></div></blockquote></div><div><br></div><div>The last thing that your custom "deleteStream()" implementation would be to call the original - i.e., call</div><div><span class="Apple-tab-span" style="white-space:pre">     </span>OnDemandServerMediaSubsession::deleteStream(clientSessionId, streamToken);</div><div><br></div><div><br></div><blockquote type="cite"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div class="gmail_quote"><div class="gmail_extra"><div class="gmail_quote"><font face="times new roman, serif" size="4"><div class="">We're likely to push<div class="gmail_default" style="font-family:'times new roman',serif;font-size:large;display:inline">​ ​</div><div style="display:inline">​any​</div> changes in the library level back to the live555 project.</div></font></div></div></div></div></div></div></blockquote><div><br></div>Note that if - as described here - you make changes only to your own subclassed code, then you are under no obligation to share it.  If, however, you make changes to the supplied "LIVE555 Streaming Media" code (i.e., without subclassing), then it will be subject to the LGPL; see</div><div><span class="Apple-tab-span" style="white-space:pre">    </span><a href="http://www.live555.com/liveMedia/faq.html#copyright-and-license">http://www.live555.com/liveMedia/faq.html#copyright-and-license</a></div><br><br><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  ">Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>