Version 1.25.0

Released: 2005-09-20

Ability to protect public webstats new

Extension of Ability for users to create public stats page

Ability to go to the "protect" page for the stats directory, and abitly to delete the link.


API command for redirects.

Just edits the .htaccess file like the CMD_REDIRECT command.


method: GET or POST

returns :

/redirect= etc..




Kill any user processes upon suspension new

When a user is suspended, DA will actively search for any running processes that are owned by that user. If any are found, they are killed.

Heavy security checking is done for this function.

You must have /bin/ps and /usr/bin/cut, else the function will not function.

named on freebsd to run as bind for new installs new

related to

The defaut named boot script will start named with "-u bind".

If you want to change your current freebsd system, edit:


file, and change:

        echo -n "Starting Named: ";
        daemon /usr/sbin/named


        echo -n "Starting Named: ";
        daemon /usr/sbin/named -u bind

and then run:

chown bind:bind /etc/namedb/*

DA will change the files to user "bind" as new files are created, or the old ones are changed.

task.queue command to reset all quota limits new

echo "action=rewrite&value=quota" >> /usr/local/directadmin/data/task.queue

This command will go through each user, and set the quota limits in the system quotas. Users will unlmited quotas will also have their quota limit set to 0 (unlimited).

echo "action=rewrite&value=quota&user=bob" >> /usr/local/directadmin/data/task.queue

Same thing, except it's just sets the quota for one user.


Very simple/basic command that returns:

error=0&text=Login OK&details=none

if the user is properly logged in. If the password is wrong, the login page will be sent.. this will not be sent so the result is only in API form if the login is successful.

CMD_API_DNS_ADMIN save raw file new

Ability to pass the entire zone file (


method: POST

GET values:

POST value:

the plaintext file.

This will not trigger the

It will also not trigger dns clustering (to prevent loops)

This function will also add the domain to the named.conf if it doesn't exist

CMD_API_DNS_ADMIN check to see if a domain exists new


method: GET or POST

result: exists=1 or exists=0

else error=1&details=some text


This checks the dns (named.conf), so it's only looking to see if the zone exists.

The domain itself may not be on the server.

Also, if the Multi Server Setup is enabled, and "Domain Check" is enabled, this will also check the dns in all remote servers specific on the M.S.S. page.

Dns Clustering (SKINS) new

Major feature of 1.25.0. Allows DA to talk to other DA machines to automatically transfer dns data between them. Also has the ability to check the other server for a domain so as to not allow duplicate domains on your DA network.

Saving any changes to a zone will automatically transfer the whole zone file to the servers in the remote list and add an entry to their named.conf files. (executed just before the

The feature also has a "test connections" button, which allows you to test your list of IPs to ensure you've got the correct user, pass and ssl option. (Shows the daemon & version you're connecting to, including Apache.

If you don't have an DA connection on the other end, this feature can be used to connect with apache. The user/pass is the standard base64 Basic Authentication.

The "test connections" uses the CMD_API_LOGIN_TEST command. The dns zone saving uses the CMD_API_DNS_ADMIN?action=rawsave& command, and deleting zones calls CMD_API_DNS_ADMIN?action=delete&

The domain checking command calls the CMD_API_DNS_ADMIN?action=exists& function.

If you want to setup your own scripts to duplicate these functions, you'll be able to setup an extra dns server without requiring and 2nd DA server. (Might be easiest to use a non-standard dedicated port through apache as no "Host:" headers are passed).



Random password generator (SKINS, only if you want) new

New button on the "create user" page. Will use javascript to create a new random password.

  • reseller/create_user.html

  • admin/create_admin.html

  • admin/create_reseller.html

beside password field:

 <input type=button value="Random" onClick="randomPass()">


function random_char(charlist)
        var num = Math.floor(Math.random() * charlist.length);
        return charlist.charAt(num);

function random_pass()
        var length = 8;
        var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";

        var pass = "";
        var i=0;

        for (i=0; i<length; i++)
                pass = pass + random_char(chars);
        return pass;

function randomPass()
        with (document.reseller)
                passwd.value = random_pass();
                passwd2.value= passwd.value;

Additional Package Options (cron, system info) (SKINS) new

reseller/user cron job access on/off

reseller/user system info acccess on/off

update will set everything to on as a default. (packages, resellers, users)

  • admin/create_customized_reseller.html

  • reseller/create_customized_user.html

  • admin/modify_reseller.html

  • reseller/modify_user.html

  • admin/show_reseller_package.html

  • reseller/show_user_package.html

  • user/show_domain.html (|*if| statments)

additions to all packages and user/reseller creation to add cron=ON and sysinfo=ON as a checkbox. Also added |*if| statements to hide the settings if the reseller or user doesn't have access to them.

da-popb4smtp: new file for logging users with IP new

da-popb4smtp will now create a 2nd file along side /etc/virtual/pophosts called /etc/virtual/pophosts_user.

The format will be: user

The list of IP's will be the same as for pophosts, except the user used to authenticate will be included as a value for that IP.

This file is not currently used by anything in DA.

Space usage totals at the bottom of the email accounts and databases page new

Simple total at the bottom of the pop accounts page, and the databases page. Just gives a quick glance at how much all items are using in total.

Suspend Reseller not updating cache fixed

When suspending a Reseller, the cache is only being updated for that Reseller, and not his User, so the "Show All Users" page will show an incorrect suspension value for his Users. Fix will simply recache the whole file instead of for just the Reseller. to abort domain creation with non-zero return fixed will now abort domain creation if a non-zero value is returned.

the ~/mail/ -> /var/spool/virtual/ symlink wasn't changed when the name of the domain was changed. The fix deletes and recreates the symlink when the domain name is changed.

Ignore limits when Reseller restores his Users fixed

DA was not allowing for the creation of items where the number of items was over that items limit. This is normally correct, but it is possible to have a lower limit than the number of items in existence (eg, lower the limit after some are create).

This will allow the restore to happen even with the unbalanced state, but only when Reseller are restoring the data, not when Users restore themselves.

Last Updated: