[RTPproxy Devel] About data structure naming(pls reply to my email box directly)

Maxim Sobolev sobomax at sippysoft.com
Mon Jul 21 01:37:17 PDT 2008


Dear Zhang,

The suggestion has certain merits, however I would like to point out 
that there should be a balance between name clarity and convenience, as 
long names are harder to type and the chance of making a typo is higher. 
That being said, indeed there are several structure members in the 
RTPproxy whose names could be improved. However, I don't have a time to 
do re-name by myself, so that if you feel like it you are welcome to do 
it by yourself and submit a patch. I will get it committed if it makes 
sense.

As for the inbound/outbound separation, in many places the ability to 
use index to address specific side of the session makes code much more 
compact, so that I am not convinced that using separate structures is 
justified. However, if you show me the patch that implements it without 
obscuring the code or bloating it significantly I would certainly 
consider it.

If you submit a patch, please make sure you are using the latest version 
from the cvs trunk, as we've done significant code re-organization recently.

Zhang William wrote:
> Hello Maxim,
> 
> I am thinking whether we can apply some changes to the source code. I 
> feel some parts of the codes is not so easy to understand.
> 
> As a sample, I list one structure here:
> 
> struct rtpp_session {
>   /* ttl for caller [0] and callee [1] */
>   int ttl[2];
>   rtpp_ttl_mode ttl_mode;
>   unsigned long pcount[4];
>   char *call_id;
>   char *tag;
>   rtpp_log_t log;
>   struct rtpp_session* rtcp;
>   struct rtpp_session* rtp;
>   /* Remote source addresses, one for caller and one for callee */
>   struct sockaddr *addr[2];
>   /* Flag which tells if we are allowed to update address with RTP src IP */
>   int canupdate[2];
>   /* Local listen addresses/ports */
>   struct sockaddr *laddr[2];
>   int ports[2];
>   /* Descriptors */
>   int fds[2];
>   /* Session is complete, that is we received both request and reply */
>   int complete;
>   int asymmetric[2];
>   /* Flags: strong create/delete; weak ones */
>   int strong;
>   int weak[2];
>   /* Pointers to rtpp_record's opaque data type */
>   void *rrcs[2];
>   struct rtp_server *rtps[2];
>   /* References to fd-to-session table */
>   int sidx[2];
>   /* Reference to active RTP generators table */
>   int sridx;
>   /* Flag that indicates whether or not address supplied by client can't 
> be trusted */
>   int untrusted_addr[2];
>   struct rtp_resizer resizers[2];
>   struct rtpp_session *prev;
>   struct rtpp_session *next;
>   struct rtpp_timeout_handler *timeout_handler;
> };

Sincerely,
-- 
Maksym Sobolyev
Sippy Software, Inc.
Internet Telephony (VoIP) Experts
T/F: +1-646-651-1110
Web: http://www.sippysoft.com


More information about the Devel mailing list