Hi Brandon,

not having looked that much into it yet, but some comments.

Adding the “-C” option is probably the easiest part; it is done inside main.c 
in the existing block for the other configuration options.

About dumping the kamailio cfg after its has been parsed – the main problem is 
here probably that the internal state from the cfg file parser will be not that 
useful, as it will in another format.

Have a look to the cfg.lex and INCLUDEFILE definition if you did not find it 
already. The actual implementation of this one is around line 1357.

Maybe it is a good idea to look into how other programs have implemented this.

Cheers,

Henning

--
Henning Westerholt – https://skalatan.de/blog/
Kamailio services – https://gilawa.com<https://gilawa.com/>

From: sr-dev <[email protected]> On Behalf Of Brandon Armstead
Sent: Monday, November 9, 2020 8:43 PM
To: Kamailio Devel List <[email protected]>
Subject: [sr-dev] Simple Feature / Help

Hello all,

    I'm looking to add a -C [filename] flag that will read the root 
kamailio.cfg file and its included files and dump the compiled result and exit.

i.e. kamailio -C /path/to/root/file.cfg

[ DUMPS COMPILED CONFIGURATION INCLUDING / IMPORTS & INCLUSIONS ]

Similar to nginx -T

I attempted to research what files are involved and it looks like:



src/main.c

src/core/cfg.lex

src/core/lex.yy.c

src/core/cfg.tab.c

src/core/cfg.tab.h



Problems, I'm having:


1) It looks like I need to add the -C option similar to the -c option, which 
I've done and it does not recognize the new -C flag.

2) I'm not entirely sure how to access the compiled configuration from memory, 
it looks like yyparse maybe involved in compiling the configuration?  
sr_push_yy_state seems to do some compiling, but how do I access the result 
from src/main.c ?

Any further direction or help with this is appreciated.

- Brandon
_______________________________________________
Kamailio (SER) - Development Mailing List
[email protected]
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to