Hello,
I am creating a C program for use with the RPZ project and I need your help.
Right now there is a rpz.cgi WebGUI. And it calls the following commands:
```
&General::system('touch', "$CUSTOMLISTS_CONF"); }
&General::system_output('/usr/sbin/rpz-config', 'list');
&General::system('/usr/sbin/rpz-config', 'remove', $action_key, '--no-reload');
&General::system('/usr/sbin/rpz-config', 'add', $name, $url, '--no-reload');
&General::system('/usr/sbin/rpz-make', 'allowblock', '--no-reload');
&General::system('/usr/sbin/rpz-config', 'reload');
&General::system('/usr/local/bin/unboundctrl', 'restart');
```
What determines which of these require a `rpzctrl.c`?
Are there guidelines for `xyz-ctrl.c` programs?
I am guessing "touch, chown, chmod" do not require a C program but I don’t know "why".
```
[root@ipfire tmp] # file /usr/bin/touch
/usr/bin/touch: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 5.4.0, stripped
[root@ipfire tmp] # file /bin/chown
/bin/chown: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 5.4.0, stripped
[root@ipfire tmp] # file /bin/chmod
/bin/chmod: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 5.4.0, stripped
[root@ipfire tmp] #
```
Is it because these are already compiled programs?
So my ask is: what determines the items required in a `rpzctrl.c` type program?
Best regards,
Jon