<div>Hi Friends,</div><div><br></div><div>I am very new to freeradius and right now I am going through the code of  freeradius. I am facing problem to understand a couple of concepts. They are:</div><div><br></div><div>1. What is the overall architecture of Freeradius?</div><div>2. Do we have separate Pair,Data and Section trees? If yes then how are they related with each other.</div><div>3. What is the role of configuration item linked list?</div><div>4. How is the linked list and Red-Black trees associated with each other.</div><div>5. Which nodes shall be marked as Red and which nodes shall be marked as Black. What is the relationship between them?</div><div>6. How the structures conf_item and conf_part are related to each other</div><div>struct conf_item {</div><div>        struct conf_item *next;</div><div>        struct conf_part *parent;</div><div>        int lineno;</div><div>        const char *filename;</div><div>        CONF_ITEM_TYPE type;</div><div>    };</div><div><br></div><div>struct conf_part {</div><div>        CONF_ITEM item;</div><div>        const char *name1;</div><div>        const char *name2;</div><div>        struct conf_item *children;</div><div>        struct conf_item *tail; /* for speed */</div><div>        CONF_SECTION    *template;</div><div>        rbtree_t        *pair_tree; /* and a partridge.. */</div><div>        rbtree_t        *section_tree; /* no jokes here */</div><div>        rbtree_t        *name2_tree; /* for sections of the same name2 */</div><div>        rbtree_t        *data_tree;</div><div>        void            *base;</div><div>        int depth;</div><div>        const CONF_PARSER *variables;</div><div>};</div><div><br></div><div>7. In function cf_item_add(CONF_SECTION *cs, CONF_ITEM *ci)</div><div>What this piece of code does?</div><div>for (/* nothing */; ci != NULL; ci = ci->next) {</div><div>                cs->tail = ci;</div><div><br></div><div>8. What these function call means?</div><div>cf_itemtopair(ci);</div><div>cf_itemtosection(ci);</div><div>cf_itemtodata(ci);</div><div><br></div><div>I request you to please help me in understanding the concepts.</div><div><br></div><div>Regards,</div><div>Sonu</div><br><A HREF="http://sigads.rediff.com/RealMedia/ads/click_nx.ads/www.rediffmail.com/signatureline.htm@Middle?" target="_blank"><IMG SRC="http://sigads.rediff.com/RealMedia/ads/adstream_nx.ads/www.rediffmail.com/signatureline.htm@Middle"></A><table cellpadding="0" cellspacing="0"><tbody><tr><td><div style="font-family: Arial, Helvetica, sans-serif; font-size:14px">Get your own <span style="padding-bottom: 0px; background-color: #cc0000; padding-left: 3px; padding-RIGHT: 3px; font-family: Arial, Helvetica, sans-serif; color: #ffffff; font-size: 12px; padding-top: 0px"><b>FREE</b></span> website,  <span style="padding-bottom: 0px; background-color: #c00; padding-left: 3px; padding-RIGHT: 3px; font-family: Arial, Helvetica, sans-serif; color: #ffffff; font-size: 12px; padding-top: 0px"><b>FREE</b></span> domain & <span style="padding-bottom: 0px; background-color: #c00; padding-left: 3px; padding-RIGHT: 3px; font-family: Arial, Helvetica, sans-serif; color: #ffffff; font-size: 12px; padding-top: 0px"><b>FREE</b></span> mobile app with Company email.  </div></td><td><a href="http://track.rediff.com/click?url=___http://businessemail.rediff.com/email-ids-for-companies-with-less-than-50-employees?sc_cid=sign-1-10-13___&cmp=host&lnk=sign-1-10-13&nsrv1=host" style="font-family: Arial, Helvetica, sans-serif; color: #fff; font-size: 14px; color:#0000cc" target="_blank"><b>Know More ></b></a><!-- <in-put type="button" cl-ass="button" on-click="parent.location='http://track.rediff.com/click?url=___http://businessemail.rediff.com/company-email-hosting-services?sc_cid=signature-23-9-13___&cmp=signature-23-9-13&lnk=mypagelogout&nsrv1=host'" value="Know more >"> </input> --></td></tr></tbody></table>