diff --git a/html/cgi-bin/samba.cgi b/html/cgi-bin/samba.cgi
index ec1237134..be670a95e 100644
--- a/html/cgi-bin/samba.cgi
+++ b/html/cgi-bin/samba.cgi
@@ -50,11 +50,6 @@ my %shares = ();
&General::readhash("${General::swroot}/main/settings", \%mainsettings);
&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color);
-############################################################################################################################
-############################################# Samba Dienste fr Statusberprfung ##########################################
-
-&Header::showhttpheaders();
-
############################################################################################################################
#################################### Initialisierung von Samba Variablen fr global Settings ###############################
@@ -72,7 +67,17 @@ my $LOGLINES = '50';
############################################################################################################################
&General::readhash("${General::swroot}/samba/settings", \%sambasettings);
+
+# Hook to regenerate the configuration files.
+if ($ENV{"REMOTE_ADDR"} eq "") {
+ &writeconfiguration();
+ exit(0);
+}
+
+&Header::showhttpheaders();
+
&Header::getcgihash(\%sambasettings);
+delete $sambasettings{'__CGI__'};delete $sambasettings{'x'};delete $sambasettings{'y'};
&Header::openpage('Samba', 1, '');
&Header::openbigbox('100%', 'left', '', $errormessage);
@@ -100,81 +105,19 @@ if ($sambasettings{'ACTION'} eq 'userdelete'){system("/usr/local/bin/sambactrl s
############################################################################################################################
##################################### Umsetzen der Werte von Checkboxen und Dropdowns ######################################
-if ($sambasettings{'ACTION'} eq $Lang::tr{'save'})
-{
############################################################################################################################
##################################### Schreiben settings und bersetzen fr smb.conf #######################################
-delete $sambasettings{'__CGI__'};delete $sambasettings{'x'};delete $sambasettings{'y'};
-&General::writehash("${General::swroot}/samba/settings", \%sambasettings);
+if ($sambasettings{'ACTION'} eq $Lang::tr{'save'}) {
+ &General::writehash("${General::swroot}/samba/settings", \%sambasettings);
-############################################################################################################################
-############################################# Schreiben der Samba globals ##################################################
+ # Write configuration to file
+ &writeconfiguration();
- open (FILE, ">${General::swroot}/samba/global") or die "Can't save the global settings: $!";
- flock (FILE, 2);
-
-print FILE <${General::swroot}/samba/global") or die "Can't save the global settings: $!";
+ flock (FILE, 2);
+
+ print FILE <