I'm currently reviewing DD-WRT code, obviously some of it because there is a lot to review, all web ui stuff is pretty very custom C code for the backend, with 3000 lines files. If someone have architecture document it will be useful, because I'm digging blindly with grep and find.

Ok so what I understand
* WEB UI is called kromo
* served by httpd process, a little http server with builtin code for handling actions
* The actions saves form to nvram variables
* Then if I'm right a SIGUSR1 signal is send to PID 1 aka /sbin/init to restart all the services with the params but it's weird maybe I'm missing something here

Suivre

Only sending SIGUSR1 doesn't enough, I test it by default it does nothing. I think there is something to do with `action_service` variable in nvram

SUCCESS Ok I successfully reverse how the DD-WRT Web UI work and how to restart service just by editing nvram and sending SIGUSR1 to pid1

For example Enable Openvpn client and start it :

1. nvram set openvpncl_enable=1
2. nvram set action_service="pptp"
3. kill -SIGUSR1 1

Inscrivez-vous pour prendre part à la conversation
HugoPoi's Instance

I'm a french guy alone here.