Chapter 4. Development Frequently Asked Questions

Table of Contents

4.1. I don't have a FreeBSD box to develop new features for SmallWall, is there an easier way?
4.2. What patches have been applied to the FreeBSD source that is used in SmallWall, and are they available?
4.3. Where can I find the SmallWall source code?
4.4. Is there any information available on the unsupported extensions support?

This chapter contains development-related FAQ's. For non-development related FAQ's, see the main SmallWall FAQ.

4.1. I don't have a FreeBSD box to develop new features for SmallWall, is there an easier way?

You can use SmallWall's built in features to test newly developed features. With this method you are not able to compile new binaries on the box, but are able to add php pages into the environment, as well as pre-compiled binaries.

  1. Develop the page

  2. Open a browser and point it to http://SmallWall-ip/exec.php or use https if you have enabled it. It is generally easiest if you simply log into your firewall, and then append exec.php to the end of the url.

  3. Upload the page and any binaries needed for it to function properly via exec.php.

  4. Execute the following to place php pages into the www root.

    mv /tmp/*.php /usr/local/www 
  5. If you need any binaries for the page to work, copy them into the appropriate places.

  6. Use chmod to make your pages readable and executable by the web server. For example, to make all your web pages read and execute;

    chmod 755 /usr/local/www/* 
  7. Type in the address of your new page to try out your experiment.

Using this method, the image will revert after a reboot in case you messed something up. You may wish to write a script to move everything into its proper place and upload that along with your pages / binaries if the feature requires many files. Then simply execute the script in exec.php. After you have successfully tested the feature, and are happy with the result, submit your work to the forums at smallwall.freeforums.net or email for it to be added to the project.