\n";
+%h_act=&list_actions();
+if ( $h_act{$aliasAct}->{'alias'} eq $aliasAct ) {
+ $err_msg=$text{'list_err'};
+ &footHere;
+ exit;
+}
+if ( $monHow eq "task" ) {
+ foreach $arr ("mins", "hours", "days", "months", "weekdays") {
+ if ($in{"all_$arr"}) {
+ # All mins/hrs/etc.. chosen
+ $job->{$arr} = "*";
+ }
+ elsif (defined($in{$arr})) {
+ # Need to work out and simplify ranges selected
+ undef(@range);
+ undef(@newrange);
+ @range = split(/\0/, $in{$arr});
+ @range = sort { $a <=> $b } @range;
+ $start = -1;
+ for($i=0; $i<@range; $i++) {
+ if ($i && $range[$i]-1 == $range[$i-1]) {
+ # ok.. looks like a range
+ if ($start < 0) { $start = $i-1; }
+ }
+ elsif ($start < 0) {
+ # Not in a range at all
+ push(@newrange, $range[$i]);
+ }
+ else {
+ # End of the range.. add it
+ $newrange[@newrange - 1] =
+ "$range[$start]-".$range[$i-1];
+ push(@newrange, $range[$i]);
+ $start = -1;
+ }
+ }
+ if ($start >= 0) {
+ # Reached the end while in a range
+ $newrange[@newrange - 1] =
+ "$range[$start]-".$range[$i-1];
+ }
+ $job->{$arr} = join(',' , @newrange);
+ }
+ else {
+ print "ERROR: ".eval("\$text{'edit_$arr'}")."
\n";
+ &footHere;
+ exit;
+ }
+ }
+ }
+ if ( $monTarget eq "user" ) {
+ $objectAct=$in{'username'}." ou=".$in{'userou'};
+ %ou=&list_ous();
+ $oukey=$in{'userou'};
+ if ( $ou{$oukey}->{'alias'} ne $oukey ) {
+ print " \n";
+ print " Error $in{username} \n";
+ print " \n";
+ &footHere;
+ exit;
+ }
+ $dn_ou=$ou{$oukey}->{'obj'};
+ $ens_ou=$ou{$oukey}->{'ens'};
+ $organizationname=$ou{$oukey}->{'name'};
+ $dn = "cn=$in{username},$dn_ou,".$config{ldap_base};
+ $surname="";
+ $ldap_server=1;
+ &connect ();
+ $cur_entry=&sel_ldap_obj($dn,"cn=*");
+ if ( !defined($cur_entry) || $cur_entry->dn ne $dn) {
+ $err_msg=" Error: $in{username}\n";
+ &html_errshow("ldap");
+ &footHere; exit ;
+ }
+ %entryObj=&get_ldap_obj($dn,$cur_entry);
+ $surname = $entryObj{sn};
+ $objectAct="cn=$in{username},$dn_ou";
+ } elsif ( $monTarget eq "ou" ) {
+ $objectAct=$in{'user_ou'};
+ } elsif ( $monTarget eq "host" ) {
+ $objectAct=$in{'hostname'};
+ } elsif ( $monTarget eq "grphosts" ) {
+ $objectAct=$in{'usergrphosts'};
+ } elsif ( $monTarget eq "app" ) {
+ $objectAct=$in{'appname'};
+ } elsif ( $monTarget eq "grpapps" ) {
+ $objectAct=$in{'grpappsname'};
+ }
+ if ( $monScript eq "none" ) { $monScript="-" };
+ if ( $aliasAct ne "" ) {
+ $lin_act=$aliasAct."::".$descrip."::".$monTarget."::".
+ $objectAct."::".$monCondition."::".$monConditionValue."::".
+ $monAction."::".$monScript."::";
+ if ( $monHow eq "task" ) {
+ foreach $arr ("mins", "hours", "days", "months", "weekdays") {
+ $lin_act=$lin_act.$job->{$arr}." ";
+ }
+ } else {
+ $lin_act=$lin_act.$monWhen;
+ }
+ $lin_act=$lin_act."::".$monHow."::";
+ &out_objslist( "add", "addact.cgi", "actions", "acts_list", $aliasAct, $lin_act, undef );
+ $str=$text{'user_made'}.$aliasAct;
+ if ( $monTarget eq "user" ) {
+ $str=$str." -> ".$in{username}." (".$organizationname.")";
+ } else {
+ $str=$str." -> ".$objectAct;
+ }
+ print "".$str."
\n";
+ print " \n";
+ }
+ &footHere;
+ exit;
diff --git a/stta/addapps.cgi b/stta/addapps.cgi
new file mode 100755
index 0000000..7749d5c
--- /dev/null
+++ b/stta/addapps.cgi
@@ -0,0 +1,125 @@
+#!/usr/bin/perl
+# addapp.cgi
+# ... Services with Tarantella.
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+do 'app-lib.pl';
+&headerstta($text{'index_addapp'}, "", "addapp",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "\n";
+&foreign_require("proc", "proc-lib.pl");
+&ReadParse();
+if ( $config{'is_ldapcache'} eq "true" && $in{tta3tier_login} ) {
+ do "ldap-lib.pl";
+}
+
+ $type_cmd = $in{ttacmd};
+ $tta_norun = $in{ttanorun};
+ $appname=$in{appname};
+ $grp_apps=$in{grpapps};
+ $obj_descrip=$in{descrip};
+ $aliasapp=$in{aliasapp};
+ $appserv=$in{appserv};
+ $maxsess=$in{maxsess};
+ $tta_AppType= $in{ttaapptype};
+ @appdef=&get_tta_appdef($tta_AppType);
+
+ print "
\n";
+ print " $text{'titidx_adapp'} $appname \n";
+ print " \n";
+ print "\n";
+
+ if (!$appname) { &footHere; exit } ;
+ $alias=$aliasapp;
+ %h_app=&list_apps();
+ if ( $h_app{$aliasapp}->{'alias'} eq $aliasapp ) {
+ $err_msg=$aliasapp.": ".$text{'list_err'};
+ &footHere;
+ exit;
+ }
+ $grp_name="";
+ $grp_descrip="";
+ $dn_grpapps="";
+ $ens_grpapps="";
+ %h_grpapps=&list_grpapps();
+ if ( $h_grpapps{$grp_apps}->{'alias'} eq $grp_apps ) {
+ $dn_grpapps=$h_grpapps{$grp_apps}->{obj};
+ $ens_grpapps=$h_grpapps{$grp_apps}->{ens};
+ $grp_name=$h_grpapps{$grp_apps}->{name};
+ $grp_descrip=$h_grpapps{$grp_apps}->{descrip};
+ } else {
+ $err_msg="grp_apps: ".$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ if ( $dn_grpapps eq "" ) {
+ $dn_app = "ou=$appname";
+ $ens_app ="cn=$appname";
+ } else {
+ $dn_app = "ou=$appname,$dn_grpapps";
+ $ens_app ="$ens_grpapps/cn=$appname";
+ }
+ $dnldap = "default";
+ $default_obj="cn=$config{ldapcache_defaultobj}";
+ $ens_obj = "--name \"".$config{tta_base}."/$ens_app\"";
+ $dn_org=$dn;
+
+ $| = 1;
+ $temp = &tempname();
+ open(TEMP, ">$temp");
+ print TEMP "#!/bin/sh\n";
+ print TEMP $env;
+ print TEMP "export $export\n" if ($export);
+ print TEMP "$str\n";
+ close(TEMP);
+ $temp_f = &tempname();
+ open(TEMPF, ">$temp_f");
+ print TEMPF "$ens_obj \\\n";
+ print TEMPF " --description \"$obj_descrip\"\\\n";
+ foreach $data (@appdef) {
+ next if ( $data->{att} eq "name" );
+ next if ( $data->{att} eq "description" );
+ next if ( $data->{att} eq "appserv" );
+ $fname=$data->{att};
+ if ( $in{$fname} ne "" && $in{$fname} ne "none" && $in{$fname} ne $data->{ops} ) {
+ print TEMPF " --$fname \"$in{$fname}\"\\\n";
+ }
+ }
+ %h_hosts=&list_hosts();
+ $hosts_list="";
+ $appserv =~ s/\r|\n/ /g;
+ foreach $h (split(/ /, $appserv)) {
+ next if ( $h eq "" );
+ next if ( $h_hosts{$h}->{ens} eq "" );
+ if ( $hosts_list ne "" ) { $hosts_list .= " " }
+ $hosts_list .="\"$config{tta_base}/".$h_hosts{$h}->{ens}."\"";
+ }
+ print TEMPF " --appserv $hosts_list\\\n";
+ print TEMPF "\n";
+ close(TEMPF);
+ if ( $tta_norun eq "true" ) { $type_cmd = "no_run $type_cmd"; };
+ if (&run_tta_cmd($type_cmd,$ens_obj,$temp_f)) {
+ print "\n";
+ } else { &html_errshow("tta")};
+ if ( $config{'is_ldapcache'} eq "true" && $in{tta3tier_login} ) {
+ $ldapcache_server=1;
+ &connect_cache ();
+ @tta3tier=&set_tta3tier($default_obj,$dn_app,$dnldap,"add","app");
+ if ( &cache_obj(\%tta3tier) ne 0 ) {
+ &html_errshow("ldap");
+ &footHere; exit;
+ };
+ if ( $config{ldapcache2_server}.length gt 0 ) {
+ $ldapcache_server=2;
+ &connect_cache ();
+ if ( &cache_obj(\%tta3tier) ne 0 ) { &err_replication() }
+ }
+ }
+ print " \n";
+ $lin_app=$aliasapp."::".$appname."::".$grp_apps."::".$dn_app."::".$ens_app."::".$maxsess."::".$tta_AppType."::".$obj_descrip."::";
+ &out_objslist( "add", "addapps.cgi", "apps", "apps_list", $aliasapp, $lin_app, undef );
+ print "".$text{'user_made'}.$appname." -> ".$grp_name."
\n";
+ if ( $debug lt 2 ) { unlink($temp_f); }
+ &footHere;
+ exit;
diff --git a/stta/adddomains.cgi b/stta/adddomains.cgi
new file mode 100755
index 0000000..337c93d
--- /dev/null
+++ b/stta/adddomains.cgi
@@ -0,0 +1,101 @@
+#!/usr/bin/perl
+# adddomain.cgi
+# ... Services with Tarantella.
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+do "ldap-lib.pl";
+
+&headerstta($text{'index_adddomain'}, "", "adddomain",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "\n";
+if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
+&foreign_require("proc", "proc-lib.pl");
+$ldapcache_server=1;
+&connect_cache();
+&ReadParse();
+
+ print "
\n";
+ print " $text{'titidx_addomain'} $domainname \n";
+ print " \n";
+ print "\n";
+
+ $type_cmd = $in{ttacmd};
+ $tta_norun = $in{ttanorun};
+ $domainname=$in{domainname};
+ $grp_domains=$in{grpdomains};
+ $obj_descrip=$in{descrip};
+ $aliasdomain=$in{aliasdomain};
+ $maxsess=$in{maxsess};
+
+ if (!$domainname) { &footHere; exit } ;
+ $alias=$aliasdomain;
+ %h_domains=&list_domains();
+ if ( $h_domains{$aliasdomain}->{'alias'} eq $aliasdomain ) {
+ $err_msg="aliasdomain: ".$text{'list_err'};
+ &footHere;
+ exit;
+ }
+ $grp_name="";
+ $grp_descrip="";
+ $dn_grpdomain="";
+ $ens_grpdomain="";
+ if ( $h_domains{$grp_domains}->{'alias'} eq $grp_domains ) {
+ $dn_grpdomain=$h_domains{$grp_domains}->{obj};
+ $ens_grpdomain=$h_domains{$grp_domains}->{ens};
+ $grp_descrip=$h_domains{$grp_domains}->{descrip};
+ $grp_name=$h_domains{$grp_domains}->{name};
+ } else {
+ $err_msg="$grp_domains: ".$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ if ( $dn_grpdomain eq "" ) {
+ $dn = "ou=$domainname";
+ $ens= "ou=$domainname";
+ } else {
+ $dn = "ou=$domainname,$dn_grpdomain";
+ $ens= "ou=$ens_grpdomain/ou=$domainname";
+ }
+ $dnldap = "default";
+ $dn_org = $dn;
+ $default_obj="cn=$config{ldapcache_defaultobj}";
+ $ens_obj = "--name \"".$config{tta_base}."/$ens\"";
+ $dn_org=$dn;
+ $| = 1;
+ $temp = &tempname();
+ open(TEMP, ">$temp");
+ print TEMP "#!/bin/sh\n";
+ print TEMP $env;
+ print TEMP "export $export\n" if ($export);
+ print TEMP "$str\n";
+ close(TEMP);
+ $temp_f = &tempname();
+ open(TEMPF, ">$temp_f");
+ print TEMPF "$ens_obj\n";
+ close(TEMPF);
+ if ( $tta_norun eq "true" ) { $type_cmd = "no_run $type_cmd"; };
+ if ( &run_tta_cmd($type_cmd,$ens_obj,$temp_f) ) {
+ print "\n";
+ } else { &html_errshow("tta")};
+ if ( $config{'is_ldapcache'} eq "true" && $in{tta3tier_login} ) {
+ $ldapcache_server=1;
+ &connect_cache ();
+ @tta3tier=&set_tta3tier($default_obj,$dn,$dnldap,"add","domain");
+ if ( &cache_obj(\%tta3tier) ne 0 ) {
+ &html_errshow("ldap");
+ &footHere; exit;
+ }
+ if ( $config{ldapcache2_server}.length gt 0 ) {
+ $ldapcache_server=2;
+ &connect_cache ();
+ if ( &cache_obj(\%tta3tier) ne 0 ) { &err_replication() }
+ }
+ }
+ $lin_domain=$aliasdomain."::".$domainname."::"."$dn_org"."::"."$ens"."::".$maxsess."::".$obj_descrip."::";
+ &out_objslist( "add", "adddomains.cgi", "domains", "domains_list", $aliasdomain, $lin_domain, undef );
+ print "".$text{'user_made'}.$domainname." -> ".$grp_name."
\n";
+ print " \n";
+ &footHere;
+ exit;
+
diff --git a/stta/addfile.cgi b/stta/addfile.cgi
new file mode 100755
index 0000000..8e2550c
--- /dev/null
+++ b/stta/addfile.cgi
@@ -0,0 +1,90 @@
+#!/usr/bin/perl
+# addfile.cgi
+# create file for Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
+$postform = ($in{postform}) ? $in{postform} : "addfile";
+$cgiPost = ($in{cgiPost}) ? $in{cgiPost} : "file";
+$cgiName = ($in{cgiName}) ? $in{cgiName} : "addfile.cgi";
+$wkdir = ($in{wkdir}) ? $in{wkdir} : eval("\$config{'$postform"."_path'}");
+if ( ! $in{fName} ) { &redirect("index.cgi"); }
+if ( ! $in{filePerm} ) { &redirect("index.cgi"); }
+$filePerm= $in{'filePerm'};
+if ( $postform eq "filemgr" ) { $postform="addfile"; }
+$fName=$in{fName};
+$cmd=$in{cmd};
+if ( $in{fPerm} ) {
+if ( substr($in{fPerm},0,1) ne "-" ) {
+ @l_target = split(/,/,$text{'f_perm_value'}, -1);
+ @l_target_tit = split(/,/,$text{'f_perm_desc'}, -1);
+ $nItems=0;
+ foreach $item (@l_target) {
+ if ( $item eq $in{fPerm} ) {
+ $fMode=$l_target_tit[$nItems];
+ $fPerm=substr($fMode,2,1);
+ last;
+ }
+ print $l_target_tit{$nItems};
+ $nItems++;
+ }
+ } else {
+ $fMode=$in{fPerm};
+ $fPerm=substr($fMode,2,1);
+ }
+}
+$perm=$in{perm};
+if ( $perm ne "new" && substr($in{fPerm},1,3) eq "rwx" ) { $perm="all"; }
+
+&headerstta(eval("\$text{'index_$postform'}"), "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "\n";
+print " ";
+if ( $postform ne "addfile" ) { print $text{'create'}; }
+print " ".eval("\$text{'titidx_$postform'}")." \n";
+print " \n";
+
+if ( $fPerm ne "w" ) {
+ print "";
+ print &text('file_err',$text{'create'},$wkdir,$fName,$fMode);
+ print " \n";
+ &footHere;
+ exit 1;
+}
+$f_path=$wkdir."/".$fName;
+if ( -e $f_path ) {
+ print "";
+ print &text('file_errexist',$wkdir,$fName);
+ print " \n";
+ &footHere;
+ exit 1;
+}
+ $lnum = 0;
+ $in{'f_lines'} =~ s/\r//g;
+ &unlock_file($f_path);
+ unless ( open FILELIST,">$f_path" ) {
+ print ">";
+ print &text('file_err',$text{'create'},$wkdir,$fName,"");
+ print " \n";
+ &footHere;
+ exit 1;
+ }
+ print FILELIST $in{'f_lines'};
+ close(FILELIST);
+
+ &webmin_log("$text{create} ($perm) ","file","$f_path $fMode");
+ chown($config{run_exec_user}, 0, $f_path);
+ chmod(oct($filePerm), $f_path);
+ &webmin_log("$text{create} ($filePerm) ","file","$f_path $fMode");
+ &remote_filedo("write",$f_path);
+ print "\n";
+ print "$text{'user_made'} $wkdir /$fName \n";
+ if ( $debug gt 0 ) { print " ($fMode) ";}
+ print " \n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
diff --git a/stta/addgrpapps.cgi b/stta/addgrpapps.cgi
new file mode 100755
index 0000000..6ff5fe9
--- /dev/null
+++ b/stta/addgrpapps.cgi
@@ -0,0 +1,112 @@
+#!/usr/bin/perl
+# addgrpapps.cgi
+# ... Services with Tarantella.
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&headerstta($text{'index_addgrpapps'}, "", "addgrpapps",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "
\n";
+if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
+&foreign_require("proc", "proc-lib.pl");
+&ReadParse();
+if ( $config{'is_ldapcache'} eq "true" && $in{tta3tier_login} ) {
+ do "ldap-lib.pl";
+}
+
+ $type_cmd = $in{ttacmd};
+ $tta_norun = $in{ttanorun};
+ $grpappsname=$in{grpappsname};
+ $grp_grpapps=$in{grpapps};
+ $obj_descrip=$in{descrip};
+ $aliasgrpapps=$in{aliasgrpapps};
+ $maxsess=$in{maxsess};
+
+ print "
\n";
+ print " $text{'titidx_adgrpapps'} $grpappsname \n";
+ print " \n";
+ print "\n";
+
+ if (!$grpappsname) { &footHere; exit } ;
+ $alias=$aliasgrpapps;
+ %h_grpapps=&list_grpapps();
+ if ( $h_grpapps{$aliasgrpapps}->{'alias'} eq $aliasgrpapps ) {
+ $err_msg=$text{'list_err'};
+ &footHere;
+ exit;
+ }
+ $grp_name="";
+ $dn_grpapps="";
+ $grp_descrip="";
+ $ens_grpapps="";
+ if ( $h_grpapps{$grp_grpapps}->{'alias'} eq $grp_grpapps ) {
+ $dn_grpapps=$h_grpapps{$grp_grpapps}->{obj};
+ $ens_grpapps=$h_grpapps{$grp_grpapps}->{ens};
+ $grp_name=$h_grpapps{$grp_grpapps}->{name};
+ $grp_descrip=$h_grpapps{$grp_grpapps}->{descrip};
+ } else {
+ $err_msg="$grp_grpapps: ".$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ if ( $dn_grpapps eq "" ) {
+ $dn = "ou=$grpappsname";
+ $ens = "ou=$grpappsname";
+ } else {
+ $dn = "ou=$grpappsname,$dn_grpapps";
+ $ens = "$ens_grpapps/ou=$grpappsname";
+ }
+ $ens_obj = "--name \"".$config{tta_base}."/$ens\"";
+ $dn_org=$dn;
+ $| = 1;
+ $temp = &tempname();
+ open(TEMP, ">$temp");
+ print TEMP "#!/bin/sh\n";
+ print TEMP $env;
+ print TEMP "export $export\n" if ($export);
+ print TEMP "$str\n";
+ close(TEMP);
+ $temp_f=$config{'tta_defaults_grpapps'};
+ # Assigning and collecting values to be used in the form ...
+ %h_ttaobj=&load_ttaobj();
+ $cdm =$h_ttaobj{'cdm'}->{'value'};
+ $inherit =$h_ttaobj{'inherit'}->{'value'};
+ $webtop =$h_ttaobj{'webtop'}->{'value'};
+ $conntype=$h_ttaobj{'conntype'}->{'value'};
+ $temp_f = &tempname();
+ open(TEMPF, ">$temp_f");
+ print TEMPF "$ens_obj\\\n";
+ if ( $cdm ne "" ) {print TEMPF " --cdm \"$cdm\"\\\n"; }
+ if ( $inherit ne "" ) {print TEMPF " --inherit \"$inherit\"\\\n"; }
+ if ( $conntype ne "" ) { print TEMPF " --conntype \"$conntype\"\\\n"; }
+ if ( $webtop ne "" ) {print TEMPF " --webtop \"$webtop\"\\\n"; }
+ print TEMPF " --description \"$obj_descrip\" \n";
+ close(TEMPF);
+ if ( $tta_norun eq "true" ) { $type_cmd = "no_run $type_cmd"; };
+ if ( &run_tta_cmd($type_cmd,$ens_obj,$temp_f) ) {
+ print "\n";
+ } else { &html_errshow("tta")};
+ if ( $config{'is_ldapcache'} eq "true" && $in{tta3tier_login} ) {
+ $dnldap = "default";
+ $default_obj="cn=$config{ldapcache_defaultobj}";
+ $ldapcache_server=1;
+ &connect_cache ();
+ @tta3tier=&set_tta3tier($default_obj,$dn,$dnldap,"add","grpapps");
+ if ( &cache_obj(\%tta3tier) ne 0 ) {
+ &html_errshow("ldap");
+ &footHere; exit;
+ } ;
+ if ( $config{ldapcache2_server}.length gt 0 ) {
+ $ldapcache_server=2;
+ &connect_cache ();
+ if ( &cache_obj(\%tta3tier) ne 0 ) { &err_replication() }
+ }
+ }
+ $lin_grpapps=$aliasgrpapps."::".$grpappsname."::"."$dn"."::"."$ens"."::".$maxsess."::".$obj_descrip."::";
+ &out_objslist( "add", "addgrpapps.cgi", "grpapps", "grpapps_list", $aliasgrpapps, $lin_grpapps, undef );
+ if ( $debug lt 2 ) { unlink($temp_f); }
+ print "".$text{'user_made'}.$grpappsname." -> ".$grp_name."
\n";
+ print " \n";
+ &footHere;
+ exit;
+
diff --git a/stta/addgrphosts.cgi b/stta/addgrphosts.cgi
new file mode 100755
index 0000000..6b7f541
--- /dev/null
+++ b/stta/addgrphosts.cgi
@@ -0,0 +1,114 @@
+#!/usr/bin/perl
+# addgrphosts.cgi
+# ... Services with Tarantella.
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+ require './stta-lib.pl';
+
+&headerstta($text{'index_addgrphosts'}, "", "addgrphosts",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "\n";
+&foreign_require("proc", "proc-lib.pl");
+&ReadParse();
+if ( $config{'is_ldapcache'} eq "true" && $in{tta3tier_login} ) {
+ do "ldap-lib.pl";
+}
+
+ $type_cmd = $in{ttacmd};
+ $tta_norun = $in{ttanorun};
+ $usergrphosts=$in{usergrphosts};
+ $aliasgrphosts=$in{aliasgrphosts};
+ $descrip=$in{descrip};
+ $maxsess=$in{maxsess};
+
+ print "
\n";
+ print " $text{'titidx_adgrphosts'} $aliasgrphosts \n";
+ print " \n";
+ print "\n";
+
+ $grphostsname=$in{grphostsname};
+ if (!$grphostsname) { &footHere; exit; }
+ $alias=$aliasgrphosts;
+ %h_grphosts=&list_grphosts();
+ if ( $h_grphosts{$aliasgrphosts}->{'alias'} eq $aliasgrphosts ) {
+ $err_msg="aliasgrphosts: ".$text{'list_err'};
+ &footHere;
+ exit;
+ }
+ $grp_name="";
+ $grp_descrip="";
+ $dn_grphosts="";
+ $ens_grphosts="";
+ if ( $h_grphosts{$usergrphosts}->{'alias'} eq $usergrphosts ) {
+ $dn_grphosts=$h_grphosts{$usergrphosts}->{obj};
+ $ens_grphosts=$h_grphosts{$usergrphosts}->{ens};
+ $grp_name=$h_grphosts{$usergrphosts}->{name};
+ $grp_descrip=$h_grphosts{$usergrphosts}->{descrip};
+ } else {
+ $err_msg="$usergrphosts: ".$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ if ( $dn_grphosts eq "" ) {
+ $dn = "ou=$grphostsname";
+ $ens = "cn=$grphostsname";
+ } else {
+ $dn = "ou=$grphostsname,$dn_grphosts";
+ $ens = "$ens_grphosts/cn=$grphostsname";
+ }
+ $ens_obj = "--name \"".$config{tta_base}."/$ens\"";
+ $dn_org=$dn;
+ $| = 1;
+ $temp = &tempname();
+ open(TEMP, ">$temp");
+ print TEMP "#!/bin/sh\n";
+ print TEMP $env;
+ print TEMP "export $export\n" if ($export);
+ print TEMP "$str\n";
+ close(TEMP);
+ $temp_f = &tempname();
+ open(TEMPF, ">$temp_f");
+ print TEMPF "$ens_obj\n";
+ close(TEMPF);
+ if ( $tta_norun eq "true" ) { $type_cmd = "no_run $type_cmd"; };
+ if (&run_tta_cmd($type_cmd,$ens_obj,$temp_f)) {
+ print "\n";
+ } else { &html_errshow("tta")};
+ # Default object para LDAP cache ...
+ if ( $config{'is_ldapcache'} eq "true" && $in{tta3tier_login} ) {
+ $obj_descrip=$in{descrip};
+ $dn_org=$dn;
+ $dn_cache=$dn;
+ $dnldap = "default";
+ $ldapcache_server=1;
+ &connect_cache ();
+ $default_obj="cn=$config{ldapcache_defaultobj}";
+ @tta3tier=&set_tta3tier($default_obj,$dn_cache,$dnldap,"add","grphost");
+ if ( &cache_obj(\%tta3tier) eq 0 ) {
+ if ( $config{ldapcache2_server}.length gt 0 ) {
+ $ldapcache_server=2;
+ &connect_cache ();
+ if ( &cache_obj(\%tta3tier) ne 0 ) { &err_replication() }
+ }
+ } else { &html_errshow("ldap")};
+ }
+ $lin_grphosts=$aliasgrphosts."::".$grphostsname."::"."$dn_org"."::"."$ens"."::".$maxsess."::".$descrip."::";
+ &out_objslist( "add", "addgrphosts.cgi", "grphosts", "grphosts_list", $aliasgrphosts, $lin_grphosts, undef );
+ print "".$text{'user_made'}.$grphostsname." -> ".$in{usergrphosts}."
\n";
+ print " \n";
+# print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
diff --git a/stta/addhosts.cgi b/stta/addhosts.cgi
new file mode 100755
index 0000000..57fe7c0
--- /dev/null
+++ b/stta/addhosts.cgi
@@ -0,0 +1,129 @@
+#!/usr/bin/perl
+# addhosts.cgi
+# ... Services with Tarantella.
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+ require './stta-lib.pl';
+
+&headerstta($text{'index_addhosts'}, "", "addhosts",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "
\n";
+&foreign_require("proc", "proc-lib.pl");
+&ReadParse();
+if ( $config{'is_ldapcache'} eq "true" && $in{tta3tier_login} ) {
+ do "ldap-lib.pl";
+}
+
+ $type_cmd = $in{ttacmd};
+ $tta_norun = $in{ttanorun};
+ print "
\n";
+ print " $text{'titidx_adhosts'} \n";
+ print " \n";
+ print "\n";
+
+ $hostname=$in{hostname};
+ $location=$in{location};
+ $descrip=$in{descrip};
+ $ntdomain=$in{ntdomain};
+ $ipaddress=$in{ipaddress};
+ $maxsess=$in{maxsess};
+ $portalive=$in{portalive};
+ $aliashosts=$in{aliashosts};
+ $usergrphosts=$in{usergrphosts};
+
+ if ( ! $hostname) { &footHere; exit; }
+
+ $alias=$hostname;
+ %h_host=&list_hosts();
+ if ( $h_host{$hostname}->{'alias'} eq $hostname ) {
+ $err_msg="$hostname: ".$text{'list_err'};
+ &footHere;
+ exit;
+ }
+ $grp_name="";
+ $dn_hosts="";
+ $ens_hosts="";
+ $grp_descrip="";
+ %h_grphosts=&list_grphosts();
+ if ( $h_grphosts{$usergrphosts}->{'alias'} eq $usergrphosts ) {
+ $dn_hosts=$h_grphosts{$usergrphosts}->{obj};
+ $ens_hosts=$h_grphosts{$usergrphosts}->{ens};
+ $grp_name=$h_grphosts{$usergrphosts}->{name};
+ $grp_descrip=$h_grphosts{$usergrphosts}->{descrip};
+ } else {
+ $err_msg="$usergrphosts :".$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ if ( $dn_hosts eq "" ) {
+ $dn = "ou=$hostname";
+ $ens = "cn=$hostname";
+ $ens_obj = "--name \"".$config{tta_base}."/cn=$hostname\"";
+ } else {
+ $dn = "ou=$hostname,$dn_hosts";
+ $ens = "$ens_hosts/cn=$hostname";
+ $ens_obj = "--name \"".$config{tta_base}."/$ens_hosts/cn=$hostname\"";
+ }
+ $dn_org=$dn;
+ $| = 1;
+ $temp = &tempname();
+ open(TEMP, ">$temp");
+ print TEMP "#!/bin/sh\n";
+ print TEMP $env;
+ print TEMP "export $export\n" if ($export);
+ print TEMP "$str\n";
+ close(TEMP);
+ $temp_f = &tempname();
+ open(TEMPF, ">$temp_f");
+ print TEMPF "$ens_obj \\\n";
+ if ( $ntdomain ne "" ) {print TEMPF " --ntdomain \"$ntdomain\"\\\n"; }
+ if ( $location ne "" ) {print TEMPF " --location \"$location\"\\\n"; }
+ if ( $descrip ne "" ) {print TEMPF " --description \"$descrip\"\\\n"; }
+ print TEMPF " --address \"$ipaddress\"\n";
+ close(TEMPF);
+ if ( $tta_norun eq "true" ) { $type_cmd = "no_run $type_cmd"; };
+ if (&run_tta_cmd($type_cmd,$ens_obj,$temp_f)) {
+ print "\n";
+ } else { &html_errshow("tta")};
+ # Default object para LDAP cache ...
+ if ( $config{'is_ldapcache'} eq "true" && $in{tta3tier_login} ) {
+ $obj_descrip=$in{descrip};
+ $dnldap = "default";
+ $dn_cache=$dn;
+ $ldapcache_server=1;
+ &connect_cache();
+ $default_obj="cn=$config{ldapcache_defaultobj}";
+ @tta3tier=&set_tta3tier($default_obj,$dn_cache,$dnldap,"add","host");
+ if ( &cache_obj(\%tta3tier) eq 0 ) {
+ if ( $config{ldapcache2_server}.length gt 0 ) {
+ $ldapcache_server=2;
+ &connect_cache ();
+ if ( &cache_obj(\%tta3tier) ne 0 ) { &err_replication() }
+ }
+ } else { &html_errshow("ldap")};
+ }
+ $lin_hosts=$aliashosts."::".$hostname."::".$usergrphosts."::"."$dn"."::"."$ens"."::".$ipaddress."::".$maxsess."::".$portalive."::".$descrip."::";
+ &out_objslist( "add", "addhosts.cgi", "hosts", "hosts_list", $aliashosts, $lin_hosts, undef );
+ print "".$text{'user_made'}.$hostname." -> ".$usergrphosts."
\n";
+ print " \n";
+# print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
diff --git a/stta/addhostsuser.cgi b/stta/addhostsuser.cgi
new file mode 100755
index 0000000..e034ba8
--- /dev/null
+++ b/stta/addhostsuser.cgi
@@ -0,0 +1,46 @@
+#!/usr/bin/perl
+# addhostsuser.cgi
+# ... Services with Tarantella.
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+
+&headerstta($text{'index_addhostsuser'}, "", "addhostsuser",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "
\n";
+&foreign_require("proc", "proc-lib.pl");
+&ReadParse();
+
+ $type_cmd = $in{ttacmd};
+ print "
\n";
+ print " $text{'titidx_adhostsuser'} \n";
+ print " \n";
+ print "\n";
+
+ $hostname=$in{hostname};
+ $username=$in{username};
+ $descrip=$in{descrip};
+ $password=$in{password};
+
+ if ($username) {
+ $alias=$username;
+ %h_hostsuser=&list_hostsuser();
+ if ( $h_hostsuser{$username}->{'username'} eq $username ) {
+ $err_msg=$text{'list_err'};
+ &footHere;
+ exit;
+ }
+ $organizationname="";
+ $dn_hostsuser="";
+ $ens_hostsuser="";
+ $lin_hostsuser=$username."::".$password."::".$descrip."::";
+ &out_objslist( "add", "addhostsuser.cgi", "hostsuser", "hostsuser_list", $username, $lin_hostsuser, undef );
+ print "".$text{'user_made'}.$username." -> ".$in{userhostsuser}."
\n";
+ print " \n";
+ }
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
diff --git a/stta/addlinks.cgi b/stta/addlinks.cgi
new file mode 100755
index 0000000..a2e2501
--- /dev/null
+++ b/stta/addlinks.cgi
@@ -0,0 +1,98 @@
+#!/usr/bin/perl
+# addlink.cgi
+# ... Services with Tarantella.
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+#do "ldap-lib.pl";
+
+&headerstta($text{'index_addlink'}, "", "addlink",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "
\n";
+&foreign_require("proc", "proc-lib.pl");
+#$ldapcache_server=1;
+#&connect_cache();
+&ReadParse();
+
+ print "
\n";
+ print " $text{'titidx_adlink'} $linkname \n";
+ print " \n";
+ print "\n";
+
+ $type_cmd = $in{ttacmd};
+ $tta_norun = $in{ttanorun};
+ $linkname=$in{linkname};
+ $grp_links=$in{grplinks};
+ $obj_descrip=$in{descrip};
+ $aliaslink=$in{aliaslink};
+ $maxsess=$in{maxsess};
+
+ if (!$linkname) { &footHere; exit } ;
+ $alias=$aliaslink;
+ %h_links=&list_links();
+ if ( $h_links{$aliaslink}->{'alias'} eq $aliaslink ) {
+ $err_msg="$aliaslink: ".$text{'list_err'};
+ &footHere;
+ exit;
+ }
+ $grp_name="";
+ $grp_descrip="";
+ $dn_grplink="";
+ $ens_grplink="";
+ if ( $h_links{$grp_links}->{'alias'} eq $grp_links ) {
+ $dn_grplink=$h_links{$grp_links}->{obj};
+ $ens_grplink=$h_links{$grp_links}->{ens};
+ $grp_descrip=$h_links{$grp_links}->{descrip};
+ $grp_name=$h_links{$grp_links}->{name};
+ } else {
+ $err_msg="$grp_links: ".$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ if ( $dn_grplink eq "" ) {
+ $dn = "ou=$linkname";
+ $ens= "cn=$linkname";
+ } else {
+ $dn = "ou=$linkname,$dn_grplink";
+ $ens= "$ens_grplink/cn=$linkname";
+ }
+ $ens_obj = "--name \"".$config{tta_base}."/$ens\"";
+ $dn_org=$dn;
+ $| = 1;
+ $temp = &tempname();
+ open(TEMP, ">$temp");
+ print TEMP "#!/bin/sh\n";
+ print TEMP $env;
+ print TEMP "export $export\n" if ($export);
+ print TEMP "$str\n";
+ close(TEMP);
+ $temp_f = &tempname();
+ open(TEMPF, ">$temp_f");
+ print TEMPF "$ens_obj\n";
+ close(TEMPF);
+ if ( $tta_norun eq "true" ) { $type_cmd = "no_run $type_cmd"; };
+ if ( &run_tta_cmd($type_cmd,$ens_obj,$temp_f) ) {
+ print "\n";
+ } else { &html_errshow("tta")};
+ if ( $config{'is_ldapcache'} eq "true" ) {
+ $dnldap = "default";
+ $dn_org = $dn;
+ $default_obj="cn=$config{ldapcache_defaultobj}";
+# $ldapcache_server=1;
+# &connect_cache ();
+# @tta3tier=&set_tta3tier($default_obj,$dn,$dnldap,"add","link");
+# if ( &cache_obj(\%tta3tier) ne 0 ) { &footHere; exit } ;
+# if ( $config{ldapcache2_server}.length gt 0 ) {
+# $ldapcache_server=2;
+# &connect_cache ();
+# if ( &cache_obj(\%tta3tier) ne 0 ) { &err_replication() }
+# }
+ }
+ $lin_link=$aliaslink."::".$linkname."::"."$dn_org"."::"."$ens"."::".$maxsess."::".$obj_descrip."::";
+ &out_objslist( "add", "addlinks.cgi", "links", "links_list", $aliaslink, $lin_links, undef );
+ if ( $debug lt 2 ) { unlink($temp_f); }
+ print "".$text{'user_made'}.$linkname." -> ".$grp_name."
\n";
+ print " \n";
+ &footHere;
+ exit;
+
diff --git a/stta/addobj.cgi b/stta/addobj.cgi
new file mode 100755
index 0000000..dc366e5
--- /dev/null
+++ b/stta/addobj.cgi
@@ -0,0 +1,140 @@
+#!/usr/bin/perl
+# addobj.cgi
+# ... Services with Tarantella.
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+
+&headerstta($text{'index_addldapcache'}, "", "addobj",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "\n";
+if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
+
+do "ldap-lib.pl";
+&foreign_require("proc", "proc-lib.pl");
+$ldapcache_server=1;
+&connect_cache();
+&ReadParse();
+
+ print "
\n";
+ print " $text{'titidx_addldapcache'} \n";
+ print " \n";
+ print "\n";
+
+ $username=$in{username};
+ $user_ou=$in{user_ou};
+ $userou=$in{userou};
+ if (!$username && !$user_ou ) { &footHere; exit } ;
+ # Getting ORIGIN .....
+ if ( $userou eq "" ) {
+ # .... taking ou as target
+ $oualias=$user_ou;
+ } else {
+ $oualias=$userou;
+ }
+ $organizationname="";
+ $dn_ou="";
+ $ens_ou="";
+ $oudescrip="";
+ %h_ou=&list_ous();
+ if ( $h_ou{$oualias}->{'alias'} ne $oualias ) {
+ $err_msg=$text{'list_err'}," ($oualias) ";
+ &footHere;
+ exit;
+ }
+ $dn_ou=$h_ou{$oualias}->{'obj'};
+ $organizationname=$h_ou{$oualias}->{'name'};
+ $ens_ou=$h_ou{$oualias}->{'ens'};
+ $ou_descrip=$h_ou{$oualias}->{'decrip'};
+ if ( "$dn_ou" eq "" ) {
+ }
+ if ( $userou eq "" ) {
+ # .... taking ou as target do not check it !!!
+ $dn = "$dn_ou";
+ $dn_origin="cn=default_obj";
+ $objname=$organizationname;
+ $obj_descrip="Default - $oudescrip";
+ } else {
+ $objname=$username;
+ # ... checking that Username exists !!!!
+ %h_sysusers=&list_sysusers();
+ $dn = "cn=$username,$dn_ou";
+ $dn_origin="cn=$username";
+ $dnfull = "$dn,".$config{ldap_base};
+ if ( $h_sysusers{$username}->{name} eq $username ) {
+ $dn_dept = $oudescrip;
+ $obj_descrip=$h_sysusers{$username}->{name}."- ($h_sysusers{$username}->{where})";
+ } else {
+ $ldap_server=1;
+ &connect();
+ $cur_entry=&sel_ldap_obj($dnfull,"cn=*");
+ if ( !defined($cur_entry) || $cur_entry->dn ne $dnfull) {
+ $err_msg=" Error: $username $organizationname\n";
+ &html_errshow("ldap");
+ &footHere; exit ;
+ }
+ %entryObj=&get_ldap_obj($dnfull,$cur_entry);
+ $dn_dept = $entryObj{description};
+ $obj_descrip=$entryObj{sn}."- ($dn_dept)";
+ }
+ }
+ # Getting TARGET ..... expecting only one !!!
+ $objType="";
+ if ( $in{appname} ne "none" ) {
+ $objType="app";
+ $target_alias=$in{appname};
+ %listobj =&list_apps();
+ }
+ if ( $in{grpappsname} ne "none" ) {
+ $objType="grpapps";
+ $target_alias=$in{grpappsname};
+ %listobj =&list_grpapps();
+ }
+ if ( $in{hostname} ne "none" ) {
+ $objType="host";
+ $target_alias=$in{hostname};
+ %listobj =&list_hosts();
+ }
+ if ( $in{usergrphosts} ne "none" ) {
+ $objType="grphosts";
+ $target_alias=$in{grpappsname};
+ %listobj =&list_grphosts();
+ }
+ if ( $in{domain} ne "none" ) {
+ $objType="domain";
+ $target_alias=$in{domain};
+ %listobj =&list_domains();
+ }
+
+ $dn_target="";
+ if ( $listobj{$target_alias}->{'alias'} eq $target_alias ) {
+ $descrip_target=$listobj{$target_alias}->{descrip};
+ $dn_target=$listobj{$target_alias}->{obj};
+ $ens_target=$listobj{$target_alias}->{ens};
+ $name_target=$listobj{$target_alias}->{name};
+ }
+ if ( $dn_target eq "" ) {
+ print " \n";
+ print " error: ($objType :$target_alias) \n";
+ print "$obj_descrip
\n";
+ print " \n";
+ &footHere; exit;
+ }
+ $dn_target=~s/cn=/ou=/g;
+ $ldapcache_server=1;
+ &connect_cache ();
+ @tta3tier=&set_tta3tier($dn_origin,$dn_target,$dn_ou,"add",$objType);
+ print ".
\n";
+ print "$objname -> $name_target
\n";
+ print "$obj_descrip
\n";
+ if ( &cache_obj(\%tta3tier) ne 0 ) { &footHere; exit } ;
+ if ( $config{ldapcache2_server}.length gt 0 ) {
+ $ldapcache_server=2;
+ &connect_cache ();
+ if ( &cache_obj(\%tta3tier) ne 0 ) { &err_replication() }
+ }
+ print "".$text{'user_made'}."
\n";
+ print " \n";
+ &footHere;
+ exit;
+
diff --git a/stta/addou.cgi b/stta/addou.cgi
new file mode 100755
index 0000000..52be622
--- /dev/null
+++ b/stta/addou.cgi
@@ -0,0 +1,128 @@
+#!/usr/bin/perl
+# addou.cgi
+# Add Ou in STTA
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+ require './stta-lib.pl';
+if ( $config{'has_ldapusers'} eq "true" || $config{'is_ldapcache'} eq "true") {
+ do "ldap-lib.pl";
+}
+
+&headerstta($text{'index_addou'}, "", "addou",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "\n";
+&foreign_require("proc", "proc-lib.pl");
+&ReadParse();
+
+ $type_cmd = $in{ttacmd};
+ print "
\n";
+ print " $text{'titidx_adou'} \n";
+ print " \n";
+ print "\n";
+
+ $ouname=$in{ouname};
+ $userou=$in{userou};
+ $aliasou=$in{aliasou};
+ $maxsess=$in{maxsess};
+ $tta_norun = $in{ttanorun};
+
+ if ( !$ouname || $ouname eq "" ) {
+ &footHere;
+ exit;
+ }
+ %h_ou=&list_ous();
+ if ( $h_ou{$aliasou}->{'alias'} eq $aliasou || $h_ou{$userou}->{'alias'} ne $userou ) {
+ $err_msg=$text{'list_err'};
+ &footHere;
+ exit;
+ }
+ $dn_ou=$h_ou{$userou}->{'obj'};
+ $organizationname=$h_ou{$userou}->{'name'};
+ $ens_ou=$h_ou{$userou}->{'ens'};
+
+ if ( $dn_ou eq "" ) {
+ $dnou = "ou=$ouname";
+ $ens = "ou=$ouname";
+ } else {
+ $dnou = "ou=$ouname,$dn_ou";
+ $ens = "$ens_ou/ou=$ouname";
+ }
+ $ens_obj = "--name \"".$config{tta_base}."/$ens\"";
+ if ( $config{'has_ldapusers'} eq "true" ) {
+ $ldap_server=1;
+ &connect ();
+ $dn = "$dnou,".$config{ldap_base};
+ if ( &add_ou($dn) eq 0 ) {
+ if ( $config{ldap2_server}.length gt 0 ) {
+ $ldap_server=2;
+ &connect ();
+ if ( &add_ou($dn) ne 0 ) { &err_replication() }
+ }
+ } else { &html_errshow("ldap")};
+ }
+ $| = 1;
+ $temp = &tempname();
+ open(TEMP, ">$temp");
+ print TEMP "#!/bin/sh\n";
+ print TEMP $env;
+ print TEMP "export $export\n" if ($export);
+ print TEMP "$str\n";
+ $temp_f=$config{'tta_defaults_ou'};
+ # Assigning and collecting values to be used in the form ...
+ %h_ttaobj=&load_ttaobj();
+ $cdm =$h_ttaobj{'cdm'}->{'value'};
+ $inherit =$h_ttaobj{'inherit'}->{'value'};
+ $webtop =$h_ttaobj{'webtop'}->{'value'};
+ $conntype=$h_ttaobj{'conntype'}->{'value'};
+ $temp_f = &tempname();
+ open(TEMPF, ">$temp_f");
+ print TEMPF "$ens_obj\\\n";
+ if ( $cdm ne "" ) {print TEMPF " --cdm \"$cdm\"\\\n"; }
+ if ( $inherit ne "" ) {print TEMPF " --inherit \"$inherit\"\\\n"; }
+ if ( $conntype ne "" ) { print TEMPF " --conntype \"$conntype\"\\\n"; }
+ if ( $webtop ne "" ) {print TEMPF " --webtop \"$webtop\"\\\n"; }
+ print TEMPF " --description \"$in{ouname}\" \n";
+ close(TEMPF);
+
+ if ( $tta_norun eq "true" ) { $type_cmd = "no_run $type_cmd"; };
+ if (&run_tta_cmd($type_cmd,$ens_obj,$temp_f)) {
+ print "\n";
+ } else { &html_errshow("tta")};
+ $lin_ou=$aliasou."::".$ouname."::"."$dnou"."::"."$ens"."::".$maxsess."::".$ouname."::";
+ &out_objslist( "add", "add.cgi", "ou", "ou_list", $aliasou, $lin_ou, undef );
+
+ if ( $config{'is_ldapcache'} eq "true" && $in{tta3tier_login} ) {
+ $dnldap = "default";
+ $dn_org="ou=$ouname";
+ if ( $dn_ou ne "" ) { $dn_org .=",$dn_ou"; }
+ $default_obj="cn=$config{ldapcache_defaultobj}";
+ $ldapcache_server=1;
+ &connect_cache ();
+ @tta3tier=&set_tta3tier($default_obj,$dn_org,$dnldap,"add","ou");
+ if ( &cache_obj(\%tta3tier) ne 0 ) {
+ &html_errshow("ldap");
+ &footHere; exit;
+ };
+ if ( $config{ldapcache2_server}.length gt 0 ) {
+ $ldapcache_server=2;
+ &connect_cache ();
+ if ( &cache_obj(\%tta3tier) ne 0 ) { &err_replication() }
+ }
+ }
+ print "".$text{'user_made'}.$ouname." -> ".$in{userou}."
\n";
+ print " \n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
diff --git a/stta/addprofcache.cgi b/stta/addprofcache.cgi
new file mode 100755
index 0000000..1c38e49
--- /dev/null
+++ b/stta/addprofcache.cgi
@@ -0,0 +1,49 @@
+#!/usr/bin/perl
+# addprofcache.cgi
+# ... Services with Tarantella.
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+
+&headerstta($text{'index_addprofcache'}, "", "addprofcache",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "
\n";
+
+ if ( $config{'is_ldapcache'} eq "true" ) {
+ $err_msg=$text{'ldapcache_enable'};
+ &footCacheHere;
+ exit;
+ }
+ &ReadParse();
+ print "
\n";
+ print " $text{'titidx_addprofcache'} \n";
+ print " \n";
+ print "\n";
+ $profilename=$in{profilename};
+
+ if ($profilename) {
+ $alias=$profilename;
+ %h_profcache=&list_profcache();
+ if ( $h_profcache{$profilename}->{'alias'} eq $profilename ) {
+ $err_msg=$text{'list_err'};
+ &footHere;
+ exit;
+ }
+ $userhostname=$in{userhostname};
+ $descrip=$in{descrip};
+ $usergrphosts=$in{usergrphosts};
+ $hostname=$in{hostname};
+ $username=$in{username};
+ $userou=$in{userou};
+ $lin_profile=$profilename."::".$descrip."::".$userhostname."::".
+ $hostname."::".$usergrphosts."::".$username."::".$userou;
+ &out_objslist( "add", "addprofcache.cgi", "profcache", "profcache_list", $profilename, $lin_profile, undef );
+ print "".$text{'user_made'}.$profilename." -> ".$descrip."
\n";
+ print " \n";
+ }
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
diff --git a/stta/addusr.cgi b/stta/addusr.cgi
new file mode 100755
index 0000000..e48ba0e
--- /dev/null
+++ b/stta/addusr.cgi
@@ -0,0 +1,219 @@
+#!/usr/bin/perl
+# addusr.cgi
+# ... Services with Tarantella.
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+if ( $config{'has_ldapusers'} eq "true" || $config{'is_ldapcache'} eq "true" ) {
+ do "ldap-lib.pl";
+}
+
+&headerstta($text{'index_addusr'}, "", "addusr",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "
\n";
+&foreign_require("proc", "proc-lib.pl");
+&ReadParse();
+
+ $type_cmd = $in{ttacmd};
+ $tta_norun = $in{ttanorun};
+ print "
\n";
+ print "
\n";
+ print " $text{'titidx_adusr'} \n";
+ print " \n";
+ print "\n";
+
+ $username=$in{username};
+ $administrador=false;
+ $passwcache=true;
+# $ntdomain=$config{'companyntdomain'};
+ $ntdomain="";
+ $sysuser=$in{sysuser};
+ $syncuser=$in{syncuser};
+
+ if ( $config{'has_ldapusers'} ne "true" ) { $username="" }
+ if ( $config{'has_systemusers'} ne "true") { $sysuser="" }
+
+if ($username eq "" && $sysuser eq "" ) {
+ &footHere;
+ exit;
+}
+ $userou=$in{userou};
+ $organizationname="";
+ $dn_ou="";
+ $ens_ou="";
+ %h_ou=&list_ous();
+ if ( $h_ou{$userou}->{'alias'} ne $userou ) {
+ $err_msg=$text{'list_err'};
+ &footHere;
+ exit;
+ }
+ $dn_ou=$h_ou{$userou}->{'obj'};
+ $organizationname=$h_ou{$userou}->{'name'};
+ $ens_ou=$h_ou{$userou}->{'ens'};
+ $where="";
+ $email="";
+ if ($username) {
+ $ldap_server=1;
+ &connect ();
+ $password=$in{password};
+ # check is ou exist in LDAP
+ $dn=$config{ldap_base};
+ if ( $dn_ou ne "" ) {
+ $dn=$dn_ou.",".$config{ldap_base};
+ $cur_entry=&sel_ldap_obj($dn,"ou=*");
+ if ( !defined($cur_entry) || $cur_entry->dn ne $dn) {
+ @line=split(/,/, $dn_ou,-1);
+ $ouname=$line[0];
+ if ( &add_ou($dn) eq 0 ) {
+ if ( $config{ldap2_server}.length gt 0 ) {
+ $ldap_server=2;
+ &connect ();
+ if ( &add_ou($dn) ne 0 ) { &err_replication() }
+ }
+ } else { &html_errshow("ldap")};
+ }
+ }
+ if ( $dn_ou eq "" ) {
+ $dn = "cn=$username,".$config{ldap_base};
+ } else {
+ $dn = "cn=$username,$dn_ou,".$config{ldap_base};
+ }
+ $surname=$username;
+ if ( &add_usr() eq 0 ) {
+ if ( $config{ldap2_server}.length gt 0 ) {
+ $ldap_server=2;
+ &connect ();
+ if ( &add_usr() ne 0 ) { &err_replication() }
+ }
+ if ( $config{'ldap_log_name'} ne "" ) {
+ $lin_user="add::".$username."::".$password."::".$username."::".$dn;
+ &lock_file($config{'ldap_log_name'});
+ open(FILELDAPLOG, ">>$config{'ldap_log_name'}");
+ print FILELDAPLOG "$lin_user\n";
+ close (FILELDAPLOG);
+ &unlock_file($config{'ldap_log_name'});
+ &remote_file("write",$config{ldap_log_name},"ldap_log_name");
+ }
+ &webmin_log($config{'ldap_log_name'}, "usr", "write",$dn);
+ $str=$text{'user_made'}.$username." -> ".$dn;
+ &additional_log('addusr.cgi', "usr", $str);
+ } else { &html_errshow("ldap")};
+ }
+ $| = 1;
+ $temp = &tempname();
+ open(TEMP, ">$temp");
+ print TEMP "#!/bin/sh\n";
+ print TEMP $env;
+ print TEMP "export $export\n" if ($export);
+ print TEMP "$str\n";
+ if ( $username ) {
+ if ( $ens_ou eq "" ) {
+ $ens_obj = "cn=$username";
+ } else {
+ $ens_obj = "$ens_ou/cn=$username";
+ }
+ } elsif ( $sysuser ) {
+ if ( $ens_ou eq "" ) {
+ $ens_obj = "cn=$sysuser";
+ } else {
+ $ens_obj = "$ens_ou/cn=$sysuser";
+ }
+ }
+ $temp_f=$config{'tta_defaults_obj'};
+ %h_ttaobj=&load_ttaobj();
+ $user =$h_ttaobj{'user'}->{'value'};
+ $ntdomain =$h_ttaobj{'ntdomain'}->{'value'};
+ $bandwidth =$h_ttaobj{'bandwidth'}->{'value'};
+ $cdm =$h_ttaobj{'cdm'}->{'value'};
+ $enabled =$h_ttaobj{'enabled'}->{'value'};
+ $inherit =$h_ttaobj{'inherit'}->{'value'};
+ $shared =$h_ttaobj{'shared'}->{'value'};
+ $webtop =$h_ttaobj{'webtop'}->{'value'};
+ $conntype=$h_ttaobj{'conntype'}->{'value'};
+ $temp_f = &tempname();
+ open(TEMPF, ">$temp_f");
+ print TEMPF " --name \"".$config{tta_base}."/$ens_obj\" \\\n";
+ if ( $username ) {
+ print TEMPF " --surname \"$in{username}\" \\\n";
+ if ( $user ne "" ) {print TEMPF " --user \"$user\" \\\n"; }
+ } elsif ( $sysuser ) {
+ print TEMPF " --surname \"$sysuser\" \\\n";
+ print TEMPF " --user \"$sysuser\" \\\n";
+ }
+ if ( $ntdomain ne "" ) {print TEMPF " --ntdomain \"$ntdomain\"\\\n"; }
+ if ( $bandwidth ne "" ) {print TEMPF " --bandwidth \"$bandwidth\"\\\n"; }
+ if ( $cdm ne "" ) {print TEMPF " --cdm \"$cdm\"\\\n"; }
+ if ( $enabled ne "" ) {print TEMPF " --enabled \"$enabled\"\\\n"; }
+ if ( $shared ne "" ) {print TEMPF " --shared \"$shared\"\\\n"; }
+ if ( $inherit ne "" ) {print TEMPF " --inherit \"$inherit\"\\\n"; }
+ if ( $conntype ne "" ) { print TEMPF " --conntype \"$conntype\"\\\n"; }
+ if ( $webtop ne "" ) {print TEMPF " --webtop \"$webtop\"\\\n"; }
+ if ( $username ) {
+ print TEMPF " --description \"$in{username}\" \n";
+ } elsif ( $sysuser ) {
+ print TEMPF " --description \"$sysuser\" \n";
+ }
+ close(TEMPF);
+ if ( $tta_norun eq "true" ) { $type_cmd = "no_run $type_cmd"; };
+ if (&run_tta_cmd($type_cmd,$ens_obj,$temp_f)) {
+ print "\n";
+ } else { &html_errshow("tta")};
+ if ($sysuser ne "" ) {
+ %h_sysusers=&list_sysusers();
+ if ( $h_sysusers{$sysuser}->{name} eq $sysuser ) {
+ $err_msg="$sysuser -- $text{'list_err'}";
+ &footHere;
+ exit;
+ }
+ $maxsess=$config{default_maxsess};
+ $lin_sysuser=$sysuser."::".$userou."::".$ens_obj."::".$maxsess."::".$email."::".$where."::";
+ &out_objslist( "add", "addusr.cgi", "sysusers", "sysusers_list", $sysuser, $lin_sysuser, undef );
+ if ( $syncuser eq "true" ) { &make_remote_user("add",$sysuser); }
+ }
+ if ( $username ) {
+ print "".$text{'user_made'}.$username." -> ".$in{userou}." \n";
+ } elsif ( $sysuser ) {
+ print "".$text{'user_made'}.$sysuser." -> ".$in{userou}." \n";
+ }
+ if ( $config{'is_ldapcache'} eq "true" && $in{tta3tier_login} ) {
+ $dnldap = "default";
+ $default_obj="cn=$config{ldapcache_defaultobj}";
+ if ( $username ) {
+ $dn = "ou=$username";
+ } else {
+ $dn = "ou=$sysuser";
+ }
+ if ( $dn_ou ne "" ) { $dn .= ",$dn_ou"; }
+ $ldapcache_server=1;
+ &connect_cache ();
+ @tta3tier=&set_tta3tier($default_obj,$dn,$dnldap,"add","user");
+ if ( &cache_obj(\%tta3tier) ne 0 ) {
+ &html_errshow("ldap");
+ &footHere; exit;
+ };
+ if ( $config{ldapcache2_server}.length gt 0 ) {
+ $ldapcache_server=2;
+ &connect_cache ();
+ if ( &cache_obj(\%tta3tier) ne 0 ) { &err_replication() }
+ }
+ }
+ print " \n";
+# this change has to be done as IE was unable to get some hidden values ????
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
diff --git a/stta/adm.acl b/stta/adm.acl
new file mode 100755
index 0000000..1b1ecd8
--- /dev/null
+++ b/stta/adm.acl
@@ -0,0 +1,30 @@
+supervision=1
+monitor=1
+addgrpapps=1
+stop=1
+addou=1
+sessions=1
+replicate=1
+global=1
+passwdCache=1
+addgrphosts=1
+delgrpapps=1
+backup=1
+admin=1
+delusr=1
+delhostsuser=1
+addhostsuser=1
+addhosts=1
+delou=1
+passwd=1
+alivehosts=1
+addapps=1
+noconfig=0
+adddomains=1
+delapps=1
+addusr=1
+feedback=1
+deldomains=1
+delgrphosts=1
+delhosts=1
+feedback=2
diff --git a/stta/admin.acl b/stta/admin.acl
new file mode 100755
index 0000000..a263f1a
--- /dev/null
+++ b/stta/admin.acl
@@ -0,0 +1,30 @@
+delhostsuser=1
+deldomains=1
+addou=1
+monitor=1
+adddomains=1
+delgrpapps=1
+feedback=2
+addusr=1
+addgrpapps=1
+passwdCache=1
+delgrphosts=1
+replicate=1
+delapps=1
+delou=1
+supervision=1
+addlinks=1
+backup=1
+addgrphosts=1
+admin=1
+stop=1
+global=1
+addhosts=1
+delhosts=1
+passwd=1
+sessions=1
+delusr=1
+dellinks=1
+addhostsuser=1
+alivehosts=1
+addapps=1
diff --git a/stta/admin.acl.old b/stta/admin.acl.old
new file mode 100755
index 0000000..a263f1a
--- /dev/null
+++ b/stta/admin.acl.old
@@ -0,0 +1,30 @@
+delhostsuser=1
+deldomains=1
+addou=1
+monitor=1
+adddomains=1
+delgrpapps=1
+feedback=2
+addusr=1
+addgrpapps=1
+passwdCache=1
+delgrphosts=1
+replicate=1
+delapps=1
+delou=1
+supervision=1
+addlinks=1
+backup=1
+addgrphosts=1
+admin=1
+stop=1
+global=1
+addhosts=1
+delhosts=1
+passwd=1
+sessions=1
+delusr=1
+dellinks=1
+addhostsuser=1
+alivehosts=1
+addapps=1
diff --git a/stta/app-lib.pl b/stta/app-lib.pl
new file mode 100755
index 0000000..0e2174a
--- /dev/null
+++ b/stta/app-lib.pl
@@ -0,0 +1,134 @@
+#!/usr/bin/perl
+# app-lib.pl
+# Common functions.
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+$main::config{'app_types_def'}="app_types.def";
+
+sub get_tta_app_path
+{
+ local $ttavers=&get_ttaversion();
+ if ( $ttavers =~ / 3.2/ ) {
+ return "$root_directory/$module_name/install/tta/objects/3.2";
+ } elsif ( $ttavers =~ / 3.3/ ) {
+ return "$root_directory/$module_name/install/tta/objects/3.3";
+ } elsif ( $ttavers =~ / 3.4/ ) {
+ return "$root_directory/$module_name/install/tta/objects/3.4";
+ }
+ return "";
+}
+
+sub load_tta_apptypes
+{
+ local $file_path=&get_tta_app_path();
+ local %h_tta_apps=();
+ &read_file("$file_path/$config{'app_types_def'}", \%h_tta_apps);
+ foreach $l (@lang_order_list) {
+ &read_file("$file_path/$config{'app_types_def'}.$l", \%h_tta_apps);
+ }
+ return %h_tta_apps;
+}
+
+# get_tta_appdef($tta_AppType)
+sub get_tta_appdef
+{
+ local $file_path=&get_tta_app_path();
+ local @appdef=();
+
+ local $datafile_path="$file_path/$_[0]";
+ foreach $l (@lang_order_list) {
+ if ( -r "$file_path/$_[0].$l") {
+ $datafile_path="$file_path/$_[0].$l";
+ last ;
+ }
+ }
+
+ open(LOG, $datafile_path) || return @appdef ;
+ local $newAtt=0;
+ local $lineHelp="";
+ local $line="";
+ local $nameAtt="";
+ local $nameOps="";
+ local $opsType="";
+ local $lineHelp="";
+ while() {
+ s/\r|\n//g;
+ $line=$_;
+ if ( $debug eq 2 ) { print "$_ "; }
+ if ( $_ =~ /^ --(.*)/ ) {
+ if ( $newAtt eq 1 ) {
+ push(@appdef, { 'att' => $nameAtt,
+ 'need' => $needAtt,
+ 'ops' => $nameOps,
+ 'opstype' => $opsType,
+ 'line' => $lineHelp,
+ 'value' => "",
+ 'num' => scalar(@appdef) });
+ }
+ $newAtt=1;
+ $nameAtt=$1;
+ $nameOps=$1;
+ $needAtt=1;
+ $lineHelp="";
+ if ( $nameAtt =~ /(\S+) (\S+)/ ) {
+ $nameAtt=$1;
+ $nameOps=$2;
+ $text=$nameOps;
+ $text=~ s/\|/\\|/g;
+ $_=~ s/ $text//;
+ }
+ $_=~ s/ --$nameAtt//;
+ if ( $nameOps =~ /<([^<]+)>/ ) {
+ $opsType="input";
+ } else { $opsType="select"; }
+ if ( $_ ne "" ) { $lineHelp=&stringClip($_,"lead"); }
+ if ( $debug eq 2 ) { print "($nameAtt)--($nameOps)--$opsType- $lineHelp ";}
+ next;
+ } elsif ( $_ =~ /^ \[--(.*)\]/ ) {
+ if ( $newAtt eq 1 ) {
+ push(@appdef, { 'att' => $nameAtt,
+ 'need' => $needAtt,
+ 'ops' => $nameOps,
+ 'opstype' => $opsType,
+ 'line' => $lineHelp,
+ 'value' => "",
+ 'num' => scalar(@appdef) });
+ }
+ $newAtt=1;
+ $nameAtt=$1;
+ $nameOps=$1;
+ $needAtt=0;
+ $lineHelp="";
+ if ( $nameAtt =~ /(\S+) (\S+)/ ) {
+ $nameAtt=$1;
+ $nameOps=$2;
+ $text=$nameOps;
+ $text=~ s/\|/\\|/g;
+ $_=~ s/ $text//;
+ }
+ $_=~ s/ \[--$nameAtt//;
+ $_=~ s/\]//;
+ if ( $nameOps =~ /<([^<]+)>/ ) {
+ $opsType="input";
+ } else { $opsType="select"; }
+ if ( $_ ne "" ) { $lineHelp=&stringClip($_,"lead"); }
+ if ( $debug eq 2 ) { print "($nameAtt)--($nameOps)--$opsType- $lineHelp "; }
+ next;
+ } else {
+ if ( $newAtt eq 1 && $_ ne "" ) { $lineHelp .= " ".&stringClip($line,"lead")," \n" ; }
+ }
+ }
+ close(LOG);
+ if ( $newAtt eq 1 ) {
+ push(@appdef, { 'att' => $nameAtt,
+ 'need' => $needAtt,
+ 'ops' => $nameOps,
+ 'opstype' => $opsType,
+ 'line' => $lineHelp,
+ 'value' => "",
+ 'num' => scalar(@appdef) });
+ }
+ return @appdef;
+}
+1; # Return true
diff --git a/stta/base-lib.pl b/stta/base-lib.pl
new file mode 100755
index 0000000..96fe999
--- /dev/null
+++ b/stta/base-lib.pl
@@ -0,0 +1,404 @@
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+# Lib Common
+# Just in case NO WEBMIN (web-lib.pl, etc.) are loaded ...
+# Some variables are needed and set here, will be reassigned later
+# Globals ...
+# Some functions are hooks
+# others are empty to avoid full Webmin code for line command execution
+
+# Vital libraries
+use Socket;
+#use SelfLoader;
+
+$stta_sid="";
+
+# Read Config File
+sub initialize () {
+ $no_out=$config{output_cgis};
+ $scriptname=$tool_name;
+ &read_file("$config_directory/config", \%gconfig);
+ if ( $gconfig{lang} && $gconfig{lang} ne "" ) { $current_lang=$gconfig{lang} }
+ &read_file("$config_directory/miniserv.conf", \%gconfig);
+ $module_name="stta";
+ $root_directory=$gconfig{root};
+}
+sub start_debug () {
+ if ( $debug gt 0 ) {
+ if ( !$DebugFile ) { $DebugFile=$config{stta_debugname}.$tool_name.".log";}
+ open(DebugLog, ">>$DebugFile");
+ if ( !DebugLog) { $debug=0 };
+ }
+}
+
+# Read Module Text
+# load_language([module])
+# Returns a hashtable mapping text codes to strings in the appropriate language
+sub load_language
+{
+local %text;
+if ($module_name) {
+ local $mod = $_[0] ? "../$_[0]" : ".";
+ &read_file("../lang/$default_lang", \%text);
+ &read_file("../lang/$current_lang", \%text);
+ &read_file("$mod/lang/$default_lang", \%text);
+ &read_file("$mod/lang/$current_lang", \%text);
+ }
+else {
+ &read_file("lang/$default_lang", \%text);
+ &read_file("lang/$current_lang", \%text);
+ if ($_[0]) {
+ &read_file("$_[0]/lang/$default_lang", \%text);
+ &read_file("$_[0]/lang/$current_lang", \%text);
+ }
+ }
+foreach $k (keys %text) {
+ $text{$k} =~ s/\$([A-Za-z0-9\.\-\_]+)/text_subs($1,\%text)/ge;
+ }
+return %text;
+}
+
+sub text_subs
+{
+local $t = $_[1]->{$_[0]};
+return defined($t) ? $t : '$'.$_[0];
+}
+
+# text(message, [substitute]+)
+sub text
+{
+local $rv = $text{$_[0]};
+local $i;
+for($i=1; $i<@_; $i++) {
+ $rv =~ s/\$$i/$_[$i]/g;
+ }
+return $rv;
+}
+
+# read_file(file, &assoc, [&order], [lowercase])
+# Fill an associative array with name=value pairs from a file
+sub read_file
+{
+ open(ARFILE, $_[0]) || return 0;
+ while() {
+ s/\r|\n//g;
+ if (!/^#/ && /^([^=]+)=(.*)$/) {
+ $_[1]->{$_[3] ? lc($1) : $1} = $2;
+ push(@{$_[2]}, $1) if ($_[2]);
+ }
+ }
+ close(ARFILE);
+ return 1;
+}
+
+# write_file(file, array)
+# Write out the contents of an associative array as name=value lines
+sub write_file
+{
+local(%old, @order);
+&read_file($_[0], \%old, \@order);
+open(ARFILE, ">$_[0]");
+foreach $k (@order) {
+ print ARFILE $k,"=",$_[1]->{$k},"\n" if (exists($_[1]->{$k}));
+ }
+foreach $k (keys %{$_[1]}) {
+ print ARFILE $k,"=",$_[1]->{$k},"\n" if (!exists($old{$k}));
+ }
+close(ARFILE);
+}
+
+sub lock_file
+{
+ return 1;
+}
+sub unlock_file
+{
+ return 1;
+}
+
+
+# get_module_acl([user], [module])
+# Returns an array containing access control options for the given user
+sub get_module_acl
+{
+local %rv;
+local $u = defined($_[0]) ? $_[0] : $base_remote_user;
+local $m = defined($_[1]) ? $_[1] : $module_name;
+&read_file($module_name ? "../$m/defaultacl" : "./$m/defaultacl", \%rv);
+if ($gconfig{"risk_$u"} && $m) {
+ local $rf = $gconfig{"risk_$u"}.'.risk';
+ &read_file($module_name ? "../$m/$rf" : "./$m/$rf", \%rv);
+
+ local $sf = $gconfig{"skill_$u"}.'.skill';
+ &read_file($module_name ? "../$m/$sf" : "./$m/$sf", \%rv);
+ }
+else {
+ &read_file("$config_directory/$m/$u.acl", \%rv);
+ }
+return %rv;
+}
+
+# webmin_log(action, type, object, ¶ms, [module])
+# Log some action taken by a user
+sub webmin_log
+{
+return if (!$config{'stta_logname'});
+local $m = $_[4] ? $_[4] : $module_name;
+#local $m_logfile=$config{'stta_logname'}.$tool_name.".log";
+local $m_logfile="/var/webmin/webmin.log";
+
+#$m="$tool_name ($m)";
+$m="tarantella";
+# log the action
+local $now = time();
+local @tm = localtime($now);
+local $script_name = $0 =~ /([^\/]+)$/ ? $1 : '-';
+local $id = sprintf "%d.%d.%d",
+ $now, $$, $main::action_id_count;
+$stta_sid=$id;
+$main::action_id_count++;
+local $line = sprintf "%s [%2.2d/%s/%4.4d %2.2d:%2.2d:%2.2d] %s %s %s %s %s \"%s\" \"%s\" \"%s\"",
+ $id, $tm[3], $text{"smonth_".($tm[4]+1)}, $tm[5]+1900,
+ $tm[2], $tm[1], $tm[0],
+ $remote_user, $main::session_id ? $main::session_id : '-',
+ $ENV{'REMOTE_HOST'},
+ $m, $script_name,
+ $_[0], $_[1] ne '' ? $_[1] : '-', $_[2] ne '' ? $_[2] : '-';
+foreach $k (sort { $a cmp $b } keys %{$_[3]}) {
+ local $v = $_[3]->{$k};
+ if ($v eq '') {
+ $line .= " $k=''";
+ }
+ elsif (ref($v) eq 'ARRAY') {
+ foreach $vv (@$v) {
+ next if (ref($vv));
+ $vv =~ s/(['"\\\r\n\t\%])/sprintf("%%%2.2X",ord($1))/ge;
+ $line .= " $k='$vv'";
+ }
+ }
+ elsif (!ref($v)) {
+ foreach $vv (split(/\0/, $v)) {
+ $vv =~ s/(['"\\\r\n\t\%])/sprintf("%%%2.2X",ord($1))/ge;
+ $line .= " $k='$vv'";
+ }
+ }
+ }
+ if ( $debug gt 0 ) {
+ print DebugLog $line,"\n";
+ } else {
+ open(WEBMINLOG, ">>$m_logfile");
+ print WEBMINLOG $line,"\n";
+ close(WEBMINLOG);
+ }
+
+}
+
+# additional_log(type, object, data)
+# Records additional log data for an upcoming call to webmin_log, such
+# as command that was run or SQL that was executed.
+sub additional_log
+{
+ return if (!$config{'stta_logname'});
+ webmin_log($_[0],$_[1],$_[2],$_[3],$_[4]);
+}
+
+sub endclose_debug
+{
+ print DebugLog "----------------------------------------------\n";
+ close (DebugLog);
+}
+
+# error([message]+)
+# Display an error message and exit. The variable $whatfailed must be set
+# to the name of the operation that failed.
+sub error
+{
+ if ( $debug gt 0 ) {
+ print DebugLog "$text{'error'}: ";
+ print DebugLog ($whatfailed ? "$whatfailed : " : ""),@_,"\n";
+ }
+ if ( $debug gt 0 ) { &endclose_debug(); }
+ exit;
+}
+
+sub SrvError
+{
+ print DebugLog @_,"\n";
+ if ( $debug gt 0 ) { &endclose_debug(); }
+ exit;
+}
+
+# error_setup(message)
+# Register a message to be prepended to all error strings
+sub error_setup
+{
+$whatfailed = $_[0];
+}
+
+# unique
+# Returns the unique elements of some array
+sub unique
+{
+local(%found, @rv, $e);
+foreach $e (@_) {
+ if (!$found{$e}++) { push(@rv, $e); }
+ }
+return @rv;
+}
+
+# seed_random()
+# Seeds the random number generator, if needed
+sub seed_random
+{
+if (!$main::done_seed_random) {
+ if (open(RANDOM, "/dev/urandom")) {
+ local $buf;
+ read(RANDOM, $buf, 4);
+ close(RANDOM);
+ srand(time() ^ $$ ^ $buf);
+ }
+ else {
+ srand(time() ^ $$);
+ }
+ $main::done_seed_random = 1;
+ }
+}
+
+# tempname([filename])
+# Returns a mostly random temporary file name
+sub tempname
+{
+local $tmp_dir = "/tmp/.webmin";
+while(1) {
+ local @st = lstat($tmp_dir);
+ last if (!$st[4] && !$st[5] && $st[2] & 0x4000 &&
+ ($st[2] & 0777) == 0755);
+ if (@st) {
+ unlink($tmp_dir) || rmdir($tmp_dir) ||
+ system("/bin/rm -rf \"$tmp_dir\"");
+ }
+ mkdir($tmp_dir, 0755) || next;
+ chown(0, 0, $tmp_dir);
+ chmod(0755, $tmp_dir);
+ }
+if (defined($_[0]) && $_[0] !~ /\.\./) {
+ return "$tmp_dir/$_[0]";
+ }
+else {
+ $main::tempfilecount++;
+ &seed_random();
+ return $tmp_dir."/".int(rand(1000000))."_".
+ $main::tempfilecount."_".$scriptname;
+ }
+}
+
+sub html_errshow
+{
+ local $where_err = $_[0];
+
+ if ( !$DebugFile ) {
+ print DebugLog "$wher_err ($err) $stta_sid:".eval("\$text{'msgerr_$err'}")."\n";
+ }
+
+}
+
+# foreign_call(module, function, [arg]*)
+# Call a function in another module
+sub foreign_call
+{
+local $pkg = $_[0] ? $_[0] : "global";
+$pkg =~ s/[^A-Za-z0-9]/_/g;
+local @args = @_[2 .. @_-1];
+$main::foreign_args = \@args;
+local @rv = eval <&OUTw");
+ open(STDERR, ">&OUTw");
+ $| = 1;
+ close(OUTr); close(INw);
+
+ if ($_[1]) {
+ if (defined($_[2])) {
+ # switch to given UID and GID
+ $( = $_[2]; $) = "$_[2] $_[2]";
+ ($>, $<) = ($_[1], $_[1]);
+ }
+ }
+
+ # run the command
+ exec("/bin/sh", "-c", $_[0]);
+# print "Exec failed : $!\n";
+ exit 1;
+ }
+close(OUTw); close(INr);
+# print "Exec $_[0]\n";
+
+# Feed input (if any)
+print INw $_[4];
+close(INw);
+
+# Read and show output
+local $fn = fileno(OUTr);
+local $got = 0;
+local $out = $_[3];
+local $line;
+while(1) {
+ local ($rmask, $buf);
+ vec($rmask, $fn, 1) = 1;
+ local $sel = select($rmask, undef, undef, 1);
+ if ($sel > 0 && vec($rmask, $fn, 1)) {
+ # got something to read.. print it
+ sysread(OUTr, $buf, 1024) || last;
+ $got += length($buf);
+ if ($_[5]) {
+ $buf = &html_escape($buf);
+ }
+ if ($_[6]) {
+ # Convert backspaces and returns and escapes
+ $line .= $buf;
+ while($line =~ s/^([^\n]*\n)//) {
+ local $one = $1;
+ while($one =~ s/.\010//) { }
+ $out =~ s/\033[^m]+m//g;
+ print $out $one;
+ }
+ }
+ else {
+ print $out $buf;
+ }
+ }
+ elsif ($sel == 0) {
+ # nothing to read. maybe the process is done, and a subprocess
+ # is hanging things up
+ last if (!kill(0, $pid));
+ }
+ }
+close(OUTr);
+print $out $line;
+return $got;
+}
+
+1; # Return true
diff --git a/stta/brandmgr.pl b/stta/brandmgr.pl
new file mode 100755
index 0000000..7636ceb
--- /dev/null
+++ b/stta/brandmgr.pl
@@ -0,0 +1,180 @@
+#!/usr/bin/perl
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+$debug=2;
+$do_reload = $ARGV[0];
+
+#if ( $do_reload eq "?" || $do_reload eq "help" | $do_reload eq "-h" ) {
+# print "brandmgr: \"$task_type\" unknown option task \n";
+# print "brandmgr [ -r | reload | true]\n";
+# exit 1;
+#};
+# where is config file for parameters .... (same as Webmin)
+$config_directory="/etc/webmin";
+
+do './base-lib.pl';
+do './global-lib.pl';
+do './lists-lib.pl';
+do './print-lib.pl';
+do './html-lib.pl';
+
+$tool_name="brandmgr";
+$tta_logfile="/tmp/.webmin/stta_log";
+$default_lang = "en";
+$current_lang = "en";
+$module_name = "stta";
+$remote_user="admin";
+$session_id="$$";
+$hostname=`hostname`;
+$hostname=~s/\n//g;
+$ENV{'REMOTE_HOST'}=$hostname;
+$action_id_count=0;
+%ttaprops=();
+@ttahosts=();
+%sttaparams=();
+$cginame= $0 =~ /([^\/]+)$/ ? $1 : '-';
+$ldap_ok=true;
+$ldapcache_ok=true;
+$tta_ok=true;
+$ENV{'WEBMIN_CONFIG'}="/etc/webmin/config";
+
+&initialize();
+&load_dataconf();
+&start_debug();
+%access = &get_module_acl();
+%text = &load_language();
+
+# globals to keep STTA info
+ %ttaprops=();
+ @ttahosts=();
+ %sttaparams=();
+ $ldap_ok=true;
+ $ldapcache_ok=true;
+ $tta_ok=true;
+
+$hostname = `hostname`;
+$hostname =~ s/\r|\n//g;;
+#$ver = `uname -a`;
+$ostr = `uname -a`;
+$ostr =~ s/\r|\n//g;
+%access = &get_module_acl();
+%ttaprops=();
+@ttahosts=();
+%sttaparams=();
+$cginame= $0 =~ /([^\/]+)$/ ? $1 : '-';
+$ldap_ok=true;
+$ldapcache_ok=true;
+$tta_ok=true;
+$button_lock=0;
+@access_types = $access{'types'} eq '*' ? (0 .. 100)
+ : split(/\s+/, $access{'types'});
+map { $access_types{$_}++ } @access_types;
+$debug=$config{debug_code};
+$debug=3;
+
+$task=$in{task} || "";
+$fileName=$in{file} || "" ;
+$brandid=$in{brandid} || "" ;
+$password=$in{password} || "" ;
+$now = time();
+$passData=`cat $root_directory/$module_name/install/.passwd 2>/dev/null`;
+$passData=~ s/\r|\n//g;
+
+if ( ! $access{'global'} || $access{'admin'} ne 1) { $redir="stta" };
+
+if ( $redir ne "" ) {
+ print "$text{'brand_list'} ";
+ exit;
+}
+ $ahora=&set_now();
+ print "";
+
+ local %minfo=&load_minfo("$root_directory/$module_name/");
+
+sub out_debuglog
+{
+ if ( $debug gt 0 ) { print DebugLog "@_ \n"; }
+}
+
+sub err_file_open
+{
+ print "$text{f_error} $fileName";
+ exit;
+}
+ &out_debuglog("# -> $ahora");
+ print "\n";
+ print " $text{'titidx_brandmgr'} ";
+ print " \n";
+ print "Webmin - $hostname - $ostr";
+ &out_debuglog("Webmin - $hostname - $ostr ");
+ print " \n";
+ print " $minfo{name} -- $minfo{version} -- $minfo{brand} -- $minfo{stamp} \n";
+ &out_debuglog(" $minfo{name} -- $minfo{version} -- $minfo{brand} -- $minfo{stamp}");
+ &out_debuglog("_______________________________________________");
+ print "\n";
+ print "\n";
+ print "".$text{f_filelistName} . " \n";
+ print "".$text{f_fsize} . " \n";
+ print "".$text{brand_data} . " \n";
+ print "".$text{brand_desc} . " \n";
+ %h_brandInfo=&load_brandinfo();
+ $lins=0;
+ $touchFiles=0;
+ foreach $item (keys (%h_brandInfo)) { push (@brandInfoList,$h_brandInfo{$item}); }
+ @brandInfo = sort {$a->{fname} cmp $b->{fname}} @brandInfoList;
+ $brand_warn="0";
+ $totSize=0;
+ foreach $item (@brandInfo) {
+ $lins++;
+ my @st = stat("$root_directory/$item->{fname}");
+ my $data_check=&check_brand_data($item->{fname});
+
+ if ( $st[7] ne $item->{'size'} || $data_check eq "false" ) {
+ print " ";
+ print "$item->{'fname'} ";
+ &out_debuglog("$item->{'fname'} - $item->{'size'} != $st[7] - $item->{'brand'} - $item->{'descrip'}");
+ } else {
+ print " ";
+ print "$item->{'fname'} ";
+ }
+ if ( $st[7] ne $item->{'size'} || $data_check eq "false" ) { print ""; }
+ if ( $st[7] ne $item->{'size'} ) {
+ $n=0;
+ $n= $n + $item->{'size'};
+ $n= $st[7] - $n;
+ print " $item->{'size'} != $st[7] = $n ";
+ $totSize=$totSize + $n;
+ }
+ if ( $data_check eq "false" ) { print " $text{changed} ";}
+ if ( $st[7] ne $item->{'size'} || $data_check eq "false" ) {
+ print " ";
+ $brand_warn="1";
+ $touchFiles++;
+ } else {
+ print "$item->{'size'} ";
+ }
+ print "";
+ if ( $st[7] ne $item->{'size'} ) { print "" }
+ print $item->{'brand'};
+ if ( $st[7] ne $item->{'size'} ) { print " " }
+ print " ";
+ print "";
+ if ( $st[7] ne $item->{'size'} ) { print "" }
+ print $item->{'descrip'};
+ if ( $st[7] ne $item->{'size'} ) { print " " }
+ print " ";
+ print " \n";
+ }
+ print "
\n";
+ print "
\n";
+ print "
".&text('l_total',$lins)." \n";
+ &out_debuglog("_______________________________________________");
+ &out_debuglog(&text('l_total',$lins));
+ if ( $brand_warn eq "1" ) {
+ print "
".&text("msgerr_brandinfo",$touchFiles)." $totSize $text{changed}
";
+ &out_debuglog(&text("msgerr_brandinfo",$touchFiles));
+ }
+ print "$ahora \n";
+if ( $debug gt 0 ) { &endclose_debug(); }
+exit;
diff --git a/stta/cache_addapps.cgi b/stta/cache_addapps.cgi
new file mode 100755
index 0000000..b2fed40
--- /dev/null
+++ b/stta/cache_addapps.cgi
@@ -0,0 +1,173 @@
+#!/usr/bin/perl
+# cache_addapp.cgi
+# Add APP objects
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+do 'app-lib.pl';
+&ReadParse();
+
+&headerstta($text{'index_addapp'}, "","addapp" ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+
+#if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
+
+$tta_AppType= $in{ttaapptype};
+%h_tta_apps=&load_tta_apptypes();
+if ( ! defined ($h_tta_apps{$tta_AppType}) || $h_tta_apps{$tta_AppType} eq "" ) {
+ $tta_AppType="";
+ @appdef=();
+ $ttacmd="";
+} else {
+ if ( $tta_AppType =~ /windows/ ) { $tta3tier_domain=$config{cache_domain}; }
+ @appdef=&get_tta_appdef($tta_AppType);
+ $ttacmd="new_".$tta_AppType;
+ $temp_f=$config{stta_defslist}."/".$tta_AppType."-defaults";
+ if ( -r $temp_f ) {
+ %h_ttaobj=&load_ttaobj();
+ &read_file("$root_directory/$module_name/dataconf/map_vars", \%h_map);
+ %h_hosts=&list_hosts(4);
+ foreach $data (@appdef) {
+ $i=$data->{att};
+ next if ( ! defined($h_ttaobj{$i}{value}) || $h_ttaobj{$i}{value} eq "" );
+ if ( $i eq "appserv" ) {
+ $hosts_list ="";
+ foreach $h (split(/,/, $h_ttaobj{$i}{value})) {
+ $h=~ s/$config{tta_base}\///g;
+ if ( $hosts_list ne "" ) { $hosts_list .= "\n" }
+ $hosts_list .=$h_hosts{$h}->{alias};
+ }
+ $data->{'value'} = $hosts_list;
+ } else {
+ $ens_map="ens_".$i."_".$h_ttaobj{$i}{value};
+ if ( defined($h_map{$ens_map}) ) {
+ $data->{'value'} = $h_map{$ens_map};
+ } else {
+ $data->{'value'} = $h_ttaobj{$i}{value};
+ }
+ }
+ }
+ }
+}
+ $grpapps=$in{grpapps};
+ $ntdomain="";
+ $maxsess=$config{default_maxsess};
+ print "\n";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+ print " $text{'titidx_adapp'} -- $h_tta_apps{$tta_AppType} -- \n";
+ if ( $tta_AppType ne "" ) {
+ print " \n";
+ print "$text{tta_obj} -- $h_tta_apps{$tta_AppType} -- $text{msg_fieldsreq} \n";
+ print " \n";
+ &out_tta_appform(@appdef);
+ print "
\n";
+ print " \n";
+ if ( $config{'is_ldapcache'} eq "true" ) { $formObj="newapp";$msgObj=$text{'default_obj'};&htmlCacheapp(msgObj) }
+ } else {
+ print " \n";
+ print "\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
+
+
diff --git a/stta/cache_adddomains.cgi b/stta/cache_adddomains.cgi
new file mode 100755
index 0000000..14f0301
--- /dev/null
+++ b/stta/cache_adddomains.cgi
@@ -0,0 +1,109 @@
+#!/usr/bin/perl
+# cache_adddomains.cgi
+# Add Domain Objects
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&headerstta($text{'index_adddomain'}, "","adddomain" ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+
+if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
+
+ $ttacmd="new_domain";
+ $ntdomain="";
+ $maxsess=$config{default_maxsess};
+ print "
\n";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+ print " $text{'titidx_addomain'} \n";
+ print " \n";
+ print "\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
+
+
diff --git a/stta/cache_addgrpapps.cgi b/stta/cache_addgrpapps.cgi
new file mode 100755
index 0000000..e7d2577
--- /dev/null
+++ b/stta/cache_addgrpapps.cgi
@@ -0,0 +1,110 @@
+#!/usr/bin/perl
+# tta_addgrpapps.cgi
+# Add GRP APPS
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&headerstta($text{'index_addgrpapps'}, "","addgrpapps" ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+
+ #if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
+ &ReadParse();
+ $grpapps=$in{grpapps};
+ $ttacmd="new_orgunit";
+ $ntdomain="";
+ $maxsess=$config{default_maxsess};
+ $grpapps=$in{grpapps};
+ print "
\n";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+ print " $text{'titidx_adgrpapps'} \n";
+ print " \n";
+ print "\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
+
+
diff --git a/stta/cache_addobj.cgi b/stta/cache_addobj.cgi
new file mode 100755
index 0000000..28dd4fa
--- /dev/null
+++ b/stta/cache_addobj.cgi
@@ -0,0 +1,193 @@
+#!/usr/bin/perl
+# cache_addobj.cgi
+# Add LDAP Cache Objects
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+
+&headerstta($text{'index_addldapcache'}, "", "addldapcache",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+ print " $text{'titidx_addldapcache'} \n";
+ print " \n";
+ print "\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl\n";
+ exit;
diff --git a/stta/cache_delapps.cgi b/stta/cache_delapps.cgi
new file mode 100755
index 0000000..4ee0497
--- /dev/null
+++ b/stta/cache_delapps.cgi
@@ -0,0 +1,69 @@
+#!/usr/bin/perl
+# tta_delapps.cgi
+# Delete Hosts
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+ $appname = $in{appname};
+ if (!$appname) { &redirect("cache_selapps.cgi?form=delapps"); }
+ $postform = $in{postform};
+ &headerstta($text{'index_delapp'}, "","delapp" ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ print "
\n";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+ print " $text{'titidx_delapp'} \n";
+ print " \n";
+ print "\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
+
+
diff --git a/stta/cache_deldomains.cgi b/stta/cache_deldomains.cgi
new file mode 100755
index 0000000..390b3af
--- /dev/null
+++ b/stta/cache_deldomains.cgi
@@ -0,0 +1,69 @@
+#!/usr/bin/perl
+# cache_deldomains.cgi
+# Delete Domains from STTA
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+ $domainname = $in{domainname};
+ if (!$domainname) { &redirect("cache_seldomains.cgi?form=deldomains"); }
+ $postform = $in{postform};
+ &headerstta($text{'index_deldomain'}, "","deldomain" ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ print "
\n";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+ print " $text{'titidx_deldomain'} \n";
+ print " \n";
+ print "\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
+
+
diff --git a/stta/cache_delgrpapps.cgi b/stta/cache_delgrpapps.cgi
new file mode 100755
index 0000000..569211e
--- /dev/null
+++ b/stta/cache_delgrpapps.cgi
@@ -0,0 +1,69 @@
+#!/usr/bin/perl
+# cache_delgrpapps.cgi
+# Delete APPs Group
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+ $aliasgrpapps = $in{aliasgrpapps};
+ if (!$aliasgrpapps) { &redirect("cache_selgrpapps.cgi?form=delgrpapps"); }
+ $postform = $in{postform};
+ &headerstta($text{'index_delgrpapps'}, "","delgrpapps" ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ print "
\n";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+ print " $text{'titidx_delgrpapps'} \n";
+ print " \n";
+ print "\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
+
+
diff --git a/stta/cache_delobj.cgi b/stta/cache_delobj.cgi
new file mode 100755
index 0000000..4cba897
--- /dev/null
+++ b/stta/cache_delobj.cgi
@@ -0,0 +1,163 @@
+#!/usr/bin/perl
+# cache_delobj.cgi
+# Delete Objects Cache
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+
+if (!$in{dn}) { &redirect("cache_selobj.cgi?form=delobj"); }
+&headerstta($text{'index_delldapcache'}, "","delldapcache" ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "
\n";
+if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
+
+ do "ldap-lib.pl";
+
+ $lnro=$in{lnro};
+ $grpdn=$in{dn};
+ $dn_obj=$in{dn};
+ $grpdn=~s/,$config{ldapcache_base}//;
+ $dn_cache=$dn_obj;
+ # loading variables
+ $ldapcache_server=$in{ldapcacheserver} || "1";
+ &connect_cache();
+ if ( $lnro > -1 && $dn_cache !=~ /cn=/ ) {
+ $OuName=$grpdn;
+ $userou="default";
+ $objType="";
+ @lindn = split(/,/, $in{dn});
+ $NameUser=$lindn[0];
+ $OuName=$grpdn;
+ $OuName=~s/$NameUser,//;
+ $NameUser=$default_obj;
+ } else {
+ if ( &load_tta3tier_vars($dn_cache) ne 0 ) {
+ &html_errshow("ldap");
+ &footHere; exit ;
+ }
+ $userou=$tta3tier_oudn;
+ $objType="";
+ @lindn = split(/,/, $in{dn});
+ $NameUser=$lindn[0];
+ $OuName=$grpdn;
+ $OuName=~s/$NameUser,//;
+ $default_obj="cn=$config{ldapcache_defaultobj}" ;
+ }
+
+
+ if ( "$NameUser" ne "$default_obj" ) {
+
+ $dn="$NameUser,".$userou.",".$config{ldap_base};
+ $ldap_server=1;
+ # loading variables
+ &connect();
+ $cur_entry=&sel_ldap_obj($dn,"ou=*");
+ if ( !defined($cur_entry) || $cur_entry->dn ne $dn) {
+ $err_msg=" Error: $NameUser $userou\n";
+ &html_errshow("ldap");
+ &footHere; exit ;
+ }
+ %entryObj=&get_ldap_obj($dn,$cur_entry);
+ $mail = $entryObj{mail};
+ $sn = $entryObj{sn};
+ $displayname = $entryObj{displayname};
+ $lin_user="$sn -- $displayname";
+ } else {
+ $lin_user="DEFAULT";
+ }
+ if ($OuName) {
+ $CnName=$OuName;
+ if ( $origin ne "default") { $CnName=~s/$userou,//g; }
+ $objType="app";
+ $objDescrip=&scan_objdescrip(2,$objType,$OuName,$userou);
+ if ( "$objDescrip" eq "" ) {
+ $objType="grpapps";
+ $objDescrip=&scan_objdescrip(2,$objType,$OuName,$userou);
+ }
+ if ( "$objDescrip" eq "" ) {
+ $objType="host";
+ $CnName=$OuName;
+ $objDescrip=&scan_objdescrip(2,$objType,$CnName,$userou);
+ }
+ if ( "$objDescrip" eq "" ) {
+ $objType="grphosts";
+ $objDescrip=&scan_objdescrip(2,$objType,$CnName,$userou);
+ }
+ if ( "$objDescrip" ne "" ) {
+ if ( "$CnName" ne "" ) {
+ $lin_name="$objDescrip -- $CnName";
+ } else { $lin_name="$objDescrip -- $OuName"; }
+ } else { $objType=""; }
+ }
+
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+
+ print " $text{'titidx_delldapcache'} : $in{desc} \n";
+ print " \n";
+
+ print "\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl\n";
+ exit;
+
+
diff --git a/stta/cache_filter.cgi b/stta/cache_filter.cgi
new file mode 100755
index 0000000..df51f7a
--- /dev/null
+++ b/stta/cache_filter.cgi
@@ -0,0 +1,247 @@
+#!/usr/bin/perl
+# cache_filter.cgi
+# filter Users to Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+$postform=$in{form};
+$hostname=$in{hostname};
+$appname=$in{appname};
+$grpappsname=$in{grpappsname};
+$hostname=$in{hostname};
+$usergrphosts=$in{usergrphosts};
+$domain=$in{domain};
+$filter = "*";
+if ( "$postform" eq "winldapusers" ) {
+# &headerstta($text{'index_winldapusers'}, "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ &headerstta("", "", $postform,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ } else {
+ &headerstta($text{'index_filter'}, "", "filter" ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+};
+
+ print "
\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+ print "
\n";
+ print " $text{'titidx_cachefilter'} \n";
+ print " \n";
+ print "\n";
+ print "
\n";
+if ( "$postform" ne "winldapusers") {
+ &footer($config{'back_return'},$text{'index'});
+}
+ print "
\n";
+ do "footer.pl";
+ exit;
diff --git a/stta/cache_modapps.cgi b/stta/cache_modapps.cgi
new file mode 100755
index 0000000..5f8622d
--- /dev/null
+++ b/stta/cache_modapps.cgi
@@ -0,0 +1,167 @@
+#!/usr/bin/perl
+# cache_modapps.cgi
+# Mod app Objects
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+do 'app-lib.pl';
+if ( $config{'is_ldapcache'} eq "true" ) {
+ do "ldap-lib.pl";
+}
+
+&foreign_require("proc", "proc-lib.pl");
+
+&ReadParse();
+
+ $aliasapp=$in{appname};
+ if (!$aliasapp) { &redirect("cache_selapps.cgi?form=modapps"); }
+ $postform = $in{postform};
+
+ &headerstta($text{'index_modapp'}, "","modapp" ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
+ $ttacmd="edit";
+ # Cleaning and reset values ...
+ $descrip="";
+ $maxsess="";
+ $appname="";
+ $dn_app="";
+ $ens_app="";
+ $alias="";
+ %h_apps=&list_apps();
+ if ( $h_apps{$aliasapp}->{'alias'} ne $aliasapp ) {
+ $err_msg=$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ $dn_apps=$h_apps{$aliasapp}->{'obj'};
+ $ens_apps=$h_apps{$aliasapp}->{'ens'};
+ $appname=$h_apps{$aliasapp}->{'name'};
+ $grpalias=$h_apps{$aliasapp}->{'grpalias'};
+ $descrip=$h_apps{$aliasapp}->{'descrip'};
+ $alias=$h_apps{$aliasapp}->{'alias'};
+ $maxsess=$h_apps{$aliasapp}->{'maxsess'};
+
+ $ens_obj = "\"".$config{tta_base}."/$ens_apps\"";
+ # loading object attributes ...
+ $op="attributes";
+ $type_cmd="attributes";
+ $status_cmd=&run_tta_cmd($type_cmd,$ens_obj);
+ if ( !$status_cmd ) { $str_cmds="
".$text{'tta_noobject'}." ";}
+ # Assigning and collecting values to be used in the form ...
+ %h_ttaobj=&load_ttaobj();
+ $tta_AppType="";
+ if ( $h_ttaobj{objectclass}{value} =~ /ttacharacterapplication/ ) {
+ $tta_AppType="charapp";
+ } elsif ( $h_ttaobj{objectclass}{value} =~ /ttawindowsapplication/ ) {
+ $tta_AppType="windowsapp";
+ } elsif ( $h_ttaobj{objectclass}{value} =~ /ttaxapplication/ ) {
+ $tta_AppType="xapp";
+ }
+ %h_hosts=&list_hosts(4);
+ %h_tta_apps=&load_tta_apptypes();
+ &read_file("$root_directory/$module_name/dataconf/map_vars", \%h_map);
+ @appdef=&get_tta_appdef($tta_AppType);
+ foreach $data (@appdef) {
+ $i=$data->{att};
+ if ( $i eq "appserv" ) {
+ $hosts_list ="";
+ foreach $h (split(/,/, $h_ttaobj{$i}{value})) {
+ $h=~ s/$config{tta_base}\///g;
+ if ( $hosts_list ne "" ) { $hosts_list .= "\n" }
+ $hosts_list .=$h_hosts{$h}->{alias};
+ }
+ $data->{'value'} = $hosts_list;
+ } else {
+ $ens_map="ens_".$i."_".$h_ttaobj{$i}{value};
+ if ( defined($h_map{$ens_map}) ) {
+ $data->{'value'} = $h_map{$ens_map};
+ } else {
+ $data->{'value'} = $h_ttaobj{$i}{value};
+ }
+ }
+ }
+
+if ( $config{'is_ldapcache'} eq "true" ) {
+ $dn_cache="cn=$config{ldapcache_defaultobj},$dn_apps,".$config{ldapcache_base};
+ $ldapcache_server=$in{ldapcacheserver} || "1";
+ &connect_cache();
+ # loading variables
+ &load_tta3tier_vars($dn_cache);
+}
+ if ( $tta_AppType =~ /windows/ && $tta3tier_domain eq "" ) { $tta3tier_domain=$config{cache_domain}; }
+
+ print "\n";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+ print " $text{'titidx_modapp'} \n";
+ print " \n";
+
+ print "$text{tta_obj} -- $h_tta_apps{$tta_AppType} -- $text{msg_fieldsreq} \n";
+ print " \n"; &out_tta_appform(@appdef);
+ print "
\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
diff --git a/stta/cache_moddomains.cgi b/stta/cache_moddomains.cgi
new file mode 100755
index 0000000..6430f0d
--- /dev/null
+++ b/stta/cache_moddomains.cgi
@@ -0,0 +1,116 @@
+#!/usr/bin/perl
+# cache_moddomains.cgi
+# Mod domain Objects
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+do "ldap-lib.pl";
+
+&ReadParse();
+
+ $aliasdomain=$in{domainname};
+ if (!$aliasdomain) { &redirect("cache_seldomains.cgi?form=moddomains"); }
+ $postform = $in{postform};
+
+ &headerstta($text{'index_moddomain'}, "","moddomain" ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
+ $ttacmd="edit";
+ # Cleaning and reset values ...
+ $descrip="";
+ $maxsess="";
+ $domainname="";
+ $dn_domain="";
+ $ens_domain="";
+ $alias="";
+ %h_domain=&list_domains();
+ if ( $h_domain{$aliasdomain}->{'alias'} ne $aliasdomain ) {
+ $err_msg=$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ $dn_domain=$h_domain{$aliasdomain}->{'obj'};
+ $ens_domain=$h_domain{$aliasdomain}->{'ens'};
+ $domainname=$h_domain{$aliasdomain}->{'name'};
+ $descrip=$h_domain{$aliasdomain}->{'descrip'};
+ $alias=$h_domain{$aliasdomain}->{'alias'};
+ $maxsess=$h_domain{$aliasdomain}->{'maxsess'};
+ if ( $alias eq "" ) {
+ $err_msg=$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+
+if ( $config{'is_ldapcache'} eq "true" ) {
+ $dn_cache="cn=$config{ldapcache_defaultobj},$dn_domain,".$config{ldapcache_base};
+ $ldapcache_server=$in{ldapcacheserver} || "1";
+ &connect_cache();
+ # loading variables
+ &load_tta3tier_vars($dn_cache);
+}
+ print "
\n";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+ print " $text{'titidx_moddomain'} \n";
+ print " \n";
+ print "\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
diff --git a/stta/cache_modgrpapps.cgi b/stta/cache_modgrpapps.cgi
new file mode 100755
index 0000000..62a1614
--- /dev/null
+++ b/stta/cache_modgrpapps.cgi
@@ -0,0 +1,176 @@
+#!/usr/bin/perl
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+# tta_moddgrpapps.cgi
+# Mod APPS Groups
+
+require './stta-lib.pl';
+&foreign_require("proc", "proc-lib.pl");
+if ( $config{'is_ldapcache'} eq "true" ) {
+ do "ldap-lib.pl";
+}
+
+&ReadParse();
+
+ $aliasgrpapps=$in{aliasgrpapps};
+ if (!$aliasgrpapps) { &redirect("cache_selgrpapps.cgi?form=modgrpapps"); }
+ $postform = $in{postform};
+ &headerstta($text{'index_modgrpapps'}, "","modgrpapps" ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ $ttacmd="edit";
+ # Cleaning and reset values ...
+ $descrip="";
+ $maxsess="";
+ $grpappsname="";
+ $dn_grpapps="";
+ $ens_grpapps="";
+ $alias="";
+ $conntype="";
+ $inherit="";
+ $cdm="";
+ $webtop="";
+ %h_grpapps=&list_grpapps();
+ if ( $h_grpapps{$aliasgrpapps}->{'alias'} ne $aliasgrpapps ) {
+ $err_msg=$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ $dn_grpapps=$h_grpapps{$aliasgrpapps}->{'obj'};
+ $ens_grpapps=$h_grpapps{$aliasgrpapps}->{'ens'};
+ $grpappsname=$h_grpapps{$aliasgrpapps}->{'name'};
+ $descrip=$h_grpapps{$aliasgrpapps}->{'descrip'};
+ $alias=$h_grpapps{$aliasgrpapps}->{'alias'};
+ $maxsess=$h_grpapps{$aliasgrpapps}->{'maxsess'};
+
+if ( $config{'is_ldapcache'} eq "true" ) {
+ if ( $dn_grpapps ne "" ) {
+ $dn_cache="cn=$config{ldapcache_defaultobj},$dn_grpapps,".$config{ldapcache_base};
+ } else {
+ $dn_cache="cn=$config{ldapcache_defaultobj},".$config{ldapcache_base};
+ }
+ $ldapcache_server=$in{ldapcacheserver} || "1";
+ &connect_cache();
+ # loading variables
+ &load_tta3tier_vars($dn_cache);
+ }
+ $ens_obj = "\"".$config{tta_base}."/$ens_grpapps\"";
+ if ( $grpappsname ) {
+ if ( $in{postform} ) {
+ # loading object attributes ...
+ $op="attributes";
+ $type_cmd="attributes";
+ $status_cmd=&run_tta_cmd($type_cmd,$ens_obj);
+ if ( !$status_cmd ) { $str_cmds="
".$text{'tta_noobject'}." ";}
+ }
+ } else {
+ # loading object defaults ....
+ $temp_f=$config{'tta_defaults_grpapps'};
+ }
+ # Assigning and collecting values to be used in the form ...
+ %h_ttaobj=&load_ttaobj();
+ $descrip =$h_ttaobj{'description'}->{'value'};
+ $cdm =$h_ttaobj{'cdm'}->{'value'};
+ $inherit =$h_ttaobj{'inherit'}->{'value'};
+ $webtop =$h_ttaobj{'webtop'}->{'value'};
+ $conntype=$h_ttaobj{'conntype'}->{'value'};
+ $temp_f="";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+ print " $text{'titidx_adgrpapps'} \n";
+ print " \n";
+ print "\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
diff --git a/stta/cache_modobj.cgi b/stta/cache_modobj.cgi
new file mode 100755
index 0000000..6957241
--- /dev/null
+++ b/stta/cache_modobj.cgi
@@ -0,0 +1,152 @@
+#!/usr/bin/perl
+# cache_modobj.cgi
+# Modify Services with Tarantella Users
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+
+if (!$in{dn}) { &redirect("cache_selobj.cgi?form=modobj"); }
+&headerstta($text{'index_modldapcache'}, "", "modldapcache",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "
\n";
+if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
+
+ do "ldap-lib.pl";
+
+ $grpdn=$in{dn};
+ $dn_obj=$in{dn};
+ $userou=$in{userou} || "";
+ $grpdn=~s/,$config{ldapcache_base}//;
+ $dn_cache=$dn_obj;
+ # loading variables
+ $ldapcache_server=$in{ldapcacheserver} || "1";
+ &connect_cache();
+ if ( &load_tta3tier_vars($dn_cache) ne 0 ) {
+ &html_errshow("ldap");
+ &footHere; exit ;
+ }
+ $objType="";
+ @lindn = split(/,/, $in{dn});
+ $NameUser=$lindn[0];
+ $OuName=$grpdn;
+ $OuName=~s/$NameUser,//;
+ $default_obj="cn=$config{ldapcache_defaultobj}";
+ if ( $userou eq "" ) { $userou=$tta3tier_oudn; }
+
+ if ( "$NameUser" ne "$default_obj" ) {
+ $dn="$NameUser,";
+ if ( $tta3tier_oudn ne "" ) { $dn .=$tta3tier_oudn.","; }
+ $dn .=$config{ldap_base};
+ $ldap_server=1;
+ &connect();
+ $cur_entry=&sel_ldap_obj($dn,"cn=*");
+ if ( !defined($cur_entry) || $cur_entry->dn ne $dn) {
+ $err_msg=" Error: $NameUser $tta3tier_oudn\n";
+ &html_errshow("ldap");
+ &footHere; exit ;
+ }
+ %entryObj=&get_ldap_obj($dn,$cur_entry);
+ $mail = $entryObj{mail};
+ $sn = $entryObj{sn};
+ $displayname = $entryObj{displayname};
+ $lin_user="$sn -- $displayname";
+ } else {
+ $lin_user="DEFAULT";
+ }
+ if ($OuName) {
+ $CnName=$OuName;
+ if ( $origin ne "default" && $userou ne "" ) { $CnName=~s/$userou,//g; }
+ $objType="app";
+ $objDescrip=&scan_objdescrip(2,$objType,$OuName,$userou);
+ if ( "$objDescrip" eq "" ) {
+ $objType="grpapps";
+ $objDescrip=&scan_objdescrip(2,$objType,$OuName,$userou);
+ }
+ if ( "$objDescrip" eq "" ) {
+ $objType="host";
+ $CnName=$OuName;
+ $objDescrip=&scan_objdescrip(2,$objType,$CnName,$userou);
+ }
+ if ( "$objDescrip" eq "" ) {
+ $objType="grphosts";
+ $objDescrip=&scan_objdescrip(2,$objType,$CnName,$userou);
+ }
+ if ( "$objDescrip" ne "" ) {
+ if ( "$CnName" ne "" ) {
+ $lin_name="$objDescrip -- $CnName";
+ } else { $lin_name="$objDescrip -- $OuName"; }
+ } else { $objType=""; }
+ }
+
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+
+ print " $text{'titidx_modldapcache'} : $in{desc} \n";
+ print " \n";
+
+ print "\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl\n";
+ exit;
+
+
diff --git a/stta/cache_mvapps.cgi b/stta/cache_mvapps.cgi
new file mode 100755
index 0000000..482bdbe
--- /dev/null
+++ b/stta/cache_mvapps.cgi
@@ -0,0 +1,12 @@
+#!/usr/bin/perl
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+# cache_mvapps.cgi
+
+require './stta-lib.pl';
+if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
+&redirect( "stta_mvobjs.cgi?type=apps");
+
+exit;
+
+
diff --git a/stta/cache_mvdomains.cgi b/stta/cache_mvdomains.cgi
new file mode 100755
index 0000000..4a069b1
--- /dev/null
+++ b/stta/cache_mvdomains.cgi
@@ -0,0 +1,12 @@
+#!/usr/bin/perl
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+# cache_mvdomains.cgi
+
+require './stta-lib.pl';
+if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
+&redirect( "stta_mvobjs.cgi?type=domains");
+
+exit;
+
+
diff --git a/stta/cache_mvgrpapps.cgi b/stta/cache_mvgrpapps.cgi
new file mode 100755
index 0000000..71cd4ad
--- /dev/null
+++ b/stta/cache_mvgrpapps.cgi
@@ -0,0 +1,12 @@
+#!/usr/bin/perl
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+# cache_mvgrpapps.cgi
+
+require './stta-lib.pl';
+if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
+&redirect( "stta_mvobjs.cgi?type=grpapps");
+
+exit;
+
+
diff --git a/stta/cache_selapps.cgi b/stta/cache_selapps.cgi
new file mode 100755
index 0000000..1850dd7
--- /dev/null
+++ b/stta/cache_selapps.cgi
@@ -0,0 +1,83 @@
+#!/usr/bin/perl
+# cache_selapps.cgi
+# Select Apps
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+
+ &ReadParse();
+ $postform="modapps";
+ $appname=$in{appname};
+ $multiobj=$in{multi} || "0";
+if ($in{form}) { $postform = $in{form}; }
+if ( "$postform" eq "delapps" ) {
+ &headerstta($text{'index_delapp'}, "", $postform,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+}
+if ( "$postform" eq "modapps" ) {
+ &headerstta($text{'index_modapp'}, "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+}
+ print "
\n";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+if ( "$postform" eq "delapps") { print " $text{'titidx_delapp'} \n" };
+if ( "$postform" eq "modapps") { print " $text{'titidx_modapp'} \n" };
+ print " \n";
+ print "\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
+
+
diff --git a/stta/cache_seldomains.cgi b/stta/cache_seldomains.cgi
new file mode 100755
index 0000000..a79dc6d
--- /dev/null
+++ b/stta/cache_seldomains.cgi
@@ -0,0 +1,83 @@
+#!/usr/bin/perl
+# cache_seldomains.cgi
+# Select Apps
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+
+ &ReadParse();
+ $postform="moddomains";
+ $domainname=$in{domain};
+ $multiobj=$in{multi} || "0";
+if ($in{form}) { $postform = $in{form}; }
+if ( "$postform" eq "deldomains" ) {
+ &headerstta($text{'index_deldomain'}, "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+}
+if ( "$postform" eq "moddomains" ) {
+ &headerstta($text{'index_moddomain'}, "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+}
+ print "
\n";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+if ( "$postform" eq "deldomains") { print " $text{'titidx_deldomain'} \n" };
+if ( "$postform" eq "moddomains") { print " $text{'titidx_moddomain'} \n" };
+ print " \n";
+ print "\n";
+ print " \n";
+ print " ",&hlink("$text{'f_domainobjname'} ","fdomainobjname")," \n";
+ if ( $multiobj eq "1" ) {
+ print "",
+ join("\n", split(/,/ , $domainname))," \n";
+ print " \n";
+
+ } else {
+ print " \n";
+ print " ",&hlink("$text{'f_selecdomain'} ","fselecdomains"),"\n";
+ %h_domain=&list_domains();
+ &out_htmlselobj(\%h_domain,"descrip","alias",$domainname);
+ print " \n";
+ print " \n";
+ }
+ print " ";
+ print " \n";
+ print " \n";
+ print " \n";
+ print " \n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
+
+
diff --git a/stta/cache_selgrpapps.cgi b/stta/cache_selgrpapps.cgi
new file mode 100755
index 0000000..dda457d
--- /dev/null
+++ b/stta/cache_selgrpapps.cgi
@@ -0,0 +1,87 @@
+#!/usr/bin/perl
+# cache_selgrpapps.cgi
+# Select Apps group
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+
+ &ReadParse();
+ $postform="modgrpapps";
+ $aliasgrpapps=$in{grpapps};
+ $multiobj=$in{multi} || "0";
+if ($in{form}) { $postform = $in{form}; }
+if ( "$postform" eq "delgrpapps" ) {
+ &headerstta($text{'index_delgrpapps'}, "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+}
+if ( "$postform" eq "modgrpapps" ) {
+ &headerstta($text{'index_modgrpapps'}, "", $postform,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+}
+ print "
\n";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+if ( "$postform" eq "delgrpapps") { print " $text{'titidx_delgrpapps'} \n" };
+if ( "$postform" eq "modgrpapps") { print " $text{'titidx_modgrpapps'} \n" };
+ print " \n";
+ print "\n";
+ print " \n";
+ print " ",&hlink("$text{'f_aliasgrpapps'} ","faliasgrpapps")," \n";
+ print " ";
+ if ( $multiobj eq "1" ) {
+ print "",
+ join("\n", split(/,/ , $aliasgrpapps))," \n";
+ print " \n";
+
+ } else {
+ print " \n";
+ print " ",&hlink("$text{'f_selecgrpapps'} ","fselecgrpapps"),"\n";
+ %h_grpapp=&list_grpapps();
+ &out_htmlselobj(\%h_grpapp,"descrip","alias",$aliasgrpapps);
+ print " \n";
+ print " \n";
+ }
+ print " \n";
+&out_htmlOMobj(\%h_grpapp,"ens","alias",$aliasgrpapps,
+ "cache_$postform.cgi?postform=cache_selgrpapps&aliasgrpapps=");
+ print " \n";
+ print " \n";
+ print " \n";
+ print " \n";
+ print " \n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
+
+
diff --git a/stta/cache_selobj.cgi b/stta/cache_selobj.cgi
new file mode 100755
index 0000000..be3510d
--- /dev/null
+++ b/stta/cache_selobj.cgi
@@ -0,0 +1,323 @@
+#!/usr/bin/perl
+# cache_selobj.cgi
+# Select Users to Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+do "ldap-lib.pl";
+&ReadParse();
+$postform="ldapobjs";
+$ldapcache_server=$in{ldapcacheserver} || "1";
+if ($in{form}) { $postform = $in{form}; }
+if ( $debug gt 5 ) {
+ &headerstta ("IN", "", "");
+ print "
$in{form} $in{base}, $in{method}, $in{filter} ";
+ if ( $debug eq 2 ) { foreach $elem (@in) { print "
$elem \n"; } };
+}
+$method=$in{method};
+if ( !$in{base} ) { &redirect("cache_filter.cgi?form=$postform"); }
+if ( $method eq "none" || $method eq "" ) {
+ if ( $postform eq "tree" ) {
+ $method="one";
+ } else { $method="sub"; }
+}
+if ( $in{filter} ne "" ) {
+ if ( "$in{objclass}" ne "none") {
+ $filter="objectclass=".$in{objclass};
+ } else {
+ if ( $postform eq "tree" ) {
+ $filter="objectclass=*";
+ } else {
+ $filter="cn=".$in{filter};
+ $method="sub";
+ }
+ }
+} else {
+ $filter="objectclass=*";
+}
+if ( $in{base} eq "" ) {
+ $search_dn=$config{ldapcache_base};
+} else {
+ $search_dn = $in{base};
+}
+$sort_on = ($in{sort_on}) ? $in{sort_on} : "dn";
+
+if ( "$postform" eq "delobj" ) {
+ &headerstta($text{'index_delldapcache'}, "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,"onLoad='initJs();'","$text{head_below}" );
+}
+if ( "$postform" eq "modobj" ) {
+ &headerstta($text{'index_modldapcache'}, "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,"onLoad='initJs();'","$text{head_below}" );
+ };
+if ( "$postform" eq "winldapobjs" ) {
+# &headerstta($text{'index_winldapobjs'}, "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ &headerstta("", "", $postform,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ };
+if ( "$postform" eq "ldapobjs" || "$postform" eq "tree" ) {
+ &headerstta ($text{'index_ldapobjs'}, "", "$postform" ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ } ;
+ print "
\n";
+ print "\n";
+ print "\n";
+print "
\n";
+if ( "$postform" eq "delobj") { print " $text{'titidx_delldapcache'} \n" };
+if ( "$postform" eq "modobj") { print " $text{'titidx_modldapcache'} \n" };
+if ( "$postform" eq "ldapobjs" || "$postform" eq "tree" ) { print " $text{'titidx_ldapobjs'} \n" };
+if ( "$postform" eq "winldapobjs") { print " $text{'titidx_winldapobjs'} \n" };
+ print "\n";
+
+if ($debug gt 0 ) { print "$search_dn, $method, $filter "; };
+sub callbackSearch
+{
+ my ( $conncache, $entry) = @_;
+ my (%entryAttrs);
+
+ if ( !defined($entry) ) { return };
+
+ $dn = $entry->dn;
+
+ @attrs = $entry->attributes; # Obtain attributes for this entry.
+ my (%all_elemen);
+ $all_elemen{dn} = $dn;
+ foreach my $var (@attrs) {
+ $attr = $entry->get_value( $var, asref => 1 );
+ if ( defined($attr) ) {
+ foreach my $value (@$attr) { $entryAttrs{$var} = $value; }
+ }
+ }
+ $all_elemen{objectclass} = $entryAttrs{objectclass};
+ if ( $entryAttrs{objectclass} eq "ttacacheapp" || $entryAttrs{objectClass} eq "ttacacheapp" ) {
+ $all_elemen{objtype} = "cn";
+ $all_elemen{objcnou} = $entryAttrs{cn};
+ $all_elemen{description} = $entryAttrs{tta3tiertitle};
+ } else {
+ $all_elemen{objtype} = "ou";
+ $all_elemen{objcnou} = $entryAttrs{ou};
+ $all_elemen{description} = $entryAttrs{description};
+ }
+ $all_elemen[$i++] = \%all_elemen;
+ $conncache->pop_entry;
+}
+
+&connect_cache();
+ $i=0;
+ $ious=0;
+ $conncache = $ldapcacheObj->search ( base => $search_dn,
+ scope => "$method",
+ filter => "(" . $filter . ")",
+ callback => \&callbackSearch
+ );
+ $search_cmd="dn=>'$search_dn'||method=>'$method'||filter=>'$filter'";
+ &ldapcache_logerr("search $search_dn");
+
+if ( $conncache->code ) {
+ if ($conncache->count == 0) { # if conncache is not defined we have nothing.
+ print "
" . $text{msg_1} . " \n"; }
+}
+else {
+ print "-- $text{'f_ldapserver'} ";
+ if ( "$ldapcache_server" eq "1" ) {
+ print $config{ldapcache_servertitle}." (".$config{ldapcache_server}.") ";
+ } elsif ( "$ldapcache_server" eq "2" ) {
+ print $config{ldapcache2_servertitle}." (".$config{ldapcache2_server}.") ";
+ }
+ print " -- $text{'l_orderby'} ";
+ if ($sort_on eq "dn") {
+ @elemens = sort {$a->{$sort_on} cmp $b->{$sort_on}} @all_elemen;
+ print $text{l_dn} . "\n";
+ }
+ elsif ($sort_on eq "objcnou") {
+ @elemens = sort {$a->{objcnou} cmp $b->{objcnou}} @all_elemen;
+ print $text{l_objcnou} . "\n";
+ }
+ else {
+ @elemens = sort {($a->{description} . $a->{objcnou}) cmp
+ ($b->{description} . $b->{objcnou})} @all_elemen;
+ print $text{l_description} . "\n";
+ }
+ print "
\n";
+ if ( "$postform" eq "winldapobjs" ) {
+ print "
\n";
+ } else {
+ print "\n";
+ }
+ print " $text{f_checkboxdelobj} [$text{'delete'}] \n";
+ print " \n";
+ print " ",&hlink("$text{'f_objname'} ","fobjname")," \n";
+ print " \n";
+ print " \n";
+ print " \n";
+ print " \n";
+ print " \n";
+ print " \n";
+ print " \n";
+ print " \n";
+ print " \n";
+ if ( "$postform" eq "winldapobjs" ) {
+ print " \n";
+ } elsif ( $access{passwd} eq 1 && $config{'is_masterHost'} eq "true" ) {
+ print " \n";
+ print " \n";
+ print " \n"
+ }
+ print " \n";
+}
+
+ print "
\n";
+if ( "$postform" ne "winldapobjs") {
+ &footer($config{'back_return'},$text{'index'});
+}
+ print "
--
\n";
+ do "footer.pl";
+#if there is only one jump to it !!!
+ print "\n";
+ exit;
diff --git a/stta/cgitools/do.pl b/stta/cgitools/do.pl
new file mode 100755
index 0000000..afdb3c5
--- /dev/null
+++ b/stta/cgitools/do.pl
@@ -0,0 +1,16 @@
+#!/usr/bin/perl
+# tta_status.cgi
+# Display Status de los Servicios de Tarantella.
+
+require './tarantella-lib.pl';
+
+ open(PS, "nom.html");
+ while($line=) {
+ chop($line);
+ print " print \"$line\"; \n";
+ }
+ close(PS);
+ exit;
+
+
+
diff --git a/stta/cgitools/help-cgi b/stta/cgitools/help-cgi
new file mode 100755
index 0000000..dc88e02
--- /dev/null
+++ b/stta/cgitools/help-cgi
@@ -0,0 +1,108 @@
+#!/usr/bin/perl
+# help.cgi
+# Displays help HTML for some module, with substitutions
+
+require './web-lib.pl';
+&init_config();
+&error_setup($text{'help_err'});
+$ENV{'PATH_INFO'} !~ /[\\\&\;\`\'\"\|\*\?\~\<\>\^\(\)\[\]\{\}\$\n\r]/ ||
+ &error($text{'help_epath'});
+$ENV{'PATH_INFO'} =~ /^\/(\S+)\/(\S+)$/ || &error($text{'help_epath'});
+$module = $1; $file = $2;
+
+# if it ends with .gif assume it is a direct URL
+if ($file =~ /\.gif$/) {
+ &redirect("$module/$file");
+ exit;
+}
+
+sub write_helpfile
+{
+
+ local $dir = $module_name ? "../$_[0]/help" : "$_[0]/help";
+ local $path = "$dir/$_[1].$current_lang.html";
+ open (FILE, ">$path");
+ print FILE "\n";
+ print FILE "\n";
+ print FILE "\n";
+ close (FILE);
+
+}
+
+# read the help file
+$path = &help_file($module, $file);
+@st = stat($path);
+ open(HELP, $path) || &write_helpfile($module,$file);
+ $path = &help_file($module, $file);
+ @st = stat($path);
+open(HELP, $path) || &helperror(&text('help_efile', $path));
+read(HELP, $help, $st[7]);
+close(HELP);
+
+# find and replace the section
+if ($help =~ s/([^<]+)<\/header>/$1<\/h1><\/center> /) {
+ &header($1);
+ }
+else {
+ &helperror($text{'help_eheader'});
+ }
+
+# find and replace directives
+$help =~ s//inchelp($1)/ge;
+
+# find and replace directives
+$help =~ s/]*)>([\000-\177]*?)([\000-\177]*?)<\/if>/ifhelp($1, $2, $3)/ge;
+
+# find and replace directives
+$help =~ s/]*)>([\000-\177]*?)<\/if>/ifhelp($1, $2)/ge;
+
+# find and replace directives
+$help =~ s/]*)>/exechelp($1)/ge;
+
+# output the HTML
+print $help;
+&footer();
+
+# inchelp(path)
+sub inchelp
+{
+if ($_[0] =~ /^\/(\S+)\/(\S+)$/) {
+ # including something from another module..
+ }
+else {
+ # including from this module
+ local $ipath = &help_file($module, $_[0]);
+ @st = stat($ipath);
+ open(INC, $ipath) ||
+ return "".&text('help_einclude', $_[0])." \n";
+ read(INC, $inc, $st[7]);
+ close(INC);
+ return $inc;
+ }
+}
+
+# ifhelp(perl, text, [elsetext])
+sub ifhelp
+{
+local $rv = eval $_[0];
+if ($@) { return "".&text('help_eif', $_[0], $@)." \n"; }
+elsif ($rv) { return $_[1]; }
+else { return $_[2]; }
+}
+
+# exechelp(perl)
+sub exechelp
+{
+local $rv = eval $_[0];
+if ($@) { return "".&text('help_eexec', $_[0], $@)." \n"; }
+else { return $rv; }
+}
+
+sub helperror
+{
+&header($text{'error'});
+print "$text{'error'} \n";
+print "",@_,"
\n";
+exit;
+}
+
diff --git a/stta/cgitools/help.cgi b/stta/cgitools/help.cgi
new file mode 100755
index 0000000..9d483cf
--- /dev/null
+++ b/stta/cgitools/help.cgi
@@ -0,0 +1,106 @@
+#!/usr/bin/perl
+# help.cgi
+# Displays help HTML for some module, with substitutions
+
+require './web-lib.pl';
+&init_config();
+&error_setup($text{'help_err'});
+$ENV{'PATH_INFO'} !~ /[\\\&\;\`\'\"\|\*\?\~\<\>\^\(\)\[\]\{\}\$\n\r]/ ||
+ &error($text{'help_epath'});
+$ENV{'PATH_INFO'} =~ /^\/(\S+)\/(\S+)$/ || &error($text{'help_epath'});
+$module = $1; $file = $2;
+if ( $module eq "stta" ) { &redirect("$module/help.cgi/stta/$file"); }
+# if it ends with .gif assume it is a direct URL
+if ($file =~ /\.gif$/) {
+ &redirect("$module/$file");
+ exit;
+}
+
+sub write_helpfile
+{
+
+ local $dir = $module_name ? "../$_[0]/help" : "$_[0]/help";
+ local $path = "$dir/$_[1].$current_lang.html";
+ open (FILE, ">$path");
+ print FILE "\n";
+ print FILE "\n";
+ print FILE "\n";
+ close (FILE);
+
+}
+
+# read the help file
+$path = &help_file($module, $file);
+@st = stat($path);
+ open(HELP, $path) || &write_helpfile($module,$file);
+#open(HELP, $path) || &helperror(&text('help_efile', $path));
+read(HELP, $help, $st[7]);
+close(HELP);
+
+# find and replace the section
+if ($help =~ s/([^<]+)<\/header>/$1<\/h1><\/center> /) {
+ &header($1);
+ }
+else {
+ &helperror($text{'help_eheader'});
+ }
+
+# find and replace directives
+$help =~ s//inchelp($1)/ge;
+
+# find and replace directives
+$help =~ s/]*)>([\000-\177]*?)([\000-\177]*?)<\/if>/ifhelp($1, $2, $3)/ge;
+
+# find and replace directives
+$help =~ s/]*)>([\000-\177]*?)<\/if>/ifhelp($1, $2)/ge;
+
+# find and replace directives
+$help =~ s/]*)>/exechelp($1)/ge;
+
+# output the HTML
+print $help;
+&footer();
+
+# inchelp(path)
+sub inchelp
+{
+if ($_[0] =~ /^\/(\S+)\/(\S+)$/) {
+ # including something from another module..
+ }
+else {
+ # including from this module
+ local $ipath = &help_file($module, $_[0]);
+ @st = stat($ipath);
+ open(INC, $ipath) ||
+ return "".&text('help_einclude', $_[0])." \n";
+ read(INC, $inc, $st[7]);
+ close(INC);
+ return $inc;
+ }
+}
+
+# ifhelp(perl, text, [elsetext])
+sub ifhelp
+{
+local $rv = eval $_[0];
+if ($@) { return "".&text('help_eif', $_[0], $@)." \n"; }
+elsif ($rv) { return $_[1]; }
+else { return $_[2]; }
+}
+
+# exechelp(perl)
+sub exechelp
+{
+local $rv = eval $_[0];
+if ($@) { return "".&text('help_eexec', $_[0], $@)." \n"; }
+else { return $rv; }
+}
+
+sub helperror
+{
+&header($text{'error'});
+print "$text{'error'} \n";
+print "",@_,"
\n";
+exit;
+}
+
diff --git a/stta/cgitools/showenv.cgi b/stta/cgitools/showenv.cgi
new file mode 100755
index 0000000..470d6bf
--- /dev/null
+++ b/stta/cgitools/showenv.cgi
@@ -0,0 +1,12 @@
+#!/usr/bin/perl -T
+
+print "Content-type: text/html\n\n";
+print "\n";
+print "\n";
+print " \n";
+print "\n";
+while (($key, $val) = each %ENV) {
+ print "$key = $val \n";
+}
+print "\n";
+
diff --git a/stta/cgitools/showvalues.cgi b/stta/cgitools/showvalues.cgi
new file mode 100755
index 0000000..1b61b59
--- /dev/null
+++ b/stta/cgitools/showvalues.cgi
@@ -0,0 +1,32 @@
+#!/usr/bin/perl -T
+
+$a = $_[0] ? $_[0] : \%in;
+$i;
+$meth = $_[1] ? $_[1] : $ENV{'REQUEST_METHOD'};
+if ($meth eq 'POST') {
+ read(STDIN, $in, $ENV{'CONTENT_LENGTH'});
+ }
+if ($ENV{'QUERY_STRING'}) {
+ if ($in) { $in .= "&".$ENV{'QUERY_STRING'}; }
+ else { $in = $ENV{'QUERY_STRING'}; }
+ }
+@in = split(/\&/, $in);
+foreach $i (@in) {
+ local ($k, $v) = split(/=/, $i, 2);
+ $k =~ s/\+/ /g; $k =~ s/%(..)/pack("c",hex($1))/ge;
+ $v =~ s/\+/ /g; $v =~ s/%(..)/pack("c",hex($1))/ge;
+ $a->{$k} = defined($a->{$k}) ? $a->{$k}."\0".$v : $v;
+ }
+
+
+print "Content-type: text/html\n\n";
+print "\n";
+print "\n";
+print " \n";
+print "\n";
+
+while (($key, $val) = each %in) {
+ print "$key = $val \n";
+}
+print "\n";
+
diff --git a/stta/cgitools/t.cgi b/stta/cgitools/t.cgi
new file mode 100755
index 0000000..7e974a6
--- /dev/null
+++ b/stta/cgitools/t.cgi
@@ -0,0 +1,105 @@
+#!/usr/bin/perl
+# test-list.cgi
+# Display list for Tarantella Services.
+# STTA Rev. 1.2 Copyright (c) Jesús Pérez Lorenzo --- license GNU GPL
+
+ require './tarantella-lib.pl';
+&foreign_require("proc", "proc-lib.pl");
+
+&headerstta($text{'index_ttastatus'}, "", "ttastatus",undef,1,1,$text{headpage_rigth} );
+ print "\n";
+ print "
\n";
+ print " $text{'titidx_ttastatus'} \n";
+ print " \n";
+ print " \n";
+ print "\n";
+
+# $str="tta status";
+# $str=$config{'tta_status'};
+
+
+ %ou=&list_hosts(5);
+ foreach $keyou (keys (%ou)) {
+ print " $keyou--".$ou{$keyou}->{ipname}."\n";
+ }
+ $host="alhambra.itaca.alandalus.es";
+ print "$host = ".$ou{$host}->{portalive}."\n";
+ do "footer.pl";
+exit;
+
+# &showrec_list(\%ou);
+ &show_hash(\%ou,"","=","","");
+ $host='alhambra.itaca.alandalus.es';
+ print "$host = ".$ou{$hosts}{portalive}."\n";
+# print $ou{'alhambra'}{ipname}."\n";
+ do "footer.pl";
+exit;
+foreach $lk (@ou_list) {
+ print $lk->{'alias'}." ";
+ print $lk->{'name'}." ";
+ print $lk->{'obj'}." ";
+ print $lk->{'ens'}." ";
+ print $lk->{'maxsess'}."\n";
+ print $lk->{'ipname'}."\n";
+ print $lk->{'portalive'}."\n";
+ }
+ do "footer.pl";
+exit;
+#%ou=&list_ous();
+
+#$keyou="usuarios";
+#print " $keyou--".$ou{$keyou}->{ens}."\n";
+#foreach $keyou (keys (%ou)) {
+#@foreach $keyou (@ou) {
+# if ( $ou->{'alias'} eq "usuarios" )
+# {
+# $rec1=${$ou{$keyou}};
+# print " $keyou--".$ou{$keyou}->{name}."\n";
+# print " $keyou--".$ou{$keyou}->{ens}."\n";
+# print $ou{$keyou.'_name'}."\n";
+# print $ou{$keyou.'_obj'}."\n";
+# print $ou{$keyou.'_ens'}."\n";
+# }
+# }
+
+ print "\n";
+ print " \n";
+ print " \n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ do "footer.pl";
+exit;
+ # start by reading Webtops File List
+foreach $u (&list_webtops()) {
+ print $u->{'alias'}." ";
+ print $u->{'name'}."\n";
+ print $u->{'obj'}."\n";
+ }
+foreach $lk (&list_links()) {
+ print $lk->{'alias'}." ";
+ print $lk->{'name'}."\n";
+ print $lk->{'obj'}."\n";
+ }
+
+%ou=&list_ous();
+foreach $keyou (keys (%ou)) {
+# if ( $ou->{'alias'} eq "usuarios" )
+# {
+ print $ou{$keyou.'_alias'}."- ";
+ print $ou{$keyou.'_name'}."\n";
+ print $ou{$keyou.'_obj'}."\n";
+ print $ou{$keyou.'_ens'}."\n";
+ }
+# }
+ print "$lnum\n";
+
+ print "
\n";
+ print " \n";
+ print " \n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ do "footer.pl";
+ exit;
+
+
+
diff --git a/stta/cgitools/works.cgi b/stta/cgitools/works.cgi
new file mode 100755
index 0000000..95d8143
--- /dev/null
+++ b/stta/cgitools/works.cgi
@@ -0,0 +1,49 @@
+#!/usr/bin/perl
+# tta_works.cgi
+# ... Servicios de Tarantella.
+
+ require './tarantella-lib.pl';
+&foreign_require("proc", "proc-lib.pl");
+&header($text{'index_works'}, "", "");
+
+ print "
\n";
+ print "
\n";
+ print " $text{'titidx_works'} \n";
+ print " \n";
+
+ print " En Construcción ... ";
+ print "";
+ print "
";
+
+ print "\n";
+ print "
\n";
+ &footer($text{'back_return'},$text{'index'});
+ do "footer.pl";
+ exit;
+
+
+ $str=$config{'ldap_replicate'};
+ if ($str) {
+ $| = 1;
+ $temp = &tempname();
+ open(TEMP, ">$temp");
+ print TEMP "#!/bin/sh\n";
+ print TEMP $env;
+ print TEMP "export $export\n" if ($export);
+ print TEMP "$str\n";
+ close(TEMP);
+ chmod(0777, $temp);
+ print "\n";
+ $got = &foreign_call("proc", "safe_process_exec",
+ "su root -c $temp", 0, 0,
+ STDOUT, undef, 0);
+ unlink($temp);
+ &additional_log('exec', undef, $displaystr);
+ if (!$got) { print "$text{'run_noout'} \n"; }
+ print " \n"
+ &webmin_log("exec", "command", "root", "$str");
+} else {
+ print "$text{'index_cmderr'} \n";
+
+}
+
diff --git a/stta/cleanfile.cgi b/stta/cleanfile.cgi
new file mode 100755
index 0000000..f0ebb08
--- /dev/null
+++ b/stta/cleanfile.cgi
@@ -0,0 +1,80 @@
+#!/usr/bin/perl
+# cleanfile.cgi
+# Clean file for Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
+$postform = ($in{postform}) ? $in{postform} : "cleanfile";
+$cgiPost = ($in{cgiPost}) ? $in{cgiPost} : "file";
+$cgiName = ($in{cgiName}) ? $in{cgiName} : "cleanfile.cgi";
+$wkdir = ($in{wkdir}) ? $in{wkdir} : eval("\$config{'$postform"."_path'}");
+if ( ! $in{fName} ) { &redirect("index.cgi"); }
+if ( ! $in{filePerm} ) { &redirect("index.cgi"); }
+$filePerm= $in{'filePerm'};
+if ( $postform eq "filemgr" ) { $postform="addfile"; }
+$fName=$in{fName};
+$cmd=$in{cmd};
+if ( $in{fPerm} ) {
+if ( substr($in{fPerm},0,1) ne "-" ) {
+ @l_target = split(/,/,$text{'f_perm_value'}, -1);
+ @l_target_tit = split(/,/,$text{'f_perm_desc'}, -1);
+ $nItems=0;
+ foreach $item (@l_target) {
+ if ( $item eq $in{fPerm} ) {
+ $fMode=$l_target_tit[$nItems];
+ $fPerm=substr($fMode,2,1);
+ last;
+ }
+ print $l_target_tit{$nItems};
+ $nItems++;
+ }
+ } else {
+ $fMode=$in{fPerm};
+ $fPerm=substr($fMode,2,1);
+ }
+}
+$perm=$in{perm};
+if ( $perm ne "new" && substr($in{fPerm},1,3) eq "rwx" ) { $perm="all"; }
+
+&headerstta(eval("\$text{'index_$postform'}"), "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "\n";
+print " ";
+if ( $postform ne "addfile" ) { print $text{'clean'}; }
+print " ".eval("\$text{'titidx_$postform'}")." \n";
+print " \n";
+
+if ( $fPerm ne "w" ) {
+ print "";
+ print &text('file_err',$text{'clean'},$wkdir,$fName,$fMode);
+ print " \n";
+ &footHere;
+ exit 1;
+}
+$f_path=$wkdir."/".$fName;
+ $lnum = 0;
+ $in{'f_lines'} =~ s/\r//g;
+ &lock_file($f_path);
+ unless ( open FILELIST,">$f_path" ) {
+ print ">";
+ print &text('file_err',$text{'clean'},$wkdir,$fName,"");
+ print " \n";
+ &footHere;
+ exit 1;
+ }
+ print FILELIST "";
+ close(FILELIST);
+
+ &webmin_log("$text{clean} ($perm) ","file","$f_path $fMode");
+
+ print "\n";
+ print "$text{'user_clean'} $wkdir /$fName \n";
+ if ( $debug gt 0 ) { print " ($fMode) ";}
+ print " \n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
diff --git a/stta/config.cgi b/stta/config.cgi
new file mode 100755
index 0000000..a95764c
--- /dev/null
+++ b/stta/config.cgi
@@ -0,0 +1,59 @@
+#!/usr/bin/perl
+# config.cgi
+# From Webmin config.cgi ... does not allow to pass arguments so ...
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require '../web-lib.pl';
+do 'global-lib.pl';
+do 'lists-lib.pl';
+do 'html-lib.pl';
+do 'print-lib.pl';
+do "config_info.pl";
+
+&init_config();
+&load_dataconf();
+$tta_ok=true;
+$ldap_ok=true;
+$ldapcache_ok=true;
+$fileCFG = $ARGV[0];
+if ( $fileCFG ne '' ) {
+ $helpFile="config_".$fileCFG;
+} else {
+ $helpFile="sttaconfig";
+}
+$m = "stta";
+%access = &get_module_acl(undef, $m);
+$access{'noconfig'} &&
+ &error($text{'config_ecannot'});
+%module_info = &get_module_info($m);
+if ( $config{check_brand} eq "true" ) { &check_brand_cgi() }
+&headerstta( $text{'config_title'}, undef, $helpFile,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+
+print "
",&text('config_dir', $module_info{'desc'}),
+ " \n";
+print " \n";
+
+print "\n";
+print " \n";
+print " \n";
+print "\n";
+print " ",&text('config_header', $module_info{'desc'}),
+ " \n";
+print " - $text{'help'}\n";
+if ( $fileCFG eq "" ) {
+ print " - $text{'modify'}\n";
+}
+print " \n";
+
+print " \n";
+
+&config_form;
+
+print "
\n";
+print " \n";
+print " \n";
+
+&footer($config{'back_return'},$text{'index'});
+ do "footer.pl";
+
diff --git a/stta/config.info b/stta/config.info
new file mode 100644
index 0000000..01a9e18
--- /dev/null
+++ b/stta/config.info
@@ -0,0 +1,297 @@
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+#English
+stta_srvtitle=Server Description,0
+tta_dir=Tarantella directory path,7
+tta_daemon=Tarantella daemon path,8
+tta_aliascmd=Tarantella alias command path,8
+tta_status=Command to get Tarantella Status,0
+tta_restart=Command to restart Tarantella,0
+tta_backup=Command to make TTA copies,0
+tta_backup_dir=Path to copy Tarantella,0
+tta_ensdump=Command to dump TTA ENS,0
+tta_ensdump_dir=Directory path to dump TTA ENS,7
+tta_ensload=Command to load TTA ENS,0
+tta_ensload_dir=Directory path to load TTA ENS,7
+tta_ensrestore=Command to restore TTA ENS Backups,0
+tta_ensrecreate=Command to Recreate TTA ENS,0
+tta_archive=Command to archive Tarantella logs,0
+tta_emusessions=Command to know Tarantella emulation list,0
+tta_emusessions_end=Command to finish Tarantella emulation sessions,0
+tta_websessions=Command to know Tarantella webtop sessions,0
+tta_websessions_logout=Command to logout Tarantella webtop sessions,0
+
+tta_defsconf=Path where services values are defined,8
+stta_defslist=Load lists directory path,7
+tta_webtops=TTA users webtops list path,8
+ens_base= Tarantella Federal Name -TFN- (.../_ens/),0,30
+tta_base=ENS directory tree root,0
+sysusers_list=System user list path,8
+ou_list=Organizations list path,8
+grpapps_list=Applications group list path,8
+apps_list=Applications list path,8
+links_list=Links list path,8
+domains_list=Domains list path,8
+acts_list=Actions list path,8
+grphosts_list=Hosts Groups list path,8
+hosts_list=Hosts list path,8
+hostsuser_list=Hosts users list path,8
+profcache_list=TTA cache profiles list path,8
+tta_defaults_obj=TTA Person objects default values path,8
+tta_defaults_ou=TTA OrgUnit objects default values path,8
+tta_defaults_hosts=TTA Host objects default values path,8
+default_portalive=Default Host port status value,0,4
+ldapcache2_port=LDAP Cache 2 server port number,0,6
+tta_defaults_grpapps=TTA Apps groups objects default values path,8
+tta_ldapUser=LDAP Users path in TTA caache (standard),0
+
+has_ldapusers=Use LDAP user with TTA ?,true-true,false-false
+has_systemusers=Use System users with TTA ?,1,true-true,false-false
+ldap_type=LDAP Software,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+ldap_dir=LDAP software directory,7
+ldap_daemon=LDAP daemon path,8
+ldap_restart=Command to restart LDAP,8
+ldap_stop=Command to stop LDAP,8
+ldap_start=Command to start LDAP,8
+ldap2_restart=Command to restart LDAP 2,8
+ldap2_conf=LDAP 2 configuration file,0
+ldap_conf=LDAP configuration file,0
+ldap_backup=Command to copy LDAP DB,8
+ldap_restore=Command to restore LDAP DB,8
+ldap_backup_dir=Path for LDAP DB copies,7
+ldap_ldif=Command to export LDAP DB,8
+ldap_load=Command to load LDAP DB,8
+ldap_ldif_dir=Path to export LDAP DB,7
+ldap_replicate=Path to replicate LDAP DB,8
+ldap_log_name=LDAP log path ,8
+ldap_log_perm=Permissiong to manage LDAP log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+ldap_log_fperm=LDAP log permissions ,0,5
+ldap_log_tail=Number of lines to see from LDAP end of file,0,5
+
+ldap_server=LDAP Host name or server IP,0
+ldap_dirname=LDAP server directory name (without-path),0
+ldap_servertitle=LDAP server description,0
+ldap_port=LDAP server port number,0,5
+ldap_base=LDAP Directory tree root DN,0
+ldap_dnusers=LDAP users root DN,0
+ldap_user=LDAP administrator credentials,0
+ldap_passwd=LDAP administrator password (text),12
+ldap_version=LDAP software version,0
+ldap_type=LDAP Software,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+
+ldap_server_log_name=LDAP server log path,8
+ldap_server_log_perm=Permission to manage LDAP server log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+ldap_server_log_fperm=LDAP sever log file permissions,0,5
+ldap_server_log_tail=Number of lines to see from LDAP server log end of file,0,5
+
+ldap_server_acclog_name=LDAP access log path,8
+ldap_server_acclog_perm=Permission to manage LDAP access log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+ldap_server_acclog_fperm=LDAP log access file permissions,0,5
+ldap_server_acclog_tail=Number of lines to see from LDAP access log end of file,0,5
+
+ldap2_server=LDAP 2 Host name or server IP,0
+ldap2_servertitle=LDAP 2 server description,0
+ldap2_port=LDAP 2 server port number,0,5
+ldap2_user=LDAP 2 administrator credentials,0
+ldap2_passwd=LDAP 2 administrator password (text),12
+ldap2_type=LDAP 2 Software,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+ldap2_version=LDAP 2 software Version,0
+
+companydomain=Default company domain,0
+
+back_return=Default module to link at end of page,0
+companyntdomain=Default domain Windows NT,0
+loginUsername=User default login,0,12
+masterHost=Service Tables Host Master,0
+masterHostURL=Service Tables Host Master URL,0
+is_masterHost=Is STTA tables Host Master ?,1,true-true,false-false
+stta_sync=STTA Tables automatic Synchronization ?,1,true-true,false-false
+is_ldapcache=Is using LDAP Cache service ?,1,true-true,false-false
+cacherule_1=LDAP Cache Rule 1,4,none-None,users-Users,ous-Organizations,apps-Applications,grpapps-Applications Group,hosts-Host,grphosts-Hosts Group,domains-Domains (dns|nt)
+cacherule_2=LDAP Cache Rule 2,4,none-None,users-Users,ous-Organizations,apps-Applications,grpapps-Applications Group,hosts-Host,grphosts-Hosts Group,domains-Domains (dns|nt)
+cacherule_3=LDAP Cache Rule 3,4,none-None,users-Users,ous-Organizations,apps-Applications,grpapps-Applications Group,hosts-Host,grphosts-Hosts Group,domains-Domains (dns|nt)
+cacherule_4=LDAP Cache Rule 4,4,none-None,users-Users,ous-Organizations,apps-Applications,grpapps-Applications Group,hosts-Host,grphosts-Hosts Group,domains-Domains (dns|nt)
+cacherule_5=LDAP Cache Rule 5,4,none-None,users-Users,ous-Organizations,apps-Applications,grpapps-Applications Group,hosts-Host,grphosts-Hosts Group,domains-Domains (dns|nt)
+cacherule_6=LDAP Cache Rule 6,4,none-None,users-Users,ous-Organizations,apps-Applications,grpapps-Applications Group,hosts-Host,grphosts-Hosts Group,domains-Domains (dns|nt)
+cacherule_7=LDAP Cache Rule 7,4,none-None,users-Users,ous-Organizations,apps-Applications,grpapps-Applications Group,hosts-Host,grphosts-Hosts Group,domains-Domains (dns|nt)
+cache_chkdefaults=Use LDAP CACHE default object,1,true-true,false-false
+cache_chkttalogin=Use tta user login values in LDAP CACHE,1,true-true,false-false
+cache_scandebug=LDAP Cache search debug level,1,0-0,1-1,2-2
+cache_domain=LDAP Cache default login domain,0
+cache_scancfg=LDAP Cache configuration directory,7
+cache_rulelimit=LDAP Cache number of rules,0,1
+cache_debuglog=LDAP Cache debug file path,7
+cache_debuglog_dir=LDAP CachePath debug logs directory,7
+ldapcache_defaultobj=LDAP Cache default object,0
+ldapcache_dndefaultobj=LDAP Cache DN last default object,0
+
+ldapcache_base=LDAP Cache directort tree root DN,0
+ldapcache_server=LDAP Cache Host name or server IP,0
+ldapcache_dirname=LDAP Cache server directory name (without-path),0
+ldapcache_servertitle=LDAP Cache server description,0
+ldapcache_port=LDAP Cache server port number,0,5
+ldapcache_user=LDAP Cache administrador credentials,0
+ldapcache_passwd=LDAP Cache administrator password (text),12
+ldapcache_version=LDAP Cache software Version,0
+
+ldapcache_server_log_name=LDAP Cache server log path,8
+ldapcache_server_log_perm=Permission to manage LDAP Cache server log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+ldapcache_server_log_fperm=LDAP Cache server log file permissions,0,5
+ldapcache_server_log_tail=Number of lines to see from LDAP Cache server log end of file,0,5
+
+ldapcache_server_acclog_name=LDAP Cache access log path,8
+ldapcache_server_acclog_perm=Permission to manage LDAP Cache access log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+ldapcache_server_acclog_fperm=LDAP Cache access log file permissions,0,5
+ldapcache_server_acclog_tail=Number of lines to see from LDAP Cache access log end of file,0,5
+
+ldapcache2_server=LDAP Cache 2 Host name or server IP,0
+ldapcache2_servertitle=LDAP Cache 2 server description,0
+ldapcache2_port=LDAP Cache 2 server port number,0,5
+ldapcache2_user=LDAP Cache 2 administrador credentials,0
+ldapcache2_passwd=LDAP Cache 2 administrator password (text),12
+ldapcache2_type=LDAP Cache 2 Software,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+ldapcache2_conf=LDAP Cache 2 configuration file,0
+ldapcache2_version=LDAP Cache 2 software Version,0
+
+tta_ldapcacheUser=DN Base para Usuarios de TTA LDAP CACHE,0
+tta_ldapcacheApps=DN Base para Aplicaciones de TTA LDAP CACHE,0
+tta_ldapcacheHosts=DN Base para Hosts de TTA LDAP CACHE,0
+ldapcache_type=LDAP Cache Software,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+ldapcache_dir=LDAP Cache Software directory path,7
+ldapcache_daemon=Path to the LDAP Cache daemon,8
+ldapcache_restart=Command to restart LDAP Cache,8
+ldapcache_stop=Command to stop LDAP Cache,8
+ldapcache_start=Command to start LDAP Cache,8
+ldapcache2_restart=Command to restart LDAP Cache 2,8
+ldapcache_backup=Command to copy LDAP Cache DB,8
+ldapcache_restore=Command to restore LDAP Cache DB,8
+ldapcache_backup_dir=Path to make LDAP Cache DB copies,7
+ldapcache_ldif=Command to exportar la BD LDAP Cache,8
+ldapcache_load=Command to Cargar la BD LDAP Cache,8
+ldapcache_ldif_dir=Path para exportar la BD del LDAP Cache,7
+ldapcache_replicate=Path de la orden para replicar BD LDAP Cache ,8
+ldapcache_conf=Archivo configuración LDAP Cache,0
+apps_list=Path de las lista de Aplicaciones,8
+tta_appwidth=Application window width (pixels),0,6
+tta_appheigth=Application window heigth (pixels),0,6
+grpapps_list=Applications Group list path,8
+domain_list=Domains list path,8
+link_list=Links list path,8
+
+default_cat=Default category,4,browsers-Browsers,tta-Tarantella,ldap-ldap,password-keys,ldapcache-Ldap_Cache,objects-Objects,monitor-Monitor
+order_cat=Categories Order,4,none-By default,alias-By module,name-By name
+interface=Menu Interface,4,tabs-Tabs,index-index
+
+monitor_scripts_path=Monitor scripts path,0,30
+mon_title=Monitor title,0,30
+act_list=Actions list path,0,30
+
+filemgr_path=File Manager Path,7
+ttalog_path=Tarantella logs Manager Path,7
+run_exec_user=Login to execute commands,0,12
+
+http_log_name=HTTP server log path,8
+http_log_perm=Permission to manage HTTP server log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+http_log_fperm=HTTP server log file permissions,0,5
+http_log_tail=Number of lines to see from HTTP log end of file,0,5
+
+http_port=Número de puerto del servidor HTTP,0,5
+
+https_log_name=HTTPS server log path,8
+https_log_perm=Permission to manage HTTPS server log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+https_log_fperm=HTTPS server log file permissions,0,5
+https_log_tail=Number of lines to see from HTTPS log end of file,0,5
+
+httpacc_log_name=HTTP access log path,8
+httpacc_log_perm=Permission to manage HTTP access log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+httpacc_log_fperm=HTTP log access file permissions,0,5
+httpacc_log_tail=Number of lines to see from HTTP access log end of file,0,5
+
+httpsacc_log_name=HTTPS access log path,8
+httpsacc_log_perm=Permission to manage HTTPS access log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+httpsacc_log_fperm=HTTPS access log file permissions,0,5
+httpsacc_log_tail=Number of lines to see from HTTPS access log end of file,0,5
+
+https_port=HTTPS server port number,0,5
+system_log=System (OS) log path,7
+tta_sessout_file=TTA sessions output file path,8
+has_monitor=Is using Monitor STTA ?,1,true-true,false-false
+has_cronsess=Use Cron to list sessions ?,1,true-true,false-false
+sessout_timeout=Reload sessions report every,4,8-hours,12-minutes,11-10 minutes ,13-10 seconds ,14-Seconds
+countsessout_file=TTA counter sessions file path,8
+totalsessout_file=TTA sessions summary file path,8
+tta_billing_dir=TTA billing report directory,7
+cmd_getosdata=Command Path to get OS data,0
+osdataout_file=File path to keep SO data output,8
+msg_noticket=Message for not session valid ticket,0
+msg_nosess=Message for not available sessions,0
+check_maxsess=Check sessions limits,1,true-true,false-false
+default_maxsess=Number for unlimited sessions,0,5
+check_ticket=Check sessions ticket,1,true-true,false-false
+output_cgis=Display error on screen,1,0-false,1-true
+debug_code=Debug level when running code,1,0-Ninguno,1-Nivel 1,2-Nivel 2,3-Nivel 3,4-Nivel 4
+stta_debugname=Path and prefix for debug cgi name o STTA tool,0
+stta_logname=Path and prefix for log cgi name or STTA tool,0
+stta_logdir=Path del directory de logs de CGIs y/o herramientas STTA,7
+check_services=Check services in every access,1,true-true,false-false
+iferror_services=If there is a services error,1,stop-Stop,warn-Warn,browse-Browse
+iferror_objects=If there is an error in objects management,1,stop-Stop,warn-Warn
+motd=STTA environment message file,8
+motd_style=STTA environment message style,4,marquee-Marquee,box-Box
+url_tta=URL for Tarantella Software help,0
+url_ldap=URL for LDAP Software help,0
+users_alias=Default Users alias,0
+servers_alias=Default Servers alias,0
+apps_alias=Default applications alias,0
+help_active=Use help in forms fields,1,true-true,false-false
+bgimage=Page background image,8
+cs_page=Page background colour (hex),0,6
+cs_table=Tables body background colour (hex),0,6
+cs_header=Tables Header background colour (hex),0,6
+cs_link=Text links colour in pages (hex),0,6
+cs_text=Text colour in pages (hex),0,6
+cs_revtext=Reverse text colour in pages (hex),0,6
+feedback_to=Person to receive STTA feedbacks,0
+feedback_packcmd=Command to pack feedback directory,0
+feedback_name=Who send feedback - Name -,0
+feedback_email=E-mail to send feedback,0
+feedback_dirname=Directory to pack feedbacks,0
+feedback_mailserver=SMTP server to send feedbacks,0
+
+list_debuglogs_name=Debug logs list path,8
+list_debuglogs_perm=Permission to manage debug logs list,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+list_debuglogs_fperm=Debug logs lists file permissions,0,5
+list_debuglogs_delhours=Delete each debug logs list file every (in hours),0,6
+
+list_sttalogs_name=STTA logs list path,8
+list_sttalogs_perm=Permission to manage STTA logs list,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+list_sttalogs_fperm=STTA logs list file permissions,0,5
+list_sttalogs_delhours=Delete each logs list file every (in hours),0,6
+
+list_backups_name=Copies list path,8
+list_backups_perm=Permission to manage Copies List,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+list_backups_fperm=Copies list file Permissions,0,5
+list_backups_delhours=Delete each Copies list file every (in hours),0,6
+stta_hosts=Hosts with STTA (names separated by spaces),0
+list_to_sync=List to synchronize automaticaly (separated by spaces),0
+other_list_sync=STTA Synchronization List (separated by spaces),0
+
+stta_tools_dir=STTA tools directory,7
+service_tosend=Method to send files (replications),4,ftp-FTP,http-HTTP,https-HTTPS
+to_send_dir=Send files directory,7
+get_dir=Received files directory,7
+save_send_dir=Directory to save files transfers,7
+master_sender_host=Master Host to send files,0
+target_hosts=Host receiving files (names separated by spaces),0
+login_tosend=Login para enviar files (FTP),0,12
+passw_tosend=Path file con password para envios (FTP),7
+tclx_library=TCL library path (tta),8
+stta_wkdir=Working directory(scripts),8
+ziptool=Compression tool path,0
+unziptool=Uncompression tool path,0
+backup_cmd=Command to copy files (cpio),0
+extract_cmd=Command to extract files copies (cpio),0
+ldap_debug=LDAP daemon debug level,0,4
+ldapcache_debug=LDAP CACHE daemon debug level,0,4
+help_width=Help window width (pixels),0,6
+help_height=Help window height (pixels),0,6
+stta_savedir=Directory to save files,7
diff --git a/stta/config.info.en b/stta/config.info.en
new file mode 100644
index 0000000..01a9e18
--- /dev/null
+++ b/stta/config.info.en
@@ -0,0 +1,297 @@
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+#English
+stta_srvtitle=Server Description,0
+tta_dir=Tarantella directory path,7
+tta_daemon=Tarantella daemon path,8
+tta_aliascmd=Tarantella alias command path,8
+tta_status=Command to get Tarantella Status,0
+tta_restart=Command to restart Tarantella,0
+tta_backup=Command to make TTA copies,0
+tta_backup_dir=Path to copy Tarantella,0
+tta_ensdump=Command to dump TTA ENS,0
+tta_ensdump_dir=Directory path to dump TTA ENS,7
+tta_ensload=Command to load TTA ENS,0
+tta_ensload_dir=Directory path to load TTA ENS,7
+tta_ensrestore=Command to restore TTA ENS Backups,0
+tta_ensrecreate=Command to Recreate TTA ENS,0
+tta_archive=Command to archive Tarantella logs,0
+tta_emusessions=Command to know Tarantella emulation list,0
+tta_emusessions_end=Command to finish Tarantella emulation sessions,0
+tta_websessions=Command to know Tarantella webtop sessions,0
+tta_websessions_logout=Command to logout Tarantella webtop sessions,0
+
+tta_defsconf=Path where services values are defined,8
+stta_defslist=Load lists directory path,7
+tta_webtops=TTA users webtops list path,8
+ens_base= Tarantella Federal Name -TFN- (.../_ens/),0,30
+tta_base=ENS directory tree root,0
+sysusers_list=System user list path,8
+ou_list=Organizations list path,8
+grpapps_list=Applications group list path,8
+apps_list=Applications list path,8
+links_list=Links list path,8
+domains_list=Domains list path,8
+acts_list=Actions list path,8
+grphosts_list=Hosts Groups list path,8
+hosts_list=Hosts list path,8
+hostsuser_list=Hosts users list path,8
+profcache_list=TTA cache profiles list path,8
+tta_defaults_obj=TTA Person objects default values path,8
+tta_defaults_ou=TTA OrgUnit objects default values path,8
+tta_defaults_hosts=TTA Host objects default values path,8
+default_portalive=Default Host port status value,0,4
+ldapcache2_port=LDAP Cache 2 server port number,0,6
+tta_defaults_grpapps=TTA Apps groups objects default values path,8
+tta_ldapUser=LDAP Users path in TTA caache (standard),0
+
+has_ldapusers=Use LDAP user with TTA ?,true-true,false-false
+has_systemusers=Use System users with TTA ?,1,true-true,false-false
+ldap_type=LDAP Software,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+ldap_dir=LDAP software directory,7
+ldap_daemon=LDAP daemon path,8
+ldap_restart=Command to restart LDAP,8
+ldap_stop=Command to stop LDAP,8
+ldap_start=Command to start LDAP,8
+ldap2_restart=Command to restart LDAP 2,8
+ldap2_conf=LDAP 2 configuration file,0
+ldap_conf=LDAP configuration file,0
+ldap_backup=Command to copy LDAP DB,8
+ldap_restore=Command to restore LDAP DB,8
+ldap_backup_dir=Path for LDAP DB copies,7
+ldap_ldif=Command to export LDAP DB,8
+ldap_load=Command to load LDAP DB,8
+ldap_ldif_dir=Path to export LDAP DB,7
+ldap_replicate=Path to replicate LDAP DB,8
+ldap_log_name=LDAP log path ,8
+ldap_log_perm=Permissiong to manage LDAP log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+ldap_log_fperm=LDAP log permissions ,0,5
+ldap_log_tail=Number of lines to see from LDAP end of file,0,5
+
+ldap_server=LDAP Host name or server IP,0
+ldap_dirname=LDAP server directory name (without-path),0
+ldap_servertitle=LDAP server description,0
+ldap_port=LDAP server port number,0,5
+ldap_base=LDAP Directory tree root DN,0
+ldap_dnusers=LDAP users root DN,0
+ldap_user=LDAP administrator credentials,0
+ldap_passwd=LDAP administrator password (text),12
+ldap_version=LDAP software version,0
+ldap_type=LDAP Software,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+
+ldap_server_log_name=LDAP server log path,8
+ldap_server_log_perm=Permission to manage LDAP server log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+ldap_server_log_fperm=LDAP sever log file permissions,0,5
+ldap_server_log_tail=Number of lines to see from LDAP server log end of file,0,5
+
+ldap_server_acclog_name=LDAP access log path,8
+ldap_server_acclog_perm=Permission to manage LDAP access log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+ldap_server_acclog_fperm=LDAP log access file permissions,0,5
+ldap_server_acclog_tail=Number of lines to see from LDAP access log end of file,0,5
+
+ldap2_server=LDAP 2 Host name or server IP,0
+ldap2_servertitle=LDAP 2 server description,0
+ldap2_port=LDAP 2 server port number,0,5
+ldap2_user=LDAP 2 administrator credentials,0
+ldap2_passwd=LDAP 2 administrator password (text),12
+ldap2_type=LDAP 2 Software,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+ldap2_version=LDAP 2 software Version,0
+
+companydomain=Default company domain,0
+
+back_return=Default module to link at end of page,0
+companyntdomain=Default domain Windows NT,0
+loginUsername=User default login,0,12
+masterHost=Service Tables Host Master,0
+masterHostURL=Service Tables Host Master URL,0
+is_masterHost=Is STTA tables Host Master ?,1,true-true,false-false
+stta_sync=STTA Tables automatic Synchronization ?,1,true-true,false-false
+is_ldapcache=Is using LDAP Cache service ?,1,true-true,false-false
+cacherule_1=LDAP Cache Rule 1,4,none-None,users-Users,ous-Organizations,apps-Applications,grpapps-Applications Group,hosts-Host,grphosts-Hosts Group,domains-Domains (dns|nt)
+cacherule_2=LDAP Cache Rule 2,4,none-None,users-Users,ous-Organizations,apps-Applications,grpapps-Applications Group,hosts-Host,grphosts-Hosts Group,domains-Domains (dns|nt)
+cacherule_3=LDAP Cache Rule 3,4,none-None,users-Users,ous-Organizations,apps-Applications,grpapps-Applications Group,hosts-Host,grphosts-Hosts Group,domains-Domains (dns|nt)
+cacherule_4=LDAP Cache Rule 4,4,none-None,users-Users,ous-Organizations,apps-Applications,grpapps-Applications Group,hosts-Host,grphosts-Hosts Group,domains-Domains (dns|nt)
+cacherule_5=LDAP Cache Rule 5,4,none-None,users-Users,ous-Organizations,apps-Applications,grpapps-Applications Group,hosts-Host,grphosts-Hosts Group,domains-Domains (dns|nt)
+cacherule_6=LDAP Cache Rule 6,4,none-None,users-Users,ous-Organizations,apps-Applications,grpapps-Applications Group,hosts-Host,grphosts-Hosts Group,domains-Domains (dns|nt)
+cacherule_7=LDAP Cache Rule 7,4,none-None,users-Users,ous-Organizations,apps-Applications,grpapps-Applications Group,hosts-Host,grphosts-Hosts Group,domains-Domains (dns|nt)
+cache_chkdefaults=Use LDAP CACHE default object,1,true-true,false-false
+cache_chkttalogin=Use tta user login values in LDAP CACHE,1,true-true,false-false
+cache_scandebug=LDAP Cache search debug level,1,0-0,1-1,2-2
+cache_domain=LDAP Cache default login domain,0
+cache_scancfg=LDAP Cache configuration directory,7
+cache_rulelimit=LDAP Cache number of rules,0,1
+cache_debuglog=LDAP Cache debug file path,7
+cache_debuglog_dir=LDAP CachePath debug logs directory,7
+ldapcache_defaultobj=LDAP Cache default object,0
+ldapcache_dndefaultobj=LDAP Cache DN last default object,0
+
+ldapcache_base=LDAP Cache directort tree root DN,0
+ldapcache_server=LDAP Cache Host name or server IP,0
+ldapcache_dirname=LDAP Cache server directory name (without-path),0
+ldapcache_servertitle=LDAP Cache server description,0
+ldapcache_port=LDAP Cache server port number,0,5
+ldapcache_user=LDAP Cache administrador credentials,0
+ldapcache_passwd=LDAP Cache administrator password (text),12
+ldapcache_version=LDAP Cache software Version,0
+
+ldapcache_server_log_name=LDAP Cache server log path,8
+ldapcache_server_log_perm=Permission to manage LDAP Cache server log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+ldapcache_server_log_fperm=LDAP Cache server log file permissions,0,5
+ldapcache_server_log_tail=Number of lines to see from LDAP Cache server log end of file,0,5
+
+ldapcache_server_acclog_name=LDAP Cache access log path,8
+ldapcache_server_acclog_perm=Permission to manage LDAP Cache access log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+ldapcache_server_acclog_fperm=LDAP Cache access log file permissions,0,5
+ldapcache_server_acclog_tail=Number of lines to see from LDAP Cache access log end of file,0,5
+
+ldapcache2_server=LDAP Cache 2 Host name or server IP,0
+ldapcache2_servertitle=LDAP Cache 2 server description,0
+ldapcache2_port=LDAP Cache 2 server port number,0,5
+ldapcache2_user=LDAP Cache 2 administrador credentials,0
+ldapcache2_passwd=LDAP Cache 2 administrator password (text),12
+ldapcache2_type=LDAP Cache 2 Software,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+ldapcache2_conf=LDAP Cache 2 configuration file,0
+ldapcache2_version=LDAP Cache 2 software Version,0
+
+tta_ldapcacheUser=DN Base para Usuarios de TTA LDAP CACHE,0
+tta_ldapcacheApps=DN Base para Aplicaciones de TTA LDAP CACHE,0
+tta_ldapcacheHosts=DN Base para Hosts de TTA LDAP CACHE,0
+ldapcache_type=LDAP Cache Software,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+ldapcache_dir=LDAP Cache Software directory path,7
+ldapcache_daemon=Path to the LDAP Cache daemon,8
+ldapcache_restart=Command to restart LDAP Cache,8
+ldapcache_stop=Command to stop LDAP Cache,8
+ldapcache_start=Command to start LDAP Cache,8
+ldapcache2_restart=Command to restart LDAP Cache 2,8
+ldapcache_backup=Command to copy LDAP Cache DB,8
+ldapcache_restore=Command to restore LDAP Cache DB,8
+ldapcache_backup_dir=Path to make LDAP Cache DB copies,7
+ldapcache_ldif=Command to exportar la BD LDAP Cache,8
+ldapcache_load=Command to Cargar la BD LDAP Cache,8
+ldapcache_ldif_dir=Path para exportar la BD del LDAP Cache,7
+ldapcache_replicate=Path de la orden para replicar BD LDAP Cache ,8
+ldapcache_conf=Archivo configuración LDAP Cache,0
+apps_list=Path de las lista de Aplicaciones,8
+tta_appwidth=Application window width (pixels),0,6
+tta_appheigth=Application window heigth (pixels),0,6
+grpapps_list=Applications Group list path,8
+domain_list=Domains list path,8
+link_list=Links list path,8
+
+default_cat=Default category,4,browsers-Browsers,tta-Tarantella,ldap-ldap,password-keys,ldapcache-Ldap_Cache,objects-Objects,monitor-Monitor
+order_cat=Categories Order,4,none-By default,alias-By module,name-By name
+interface=Menu Interface,4,tabs-Tabs,index-index
+
+monitor_scripts_path=Monitor scripts path,0,30
+mon_title=Monitor title,0,30
+act_list=Actions list path,0,30
+
+filemgr_path=File Manager Path,7
+ttalog_path=Tarantella logs Manager Path,7
+run_exec_user=Login to execute commands,0,12
+
+http_log_name=HTTP server log path,8
+http_log_perm=Permission to manage HTTP server log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+http_log_fperm=HTTP server log file permissions,0,5
+http_log_tail=Number of lines to see from HTTP log end of file,0,5
+
+http_port=Número de puerto del servidor HTTP,0,5
+
+https_log_name=HTTPS server log path,8
+https_log_perm=Permission to manage HTTPS server log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+https_log_fperm=HTTPS server log file permissions,0,5
+https_log_tail=Number of lines to see from HTTPS log end of file,0,5
+
+httpacc_log_name=HTTP access log path,8
+httpacc_log_perm=Permission to manage HTTP access log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+httpacc_log_fperm=HTTP log access file permissions,0,5
+httpacc_log_tail=Number of lines to see from HTTP access log end of file,0,5
+
+httpsacc_log_name=HTTPS access log path,8
+httpsacc_log_perm=Permission to manage HTTPS access log,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+httpsacc_log_fperm=HTTPS access log file permissions,0,5
+httpsacc_log_tail=Number of lines to see from HTTPS access log end of file,0,5
+
+https_port=HTTPS server port number,0,5
+system_log=System (OS) log path,7
+tta_sessout_file=TTA sessions output file path,8
+has_monitor=Is using Monitor STTA ?,1,true-true,false-false
+has_cronsess=Use Cron to list sessions ?,1,true-true,false-false
+sessout_timeout=Reload sessions report every,4,8-hours,12-minutes,11-10 minutes ,13-10 seconds ,14-Seconds
+countsessout_file=TTA counter sessions file path,8
+totalsessout_file=TTA sessions summary file path,8
+tta_billing_dir=TTA billing report directory,7
+cmd_getosdata=Command Path to get OS data,0
+osdataout_file=File path to keep SO data output,8
+msg_noticket=Message for not session valid ticket,0
+msg_nosess=Message for not available sessions,0
+check_maxsess=Check sessions limits,1,true-true,false-false
+default_maxsess=Number for unlimited sessions,0,5
+check_ticket=Check sessions ticket,1,true-true,false-false
+output_cgis=Display error on screen,1,0-false,1-true
+debug_code=Debug level when running code,1,0-Ninguno,1-Nivel 1,2-Nivel 2,3-Nivel 3,4-Nivel 4
+stta_debugname=Path and prefix for debug cgi name o STTA tool,0
+stta_logname=Path and prefix for log cgi name or STTA tool,0
+stta_logdir=Path del directory de logs de CGIs y/o herramientas STTA,7
+check_services=Check services in every access,1,true-true,false-false
+iferror_services=If there is a services error,1,stop-Stop,warn-Warn,browse-Browse
+iferror_objects=If there is an error in objects management,1,stop-Stop,warn-Warn
+motd=STTA environment message file,8
+motd_style=STTA environment message style,4,marquee-Marquee,box-Box
+url_tta=URL for Tarantella Software help,0
+url_ldap=URL for LDAP Software help,0
+users_alias=Default Users alias,0
+servers_alias=Default Servers alias,0
+apps_alias=Default applications alias,0
+help_active=Use help in forms fields,1,true-true,false-false
+bgimage=Page background image,8
+cs_page=Page background colour (hex),0,6
+cs_table=Tables body background colour (hex),0,6
+cs_header=Tables Header background colour (hex),0,6
+cs_link=Text links colour in pages (hex),0,6
+cs_text=Text colour in pages (hex),0,6
+cs_revtext=Reverse text colour in pages (hex),0,6
+feedback_to=Person to receive STTA feedbacks,0
+feedback_packcmd=Command to pack feedback directory,0
+feedback_name=Who send feedback - Name -,0
+feedback_email=E-mail to send feedback,0
+feedback_dirname=Directory to pack feedbacks,0
+feedback_mailserver=SMTP server to send feedbacks,0
+
+list_debuglogs_name=Debug logs list path,8
+list_debuglogs_perm=Permission to manage debug logs list,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+list_debuglogs_fperm=Debug logs lists file permissions,0,5
+list_debuglogs_delhours=Delete each debug logs list file every (in hours),0,6
+
+list_sttalogs_name=STTA logs list path,8
+list_sttalogs_perm=Permission to manage STTA logs list,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+list_sttalogs_fperm=STTA logs list file permissions,0,5
+list_sttalogs_delhours=Delete each logs list file every (in hours),0,6
+
+list_backups_name=Copies list path,8
+list_backups_perm=Permission to manage Copies List,4,all-All,read-Read,clean-Clean,modify-Modify,run-Run
+list_backups_fperm=Copies list file Permissions,0,5
+list_backups_delhours=Delete each Copies list file every (in hours),0,6
+stta_hosts=Hosts with STTA (names separated by spaces),0
+list_to_sync=List to synchronize automaticaly (separated by spaces),0
+other_list_sync=STTA Synchronization List (separated by spaces),0
+
+stta_tools_dir=STTA tools directory,7
+service_tosend=Method to send files (replications),4,ftp-FTP,http-HTTP,https-HTTPS
+to_send_dir=Send files directory,7
+get_dir=Received files directory,7
+save_send_dir=Directory to save files transfers,7
+master_sender_host=Master Host to send files,0
+target_hosts=Host receiving files (names separated by spaces),0
+login_tosend=Login para enviar files (FTP),0,12
+passw_tosend=Path file con password para envios (FTP),7
+tclx_library=TCL library path (tta),8
+stta_wkdir=Working directory(scripts),8
+ziptool=Compression tool path,0
+unziptool=Uncompression tool path,0
+backup_cmd=Command to copy files (cpio),0
+extract_cmd=Command to extract files copies (cpio),0
+ldap_debug=LDAP daemon debug level,0,4
+ldapcache_debug=LDAP CACHE daemon debug level,0,4
+help_width=Help window width (pixels),0,6
+help_height=Help window height (pixels),0,6
+stta_savedir=Directory to save files,7
diff --git a/stta/config.info.es b/stta/config.info.es
new file mode 100644
index 0000000..b9eca60
--- /dev/null
+++ b/stta/config.info.es
@@ -0,0 +1,297 @@
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# Spanish
+stta_srvtitle=Descripción del Servidor,0
+tta_dir=Path del directorio de Tarantella,7
+tta_daemon=Path del daemon de Tarantella,8
+tta_aliascmd=Path de la orden alias tta,8
+tta_status=Orden para obtener el Status de Tarantella,0
+tta_restart=Orden para rearrancar Tarantella,0
+tta_backup=Orden para generar copia de TTA,0
+tta_backup_dir=Path para copiar Tarantella,0
+tta_ensdump=Orden para Descargar ENS de TTA,0
+tta_ensdump_dir=Path del directorio de Descarga de Bases de Datos TTA,7
+tta_ensload=Orden para Cargar ENS de TTA,0
+tta_ensload_dir=Path del directorio de Carga de Bases de Datos TTA,7
+tta_ensrestore=Orden para Recuperar ENS Backup de TTA,0
+tta_ensrecreate=Orden para Inicializar ENS de TTA,0
+tta_archive=Orden para archivar los logs de Tarantella,0
+tta_emusessions=Orden para conocer las sesiones emulación Tarantella,0
+tta_emusessions_end=Orden para finalizar sesiones emulación Tarantella,0
+tta_websessions=Orden para conocer las sesiones Webtop Tarantella,0
+tta_websessions_logout=Orden para desconectar sesiones Webtop Tarantella,0
+
+tta_defsconf=Path donde se defines los valores del Servicio,8
+stta_defslist=Path directorio listas de carga,7
+tta_webtops=Path del la lista de Webtops para los usuarios TTA,8
+ens_base= Tarantella Federal Name -TFN- (.../_ens/),0,30
+tta_base=Raiz para el árbol del directorio ENS,0
+sysusers_list=Path de la lista de Usuarios del Sistema,8
+ou_list=Path de la lista de Organizaciones,8
+grpapps_list=Path del la lista de Grupos de Aplicaciones,8
+apps_list=Path de la lista de Aplicaciones,8
+links_list=Path de la lista de Vínculos,8
+domains_list=Path de la lista de Dominios,8
+acts_list=Path de la lista de Acciones,8
+grphosts_list=Path del la lista de Grupos de Hosts,8
+hosts_list=Path de la lista de Hosts,8
+hostsuser_list=Path de la lista de Usuarios de Hosts,8
+profcache_list=Path de la lista de Perfiles de Cache,8
+tta_defaults_obj=Path de valores por defecto de Objetos TTA Person,8
+tta_defaults_ou=Path de valores por defecto de Objetos TTA OrgUnit,8
+tta_defaults_hosts=Path de valores por defecto de Objetos TTA Host,8
+default_portalive=Valor por defecto del puerto de status Hosts,0,4
+ldapcache2_port=Número de puerto del servidor LDAP Cache 2,0,6
+tta_defaults_grpapps=Valores por defecto de Objetos TTA Grupo Apps,8
+tta_ldapUser=Path usuarios LDAP en Cache TTA(standard),0
+
+has_ldapusers=Usa usuarios LDAP con TTA ?,1,true-true,false-false
+has_systemusers=Usa usuarios del Sistema con TTA ?,1,true-true,false-false
+ldap_type=LDAP Software ,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+ldap_dir=Path del directorio software LDAP,7
+ldap_daemon=Path del daemon LDAP,8
+ldap_restart=Orden para rearrancar LDAP,8
+ldap_stop=Orden para parar LDAP,8
+ldap_start=Orden para Arrancar LDAP,8
+ldap2_restart=Orden para rearrancar LDAP 2,8
+ldap2_conf=Archivo configuración LDAP 2,0
+ldap_conf=Archivo configuración LDAP,0
+ldap_backup=Orden para generar copia de BD LDAP,8
+ldap_restore=Orden para recuperar copia de BD LDAP,8
+ldap_backup_dir=Path para copias de BD LDAP,7
+ldap_ldif=Orden para exportar la BD LDAP,8
+ldap_load=Orden para Cargar la BD LDAP,8
+ldap_ldif_dir=Path para exportar la BD LDAP,7
+ldap_replicate=Path para replicar la BD LDAP,8
+ldap_log_name=Path para el log LDAP ,8
+ldap_log_perm=Permiso para gestionar el log LDAP ,4,all-Todos,read-Lectura,clean-Vaciar,modify-Escritura,run-Ejecutar
+ldap_log_fperm=Permiso del fichero log LDAP ,0,5
+ldap_log_tail=Número líneas para ver desde el final de LDAP ,0,5
+
+ldap_server=Nombre de host o IP del servidor LDAP,0
+ldap_dirname=Nombre del directorio (sin-path) del servidor LDAP,0
+ldap_servertitle=Descripción del servidor LDAP,0
+ldap_port=Número de puerto del servidor LDAP,0,5
+ldap_base=Raíz DN en el árbol del directorio,0
+ldap_dnusers=Raíz DN para usuarios en árbol LDAP,0
+ldap_user=Credenciales de administrador del LDAP,0
+ldap_passwd=Password (texto) administrador LDAP,12
+ldap_type=LDAP Software,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+ldap_version=Version software LDAP,0
+
+ldap_server_log_name=Path del log del servidor LDAP,8
+ldap_server_log_perm=Permiso para gestionar el log Servidor LDAP,4,all-Todos,read-Lectura,clean-Vaciar,modify-Escritura,run-Ejecutar
+ldap_server_log_fperm=Permiso del fichero log Servidor LDAP,0,5
+ldap_server_log_tail=Número líneas para ver desde el final del log Servidor LDAP,0,5
+
+ldap_server_acclog_name=Path del log de Accesos al servidor LDAP,8
+ldap_server_acclog_perm=Permiso para gestionar el log acceso LDAP,4,all-Todos,read-Lectura,clean-Vaciar,modify-Escritura,run-Ejecutar
+ldap_server_acclog_fperm=Permiso del fichero log acceso LDAP,0,5
+ldap_server_acclog_tail=Número líneas para ver desde el final del log acceso LDAP,0,5
+
+ldap2_server=Nombre de host o IP del servidor LDAP 2,0
+ldap2_servertitle=Descripción del servidor LDAP 2,0
+ldap2_port=Número de puerto del servidor LDAP 2,0,5
+ldap2_user=Credenciales de administrador del LDAP 2,0
+ldap2_passwd=Password (texto) administrador LDAP 2,12
+ldap2_type=LDAP 2 Software,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+ldap2_version=Version software LDAP2,0
+
+companydomain=Dominio de empresa por defecto,0
+
+back_return=Módulo por defecto para enlace fin de página,0
+companyntdomain=Dominio Windows NT por defecto,0
+loginUsername=Login por defecto del usuario,0,12
+masterHost=Host Master de las Tablas del Servicio,0
+masterHostURL=URL del Host Master de las Tablas del Servicio,0
+is_masterHost=Es Host Master de las Tablas de STTA ?,1,true-true,false-false
+stta_sync=Sincronización automática de las Tablas de STTA ?,1,true-true,false-false
+is_ldapcache=Esta usando el servicio LDAP Cache ?,1,true-true,false-false
+cacherule_1=LDAP Cache Rule 1,4,none-None,users-Usuarios,ous-Organizaciones,apps-Aplicaciones,grpapps-Grupo Aplicaciones,hosts-Host,grphosts-Grupo Hosts,domains-Dominios (dns|nt)
+cacherule_2=LDAP Cache Rule 2,4,none-None,users-Usuarios,ous-Organizaciones,apps-Aplicaciones,grpapps-Grupo Aplicaciones,hosts-Host,grphosts-Grupo Hosts,domains-Dominios (dns|nt)
+cacherule_3=LDAP Cache Rule 3,4,none-None,users-Usuarios,ous-Organizaciones,apps-Aplicaciones,grpapps-Grupo Aplicaciones,hosts-Host,grphosts-Grupo Hosts,domains-Dominios (dns|nt)
+cacherule_4=LDAP Cache Rule 4,4,none-None,users-Usuarios,ous-Organizaciones,apps-Aplicaciones,grpapps-Grupo Aplicaciones,hosts-Host,grphosts-Grupo Hosts,domains-Dominios (dns|nt)
+cacherule_5=LDAP Cache Rule 5,4,none-None,users-Usuarios,ous-Organizaciones,apps-Aplicaciones,grpapps-Grupo Aplicaciones,hosts-Host,grphosts-Grupo Hosts,domains-Dominios (dns|nt)
+cacherule_6=LDAP Cache Rule 6,4,none-None,users-Usuarios,ous-Organizaciones,apps-Aplicaciones,grpapps-Grupo Aplicaciones,hosts-Host,grphosts-Grupo Hosts,domains-Dominios (dns|nt)
+cacherule_7=LDAP Cache Rule 7,4,none-None,users-Usuarios,ous-Organizaciones,apps-Aplicaciones,grpapps-Grupo Aplicaciones,hosts-Host,grphosts-Grupo Hosts,domains-Dominios (dns|nt)
+cache_chkdefaults=Usar objeto por defecto LDAP Cache,1,true-true,false-false
+cache_chkttalogin=Usar valores login de usuario tta en LDAP Cache,1,true-true,false-false
+cache_scandebug=Nivel depuración de búsqueda en LDAP Cache,1,0-0,1-1,2-2
+cache_domain=Dominio por defecto de login para LDAP Cache,0
+cache_scancfg=Directorio de configuración LDAP Cache,7
+cache_rulelimit=Número de reglas para LDAP Cache,0,1
+cache_debuglog=Path fichero depuración LDAP Cache,7
+cache_debuglog_dir=Path Directorio Logs depuración LDAP Cache,7
+ldapcache_defaultobj=Objeto por defecto de LDAP Cache,0
+ldapcache_dndefaultobj=DN último objeto por defecto de LDAP Cache,0
+
+ldapcache_base=Raíz DN en el árbol del directorio LDAP Cache,0
+ldapcache_server=Nombre de host o IP del servidor LDAP Cache,0
+ldapcache_dirname=Nombre del directorio (sin-path) del servidor LDAP Cache,0
+ldapcache_servertitle=Descripción del servidor LDAP Cache,0
+ldapcache_port=Número de puerto del servidor LDAP Cache,0,6
+ldapcache_user=Credenciales administrador LDAP Cache,0
+ldapcache_passwd=Password (texto) administrador LDAP Cache,12
+ldapcache_version=Version software LDAP Cache,0
+
+ldapcache_server_log_name=Path del log del servidor LDAP Cache,8
+ldapcache_server_log_perm=Permiso para gestionar el log LDAP Cache,4,all-Todos,read-Lectura,clean-Vaciar,modify-Escritura,run-Ejecutar
+ldapcache_server_log_fperm=Permiso del fichero log acceso LDAP Cache,0,5
+ldapcache_server_log_tail=Número para ver desde el final del log acceso LDAP Cache,0,5
+
+ldapcache_server_acclog_name=Path del log de Accesos al servidor LDAP Cache,8
+ldapcache_server_acclog_perm=Permiso para gestionar el log acceso LDAP Cache,4,all-Todos,read-Lectura,clean-Vaciar,modify-Escritura,run-Ejecutar
+ldapcache_server_acclog_fperm=Permiso del fichero log acceso LDAP Cache,0,5
+ldapcache_server_acclog_tail=Número líneas para ver desde el final del log acceso LDAP Cache,0,5
+
+ldapcache2_server=Nombre de host o IP del servidor LDAP Cache 2,0
+ldapcache2_servertitle=Descripción del servidor LDAP Cache 2,0
+ldapcache2_port=Número de puerto del servidor LDAP Cache 2,0,6
+ldapcache2_user=Credenciales administrador LDAP Cache 2,0
+ldapcache2_passwd=Password (texto) administrador LDAP Cache 2,12
+ldapcache2_type=Software de LDAP Cache 2,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+ldapcache2_conf=Archivo configuración LDAP Cache 2 2,0
+ldapcache2_version=Version software LDAP CacheCache 2,0
+
+tta_ldapcacheUser=DN Base para Usuarios de TTA LDAP Cache,0
+tta_ldapcacheApps=DN Base para Aplicaciones de TTA LDAP Cache,0
+tta_ldapcacheHosts=DN Base para Hosts de TTA LDAP Cache,0
+ldapcache_type=Software de LDAP Cache,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+ldapcache_dir=Path del directorio software LDAP Cache,7
+ldapcache_daemon=Path to the LDAP Cache daemon,8
+ldapcache_restart=Orden para rearrancar el LDAP Cache,8
+ldapcache_stop=Orden para Parar el LDAP Cache,8
+ldapcache_start=Orden para Arrancar el LDAP Cache,8
+ldapcache2_restart=Orden para rearrancar el LDAP Cache 2,8
+ldapcache_backup=Orden para copiar la BD LDAP Cache,8
+ldapcache_restore=Orden para recuperar la BD LDAP Cache,8
+ldapcache_backup_dir=Path para generar copias de la BD LDAP Cache,7
+ldapcache_ldif=Orden para exportar la BD LDAP Cache,8
+ldapcache_load=Orden para Cargar la BD LDAP Cache,8
+ldapcache_ldif_dir=Path para exportar la BD del LDAP Cache,7
+ldapcache_replicate=Path de la orden para replicar BD LDAP Cache ,8
+ldapcache_conf=Archivo configuración LDAP Cache,0
+apps_list=Path de las lista de Aplicaciones,8
+tta_appwidth=Anchura (pixels) ventana de aplicaciones,0,6
+tta_appheigth=Altura (pixels) ventana de aplicaciones,0,6
+grpapps_list=Path para la lista de Grupo de Aplicaciones,8
+domain_list=Path para la lista de Dominios,8
+link_list=Path para la lista de Links,8
+
+default_cat=Categoría por defecto,4,browsers-Navegadores,tta-Tarantella,ldap-ldap,password-Claves,ldapcache-Ldap_Cache,objects-Objetos,monitor-Monitor
+order_cat=Orden de Categorías,4,none-Por defecto,alias-Por modulo,name-Por nombre
+interface=Menu Interface,4,tabs-Tabs,index-index
+
+monitor_scripts_path=Path de Guiones para el Monitor,0,30
+mon_title=Titulo Monitor,0,30
+act_list=Path de lista de acciones,0,30
+
+filemgr_path=Path del Gestor de Ficheros,7
+ttalog_path=Path Gestor logs de Tarantella,7
+run_exec_user=Login para ejecutar órdenes,0,12
+
+http_log_name=Path del log de HTTP,8
+http_log_perm=Permiso para gestionar el log servidor HTTP,4,all-Todos,read-Lectura,clean-Vaciar,modify-Escritura,run-Ejecutar
+http_log_fperm=Permiso del fichero log servidor HTTP,0,5
+http_log_tail=Número líneas para ver desde el final del log servidor HTTP,0,5
+
+http_port=Número de puerto del servidor HTTP,0,5
+
+https_log_name=Path del log de HTTPS,8
+https_log_perm=Permiso para gestionar el log servidor HTTPS,4,all-Todos,read-Lectura,clean-Vaciar,modify-Escritura,run-Ejecutar
+https_log_fperm=Permiso del fichero log servidor HTTPS,0,5
+https_log_tail=Número líneas para ver desde el final del log servidor HTTPS,0,5
+
+httpacc_log_name=Path del log de accessos HTTP,8
+httpacc_log_perm=Permiso para gestionar el log acceso HTTP,4,all-Todos,read-Lectura,clean-Vaciar,modify-Escritura,run-Ejecutar
+httpacc_log_fperm=Permiso del fichero log acceso HTTP,0,5
+httpacc_log_tail=Número para ver desde el final del log acceso HTTP,0,5
+
+httpsacc_log_name=Path del log de accessos HTTPS,8
+httpsacc_log_perm=Permiso para gestionar el log acceso HTTPS,4,all-Todos,read-Lectura,clean-Vaciar,modify-Escritura,run-Ejecutar
+httpsacc_log_fperm=Permiso del fichero log acceso HTTPS,0,5
+httpsacc_log_tail=Número para ver desde el final del log acceso HTTPS,0,5
+
+https_port=Número de puerto del servidor HTTPS,0,5
+system_log=Path del log del Sistem Operativo,7
+tta_sessout_file=Path del Fichero de salida sesiones TTA,8
+has_monitor=Está usando el Monitor TTA ?,1,true-true,false-false
+has_cronsess=Usa Cron para Listar Sesiones ?,1,true-true,false-false
+sessout_timeout=Recargar Informes de Sesiones,4,8-hora,12-minuto,11-10 minutos ,13-10 segundos ,14-Segundo
+countsessout_file=Path del Fichero de Resumen de sesiones TTA,8
+totalsessout_file=Path del Fichero de Acumulado de sesiones TTA,8
+tta_billing_dir=Directorio de Informes de sesiones TTA,7
+cmd_getosdata=Path del ejecutable para obtener datos del SO,0
+osdataout_file=Path del Fichero de Acumulado de Datos SO,8
+msg_noticket=Mensaje para ticket sesión no válido,0
+msg_nosess=Mensaje de que no hay sesiones disponibles,0
+check_maxsess=Comprobar límite de Sesiones,1,true-true,false-false
+default_maxsess=Número ilimitado de Sesiones,0,5
+check_ticket=Comprobar Ticket de Sesiones,1,true-true,false-false
+output_cgis=Visualizar Errores por Pantalla,1,0-false,1-true
+debug_code=Nivel de Depuración de Codigo en Ejecución,1,0-Ninguno,1-Nivel 1,2-Nivel 2,3-Nivel 3,4-Nivel 4
+stta_debugname=Path y Prefijo para el Nombre del debug del CGI o herramienta STTA,0
+stta_logname=Path y Prefijo para el Nombre del log del CGI o herramienta STTA,0
+stta_logdir=Path del directorio de logs de CGIs y/o herramientas STTA,7
+check_services=Comprobar Servicios en cada Acceso,1,true-true,false-false
+iferror_services=Si hay error en Servicos,1,stop-Parar,warn-Avisar,browse-Consulta
+iferror_objects=Si hay error en la Gestion de Objetos,1,stop-Parar,warn-Avisar
+motd=Path fichero mensajes del entorno STTA,8
+motd_style=Estilo de los mensajes del entorno STTA,4,marquee-Scroll,box-Recuadro
+url_tta=URL para Ayuda de Software Tarantella,0
+url_ldap=URL para Ayuda de Software LDAP,0
+users_alias=Alias de Usuarios por Defecto,0
+servers_alias=Alias de Servidores por Defecto,0
+apps_alias=Alias de Aplicaciones por Defecto,0
+help_active=Usar ayuda en las pantallas de entrada,1,true-true,false-false
+bgimage=Imagen de fondo de páginas,8
+cs_page=Color de fondo de página (hex),0,6
+cs_table=Color de fondo cuerpo de Tablas (hex),0,6
+cs_header=Color de fondo Cabeceras de Tablas (hex),0,6
+cs_link=Color de enlaces de texto en páginas(hex),0,6
+cs_text=Color de texto en páginas (hex),0,6
+cs_revtext=Color de texto inverso en páginas (hex),0,6
+feedback_to=Destinatario de comentarios STTA,0
+feedback_packcmd=Orden para empaquetar directorio de comentarios,0
+feedback_name=Nombre de quien envia los comentarios,0
+feedback_email=Destinatarios de los comentarios,0
+feedback_dirname=Directorio para empaquetar los comentarios,0
+feedback_mailserver=Servidor SMTP para enviar comentarios,0
+
+list_debuglogs_name=Path de lista de logs de debug,8
+list_debuglogs_perm=Permiso para gestionar la lista de logs de debug,4,all-Todos,read-Lectura,clean-Vaciar,modify-Escritura,run-Ejecutar
+list_debuglogs_fperm=Permiso del fichero lista de logs de debug,0,5
+list_debuglogs_delhours=Borrar cada fichero de lista de logs debug cada (en horas),0,6
+
+list_sttalogs_name=Path de lista de logs de STTA,8
+list_sttalogs_perm=Permiso para gestionar la lista de logs de STTA,4,all-Todos,read-Lectura,clean-Vaciar,modify-Escritura,run-Ejecutar
+list_sttalogs_fperm=Permiso del fichero lista de logs de STTA,0,5
+list_sttalogs_delhours=Borrar cada fichero de lista de logs cada (en horas),0,6
+
+list_backups_name=Path de lista de Copias,8
+list_backups_perm=Permiso para gestionar la lista de Copias,4,all-Todos,read-Lectura,clean-Vaciar,modify-Escritura,run-Ejecutar
+list_backups_fperm=Permiso del fichero lista de Copias,0,5
+list_backups_delhours=Borrar cada fichero de lista de Copias cada (en horas),0,6
+stta_hosts=Hosts con STTA (nombres separado por espacios),0
+list_to_sync=Lista a sincronizar automaticamente (separada por espacios),0
+other_list_sync=Lista de sincronización de STTA (separada por espacios),0
+
+stta_tools_dir=Directorio de los tools de STTA,7
+service_tosend=Método para envio de ficheros (replicaciones),4,ftp-FTP,http-HTTP,https-HTTPS
+to_send_dir=Directorio de ficheros a enviar,7
+get_dir=Directorio de ficheros recibidos,7
+save_send_dir=Directorio para salvar envios,7
+master_sender_host=Host Master de Envios,0
+target_hosts=Host que reciben envios (nombres separado por espacios),0
+login_tosend=Login para enviar ficheros (FTP),0,12
+passw_tosend=Path fichero con password para envios (FTP),7
+tclx_library=Path biblioteca TCL (tta),8
+stta_wkdir=Directorio de trabajo (scripts),8
+ziptool=Path herramienta de compresión,0
+unziptool=Path herramienta de descompresión,0
+backup_cmd=Orden para copiar ficheros (cpio),0
+extract_cmd=Orden para extraer copia de ficheros (cpio),0
+ldap_debug=Nivel de depuración de LDAP,0,4
+ldapcache_debug=Nivel de depuración de LDAP CACHE,0,4
+help_width=Ancho de la ventana de ayuda (pixels),0,6
+help_height=Altura de la ventana de ayuda (pixels),0,6
+stta_savedir=Directorio para guardar ficheros,7
diff --git a/stta/config.init b/stta/config.init
new file mode 100644
index 0000000..3f817df
--- /dev/null
+++ b/stta/config.init
@@ -0,0 +1,45 @@
+masterHost=HOSTNAME
+tta_dir=TTA-SOFTWARE-DIR-PATH
+ldapcache2_port=LDAPCACHE2-SERVERPORT
+ldap_dnusers=o=ORGANIZATION-ROOT-LDAP-USERS-DN (HOSTNAME,dc=ttaldap,dc=DOMAIN)
+ldap2_server=LDAP2-SERVER-HOSTNAME
+companydomain=COMPANY-DOMAIN-FOR-EMAILS
+ldapcache_dir=LDAP-SOFTWARE-DIR-PATH/ldap
+tta_base=o=ORGANIZATION-TTA-DN
+tta_daemon=TTA-SOFTWARE-DIR-PATH/bin/bin/ttaauxserv
+ldap2_passwd=LDAP-PASSWORD
+ldap_server=LDAP-SERVER-HOSTNAME
+ldap2_user=cn=DIRECTORY-MANAGER-LOGIN (Directory Manager)
+hostsuser_list=TTA-SOFTWARE-DIR-PATH/defs/.passwd
+ldap_type=IPLANET
+ldap_user=cn=DIRECTORY-MANAGER-LOGIN (Directory Manager)
+ldapcache_server=LDAPCACHE-SERVER-HOSTNAME
+ldapcache2_server=LDAPCACHE2-SERVER
+ldapcache2_servertitle=SECONDARY-LDAP-SERVER-TITLE
+tta_ldapcacheApps=o=ORGANIZATION-LDAP-dn
+tta_ldapcacheUser=o=ORANIZATION-ROOT-USER
+ldap_passwd=LDAP-PASSWORD
+ldapcache_user=cn=DIRECTORY-MANAGER-LOGIN (Directory Manager)
+ldapcache_passwd=LDAP-PASSWORD
+ldapcache2_passwd=LDAP-PASSWORD
+companyntdomain=COMPANY-DOMAIN
+ldap2_servertitle=SECONDARY-LDAPCACHE-SERVER-TITLE
+cache_domain=CACHE-DOMAIN
+tta_ldapcacheHosts=o=ORGANIZATION-ROOT-HOSTS
+ldap2_port=LDAP2-SERVERPORT
+ldap_base=o=ORGANIZATION-ROOT-LDAP-TOP-DN (HOSTNAME,dc=ttaldap,dc=DOMAIN)
+ldapcache2_user=cn=DIRECTORY-MANAGER-LOGIN (Directory Manager)
+ldapcache_daemon=./ns-slapd
+ldap_servertitle=PRIMARY-LDAP-SERVER-TITLE
+tta_defaults_ou=TTA-SOFTWARE-DIR-PATH/defs/orgunit-defaults
+tta_defaults_grpapps=TTA-SOFTWARE-DIR-PATH/defs/grpapps-defaults
+tta_defaults_obj=TTA-SOFTWARE-DIR-PATH/defs/person-defaults
+tta_defaults_hosts=TTA-SOFTWARE-DIR-PATH/defs/host-defaults
+ldap_port=LDAP-SERVER
+tta_websessions_logout=TTA-SOFTWARE-DIR-PATH/bin/tarantella webtopsession logout
+ldapcache_servertitle=PRIMARY-LDAPCACHE-SERVER-TITLE
+ldapcache_base=o=ORGANIZATION-ROOT-LDAPCACHE-TOP
+ldapcache_port=LDAPCACHE-SERVER
+https_port=HTTPS-SERVER-PORT
+url_ldap=http://HOSTNAME/ldapmanuals/en/slapd/ag/contents.htm (for IPLANET enable ALIAS in HTTP server config)
+stta_deflists=STTA-DEFS_LIST_PATH
diff --git a/stta/config_dir/config-aix b/stta/config_dir/config-aix
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-aix
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-corel-linux b/stta/config_dir/config-corel-linux
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-corel-linux
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-debian-linux b/stta/config_dir/config-debian-linux
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-debian-linux
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-hpux b/stta/config_dir/config-hpux
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-hpux
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-lfs-linux b/stta/config_dir/config-lfs-linux
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-lfs-linux
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-mandrake-linux b/stta/config_dir/config-mandrake-linux
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-mandrake-linux
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-msc-linux b/stta/config_dir/config-msc-linux
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-msc-linux
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-open-linux-2.3 b/stta/config_dir/config-open-linux-2.3
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-open-linux-2.3
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-open-linux-2.3e b/stta/config_dir/config-open-linux-2.3e
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-open-linux-2.3e
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-open-linux-2.4 b/stta/config_dir/config-open-linux-2.4
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-open-linux-2.4
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-open-linux-2.5 b/stta/config_dir/config-open-linux-2.5
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-open-linux-2.5
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-open-linux-3.1e b/stta/config_dir/config-open-linux-3.1e
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-open-linux-3.1e
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-openserver b/stta/config_dir/config-openserver
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-openserver
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-redhat-linux b/stta/config_dir/config-redhat-linux
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-redhat-linux
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-redhat-linux-7.0 b/stta/config_dir/config-redhat-linux-7.0
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-redhat-linux-7.0
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-redhat-linux-7.1 b/stta/config_dir/config-redhat-linux-7.1
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-redhat-linux-7.1
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-slackware-linux b/stta/config_dir/config-slackware-linux
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-slackware-linux
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-slackware-linux-7.0 b/stta/config_dir/config-slackware-linux-7.0
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-slackware-linux-7.0
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-slackware-linux-7.1 b/stta/config_dir/config-slackware-linux-7.1
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-slackware-linux-7.1
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-solaris b/stta/config_dir/config-solaris
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-solaris
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-suse-linux b/stta/config_dir/config-suse-linux
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-suse-linux
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-suse-linux-7.1 b/stta/config_dir/config-suse-linux-7.1
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-suse-linux-7.1
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-suse-linux-7.2 b/stta/config_dir/config-suse-linux-7.2
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-suse-linux-7.2
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-turbo-linux b/stta/config_dir/config-turbo-linux
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-turbo-linux
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_dir/config-unixware b/stta/config_dir/config-unixware
new file mode 100755
index 0000000..9f68ef2
--- /dev/null
+++ b/stta/config_dir/config-unixware
@@ -0,0 +1,122 @@
+tta_base=o=gestion.rima.telefonica.es
+tta_aliascmd=/usr/sbin/tta
+tta_status=/opt/tarantella/bin/tarantella status --byserver
+companydomain=telefonica.es
+back_return=/tarantella
+ldap_backup_dir=/opt/save/bak
+shell=/bin/true
+tta_backup_dir=/opt/save
+ldap_ldif_dir=/opt/save/ldif
+tta_emusessions=/opt/tarantella/bin/tarantella emulatorsession list
+tta_emusessions_end=/opt/tarantella/bin/tarantella emulatorsession end
+tta_websessions=/opt/tarantella/bin/tarantella webtopsession list
+tta_websessions_logout=/opt/tarantella/bin/tarantella webtopsession logout
+ldap_dir=/opt/netscape/ldap
+ldap_restart=/opt/netscape/ldap/slapd-ttaldap/restart-slapd
+ldap2_restart=/opt/netscape/ldap/slapd-ttaldap2/restart-slapd
+tta_dir=/opt/tarantella
+tta_links=/opt/tarantella/defs/links
+tta_archive=/opt/tarantella/bin/tarantella archive
+tta_webtops=/opt/tarantella/defs/webtops
+tta_restart=/opt/tarantella/bin/tarantella restart
+tta_defsconf=/etc/webmin/trantella/defs.conf
+ldap_daemon=./ns-slapd
+ldap_backup=/opt/netscape/ldap/slapd-ttaldap/db2bak
+ldap_replicate=/opt/tarantella/tools/ldapreplicate
+tta_daemon=/opt/tarantella/bin/bin/ttaauxserv
+tta_backup=/opt/tarantella/tools/ttabackup
+ou_list=/opt/tarantella/defs/ou_list
+ldap_ldif=/opt/netscape/ldap/slapd-ttaldap/db2ldif
+ldap_base=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_port=389
+ldap_server=ttaldap
+ldap_servertitle=Primario
+ldap_user=cn=DirectoryManager
+ldap_passwd=tarantella
+ldap2_port=16634
+ldap2_server=ttaldap2
+ldap2_servertitle=Secundario
+ldap2_user=cn=DirectoryManager
+ldap2_passwd=tarantella
+tta_defaults_obj=/opt/tarantella/defs/person-defaults
+tta_defaults_ou=/opt/tarantella/defs/orgunit-defaults
+ldap_dnusers=o=gestion.rima.telefonica.es,dc=ttaldap,dc=gestion,dc=rima,dc=telefonica,dc=es
+ldap_type=IPLANET
+hosts_list=/opt/tarantella/defs/hosts_list
+tta_defaults_hosts=/opt/tarantella/defs/hosts-defaults
+Tta_daemon=
+hostsuser_list=/opt/tarantella/defs/.passwd
+ldap_log=/opt/save/ldap.log
+grphosts_list=/opt/tarantella/defs/grphosts_list
+profcache_list=/opt/tarantella/defs/profcache_list
+companyntdomain=TTARIMA
+loginUsername=ttauser
+masterhost=alhambra
+masterHostURL=http://alhambra:10000/tarantella
+masterHost=alhambra
+ens_base=.../_ens/
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+ldapcache_passwd=tarantella
+ldapcache_base=o=gestion.rima.telefonica.es
+ldapcache_port=802
+ldapcache_server=ttacache
+ldapcache_servertitle=Primario
+ldapcache_user=cn=DirectoryManager
+ldapcache2_passwd=tarantella
+ldapcache2_port=6889
+ldapcache2_server=ttacache2
+ldapcache2_servertitle=Secundario
+ldapcache2_user=cn=DirectoryManager
+ldapcache_dnapps=ou=RIMA,o=gestion.rima.telefonica.es
+unixexp_app_default=/opt/tarantella/defs/conf/unix.exp
+ldapcache_dnusers=ou=usuarios,o=gestion.rima.telefonica.es
+winexp_app_default=/opt/tarantella/defs/conf/unixwin.exp
+app_list=/opt/tarantella/defs/app_list
+is_ldapcache=true
+ldapcache_ldif_dir=/opt/save/ldif_cache
+ldapcache_backup_dir=/opt/save/bak_cache
+ldapcache_type=IPLANET
+ldapcache_ldif=/opt/netscape/ldap/slapd-ttacache/db2ldif
+ldapcache_daemon=./ns-slapd
+ldapcache_backup=/opt/netscape/ldap/slapd-ttacache/db2bak
+ldapcache_replicate=/opt/tarantella/tools/ldapcachereplicate
+ldapcache_dir=/opt/netscape/ldap
+ldapcache_restart=/opt/netscape/ldap/slapd-ttacache/restart-slapd
+ldapcache2_restart=/opt/netscape/ldap/slapd-ttacache2/restart-slapd
+ldapcache_log=/opt/save/ldapcahe.log
+ldapcache_dnhosts=ou=servidores,o=gestion.rima.telefonica.es
+tta_ldapcacheApps=o=gestion.rima.telefoncia.es
+tta_ldapcacheUser=o=gestion.rima.telefoncia.es
+tta_ldapcacheHosts=o=gestion.rima.telefoncia.es
+ldapcache_targetpath=/opt/tarantella/defs/cachetarget_list
+ldapcache_rulespath=/opt/tarantella/defs/rules_list
+grpapps_list=/opt/tarantella/defs/grpapps_list
+domain_list=/opt/tarantella/defs/domain_list
+cacherule_1=apps
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+ldapcache_defaultobj=default_obj
+cache_chkdefaults=true
+ldapcache_dndefaultobj=cn=default_obj,ou=RIMA
+cache_domain=ttarima
+cache_chkttalogin=true
+cache_scandebug=2
+cache_debuglog=/opt/tarantella/var/log/cache/ttadebug.log
+cache_rulelimit=5
+cache_scancfg=/etc/webmin/tarantella/config
+ttases_id=Session ID
+ttases_app=Application
+ttases_client=Client
+ttases_appserv=Application Server
+ttases_time=Start Time
+ttases_user=User
+ttases_pe=Protocol Engine ID
+ttases_resume=Resumable For
+ttases_status=Status
+ttases_serveruser=Application Server User
+has_monitor=true
+is_masterHost=true
+default_cat=objects
+interface=tabs
diff --git a/stta/config_info.pl b/stta/config_info.pl
new file mode 100755
index 0000000..08b9434
--- /dev/null
+++ b/stta/config_info.pl
@@ -0,0 +1,571 @@
+#!/usr/bin/perl
+# config_info.pl
+# configure Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require '../web-lib.pl';
+
+do 'web-lib.pl';
+do 'global-lib.pl';
+&init_config();
+&load_dataconf();
+
+$dataConf="dataconf";
+$listfcfgs="ordercfgs";
+$configValues="sttavalues";
+$defaultcfg="defaultcfg";
+$scancachecfg="scancache";
+$envsttashell="envstta";
+$scanlistcfgs="scanlistcfgs";
+$envshlistcfgs="envshlistcfgs";
+
+$now_is=&set_now();
+
+sub config_form
+{
+ &set_interface_colors(); # just to be sure !!!
+ if ( -r "$config_directory/$module_name/.insupd.lock" ) {
+ print "$text{stta_locked} \n";
+ }
+ $m = "stta";
+ &set_variables_cfg();
+ if (!(-d $configDir )) {
+ if ( $_[0] eq "report" ) {
+ print &error('config_error','config.cgi?stta');
+ return;
+ }
+ if ( -d "/etc/openldap" || -x "/usr/local/openldap/slapd" || -x "/usr/local/libexec/slapd" ) {
+ &read_file("$configDef/$defaultcfg.openldap", \%sttaconfig);
+ } else {
+ &read_file("$configDef/$defaultcfg.iplanet", \%sttaconfig);
+ }
+ # Use config.info to create config inputs
+ &read_file("$module_dir/configinit.info", \%info);
+ foreach $o (@lang_order_list) {
+ &read_file("$module_dir/configinit.info.$o", \%info);
+ }
+ @info_order=();
+ foreach $c (keys (%info)) {
+ push(@info_order, { 'name' => $c, 'title' => $info{$c} });
+ }
+ %einfo = %info;
+ @info_order = &unique(@info_order);
+ &set_values_from();
+ } else {
+ &read_file("$module_dir/config.info", \%infoall, \@info_orderall);
+ foreach $o (@lang_order_list) {
+ &read_file("$module_dir/config.info.$o", \%infoall, \@info_orderall);
+ }
+ if ( $fileCFG ne "" ) {
+ %listfcfgs=();
+ @orderfcfgs=();
+ &read_file("$baseDataConfDir/$listfcfgs", \%listaf);
+ foreach $d (keys (%listaf) ) {
+ if ( $d eq $fileCFG ) {
+ push(@orderfcfgs, $d );
+ $listfcfgs{$d}=$listaf{$d};
+ last;
+ }
+ }
+ } else {
+ &read_file("$baseDataConfDir/$listfcfgs", \%listfcfgs, \@orderfcfgs);
+ print "\n";
+ print " \n";
+ local $i=0;
+ foreach $d (@orderfcfgs) {
+ $i++;
+ $item_title=$d."_title";
+ $item_help=$listfcfgs{$d};
+ print "";
+ if ( $_[0] ne "report" ) {
+ print " ";
+ }
+ print " ",&hlink(" ","$item_help")," - $d \n";
+ }
+ print "
\n";
+ }
+ @orderf_cfgs = @orderfcfgs;
+ @orderfcfgs = sort @orderf_cfgs;
+
+ foreach $d (@orderfcfgs) {
+ %sttaconfig=();
+ %sttabase=();
+ @stta_base=();
+ %info=();
+ @info_order=();
+ &read_file("$configDir/$d", \%sttaconfig);
+ &read_file("$baseDataConf/$d", \%sttabase, \@stta_base);
+ if ( $d eq "session" ) {
+ if ( $sttaconfig{msg_noticket} eq "" ) {
+ $sttaconfig{msg_noticket}=$text{msg_noticket};
+ }
+ if ( $sttaconfig{msg_nosess} eq "" ) {
+ $sttaconfig{msg_nosess}=$text{msg_nosess};
+ }
+ }
+ $item_title=$d."_title";
+ $item_help=$listfcfgs{$d};
+ print " $text{$item_title} \n";
+ print "\n";
+ print " ",&hlink("$text{$item_title} ","$item_help","stta","menu2")," - $d ";
+ if ( $fileCFG eq "" && $_[0] ne "report" ) {
+ print "";
+ }
+ print " \n";
+ print " \n";
+ foreach $c (@stta_base) {
+ $info{$c}=$infoall{$c};
+ push(@info_order, { 'name' => $c, 'title' => $infoall{$c} });
+ }
+ $einfo=%info;
+ @info_order = &unique(@info_order);
+# @info_order = sort {$a->{'title'} cmp $b->{'title'}} @info_order;
+ if ( $_[0] eq 'report' ) {
+ &view_values_from();
+ } else {
+ &set_values_from();
+ }
+ print "
\n";
+ }
+ if ( $ENV{'HTTP_USER_AGENT'} =~ /MSIE/ && $ENV{'HTTP_USER_AGENT'} =~ /Windows/
+ && $fileCFG eq "" ) {
+ $text{'save'}="";
+ }
+ }
+
+}
+
+sub config_save
+{
+ $m = $in{module} || "stta";
+ $fileCFG = $in{fcfg} || "";
+ &set_variables_cfg();
+
+ if (!(-d $configDir )) {
+ mkdir($configDir, 0777);
+ &init_dataconf();
+ if ( $main::config{'tta_dir'} ne "" ) {
+ &test_minfo("migrate","html");
+ system("cat $config_directory/$m/config > $configDir/config.old");
+ %main::config=(); # Reset
+ $main::config{'MIGRATE'}="$now_is $remote_user [".&get_system_hostname()."] dataconf/config.old";
+ } else {
+ %main::config=(); # Reset
+ }
+ $main::config{'CONFIG'}="look at dataconf directory --- everything is there !!!";
+ $main::config{'INSTALL'}="$now_is $remote_user [".&get_system_hostname()."]";
+ } else {
+ if ( $ENV{'HTTP_USER_AGENT'} =~ /MSIE/ && $ENV{'HTTP_USER_AGENT'} =~ /Windows/ && $fileCFG eq "" ) {
+ &header($text{'config_title'}, "", undef, 0, 1);
+ print "\n";
+ print "
\n";
+ print "
\n";
+ print "$text{'ieconfigsave_err'} \n";
+ print "
\n";
+ print "$ENV{'HTTP_USER_AGENT'} ";
+ print " \n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ exit;
+ }
+ &read_file("$module_dir/config.info", \%infoall, \@info_orderall);
+ if ( $fileCFG ne "" && $fileCFG ne "ALL" ) {
+ %listfcfgs=();
+ @orderfcfgs=();
+ &read_file("$baseDataConfDir/$listfcfgs", \%listaf);
+ foreach $d (keys (%listaf) ) {
+ if ( $d eq $fileCFG ) {
+ push(@orderfcfgs, $d );
+ $listfcfgs{$d}=$listaf{$d};
+ $main::config{$fileCFG}="$now_is $remote_user [".&get_system_hostname()."]";
+ last;
+ }
+ }
+ } else {
+ &read_file("$baseDataConfDir/$listfcfgs", \%listfcfgs, \@orderfcfgs);
+ $main::config{'UPDATEFULL'}="$now_is $remote_user [".&get_system_hostname()."]";
+ }
+ foreach $d (@orderfcfgs) {
+ %sttabase=();
+ @stta_base=();
+ %info=();
+ @info_order=();
+ &read_file("$baseDataConf/$d", \%sttabase, \@stta_base);
+ foreach $c (@stta_base) {
+ push(@info_order, $c );
+ $info{$c}=$infoall{$c};
+ }
+ @info_order = &unique(@info_order);
+ %sttaconfig=();
+ &get_values_tosave();
+ &lock_file("$configDir/$d");
+ open(CFGFILE, ">$configDir/$d") || &error(&text("efilewrite", $configDir/$d, $!));
+ foreach $c (@info_order) {
+ if (exists($sttaconfig{$c})) {
+ (print CFGFILE $c,"=",$sttaconfig{$c},"\n") ||
+ &error(&text("efilewrite", $configDir/$d, $!));
+ }
+ }
+ close(CFGFILE);
+ &unlock_file("$configDir/$d");
+ }
+ }
+ &make_scancfg();
+ &make_envshfile();
+}
+
+sub set_variables_cfg
+{
+ $module_dir="$root_directory/stta";
+
+ $configDir="$config_directory/$m/$dataConf";
+ $configDef="$module_dir/$dataConf/defs";
+ $baseDataConf="$module_dir/dataconf/base";
+ $baseDataConfDir="$module_dir/dataconf";
+
+ foreach $l (@lang_order_list) {
+ &read_file("$module_dir/lang/cfg/$l", \%text);
+ }
+ foreach $k (keys %text) {
+ $text{$k} =~ s/\$([A-Za-z0-9\.\-\_]+)/text_subs($1,\%text)/ge;
+ }
+}
+
+sub make_scancfg
+{
+ local %scanconfig=();
+ local %listfcfgs=();
+ local @scanfcfgs=();
+ local $d="";
+ local $v="";
+
+ &read_file("$baseDataConfDir/$scanlistcfgs", \%listfcfgs, \@scanfcfgs);
+ foreach $d (@scanfcfgs) {
+ &read_file("$configDir/$d", \%scanconfig);
+ }
+ &write_file("$configDir/$scancachecfg", \%scanconfig);
+}
+
+sub make_envshfile
+{
+ local %listvcfgs=();
+ local @scanvcfgs=();
+ local $d="";
+ local $v="";
+
+ %config=();
+ &load_dataconf();
+ &read_file("$baseDataConfDir/$envshlistcfgs", \%listvcfgs, \@scanvcfgs);
+ open(ARFILE,">$configDir/$envsttashell");
+ print ARFILE "#!/bin/sh \n";
+ print ARFILE "$text{set_env_vars}\n";
+ print ARFILE "# \n";
+ print ARFILE "STTA_CFGDIR=$configDir ; export STTA_CFGDIR \n";
+ print ARFILE "WEBMIN_ETC=$config_directory ; export WEBMIN_ETC \n";
+ print ARFILE "WEBMIN_ROOT=$root_directory ; export WEBMIN_ROOT \n";
+ print ARFILE "WEBMIN_LANG=$gconfig{lang}; export WEBMIN_LANG \n";
+ @scanvcfgs = sort @scanvcfgs;
+ foreach $d (@scanvcfgs) {
+ $v=$listvcfgs{$d};
+ print ARFILE "$d=\"".$config{$v}."\"; export $d\n";
+ }
+ close(ARFILE);
+ chmod(0555, "$configDir/$envsttashell");
+ if ( $config{stta_tools_dir} && -d $config{stta_tools_dir} ) {
+ system("cp -p $configDir/$envsttashell $config{stta_tools_dir}");
+ chmod(0555, "$config{stta_tools_dir}/$envsttashell");
+ }
+}
+
+sub get_values_tosave
+{
+ foreach $c (@info_order) {
+ @p = split(/,/, $info{$c});
+ if ($p[1] == 0 || $p[1] == 7 || $p[1] == 8 || $p[1] == 12 ) {
+ # Free text input
+ $sttaconfig{$c} = $in{$c};
+ }
+ elsif ($p[1] == 1 || $p[1] == 4) {
+ # One of many
+ $sttaconfig{$c} = $in{$c};
+ }
+ elsif ($p[1] == 5 || $p[1] == 6) {
+ # User or group
+ $sttaconfig{$c} = ($p[2] && $in{$c."_def"} ? "" : $in{$c});
+ }
+ elsif ($p[1] == 2) {
+ # Many of many
+ $in{$c} =~ s/\0/,/g;
+ $sttaconfig{$c} = $in{$c};
+ }
+ elsif ($p[1] == 3) {
+ # Optional free text
+ if ($in{$c."_none"}) { $sttaconfig{$c} = ""; }
+ else { $sttaconfig{$c} = $in{$c}; }
+ }
+ elsif ($p[1] == 9) {
+ # Multilines of free text
+ local $sp = $p[4] ? eval "\"$p[4]\"" : " ";
+ $in{$c} =~ s/\r//g;
+ $in{$c} =~ s/\n/$sp/g;
+ $in{$c} =~ s/\s+$//;
+ $sttaconfig{$c} = $in{$c};
+ }
+ elsif ($p[1] == 10) {
+ # One of many or free text
+ if ($in{$c} eq 'free') {
+ $sttaconfig{$c} = $in{$c.'_free'};
+ }
+ else {
+ $sttaconfig{$c} = $in{$c};
+ }
+ }
+ }
+}
+sub set_values_from
+{
+ foreach $lineform (@info_order) {
+ $c=$lineform->{'name'};
+ @p = split(/,/, $info{$c});
+ @ep = split(/,/, $einfo{$c});
+ if (scalar(@ep) > scalar(@p)) {
+ push(@p, @ep[scalar(@p) .. @ep-1]);
+ }
+ if ($p[1] == 11) {
+ print "
\n" ;
+ print "\t" . &hlink($p[0],"config/$c") . " \n \n" ;
+ next;
+ }
+ print " ".&hlink($p[0],"config/$c")." \n";
+ print "\n";
+ $qw = $sttaconfig{$c} =~ /'/ ? '"' : "'";
+ if ($p[1] == 0 || $p[1] == 12) {
+ $size = $p[2] ? "size=$p[2]" : "size=40";
+ $max = $p[3] ? "maxlength=$p[3]" : "";
+ $type = $p[1] == 12 ? "type=password" : "";
+ print " \n";
+ }
+ elsif ($p[1] == 1) {
+ for($i=2; $i<@p; $i++) {
+ $p[$i] =~ /^(\S*)\-(.*)$/;
+ printf " \n",
+ $sttaconfig{$c} eq $1 ? "checked" : "";
+ print "$2 \n";
+ }
+ }
+ elsif ($p[1] == 2) {
+ local %sel;
+ map { $sel{$_}++ } split(/,/, $sttaconfig{$c});
+ for($i=2; $i<@p; $i++) {
+ $p[$i] =~ /^(\S*)\-(.*)$/;
+ printf " \n", $sel{$1} ? "checked" : "";
+ print "$2 \n";
+ }
+ }
+ elsif ($p[1] == 3) {
+ $none = $p[2] ? $p[2] : $text{'config_none'};
+ printf " $none\n",
+ $c, $sttaconfig{$c} eq "" ? "checked" : "";
+ print " \n";
+ printf " \n",
+ $c, $sttaconfig{$c} eq "" ? "" : "checked";
+ print " \n";
+ }
+ elsif ($p[1] == 4) {
+ print "\n";
+ for($i=2; $i<@p; $i++) {
+ $p[$i] =~ /^(\S+)\-(.*)$/;
+ printf "$2\n",
+ $sttaconfig{$c} eq $1 ? "selected" : "";
+ }
+ print " \n";
+ }
+ elsif ($p[1] == 5) {
+ if ($p[2]) {
+ printf
+ " $p[2]\n",
+ $sttaconfig{$c} eq "" ? "checked" : "";
+ printf " \n",
+ $sttaconfig{$c} eq "" ? "" : "checked";
+ }
+ print &unix_user_input($c, $sttaconfig{$c});
+ }
+ elsif ($p[1] == 6) {
+ if ($p[2]) {
+ printf
+ " $p[2]\n",
+ $sttaconfig{$c} eq "" ? "checked" : "";
+ printf " \n",
+ $sttaconfig{$c} eq "" ? "" : "checked";
+ }
+ print &unix_group_input($c, $sttaconfig{$c});
+ }
+ elsif ($p[1] == 7) {
+ print " ",
+ &file_chooser_button($c, 1);
+ }
+ elsif ($p[1] == 8) {
+ print " ",
+ &file_chooser_button($c, 0);
+ }
+ elsif ($p[1] == 9) {
+ local $cols = $p[2] ? $p[2] : 40;
+ local $rows = $p[3] ? $p[3] : 5;
+ local $sp = $p[4] ? eval "\"$p[4]\"" : " ";
+ print "",
+ join("\n", split(/$sp/, $sttaconfig{$c})),
+ " \n";
+ }
+ elsif ($p[1] == 10) {
+ local $fv = $sttaconfig{$c};
+ for($i=2; $i<@p; $i++) {
+ $p[$i] =~ /^(\S*)\-(.*)$/;
+ printf " \n",
+ $sttaconfig{$c} eq $1 ? "checked" : "";
+ print "$2 \n";
+ $fv = undef if ($sttaconfig{$c} eq $1);
+ }
+ printf " \n",
+ $fv ? "checked" : "";
+ print " \n";
+ }
+ print " \n";
+ }
+}
+sub view_values_from
+{
+ foreach $lineform (@info_order) {
+ $c=$lineform->{'name'};
+ @p = split(/,/, $info{$c});
+ @ep = split(/,/, $einfo{$c});
+ if (scalar(@ep) > scalar(@p)) {
+ push(@p, @ep[scalar(@p) .. @ep-1]);
+ }
+ if ($p[1] == 11) {
+ print "\n" ;
+ print "\t" . $p[0] . " \n \n" ;
+ next;
+ }
+ print " $p[0] \n";
+ print "\n";
+ $qw = $sttaconfig{$c} =~ /'/ ? '"' : "'";
+ if ($p[1] == 0 || $p[1] == 12) {
+ $size = $p[2] ? "size=$p[2]" : "size=40";
+ $max = $p[3] ? "maxlength=$p[3]" : "";
+ $type = $p[1] == 12 ? "type=password" : "";
+ print "$sttaconfig{$c}\n";
+ }
+ elsif ($p[1] == 1) {
+ for($i=2; $i<@p; $i++) {
+ $p[$i] =~ /^(\S*)\-(.*)$/;
+ if ( $sttaconfig{$c} eq $1 ) { print "$2 \n";}
+ }
+ }
+ elsif ($p[1] == 2) {
+ local %sel;
+ map { $sel{$_}++ } split(/,/, $sttaconfig{$c});
+ for($i=2; $i<@p; $i++) {
+ $p[$i] =~ /^(\S*)\-(.*)$/;
+ if ( $sel{$1} ) { print "$2 \n";}
+ }
+ }
+ elsif ($p[1] == 3) {
+ $none = $p[2] ? $p[2] : $text{'config_none'};
+ if ( $sttaconfig{$c} ) { print "$c $sttaconfig{$c}\n";}
+ }
+ elsif ($p[1] == 4) {
+ for($i=2; $i<@p; $i++) {
+ $p[$i] =~ /^(\S+)\-(.*)$/;
+ if ( $sttaconfig{$c} eq $1 ) { print "$2\n";}
+ }
+ }
+ elsif ($p[1] == 5) {
+ if ($p[2]) {
+ if ( $sttaconfig{$c} ) { print "$p[2]\n";}
+ }
+ print &unix_user_input($c, $sttaconfig{$c});
+ }
+ elsif ($p[1] == 6) {
+ if ($p[2]) {
+ if ( $sttaconfig{$c} ) { print "$p[2]\n";}
+ }
+ print &unix_group_input($c, $sttaconfig{$c});
+ }
+ elsif ($p[1] == 7) {
+ print "$sttaconfig{$c}";
+ }
+ elsif ($p[1] == 8) {
+ print "$sttaconfig{$c}";
+ }
+ elsif ($p[1] == 9) {
+ local $cols = $p[2] ? $p[2] : 40;
+ local $rows = $p[3] ? $p[3] : 5;
+ local $sp = $p[4] ? eval "\"$p[4]\"" : " ";
+ print join("\n", split(/$sp/, $sttaconfig{$c})),"\n";
+ }
+ elsif ($p[1] == 10) {
+ local $fv = $sttaconfig{$c};
+ for($i=2; $i<@p; $i++) {
+ $p[$i] =~ /^(\S*)\-(.*)$/;
+ if ( $sttaconfig{$c} eq $1 ) { print "$2 \n";}
+ $fv = undef if ($sttaconfig{$c} eq $1);
+ }
+ printf "%s\n",
+ $fv ? "checked" : "";
+ print "$fv\n";
+ }
+ print " \n";
+ }
+}
+sub init_dataconf
+{
+ %sttaconfig=();
+ # Use config.info to parse config inputs
+ &read_file("$module_dir/configinit.info", \%info, \@info_order);
+ %einfo = %info;
+ foreach $o (@lang_order_list) {
+ &read_file("$module_dir/configinit.info.$o", \%info, \@info_order);
+ }
+ @info_order = &unique(@info_order);
+ &get_values_tosave;
+
+ &write_file("$configDef/$configValues", \%sttaconfig);
+
+ if ( $in{ldap_type} eq "OpenLDAP" ) {
+ $suffixcfg=".openldap";
+ } else {
+ $suffixcfg=".iplanet";
+ }
+ &read_file("$configDef/$listfcfgs$suffixcfg", \%listfcfgs, \@orderfcfgs);
+ @orderfcfgs = &unique(@orderfcfgs);
+ &read_file("$configDef/$configValues", \%sttaValues);
+
+ foreach $d (@orderfcfgs) {
+ %config=();
+ $nomFile=$d;
+ $nomFile=~ s/$suffixcfg//g;
+ &lock_file("$configDir/$nomFile");
+ &read_file("$configDef/$d", \%config);
+ foreach $o (@lang_order_list) {
+ &read_file("$configDef/$d.$o", \%config);
+ }
+ foreach $c (keys (%config)) {
+ foreach $v (keys (%sttaValues)) {
+ if ( $config{$c} =~ /$v/ ) {
+ $config{$c}=~s/$v/$sttaValues{$v}/g;
+ }
+ if ( $c eq $v && $c ne "" ) { $config{$c}=$sttaValues{$v} }
+ }
+ if ( $main::config{'tta_dir'} ne "" && $main::config{$c} ne "" ) {
+ $config{$c}=$main::config{$c}; # this is to migrate config file
+ }
+ }
+ &write_file("$configDir/$nomFile", \%config);
+ &unlock_file("$configDir/$nomFile");
+ }
+ &write_file("$configDir/$configValues", \%sttaValues);
+}
+
+1; # Return true
diff --git a/stta/configinit.info b/stta/configinit.info
new file mode 100644
index 0000000..5ca930e
--- /dev/null
+++ b/stta/configinit.info
@@ -0,0 +1,70 @@
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+#
+ldap_type=LDAP Software ,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+is_masterHost=Es Host Master de las Tablas del Servicio,1,true-true,false-false
+masterHostURL=Master Host URL for Service Tables,0,30
+is_ldapcache=Esta usando el servico LDAP-CACHE,1,true-true,false-false
+has_monitor=Está usando el Monitor TTA,1,true-true,false-false
+has_cronsess=Usa Cron para Listar Sessiones,1,true-true,false-false
+help_active=Usar ayuda en los campos entrada de datos,1,true-true,false-false
+
+HOSTSERVER-TITLE=Decripción del Servidor,0
+MASTER-HOSTNAME=Host Master Name for URLs de las Tablas del Servicio,0
+SAVE-PATH-DIR=Path del directorio para Salvar Copias, diffs, etcs,7
+TTA-SOFTWARE-DIR-PATH=Path del directorio de Tarantella,7
+HTTP-WEBMIN-PROTOCOL=Webmin Protocol,1,http-Normal,https-SSL
+
+OPENLDAP-SOFTWARE-DIR-PATH=Path del directorio de Sofware LDAP OpenLDAP,7
+OPENLDAP-LDAP-DIR-NAME=Directorio de Sofware LDAP OpenLDAP,7
+IPLANET-SOFTWARE-DIR-PATH=Path del directorio de Sofware LDAP IPLANET,7
+IPLANET-LDAP-DIR-NAME=Directorio de Sofware LDAP IPLANET,7
+TTALDAP-NAME=Nombre del directorio de configuración del LDAP,8
+LDAP-DAEMON=Nombre del daemon de ldap para "ps" ,8
+
+ORGANIZATION-TTA-DN=Raíz ENS en el árbol del directorio TTA,0
+ORGANIZATION-ROOT-LDAP-TOP-DN=Raíz DN en el árbol del directorio LDAP,0
+ORGANIZATION-ROOT-LDAP-USERS-DN=Raíz DN para usuarios en árbol LDAP,0
+
+LDAP-SERVER-HOSTNAME=Nombre de host o IP del servidor LDAP,0
+LDAP-SERVERPORT=Número de puerto del servidor LDAP,0,5
+LDAP-DIRECTORY-MANAGER-LOGIN=Credenciales de administrador del LDAP,0
+LDAP-PASSWORD=Password (texto) administrador LDAP,12
+LDAP-VERSION=version del Software de LDAP,0,2
+PRIMARY-LDAP-SERVER-TITLE=Descripción del servidor LDAP,0
+
+LDAP2-SERVER-HOSTNAME=Nombre de host o IP del servidor LDAP2,0
+LDAP2-SERVERPORT=Número de puerto del servidor LDAP2,0,5
+LDAP2-DIRECTORY-MANAGER-LOGIN=Credenciales de administrador del LDAP2,0
+LDAP2-PASSWORD=Password (texto) administrador LDAP2,12
+LDAP2-VERSION=version del Software de LDAP2,0,2
+SECONDARY-LDAP-SERVER-TITLE=Descripción del servidor LDAP2,0
+
+ORGANIZATION-ROOT-LDAPCACHE-TOP=Raíz DN en el árbol del directorio,0
+ORANIZATION-ROOT-USER-LDAPCACHE-DN=Path Base para Usuarios de TTA LDAP CACHE,0
+ORGANIZATION-ROOT-APPS-LDAPCACHE-DN=Path Base para Aplicaciones de TTA LDAP CACHE,0
+ORGANIZATION-ROOT-HOSTS-LDAPCACHE-DN=Path Base para Hosts de TTA LDAP CACHE,0
+CACHE-DOMAIN=Default LDAP CACHE domain for TTA login,0,20
+
+LDAPCACHE-SERVER-HOSTNAME=Nombre de host o IP del servidor LDAPCACHE,0
+LDAPCACHE-SERVERPORT=Número de puerto del servidor LDAPCACHE,0,5
+LDAPCACHE-DIRECTORY-MANAGER-LOGIN=Credenciales de administrador del LDAPCACHE,0
+LDAPCACHE-PASSWORD=Password (texto) administrador LDAPCACHE,12
+LDAPCACHE-VERSION=version del Software de LDAPCACHE,0,2
+PRIMARY-LDAPCACHE-SERVER-TITLE=Descripción del servidor LDAPCACHE,0
+TTACACHE-NAME=Nombre del directorio de configuración del LDAPCACHE,8
+
+LDAPCACHE2-SERVER-HOSTNAME=Nombre de host o IP del servidor LDAPCACHE2,0
+LDAPCACHE2-SERVERPORT=Número de puerto del servidor LDAPCACHE2,0,5
+LDAPCACHE2-DIRECTORY-MANAGER-LOGIN=Credenciales de administrador del LDAPCACHE2,0
+LDAPCACHE2-PASSWORD=Password (texto) administrador LDAPCACHE2,12
+LDAPCACHE2-VERSION=version del Software de LDAPCACHE2,0,2
+SECONDARY-LDAPCACHE-SERVER-TITLE=Descripción del servidor LDAPCACHE2,0
+
+COMPANY-DOMAIN=Dominio de empresa por defecto,0
+COMPANY-DOMAIN-FOR-EMAILS=Default mail Company domain for new users,0,20
+
+HTTP-SERVER-PORT=Número de puerto del servidor HTTP,0,5
+HTTP-SOFTWARE-DIR-LOG=Path del log de HTTP,8
+HTTPS-SERVER-PORT=Número de puerto del servidor HTTPS,0,5
+HTTPS-SOFTWARE-DIR-LOG=Path del log de HTTPS,8
+STTA-DEFS_LIST_PATH=Path del directorio de listas definidas para STTA,7
diff --git a/stta/configinit.info.en b/stta/configinit.info.en
new file mode 100644
index 0000000..e10e151
--- /dev/null
+++ b/stta/configinit.info.en
@@ -0,0 +1,70 @@
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+#
+ldap_type=LDAP Software ,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+is_masterHost=Is Tables Service Host Master ?,1,true-true,false-false
+masterHostURL=Tables Service Host Master URL,0,30
+is_ldapcache=Use LDAP Cache service ?,1,true-true,false-false
+has_monitor=Use STTA Monitor ?,1,true-true,false-false
+has_cronsess=Use Cron for sessions list ?,1,true-true,false-false
+help_active=Use help in forms fields ?,1,true-true,false-false
+
+HOSTSERVER-TITLE=Server description,0
+MASTER-HOSTNAME=Tables service Host Master Name,0
+SAVE-PATH-DIR=Copy save files dyrectory patih (diffs etc),7
+TTA-SOFTWARE-DIR-PATH=Tarantella software directory path,7
+HTTP-WEBMIN-PROTOCOL=Webmin Protocol,1,http-Normal,https-SSL
+
+OPENLDAP-SOFTWARE-DIR-PATH=LDAP software directory path (OpenLDAP),7
+OPENLDAP-LDAP-DIR-NAME=LDAP software directory (OpenLDAP),7
+IPLANET-SOFTWARE-DIR-PATH=LDAP software directory path (IPLANET),7
+IPLANET-LDAP-DIR-NAME=LDAP software directory (IPLANET),7
+TTALDAP-NAME=LDAP configuration directory name,8
+LDAP-DAEMON=LDAP daemon name for "ps" ,8
+
+ORGANIZATION-TTA-DN=ENS root in TTA directory tree,0
+ORGANIZATION-ROOT-LDAP-TOP-DN=DN root in LDAP directory tree,0
+ORGANIZATION-ROOT-LDAP-USERS-DN=LDAP user DN root in directory tree,0
+
+LDAP-SERVER-HOSTNAME=LDAP server host name or server IP,0
+LDAP-SERVERPORT=LDAP server port number,0,5
+LDAP-DIRECTORY-MANAGER-LOGIN=LDAP administrator credentials,0
+LDAP-PASSWORD=LDAP administrator password (text),12
+LDAP-VERSION=LDAP software version,0,2
+PRIMARY-LDAP-SERVER-TITLE=LDAP server description,0
+
+LDAP2-SERVER-HOSTNAME=LDAP 2 host name or server IP,0
+LDAP2-SERVERPORT=LDAP 2 sever port number,0,5
+LDAP2-DIRECTORY-MANAGER-LOGIN=LDAP 2 administrator credentials.0
+LDAP2-PASSWORD=LDAP 2 administrator password (text),12
+LDAP2-VERSION=LDAP 2 software version,0,2
+SECONDARY-LDAP-SERVER-TITLE=LDAP 2 server description,0
+
+ORGANIZATION-ROOT-LDAPCACHE-TOP=LDAP Cache DN root in directory tree,0
+ORANIZATION-ROOT-USER-LDAPCACHE-DN=LDAP Cache TTA Users base path,0
+ORGANIZATION-ROOT-APPS-LDAPCACHE-DN=LDAP Cache TTA Applications base path,0
+ORGANIZATION-ROOT-HOSTS-LDAPCACHE-DN=LDAP Cache TTA Hosts base path,0
+CACHE-DOMAIN=Default LDAP CACHE domain for TTA login,0,20
+
+LDAPCACHE-SERVER-HOSTNAME=LDAP Cache host name or server IP,0
+LDAPCACHE-SERVERPORT=LDAP Cache server port number,0,5
+LDAPCACHE-DIRECTORY-MANAGER-LOGIN=LDAP Cache administrator credentials,0
+LDAPCACHE-PASSWORD=LDAP Cache administrator password (text),12
+LDAPCACHE-VERSION=LDAP Cache software version,0,2
+PRIMARY-LDAPCACHE-SERVER-TITLE=LDAP Cache serer description,0
+TTACACHE-NAME=LDAP Cache configuration directory name,8
+
+LDAPCACHE2-SERVER-HOSTNAME=LDAP Cache 2 host name or server IP,0
+LDAPCACHE2-SERVERPORT=LDAP Cache 2 server port number,0,5
+LDAPCACHE2-DIRECTORY-MANAGER-LOGIN=LDAP Cache i2 administrator credentials,0
+LDAPCACHE2-PASSWORD=LDAP Cache 2 administrator password (text),12
+LDAPCACHE2-VERSION=LDAP Cache 2 software version,0,2
+SECONDARY-LDAPCACHE-SERVER-TITLE=LDAP Cache 2 server description,0
+
+COMPANY-DOMAIN=Default company domain,0
+COMPANY-DOMAIN-FOR-EMAILS=Default mail Company domain for new users,0,20
+
+HTTP-SERVER-PORT=HTTP server port number,0,5
+HTTP-SOFTWARE-DIR-LOG=HTTP log path,8
+HTTPS-SERVER-PORT=HTTPS server port number,0,5
+HTTPS-SOFTWARE-DIR-LOG=HTTPS log path,8
+STTA-DEFS_LIST_PATH=Directory path for STTA defined lists,7
diff --git a/stta/configinit.info.es b/stta/configinit.info.es
new file mode 100644
index 0000000..8946a99
--- /dev/null
+++ b/stta/configinit.info.es
@@ -0,0 +1,70 @@
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+#
+ldap_type=LDAP Software ,1,OpenLDAP-OpenLDAP,IPLANET-IPLANET
+is_masterHost=Es Host Master de las Tablas del Servicio ?,1,true-true,false-false
+masterHostURL=URL del Host Master de la tablas del servicio,0,30
+is_ldapcache=Esta usando el servicio LDAP-CACHE,1,true-true,false-false
+has_monitor=Está usando el Monitor STTA ? ,1,true-true,false-false
+has_cronsess=Usa Cron para Listar Sessiones ? ,1,true-true,false-false
+help_active=Usar ayuda en los campos entrada de datos ?,1,true-true,false-false
+
+HOSTSERVER-TITLE=Decripción del Servidor,0
+MASTER-HOSTNAME=Host Master Name for URLs de las Tablas del Servicio,0
+SAVE-PATH-DIR=Path del directorio para Salvar Copias, diffs, etcs,7
+TTA-SOFTWARE-DIR-PATH=Path del directorio de Tarantella,7
+HTTP-WEBMIN-PROTOCOL=Webmin Protocol,1,http-Normal,https-SSL
+
+OPENLDAP-SOFTWARE-DIR-PATH=Path del directorio de Sofware LDAP OpenLDAP,7
+OPENLDAP-LDAP-DIR-NAME=Directorio de Sofware LDAP OpenLDAP,7
+IPLANET-SOFTWARE-DIR-PATH=Path del directorio de Sofware LDAP IPLANET,7
+IPLANET-LDAP-DIR-NAME=Directorio de Sofware LDAP IPLANET,7
+TTALDAP-NAME=Nombre del directorio de configuración del LDAP,8
+LDAP-DAEMON=Nombre del daemon de ldap para "ps" ,8
+
+ORGANIZATION-TTA-DN=Raíz ENS en el árbol del directorio TTA,0
+ORGANIZATION-ROOT-LDAP-TOP-DN=Raíz DN en el árbol del directorio LDAP,0
+ORGANIZATION-ROOT-LDAP-USERS-DN=Raíz DN para usuarios en árbol LDAP,0
+
+LDAP-SERVER-HOSTNAME=Nombre de host o IP del servidor LDAP,0
+LDAP-SERVERPORT=Número de puerto del servidor LDAP,0,5
+LDAP-DIRECTORY-MANAGER-LOGIN=Credenciales de administrador del LDAP,0
+LDAP-PASSWORD=Password (texto) administrador LDAP,12
+LDAP-VERSION=version del Software de LDAP,0,2
+PRIMARY-LDAP-SERVER-TITLE=Descripción del servidor LDAP,0
+
+LDAP2-SERVER-HOSTNAME=Nombre de host o IP del servidor LDAP2,0
+LDAP2-SERVERPORT=Número de puerto del servidor LDAP2,0,5
+LDAP2-DIRECTORY-MANAGER-LOGIN=Credenciales de administrador del LDAP2,0
+LDAP2-PASSWORD=Password (texto) administrador LDAP2,12
+LDAP2-VERSION=version del Software de LDAP2,0,2
+SECONDARY-LDAP-SERVER-TITLE=Descripción del servidor LDAP2,0
+
+ORGANIZATION-ROOT-LDAPCACHE-TOP=Raíz DN en el árbol del directorio,0
+ORANIZATION-ROOT-USER-LDAPCACHE-DN=Path Base para Usuarios de TTA LDAP CACHE,0
+ORGANIZATION-ROOT-APPS-LDAPCACHE-DN=Path Base para Aplicaciones de TTA LDAP CACHE,0
+ORGANIZATION-ROOT-HOSTS-LDAPCACHE-DN=Path Base para Hosts de TTA LDAP CACHE,0
+CACHE-DOMAIN=Default LDAP CACHE domain for TTA login,0,20
+
+LDAPCACHE-SERVER-HOSTNAME=Nombre de host o IP del servidor LDAPCACHE,0
+LDAPCACHE-SERVERPORT=Número de puerto del servidor LDAPCACHE,0,5
+LDAPCACHE-DIRECTORY-MANAGER-LOGIN=Credenciales de administrador del LDAPCACHE,0
+LDAPCACHE-PASSWORD=Password (texto) administrador LDAPCACHE,12
+LDAPCACHE-VERSION=version del Software de LDAPCACHE,0,2
+PRIMARY-LDAPCACHE-SERVER-TITLE=Descripción del servidor LDAPCACHE,0
+TTACACHE-NAME=Nombre del directorio de configuración del LDAPCACHE,8
+
+LDAPCACHE2-SERVER-HOSTNAME=Nombre de host o IP del servidor LDAPCACHE2,0
+LDAPCACHE2-SERVERPORT=Número de puerto del servidor LDAPCACHE2,0,5
+LDAPCACHE2-DIRECTORY-MANAGER-LOGIN=Credenciales de administrador del LDAPCACHE2,0
+LDAPCACHE2-PASSWORD=Password (texto) administrador LDAPCACHE2,12
+LDAPCACHE2-VERSION=version del Software de LDAPCACHE2,0,2
+SECONDARY-LDAPCACHE-SERVER-TITLE=Descripción del servidor LDAPCACHE2,0
+
+COMPANY-DOMAIN=Dominio de empresa por defecto,0
+COMPANY-DOMAIN-FOR-EMAILS=Default mail Company domain for new users,0,20
+
+HTTP-SERVER-PORT=Número de puerto del servidor HTTP,0,5
+HTTP-SOFTWARE-DIR-LOG=Path del log de HTTP,8
+HTTPS-SERVER-PORT=Número de puerto del servidor HTTPS,0,5
+HTTPS-SOFTWARE-DIR-LOG=Path del log de HTTPS,8
+STTA-DEFS_LIST_PATH=Path del directorio de listas definidas para STTA,7
diff --git a/stta/copia/installupd-lib.pl b/stta/copia/installupd-lib.pl
new file mode 100755
index 0000000..bb6cd08
--- /dev/null
+++ b/stta/copia/installupd-lib.pl
@@ -0,0 +1,407 @@
+# installupd-lib.pl
+# STTA Rev. 1.3 Copyright (c) 2001-2002 Jesús Pérez Lorenzo --- license GNU GPL
+# Common functions for Install / update
+
+sub show_tta_serv_table
+{
+ &load_ttaprops();
+ &scanSTTA_services("all");
+$text_str="";
+ &checkSTTA_services("all","status",\$text_str);
+ &printSTTA_config(\$text_str,"=");
+ $text_str=~s/STTA://g;
+ $text_str=~s/\n/<\/b><\/td><\/tr>/g;
+ $text_str=~s/==//g;
+ $html_str.=" ".$text{srvSTATUS}." ";
+ $html_str.=" ";
+ $html_str.="";
+ $html_str.="
";
+ print $html_str;
+ print " \n";
+}
+
+sub show_procServ
+{
+ my ($serv) = $_[0] || return undef;
+ my ($outhtml) = $_[1] || 1;
+ my ($edit_ps) = $_[2] || 1;
+
+ $title_list=$serv."ps_list_title";
+ $title_idx=$serv."ps_title";
+ print " $text{$title_idx} \n";
+
+ $daemon=$serv."_daemon";
+ @line=split(/\//, $config{$daemon}, -1);
+ $daemonStr=$line[$#line];
+
+ return &get_processes_list($daemonStr,$outhtml,$edit_ps);
+}
+
+sub check_ps_serv
+{
+ print " ";
+ @ttaps=&show_procServ("tta");
+ print "
";
+ @ldapps=&show_procServ("ldap");
+ print "
";
+ @ldapcacheps=&show_procServ("ldapcache");
+ print "
\n";
+}
+
+sub check_ttabase
+{
+ if ( $debug eq 0 ) { $debug=1 };
+ print " \n";
+ print "Tarantella: $text{chk_srv_title} - $config{tta_base} - \n";
+ # loading object attributes ...
+ $ens_obj=$config{tta_base};
+ $op="attributes";
+ $type_cmd="attributes";
+ $status_cmd=&run_tta_cmd($type_cmd,$ens_obj);
+ if ( !$status_cmd ) {
+ print " ".$text{'tta_noobject'}." ";
+ &html_errshow("tta");
+ } else {
+ # Assigning and collecting values to be used in the form ...
+ %h_ttaobj=&load_ttaobj();
+ }
+ if ( $debug lt 2 ) { unlink($temp_f); }
+ print "".&text('viewlog_action',$stta_sid)." \n";
+ print "
\n";
+}
+
+sub out_javascript
+{
+ print "\n";
+ print "\n";
+}
+
+sub out_initJS
+{
+ print "\n";
+}
+
+sub out_head_instupd
+{
+ print " \n";
+ print " ";
+ print " \n";
+ print "$text{installupd_title} \n";
+ if ( $task eq "" ) { return };
+ $opLock="unlockstta";
+ if ( ! -r "$config_directory/$module_name/.install" ) { $opLock="lockstta"; }
+ $opLock_msg=$opLock,"_msg";"unlockstta_m";
+ print "\n";
+ print " ".&hlink(" ",$opLock)."\n";
+ print " \n";
+ print " \n";
+}
+
+#To set $tdone and ruleHash
+sub set_hashes_rules
+{
+ if ( $task eq "" ) { return };
+
+ my $task_proc = $task."_proc";
+ my $task_steps = $task."_steps";
+ my $task_brand = $task."_brand";
+
+ $rulesHash{'proc'}=$rules{$task_proc};
+ if ( defined($rules{$task_brand} ) ) { $rulesHash{'brand'}=$rules{$task_brand};}
+
+ my @ruleline = split(/,/,$rules{$task},-1);
+ my @tdoneline = split(/,/,$tdone,-1);
+ my @stepsline = split(/,/,$rules{$task_steps},-1);
+
+ if ( $tdone eq "" ) {
+ $tdone="";
+ for ( $i = 0 ; $i < $#ruleline ; $i++ ) { $tdone.= "0,"; }
+ $tdone.= "0";
+ }
+ @tdoneline = split(/,/,$tdone,-1);
+ $i=0;
+ foreach $r (@ruleline) {
+ $rulesHash{$r}=$stepsline[$i].":".$tdoneline[$i];
+ $i++;
+ }
+ $rulesHash{'ntask'}=$i;
+ if ( $nextStep eq "" ) { $nextStep=$ruleline[0] };
+}
+
+# To track visited links !!! and set Step & nextStep
+sub check_visit_tasks
+{
+ my @ruleline = split(/,/,$rules{$task},-1);
+ my @lineStep =();
+
+ if ( $Step eq "" ) { $Step=$ruleline[0] };
+ if ( $nextStep eq "" ) { $nextStep=$ruleline[0] };
+
+ $tdone="";
+ $i=0;
+ foreach $r (@ruleline) {
+ my @lineStep = split(/:/,$rulesHash{$r},-1);
+ if ( $Step eq $r ) {
+ if ( $Step eq $nextStep ) {
+ $j=$i+1;
+ if ( $j gt $#ruleline ) { $j=0 };
+ $nextStep=$ruleline[$j];
+ }
+ $lineStep[1]++; i
+ }
+ $tdone.= $lineStep[1].",";
+ $i++;
+ }
+}
+
+sub make_steps_tables
+{
+ my @statStep =();
+ my @ruleline = split(/,/,$rules{$task},-1);
+
+ print "
\n";
+ print "\n";
+ print " $text{$task} \n";
+ print " $text{work_secuence}: \n";
+ print "
\n";
+ print "\n";
+ print " $text{$Step} \n";
+ print " \n";
+ print "\n";
+
+ # First try languages in order for particular $task/tmp/info .. if got it.. last
+ # Second try languages in order for global $task/info.. if got it ... last
+ $infoTmpDirInstall= "$DirInstall/tmp/info";
+ $infoDirInstall= "$DirInstall/info";
+ foreach $l (@lang_order_list) {
+ if ( &out_htmlfile("$infoTmpDirInstall/$l/$Step.html") eq 0 ) { last; };
+ if ( &out_htmlfile("$infoDirInstall/$l/$Step.html") eq 0 ) { last; };
+ }
+ print " \n";
+ print "
\n";
+ return 0;
+}
+
+sub out_sel_task
+{
+ print "
\n";
+ print "$text{f_taskinstupd} \n";
+ print " \n";
+ print "
\n";
+ print "\n";
+}
+sub get_file_updpatch
+{
+if ($file) { return };
+ print "\n";
+ print " ".&text('tit_fileupdpatch',$task)." \n";
+ print "
\n";
+ print "$text{'warn_updpatch'} \n";
+}
+
+sub do_instupdfile
+{
+ my $wkdir="$DirInstall/tmp";
+ if ( -r "$wkdir/$task.pl" ) { do "$wkdir/$task.pl"; }
+}
+
+sub run_instupd_procedure
+{
+ if ( $rulesHash{'proc'} ne "" ) { eval ("&$rulesHash{proc}()") }
+}
+
+sub running_fileName
+{
+ my $wkdir="$DirInstall/tmp";
+ if ( $wkdir eq "/tmp") {
+ print &text('dir_erraccess DirInstall ',$wkdir)."\n";
+ return;
+ }
+ print "\n";
+ print " ".&text('tit_runfilename',$fileName)." \n";
+ print " \n";
+ print "\n";
+ if ( ! -r $fileName || $fileName =~ /^(\/\*)/ ) {
+ print &text('file_erraccess',$fileName)." \n";
+ } else {
+ if ( ! -d $wkdir ) { system("mkdir -p $wkdir") }
+ if ( ! -d $wkdir ) {
+ print &text('dir_erraccess',$wkdir)."\n";
+ } else {
+ system("rm -f $wkdir/* 2>/dev/null");
+ $str="cd $wkdir; ";
+ if ( $fileName =~ /.tar.gz$/ ) { $str.="cat $fileName | gunzip | tar xvf -" }
+ elsif ( $fileName =~ /.cpio.gz$/ ) { $str.="cat $fileName | gunzip | cpio -idumv " }
+ elsif ( $fileName =~ /.gz$/ ) {
+ @line=split(/\//, $fileName, -1);
+ $nomf=$line[$#line];
+ $nomf=~s/.gz$//g;
+ $str.="cat $fileName | gunzip > $nomf";
+ }
+ elsif ( $fileName =~ /.cpio$/ ) { $str.="cpio -idumvI $fileName" }
+ elsif ( $fileName =~ /.tar$/ ) { $str.="tar xvf $fileName" }
+ elsif ( $fileName =~ /.shx$/ ) { $str.="sh $fileName" }
+ else { $str = "cp $fileName . ";}
+ if ( ! &run_cmd($str)) { &html_errshow("cmd")};
+ #print "$str\n";
+ }
+ }
+ print "
\n";
+}
+
+
+sub lock_insupd_stta
+{
+ my $task_steps = $task."_steps";
+ open(FILEINSTALL, ">>$config_directory/$module_name/.install");
+ print FILEINSTALL "# ----$_[0]---$task---------------------------\n";
+ if ( $task ) { print FILEINSTALL "task=$task\n"; }
+ print FILEINSTALL "now=".&set_now($now)."\n";
+ if ( $Step ) {print FILEINSTALL "step=$Step\n"; }
+ if ( $nextStep ) {print FILEINSTALL "next=$nextStep\n"; }
+ if ( $rules{$task} ) {print FILEINSTALL "rule=$rules{$task}\n"; }
+ if ( $tdone ) {print FILEINSTALL "tdone=$tdone\n"; }
+ if ( $rules{$task_steps} ) {print FILEINSTALL "steps=$rules{$task_steps}\n";}
+ if ( $rulesHash{'proc'} ) {print FILEINSTALL "proc=$rulesHash{'proc'}\n"; }
+ if ( $rulesHash{'brand'} ) {print FILEINSTALL "brand=$rulesHash{'brand'}\n"; }
+ close (FILEINSTALL);
+}
+
+# Unlock STTA and move all to $task logfile
+sub unlock_insupd_stta
+{
+ my $Line="";
+ unless ( open(FILELOG,"$config_directory/$module_name/.install") ) { return -1}
+ &lock_insupd_stta($_[0]);
+ @ary = ;
+ close (FILELOG);
+ my $ahoraf=&out_now_filename($now);
+ my $logfile=$DirInstall."/".$ahoraf."_log";
+ open(FILEINSTALL, ">>$logfile");
+ foreach $line (@ary) { print FILEINSTALL "$line"; }
+ close (FILEINSTALL);
+ system (" rm -f $config_directory/$module_name/.install");
+}
+
+sub doStep
+{
+ if ( $Step eq "" ) { return };
+ my $foo="";
+ my @statStep = split(/:/,$rulesHash{$Step},-1);
+
+ print "\n";
+ print " $text{$Step} \n";
+ print " \n";
+ print "\n";
+
+ if ( $statStep[0] eq 1 && $statStep[1] gt 1 ) {
+ print &text('error_runonce_step', $text{$Step});
+ } else {
+ &lock_insupd_stta($Step);
+ if ( $Step eq "lockstta" ) { &lock_insupd_stta("lock"); }
+ if ( $Step eq "dataconf" ) {
+ $JScodeInit="showWin('config','')";
+# } elsif ( $Step eq "defslists" ) {
+# } elsif ( $Step eq "ldapbasedns" ) {
+# } elsif ( $Step eq "ttaensbase" ) {
+ } elsif ( $Step eq "checklist" ) {
+ $foo=""; # Do nothing so all test will are at end of page
+ $JScodeInit="showWin(config.cgi,'')";
+# } elsif ( $Step eq "makelogsdir" ) {
+# } elsif ( $Step eq "maketools" ) {
+# } elsif ( $Step eq "expectchanges" ) {
+ } elsif ( $Step eq "unlockstta" ) {
+ &unlock_insupd_stta;
+# } elsif ( $Step eq "fixstampdata" ) {
+ } elsif ( $Step eq "doupdate" ) {
+ &run_instupd_procedure();
+ } elsif ( $Step eq "doupgrade" ) {
+ &run_instupd_procedure();
+ } elsif ( $Step eq "doupatch" ) {
+ &run_instupd_procedure();
+# commenting following lines nothing is done if the "Step" has no code to handle
+# interesting to manage "info" files
+# } else ( ! $Step =~ /readme/ ) {
+# print &text('error_unknown_step', $Step, $text{$Step});
+ }
+ }
+ print "
\n";
+}
+1; # Return true
diff --git a/stta/copia/stta_installupd.cgi b/stta/copia/stta_installupd.cgi
new file mode 100755
index 0000000..c931770
--- /dev/null
+++ b/stta/copia/stta_installupd.cgi
@@ -0,0 +1,208 @@
+#!/usr/bin/perl
+# stta_installupd.cgi
+# ... Init Update Services with Tarantella.
+# STTA Rev. 1.3 Copyright (c) 2001-2002 Jesús Pérez Lorenzo --- license GNU GPL
+
+require '../web-lib.pl';
+do 'web-lib.pl';
+do 'global-lib.pl';
+do 'lists-lib.pl';
+do 'html-lib.pl';
+do 'ttasess-lib.pl';
+do 'monitor-lib.pl';
+do 'print-lib.pl';
+do "config_info.pl";
+do "ldap-lib.pl";
+do "installupd-lib.pl";
+
+&init_config();
+&load_dataconf();
+$white="#ffffff";
+&set_variables_cfg();
+
+# Loading rules (alis paranoia rules) --- defaults & local $task rules & tmp rules
+$rulesFile= "$root_directory/stta/install/rules";
+&read_file("$rulesFile", \%rules);
+$rulesFile= "$root_directory/stta/$task/rules";
+&read_file("$rulesFile", \%rules);
+$rulesFile= "$root_directory/stta/$task/tmp/rules";
+&read_file("$rulesFile", \%rules);
+
+$hostname = &get_system_hostname();
+$ver = &get_webmin_version();
+&get_miniserv_config(\%miniserv);
+if ($gconfig{'real_os_type'}) {
+ if ($gconfig{'os_version'} eq "*") {
+ $ostr = $gconfig{'real_os_type'};
+ }
+ else {
+ $ostr = "$gconfig{'real_os_type'} $gconfig{'real_os_version'}";
+ }
+ }
+else {
+ $ostr = "$gconfig{'os_type'} $gconfig{'os_version'}";
+ }
+%access = &get_module_acl();
+%ttaprops=();
+@ttahosts=();
+%sttaparams=();
+$cginame= $0 =~ /([^\/]+)$/ ? $1 : '-';
+$ldap_ok=true;
+$ldapcache_ok=true;
+$tta_ok=true;
+@access_types = $access{'types'} eq '*' ? (0 .. 100)
+ : split(/\s+/, $access{'types'});
+map { $access_types{$_}++ } @access_types;
+$debug=$config{debug_code};
+
+&foreign_require("proc", "proc-lib.pl");
+
+&ReadParse();
+%rulesHash=();
+$task=$in{task} || "";
+$cgi = $in{cgi};
+$msg = $in{msg};
+$tdone = $in{td} || "";
+$lockDo = $in{lck} || "";
+$nextStep=$in{next} || "";
+$redir=$in{rd} || "" ;
+$Step=$in{step} || "" ;
+$fileName=$in{file} || "" ;
+$now = time();
+$JScodeInit=""; # to hold code for initJs config by example
+
+if ( $redir ne "" ) {
+ &headerstta($text{'index_title'}, "images/$current_lang/stta_stta.gif", "sttaintro",undef, 1, 0,$text{headpage_rigth} );
+ do "index/insupd.pl";
+ do "footer.pl";
+ exit;
+}
+if ( $task ne "" ) { $DirInstall= "$root_directory/stta/$task"; }
+&set_hashes_rules();
+
+if ( $lockDo eq "lockstta" ) { &lock_insupd_stta($lockDo); }
+if ( $lockDo eq "unlockstta") { &unlock_insupd_stta($lockDo); }
+if ( ! -r "$config_directory/$module_name/.install" &&
+ $Step eq "lockstta" ) { &lock_insupd_stta("lock"); }
+
+&headerstta($text{'index_installupd'}, "", "insupd" ,undef,1,1,$text{headpage_rigth},"","onLoad='initJs();'" );
+&out_javascript();
+ print "\n";
+ print "
\n";
+ print " $text{'titidx_installupd'} ";
+ print " \n";
+ print "Webmin $ver - $hostname - $ostr";
+ print " \n";
+
+ &out_head_instupd();
+
+# Seleccionar Task .... (new request)
+if ( $task eq "" ) { I
+ &out_sel_task();
+ &footHere;
+ &out_initJS;
+ exit
+};
+# If file to load get Name ... (new request)
+if ( $task ne "install" && $fileName eq "" && $Step eq "" ) { I
+ &get_file_updpatch(); # paso 0 from no-file for some task not install
+ &footHere;
+ &out_initJS;
+ exit
+}
+
+# If file to load Unpack it ... and keep going
+if ( $task ne "install" && $fileName ne "" && $Step eq "" ) {
+ &running_fileName(); # unpack
+}
+
+# Always "do" perl file for $task in $InstallDir/$task/tmp
+&do_instupdfile();
+
+if ( ! -r "$config_directory/$module_name/.install" ) {
+ &check_visit_tasks();
+ &make_steps_tables();
+ if ( $task ne "" && $Step ne "" ) {
+ print "\n";
+ print " $text{warn_lockstta2} \n";
+ print "
\n";
+ }
+} else {
+ if ( $Step ne "" ) {
+ &check_visit_tasks();
+ &doStep();
+ }
+ &make_steps_tables();
+}
+
+if ( $Step ne "checklist" && $task ne "check" ) { &footHere; &out_initJS; exit } ;
+ # From here all checking staff .....
+ print " \n";
+
+
+ $config{iferror_services}="warn";
+
+&show_tta_serv_table();
+&check_ps_serv();
+&check_ttabase();
+
+ if ( $debug eq 0 ) { $debug=2 }
+
+print " \n";
+ $ldap_server=$in{ldapserver} || "1";
+ print " \n";
+ if ( "$ldap_server" eq "1" ) {
+ print $config{ldap_type}.":".$config{ldap_server}.":".$config {ldap_port};
+ } elsif ( "$ldap_server" eq "2" ) {
+ print $config{ldap2_type}.":".$config{ldap2_server}.":".$config {ldap2_port};
+ }
+ print " \n";
+ if ( $ldap_ok eq true ) {
+ print "LDAP: $text{chk_srv_title} - $config{ldap_base} - \n";
+ &connect();
+ $dn=$config{ldap_base};
+ $cur_entry=&sel_ldap_obj($dn,"o=*");
+ if ( !defined($cur_entry) || $cur_entry->dn ne $dn) {
+ &html_errshow("ldap")
+ } else {
+ &ldap_logerr("browse $dn");
+ print "".&text('viewlog_action',$stta_sid)." \n";
+ }
+ } else { print "LDAP: - $config{ldap_base} - ???? \n";}
+print "
\n";
+
+print " \n";
+ $ldapcache_server=$in{ldapcacheserver} || "1";
+ print " \n";
+ if ( "$ldapcache_server" eq "1" ) {
+ print $config{ldapcache_type}.":".$config{ldapcache_server}.":".$config {ldapcache_port};
+ } elsif ( "$ldapcache_server" eq "2" ) {
+ print $config{ldapcache2_type}.":".$config{ldapcache2_server}.":".$config {ldapcache2_port};
+ }
+ print " \n";
+ if ( $ldapcache_ok eq true ) {
+ print "LDAP Cache: $text{chk_srv_title} - $config{ldapcache_base} - \n";
+ &connect_cache();
+ $dnCache=$config{ldapcache_base};
+ $cur_entry=&sel_cache_obj($dnCache,"o=*");
+ if ( !defined($cur_entry) || $cur_entry->dn ne $dnCache) {
+ &html_errshow("ldapcache")
+ } else {
+ &ldapcache_logerr("browse $dn");
+ print "".&text('viewlog_action',$stta_sid)." \n";
+ }
+ } else { print "LDAP Cache: $text{chk_srv_title} - $config{ldapcache_base} - ???? \n"};
+ print "
\n";
+
+ $text_str="";
+ $text_str=~s/STTA:/ /g;
+ $text_str=~s/\n/<\/b><\/td><\/tr>/g;
+ $text_str=~s/==//g;
+ print $text_str;
+
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ do "footer.pl";
+ &out_initJS;
+ exit;
+
diff --git a/stta/dataconf/base/alias b/stta/dataconf/base/alias
new file mode 100755
index 0000000..3cb0803
--- /dev/null
+++ b/stta/dataconf/base/alias
@@ -0,0 +1,3 @@
+servers_alias=
+users_alias=
+apps_alias=
diff --git a/stta/dataconf/base/cache b/stta/dataconf/base/cache
new file mode 100755
index 0000000..c5784b5
--- /dev/null
+++ b/stta/dataconf/base/cache
@@ -0,0 +1,13 @@
+cache_rulelimit=
+cacherule_1=
+cacherule_2=
+cacherule_3=
+cacherule_4=
+cacherule_5=
+cacherule_6=
+cacherule_7=
+cache_domain=
+cache_chkdefaults=
+cache_chkttalogin=
+cache_debuglog_dir=
+cache_debuglog=
diff --git a/stta/dataconf/base/debug b/stta/dataconf/base/debug
new file mode 100755
index 0000000..7dbd45f
--- /dev/null
+++ b/stta/dataconf/base/debug
@@ -0,0 +1,7 @@
+debug_code=
+iferror_services=
+iferror_objects=
+output_cgis=
+cache_scandebug=
+ldap_debug=
+ldapcache_debug=
diff --git a/stta/dataconf/base/feedback b/stta/dataconf/base/feedback
new file mode 100755
index 0000000..312d919
--- /dev/null
+++ b/stta/dataconf/base/feedback
@@ -0,0 +1,5 @@
+feedback_name=
+feedback_email=
+feedback_mailserver=
+feedback_dirname=
+feedback_packcmd=
diff --git a/stta/dataconf/base/http b/stta/dataconf/base/http
new file mode 100755
index 0000000..5316dcf
--- /dev/null
+++ b/stta/dataconf/base/http
@@ -0,0 +1,18 @@
+http_port=
+http_log_name=
+http_log_perm=
+http_log_fperm=
+http_log_tail=
+httpacc_log_name=
+httpacc_log_perm=
+httpacc_log_fperm=
+httpacc_log_tail=
+https_port=
+https_log_name=
+https_log_perm=
+https_log_fperm=
+https_log_tail=
+httpsacc_log_name=
+httpsacc_log_perm=
+httpsacc_log_fperm=
+httpsacc_log_tail=
diff --git a/stta/dataconf/base/interface b/stta/dataconf/base/interface
new file mode 100755
index 0000000..424f092
--- /dev/null
+++ b/stta/dataconf/base/interface
@@ -0,0 +1,14 @@
+interface=
+default_cat=
+order_cat=
+bgimage=
+cs_page=
+cs_table=
+cs_header=
+cs_link=
+cs_text=
+cs_revtext=
+help_width=
+help_height=
+back_return=
+motd_style=
diff --git a/stta/dataconf/base/ldap b/stta/dataconf/base/ldap
new file mode 100755
index 0000000..40cee9f
--- /dev/null
+++ b/stta/dataconf/base/ldap
@@ -0,0 +1,24 @@
+ldap_server=
+ldap_servertitle=
+ldap_port=
+ldap_user=
+ldap_passwd=
+ldap_version=
+ldap_type=
+ldap_dirname=
+ldap_conf=
+ldap_stop=
+ldap_start=
+ldap_restart=
+ldap_backup=
+ldap_restore=
+ldap_load=
+ldap_ldif=
+ldap_server_log_name=
+ldap_server_log_perm=
+ldap_server_log_fperm=
+ldap_server_log_tail=
+ldap_server_acclog_name=
+ldap_server_acclog_perm=
+ldap_server_acclog_fperm=
+ldap_server_acclog_tail=
diff --git a/stta/dataconf/base/ldap2 b/stta/dataconf/base/ldap2
new file mode 100755
index 0000000..bd7dae9
--- /dev/null
+++ b/stta/dataconf/base/ldap2
@@ -0,0 +1,9 @@
+ldap2_server=
+ldap2_servertitle=
+ldap2_port=
+ldap2_user=
+ldap2_passwd=
+ldap2_version=
+ldap2_type=
+ldap2_conf=
+ldap2_restart=
diff --git a/stta/dataconf/base/ldap_vars b/stta/dataconf/base/ldap_vars
new file mode 100755
index 0000000..bf4f959
--- /dev/null
+++ b/stta/dataconf/base/ldap_vars
@@ -0,0 +1,12 @@
+ldap_daemon=
+ldap_dir=
+ldap_base=
+ldap_dnusers=
+ldap_replicate=
+ldap_ldif_dir=
+ldap_backup_dir=
+ldap_log_name=
+ldap_log_perm=
+ldap_log_fperm=
+ldap_log_tail=
+url_ldap=
diff --git a/stta/dataconf/base/ldapcache b/stta/dataconf/base/ldapcache
new file mode 100755
index 0000000..728dae1
--- /dev/null
+++ b/stta/dataconf/base/ldapcache
@@ -0,0 +1,24 @@
+ldapcache_server=
+ldapcache_servertitle=
+ldapcache_port=
+ldapcache_user=
+ldapcache_passwd=
+ldapcache_version=
+ldapcache_type=
+ldapcache_dirname=
+ldapcache_conf=
+ldapcache_stop=
+ldapcache_start=
+ldapcache_restart=
+ldapcache_backup=
+ldapcache_restore=
+ldapcache_load=
+ldapcache_ldif=
+ldapcache_server_log_name=
+ldapcache_server_log_perm=
+ldapcache_server_log_fperm=
+ldapcache_server_log_tail=
+ldapcache_server_acclog_name=
+ldapcache_server_acclog_perm=
+ldapcache_server_acclog_fperm=
+ldapcache_server_acclog_tail=
diff --git a/stta/dataconf/base/ldapcache2 b/stta/dataconf/base/ldapcache2
new file mode 100755
index 0000000..9f09df3
--- /dev/null
+++ b/stta/dataconf/base/ldapcache2
@@ -0,0 +1,9 @@
+ldapcache2_server=
+ldapcache2_servertitle=
+ldapcache2_port=
+ldapcache2_user=
+ldapcache2_passwd=
+ldapcache2_version=
+ldapcache2_type=
+ldapcache2_conf=
+ldapcache2_restart=
diff --git a/stta/dataconf/base/ldapcache_vars b/stta/dataconf/base/ldapcache_vars
new file mode 100755
index 0000000..653a1ea
--- /dev/null
+++ b/stta/dataconf/base/ldapcache_vars
@@ -0,0 +1,10 @@
+ldapcache_daemon=
+ldapcache_base=
+ldapcache_defaultobj=
+ldapcache_dndefaultobj=
+tta_ldapcacheUser=
+tta_ldapcacheHosts=
+tta_ldapcacheApps=
+ldapcache_ldif_dir=
+ldapcache_backup_dir=
+ldapcache_replicate=
diff --git a/stta/dataconf/base/list b/stta/dataconf/base/list
new file mode 100755
index 0000000..7670faa
--- /dev/null
+++ b/stta/dataconf/base/list
@@ -0,0 +1,11 @@
+ou_list=
+sysusers_list=
+hosts_list=
+grphosts_list=
+apps_list=
+grpapps_list=
+links_list=
+acts_list=
+domains_list=
+profcache_list=
+hostsuser_list=
diff --git a/stta/dataconf/base/logs b/stta/dataconf/base/logs
new file mode 100755
index 0000000..3988ea1
--- /dev/null
+++ b/stta/dataconf/base/logs
@@ -0,0 +1,12 @@
+list_debuglogs_name=
+list_debuglogs_perm=
+list_debuglogs_fperm=
+list_debuglogs_delhours=
+list_sttalogs_name=
+list_sttalogs_perm=
+list_sttalogs_fperm=
+list_sttalogs_delhours=
+list_backups_name=
+list_backups_perm=
+list_backups_fperm=
+list_backups_delhours=
diff --git a/stta/dataconf/base/main b/stta/dataconf/base/main
new file mode 100755
index 0000000..6021201
--- /dev/null
+++ b/stta/dataconf/base/main
@@ -0,0 +1,13 @@
+check_services=
+is_masterHost=
+masterHostURL=
+masterHost=
+is_ldapcache=
+has_cronsess=
+has_monitor=
+has_ldapusers=
+has_systemusers=
+stta_sync=
+stta_hosts=
+help_active=
+motd=
diff --git a/stta/dataconf/base/path b/stta/dataconf/base/path
new file mode 100755
index 0000000..9d29be7
--- /dev/null
+++ b/stta/dataconf/base/path
@@ -0,0 +1,3 @@
+system_log=
+filemgr_path=
+monitor_scripts_path=
diff --git a/stta/dataconf/base/session b/stta/dataconf/base/session
new file mode 100755
index 0000000..f775633
--- /dev/null
+++ b/stta/dataconf/base/session
@@ -0,0 +1,12 @@
+tta_websessions=
+sessout_timeout=
+tta_emusessions=
+tta_websessions_logout=
+tta_sessout_file=
+countsessout_file=
+totalsessout_file=
+osdataout_file=
+cmd_getosdata=
+tta_billing_dir=
+msg_noticket=
+msg_nosess=
diff --git a/stta/dataconf/base/shells b/stta/dataconf/base/shells
new file mode 100755
index 0000000..fb1a860
--- /dev/null
+++ b/stta/dataconf/base/shells
@@ -0,0 +1,16 @@
+stta_tools_dir=
+service_tosend=
+to_send_dir=
+get_dir=
+stta_savedir=
+save_send_dir=
+master_sender_host=
+target_hosts=
+login_tosend=
+passw_tosend=
+tclx_library=
+stta_wkdir=
+ziptool=
+unziptool=
+extract_cmd=
+backup_cmd=
diff --git a/stta/dataconf/base/stta b/stta/dataconf/base/stta
new file mode 100755
index 0000000..e5bf99b
--- /dev/null
+++ b/stta/dataconf/base/stta
@@ -0,0 +1,9 @@
+stta_srvtitle=
+list_to_sync=
+other_list_sync=
+stta_logdir=
+stta_debugname=
+stta_defslist=
+stta_logname=
+default_portalive=
+stta_savedir=
diff --git a/stta/dataconf/base/sttavalues b/stta/dataconf/base/sttavalues
new file mode 100755
index 0000000..aafc897
--- /dev/null
+++ b/stta/dataconf/base/sttavalues
@@ -0,0 +1,58 @@
+ORANIZATION-ROOT-USER-LDAPCACHE-DN=
+LDAPCACHE-DIRECTORY-MANAGER-LOGIN=
+SAVE-PATH-DIR=
+masterHostURL=
+ORGANIZATION-TTA-DN=
+ORGANIZATION-ROOT-LDAPCACHE-TOP=
+LDAPCACHE2-SERVERPORT=
+TTA-SOFTWARE-DIR-PATH=
+STTA-DEFS_LIST_PATH=
+LDAP-SERVER-HOSTNAME=
+SECONDARY-LDAPCACHE-SERVER-TITLE=
+LDAPCACHE-SERVER-HOSTNAME=
+COMPANY-DOMAIN-FOR-EMAILS=
+LDAPCACHE2-SERVER-HOSTNAME=
+IPLANET-LDAP-DIR-NAME=
+MASTER-HOSTNAME=
+ORGANIZATION-ROOT-LDAP-TOP-DN=
+HTTP-WEBMIN-PROTOCOL=
+LDAPCACHE2-VERSION=
+LDAP2-SERVERPORT=
+LDAPCACHE-SERVERPORT=
+LDAPCACHE2-DIRECTORY-MANAGER-LOGIN=
+OPENLDAP-LDAP-DIR-NAME=
+IPLANET-SOFTWARE-DIR-PATH=
+SECONDARY-LDAP-SERVER-TITLE=
+TTALDAP-NAME=
+LDAPCACHE-VERSION=
+LDAP-DIRECTORY-MANAGER-LOGIN=
+LDAP2-VERSION=
+is_masterHost=
+LDAP2-DIRECTORY-MANAGER-LOGIN=
+CACHE-DOMAIN=
+ORGANIZATION-ROOT-LDAP-USERS-DN=
+ldap_type=
+LDAP-DAEMON=
+PRIMARY-LDAPCACHE-SERVER-TITLE=
+has_cronsess=
+HTTPS-SOFTWARE-DIR-LOG=
+has_monitor=
+PRIMARY-LDAP-SERVER-TITLE=
+HTTPS-SERVER-PORT=
+ORGANIZATION-ROOT-HOSTS-LDAPCACHE-DN=
+ORGANIZATION-ROOT-APPS-LDAPCACHE-DN=
+HTTP-SOFTWARE-DIR-LOG=
+OPENLDAP-SOFTWARE-DIR-PATH=
+COMPANY-DOMAIN=
+is_ldapcache=
+LDAP-SERVERPORT=
+LDAP-VERSION=
+LDAP2-SERVER-HOSTNAME=
+HTTP-SERVER-PORT=
+TTACACHE-NAME=
+HOSTSERVER-TITLE=
+help_active=
+LDAPCACHE-PASSWORD=
+LDAP2-PASSWORD=
+LDAPCACHE2-PASSWORD=
+LDAP-PASSWORD=
diff --git a/stta/dataconf/base/ticksess b/stta/dataconf/base/ticksess
new file mode 100755
index 0000000..093a444
--- /dev/null
+++ b/stta/dataconf/base/ticksess
@@ -0,0 +1,3 @@
+default_maxsess=
+check_maxsess=
+check_ticket=
diff --git a/stta/dataconf/base/tta b/stta/dataconf/base/tta
new file mode 100755
index 0000000..d30554d
--- /dev/null
+++ b/stta/dataconf/base/tta
@@ -0,0 +1,26 @@
+tta_dir=
+tta_daemon=
+tta_aliascmd=
+tta_status=
+tta_restart=
+tta_backup=
+tta_backup_dir=
+tta_ensrestore=
+tta_archive=
+tta_emusessions_end=
+tta_webtops=
+tta_ensdump=
+tta_ensdump_dir=
+tta_ensload=
+tta_ensload_dir=
+tta_ensrecreate=
+tta_ldapUser=
+ttalog_path=
+tta_base=
+ens_base=
+tta_defaults_ou=
+tta_defaults_obj=
+tta_defaults_hosts=
+tta_appwidth=
+tta_appheigth=
+url_tta=
diff --git a/stta/dataconf/base/values b/stta/dataconf/base/values
new file mode 100755
index 0000000..c4eaec7
--- /dev/null
+++ b/stta/dataconf/base/values
@@ -0,0 +1,5 @@
+mon_title=
+companyntdomain=
+companydomain=
+loginUsername=
+run_exec_user=
diff --git a/stta/dataconf/base/webhtml b/stta/dataconf/base/webhtml
new file mode 100755
index 0000000..d6b5902
--- /dev/null
+++ b/stta/dataconf/base/webhtml
@@ -0,0 +1,11 @@
+outdir=
+urlbase=
+wcs_header=
+wcs_table=
+wcs_text=
+wcs_revtext=
+wcs_link=
+wcs_page=
+wbgimage=
+imgbasedir=
+packcmd=
diff --git a/stta/dataconf/dataconf.tar.gz b/stta/dataconf/dataconf.tar.gz
new file mode 100644
index 0000000..7218f39
Binary files /dev/null and b/stta/dataconf/dataconf.tar.gz differ
diff --git a/stta/dataconf/defs/alias b/stta/dataconf/defs/alias
new file mode 100755
index 0000000..3b1f161
--- /dev/null
+++ b/stta/dataconf/defs/alias
@@ -0,0 +1,3 @@
+servers_alias=Servers
+users_alias=Users
+apps_alias=Applications
diff --git a/stta/dataconf/defs/alias.es b/stta/dataconf/defs/alias.es
new file mode 100755
index 0000000..2331bc8
--- /dev/null
+++ b/stta/dataconf/defs/alias.es
@@ -0,0 +1,3 @@
+servers_alias=Servidores
+users_alias=Usuarios
+apps_alias=Aplicaciones
diff --git a/stta/dataconf/defs/cache b/stta/dataconf/defs/cache
new file mode 100755
index 0000000..5300070
--- /dev/null
+++ b/stta/dataconf/defs/cache
@@ -0,0 +1,13 @@
+cache_debuglog=TTA-SOFTWARE-DIR-PATH/var/log/cache/ttadebug
+cache_rulelimit=7
+cacherule_1=apps
+cache_debuglog_dir=TTA-SOFTWARE-DIR-PATH/var/log/cache
+cacherule_2=grpapps
+cacherule_3=hosts
+cacherule_4=grphosts
+cacherule_5=domains
+cacherule_6=ous
+cacherule_7=users
+cache_domain=CACHE-DOMAIN
+cache_chkdefaults=true
+cache_chkttalogin=true
diff --git a/stta/dataconf/defs/debug b/stta/dataconf/defs/debug
new file mode 100755
index 0000000..9aa1487
--- /dev/null
+++ b/stta/dataconf/defs/debug
@@ -0,0 +1,6 @@
+debug_code=3
+iferror_services=warn
+cache_scandebug=2
+output_cgis=0
+ldap_debug=0
+ldapcache_debug=0
diff --git a/stta/dataconf/defs/defaultcfg.iplanet b/stta/dataconf/defs/defaultcfg.iplanet
new file mode 100755
index 0000000..8bb9ee4
--- /dev/null
+++ b/stta/dataconf/defs/defaultcfg.iplanet
@@ -0,0 +1,65 @@
+ldap_type=IPLANET
+is_masterHost=true
+masterHostURL=http://LOCALHOST:1000/stta
+is_ldapcache=true
+has_monitor=true
+has_cronsess=true
+
+HOSTSERVER-TITLE=STTA Server
+MASTER-HOSTNAME=LOCALHOST
+SAVE-PATH-DIR=/opt/save
+TTA-SOFTWARE-DIR-PATH=/opt/tarantella
+HTTP-WEBMIN-PROTOCOL=http
+
+IPLANET-SOFTWARE-DIR-PATH=/usr/netscape
+IPLANET-LDAP-DIR-NAME=ldap
+LDAP-DAEMON=./ns-slapd
+LDAPCACHE-DAEMON=./ns-slapd
+TTALDAP-NAME=ttaldap
+
+ORGANIZATION-TTA-DN=o=MY-ORGANIZATION
+ORGANIZATION-ROOT-LDAP-TOP-DN=o=MY-ORGANIZATION,dc=ttaldap,dc=MYCOMAPNY,dc=com
+ORGANIZATION-ROOT-LDAP-USERS-DN=o=MY-ORGANIZATION,dc=ttaldap,dc=MYCOMAPNY,dc=com
+
+LDAP-SERVER-HOSTNAME=LOCALHOST
+LDAP-SERVERPORT=389
+LDAP-DIRECTORY-MANAGER-LOGIN=cn=DirectoryManager
+LDAP-PASSWORD=letmein
+LDAP-VERSION=2
+PRIMARY-LDAP-SERVER-TITLE=LDAP Server
+
+LDAP2-SERVER-HOSTNAME=
+LDAP2-SERVERPORT=
+LDAP2-DIRECTORY-MANAGER-LOGIN=
+LDAP2-PASSWORD=
+LDAP2-VERSION=
+SECONDARY-LDAP-SERVER-TITLE=
+
+ORGANIZATION-ROOT-LDAPCACHE-TOP=o=MY-ORGANIZATION
+ORANIZATION-ROOT-USER-LDAPCACHE-DN=o=MY-ORGANIZATION
+ORGANIZATION-ROOT-APPS-LDAPCACHE-DN=o=MY-ORGANIZATION
+ORGANIZATION-ROOT-HOSTS-LDAPCACHE-DN=o=MY-ORGANIZATION
+CACHE-DOMAIN=MYCOMAPNY
+
+LDAPCACHE-SERVER-HOSTNAME=LOCALHOST
+LDAPCACHE-SERVERPORT=802
+LDAPCACHE-DIRECTORY-MANAGER-LOGIN=cn=DirectoryManager
+LDAPCACHE-PASSWORD=letmein
+LDAPCACHE-VERSION=2
+PRIMARY-LDAPCACHE-SERVER-TITLE=LDAPCACHE Server
+TTACACHE-NAME=ttacache
+
+LDAPCACHE2-SERVER-HOSTNAME=
+LDAPCACHE2-SERVERPORT=
+LDAPCACHE2-DIRECTORY-MANAGER-LOGIN=
+LDAPCACHE2-PASSWORD=
+LDAPCACHE2-VERSION=
+SECONDARY-LDAPCACHE-SERVER-TITLE=
+
+COMPANY-DOMAIN=MYCOMAPNY
+COMPANY-DOMAIN-FOR-EMAILS=MYCOMAPNY.com
+
+HTTP-SERVER-PORT=80
+HTTP-SOFTWARE-DIR-LOG=/var/logs/httpd
+HTTPS-SERVER-PORT=443
+HTTPS-SOFTWARE-DIR-LOG=/var/log/httpd
diff --git a/stta/dataconf/defs/defaultcfg.openldap b/stta/dataconf/defs/defaultcfg.openldap
new file mode 100755
index 0000000..5d4d8be
--- /dev/null
+++ b/stta/dataconf/defs/defaultcfg.openldap
@@ -0,0 +1,65 @@
+ldap_type=OpenLDAP
+is_masterHost=true
+masterHostURL=http://LOCALHOST:1000/stta
+is_ldapcache=true
+has_monitor=true
+has_cronsess=true
+
+HOSTSERVER-TITLE=STTA Server
+MASTER-HOSTNAME=LOCALHOST
+SAVE-PATH-DIR=/opt/save
+TTA-SOFTWARE-DIR-PATH=/opt/tarantella
+HTTP-WEBMIN-PROTOCOL=http
+
+OPENLDAP-SOFTWARE-DIR-PATH=/usr/local
+OPENLDAP-LDAP-DIR-NAME=openldap
+LDAP-DAEMON=/usr/local/libexec/slapd
+LDAPCACHE-DAEMON=/usr/local/libexec/slapd
+TTALDAP-NAME=ttaldap
+
+ORGANIZATION-TTA-DN=o=MY-ORGANIZATION
+ORGANIZATION-ROOT-LDAP-TOP-DN=o=MY-ORGANIZATION,dc=ttaldap,dc=MYCOMAPNY,dc=com
+ORGANIZATION-ROOT-LDAP-USERS-DN=o=MY-ORGANIZATION,dc=ttaldap,dc=MYCOMAPNY,dc=com
+
+LDAP-SERVER-HOSTNAME=LOCALHOST
+LDAP-SERVERPORT=389
+LDAP-DIRECTORY-MANAGER-LOGIN=cn=DirectoryManager
+LDAP-PASSWORD=letmein
+LDAP-VERSION=2
+PRIMARY-LDAP-SERVER-TITLE=LDAP Server
+
+LDAP2-SERVER-HOSTNAME=
+LDAP2-SERVERPORT=
+LDAP2-DIRECTORY-MANAGER-LOGIN=
+LDAP2-PASSWORD=
+LDAP2-VERSION=
+SECONDARY-LDAP-SERVER-TITLE=
+
+ORGANIZATION-ROOT-LDAPCACHE-TOP=o=MY-ORGANIZATION
+ORANIZATION-ROOT-USER-LDAPCACHE-DN=o=MY-ORGANIZATION
+ORGANIZATION-ROOT-APPS-LDAPCACHE-DN=o=MY-ORGANIZATION
+ORGANIZATION-ROOT-HOSTS-LDAPCACHE-DN=o=MY-ORGANIZATION
+CACHE-DOMAIN=MYCOMAPNY
+
+LDAPCACHE-SERVER-HOSTNAME=LOCALHOST
+LDAPCACHE-SERVERPORT=802
+LDAPCACHE-DIRECTORY-MANAGER-LOGIN=cn=DirectoryManager
+LDAPCACHE-PASSWORD=letmein
+LDAPCACHE-VERSION=2
+PRIMARY-LDAPCACHE-SERVER-TITLE=LDAPCACHE Server
+TTACACHE-NAME=ttacache
+
+LDAPCACHE2-SERVER-HOSTNAME=
+LDAPCACHE2-SERVERPORT=
+LDAPCACHE2-DIRECTORY-MANAGER-LOGIN=
+LDAPCACHE2-PASSWORD=
+LDAPCACHE2-VERSION=
+SECONDARY-LDAPCACHE-SERVER-TITLE=
+
+COMPANY-DOMAIN=MYCOMAPNY
+COMPANY-DOMAIN-FOR-EMAILS=MYCOMAPNY.com
+
+HTTP-SERVER-PORT=80
+HTTP-SOFTWARE-DIR-LOG=/var/logs/httpd
+HTTPS-SERVER-PORT=443
+HTTPS-SOFTWARE-DIR-LOG=/var/log/httpd
diff --git a/stta/dataconf/defs/feedback b/stta/dataconf/defs/feedback
new file mode 100755
index 0000000..c81e340
--- /dev/null
+++ b/stta/dataconf/defs/feedback
@@ -0,0 +1,5 @@
+feedback_name=
+feedback_mailserver=
+feedback_dirname=/tmp/comment_dir
+feedback_packcmd=tar cf /tmp/comment.tar * ; gzip -f /tmp/comment.tar
+feedback_email=stta@eagora.info
diff --git a/stta/dataconf/defs/http b/stta/dataconf/defs/http
new file mode 100755
index 0000000..662265d
--- /dev/null
+++ b/stta/dataconf/defs/http
@@ -0,0 +1,18 @@
+http_port=HTTP-SERVER-PORT
+http_log_name=HTTP-SOFTWARE-DIR-LOG/error_log
+http_log_perm=clean
+http_log_fperm=0600
+http_log_tail=30
+httpacc_log_name=HTTP-SOFTWARE-DIR-LOG/access_log
+httpacc_log_perm=clean
+httpacc_log_fperm=0600
+httpacc_log_tail=30
+https_port=HTTPS-SERVER-PORT
+https_log_name=HTTPS-SOFTWARE-DIR-LOG/error_log
+https_log_perm=clean
+https_log_fperm=0600
+https_log_tail=30
+httpsacc_log_name=HTTPS-SOFTWARE-DIR-LOG/access_log
+httpsacc_log_perm=clean
+httpsacc_log_fperm=0600
+httpsacc_log_tail=30
diff --git a/stta/dataconf/defs/interface b/stta/dataconf/defs/interface
new file mode 100755
index 0000000..38ec54a
--- /dev/null
+++ b/stta/dataconf/defs/interface
@@ -0,0 +1,14 @@
+interface=tabs
+default_cat=objects
+order_cat=none
+bgimage=
+cs_page=
+cs_table=
+cs_header=
+cs_link=
+cs_text=
+cs_revtext=
+back_return=/stta
+help_width=800
+help_height=600
+motd_style=marquee
diff --git a/stta/dataconf/defs/ldap.iplanet b/stta/dataconf/defs/ldap.iplanet
new file mode 100755
index 0000000..5fd94f0
--- /dev/null
+++ b/stta/dataconf/defs/ldap.iplanet
@@ -0,0 +1,24 @@
+ldap_stop=IPLANET-SOFTWARE-DIR-PATH/IPLANET-LDAP-DIR-NAME/slapd-TTALDAP-NAME/stop-slapd
+ldap_server=LDAP-SERVER-HOSTNAME
+ldap_dirname=slapd-TTALDAP-NAME
+ldap_servertitle=PRIMARY-LDAP-SERVER-TITLE
+ldap_backup=IPLANET-SOFTWARE-DIR-PATH/IPLANET-LDAP-DIR-NAME/slapd-TTALDAP-NAME/db2bak
+ldap_restore=
+ldap_load=IPLANET-SOFTWARE-DIR-PATH/IPLANET-LDAP-DIR-NAME/slapd-TTALDAP-NAME/ldif2db -i
+ldap_passwd=LDAP-PASSWORD
+ldap_server_log_name=IPLANET-SOFTWARE-DIR-PATH/IPLANET-LDAP-DIR-NAME/slapd-TTALDAP-NAME/logs/errors
+ldap_server_log_perm=clean
+ldap_server_log_fperm=0600
+ldap_server_log_tail=30
+ldap_port=LDAP-SERVERPORT
+ldap_user=LDAP-DIRECTORY-MANAGER-LOGIN
+ldap_start=IPLANET-SOFTWARE-DIR-PATH/IPLANET-LDAP-DIR-NAME/slapd-TTALDAP-NAME/start-slapd
+ldap_version=LDAP-VERSION
+ldap_restart=IPLANET-SOFTWARE-DIR-PATH/IPLANET-LDAP-DIR-NAME/slapd-TTALDAP-NAME/restart-slapd
+ldap_server_acclog_name=IPLANET-SOFTWARE-DIR-PATH/IPLANET-LDAP-DIR-NAME/slapd-TTALDAP-NAME/logs/access
+ldap_server_acclog_perm=clean
+ldap_server_acclog_fperm=0600
+ldap_server_acclog_tail=30
+
+ldap_ldif=IPLANET-SOFTWARE-DIR-PATH/IPLANET-LDAP-DIR-NAME/slapd-TTALDAP-NAME/db2ldif
+ldap_type=LDAP_TYPE
diff --git a/stta/dataconf/defs/ldap.openldap b/stta/dataconf/defs/ldap.openldap
new file mode 100755
index 0000000..f354ba0
--- /dev/null
+++ b/stta/dataconf/defs/ldap.openldap
@@ -0,0 +1,25 @@
+ldap_stop=TTA-SOFTWARE-DIR-PATH/tools/openldap stop TTALDAP-NAME
+ldap_server=LDAP-SERVER-HOSTNAME
+ldap_servertitle=PRIMARY-LDAP-SERVER-TITLE
+ldap_backup=TTA-SOFTWARE-DIR-PATH/tools/oldapadm backup TTALDAP-NAME
+ldap_restore=TTA-SOFTWARE-DIR-PATH/tools/oldapadm restore TTALDAP-NAME
+ldap_load=TTA-SOFTWARE-DIR-PATH/tools/oldapadm load TTALDAP-NAME
+ldap_passwd=LDAP-PASSWORD
+ldap_server_log_name=/opt/ldapdbs/TTALDAP-NAME.log
+ldap_dirname=TTALDAP-NAME
+ldap_server_log_perm=clean
+ldap_server_log_fperm=0600
+ldap_server_log_tail=30
+ldap_port=LDAP-SERVERPORT
+ldap_user=LDAP-DIRECTORY-MANAGER-LOGIN,o=ORGANIZATION-ROOT-LDAP-TOP-DN
+ldap_start=TTA-SOFTWARE-DIR-PATH/tools/openldap start TTALDAP-NAME
+ldap_version=LDAP-VERSION
+ldap_restart=TTA-SOFTWARE-DIR-PATH/tools/openldap restart TTALDAP-NAME
+ldap_server_acclog_name=/opt/ldapdbs/TTALDAP-NAME.acclog
+ldap_server_acclog_perm=clean
+ldap_server_acclog_fperm=0600
+ldap_server_acclog_tail=30
+ldap_ldif=TTA-SOFTWARE-DIR-PATH/tools/oldapadm ldiff TTALDAP-NAME
+ldap_type=LDAP_TYPE
+ldap_conf=/etc/openldap/TTALDAP-NAME.conf
+
diff --git a/stta/dataconf/defs/ldap2.iplanet b/stta/dataconf/defs/ldap2.iplanet
new file mode 100755
index 0000000..636b39e
--- /dev/null
+++ b/stta/dataconf/defs/ldap2.iplanet
@@ -0,0 +1,8 @@
+ldap2_restart=IPLANET-SOFTWARE-DIR-PATH/ldap/slapd-TTALDAP-NAME2/restart-slapd
+ldap2_passwd=LDAP2-PASSWORD
+ldap2_user=LDAP2-DIRECTORY-MANAGER-LOGIN
+ldap2_servertitle=SECONDARY-LDAPCACHE-SERVER-TITLE
+ldap2_server=LDAP2-SERVER-HOSTNAME
+ldap2_version=LDAP2-VERSION
+ldap2_port=LDAP2-SERVERPORT
+ldap2_type=LDAP2_TYPE
diff --git a/stta/dataconf/defs/ldap2.openldap b/stta/dataconf/defs/ldap2.openldap
new file mode 100755
index 0000000..428c890
--- /dev/null
+++ b/stta/dataconf/defs/ldap2.openldap
@@ -0,0 +1,9 @@
+ldap2_restart=TTA-SOFTWARE-DIR-PATH/tools/openldap restart ttaldap
+ldap2_passwd=LDAP2-PASSWORD
+ldap2_user=LDAP2-DIRECTORY-MANAGER-LOGIN,o=ORGANIZATION-ROOT-LDAP-TOP-DN
+ldap2_servertitle=SECONDARY-LDAPCACHE-SERVER-TITLE
+ldap2_server=LDAP2-SERVER-HOSTNAME
+ldap2_version=LDAP2-VERSION
+ldap2_port=LDAP2-SERVERPORT
+ldap2_type=LDAP2_TYPE
+ldap2_conf=/etc/openldap/ttaldap2.conf
diff --git a/stta/dataconf/defs/ldap_vars.iplanet b/stta/dataconf/defs/ldap_vars.iplanet
new file mode 100755
index 0000000..0356fc9
--- /dev/null
+++ b/stta/dataconf/defs/ldap_vars.iplanet
@@ -0,0 +1,12 @@
+ldap_base=ORGANIZATION-ROOT-LDAP-TOP-DN
+ldap_dnusers=ORGANIZATION-ROOT-LDAP-USERS-DN
+ldap_replicate=TTA-SOFTWARE-DIR-PATH/tools/ldapreplicate
+url_ldap=http://LDAP-SERVER-HOSTNAME/ldapmanuals/en/slapd/ag/contents.htm (for IPLANET enable ALIAS in HTTP server config)
+ldap_log_name=SAVE-PATH-DIR/ldap.log
+ldap_log_perm=clean
+ldap_log_fperm=0600
+ldap_log_tail=30
+ldap_ldif_dir=SAVE-PATH-DIR/ldif
+ldap_daemon=LDAP-DAEMON
+ldap_dir=IPLANET-SOFTWARE-DIR-PATH/ldap
+ldap_backup_dir=SAVE-PATH-DIR/bak
diff --git a/stta/dataconf/defs/ldap_vars.openldap b/stta/dataconf/defs/ldap_vars.openldap
new file mode 100755
index 0000000..404a600
--- /dev/null
+++ b/stta/dataconf/defs/ldap_vars.openldap
@@ -0,0 +1,12 @@
+ldap_base=ORGANIZATION-ROOT-LDAP-TOP-DN
+ldap_dnusers=ORGANIZATION-ROOT-LDAP-USERS-DN
+ldap_replicate=TTA-SOFTWARE-DIR-PATH/tools/ldapreplicate
+url_ldap=http://LDAP-SERVER-HOSTNAME/ldapmanuals
+ldap_log_name=SAVE-PATH-DIR/ldap.log
+ldap_ldif_dir=SAVE-PATH-DIR/ldif
+ldap_daemon=LDAP-DAEMON
+ldap_dir=OPENLDAP-SOFTWARE-DIR-PATH/ldap
+ldap_backup_dir=SAVE-PATH-DIR/bak
+ldap_log_perm=clean
+ldap_log_fperm=0600
+ldap_log_tail=30
diff --git a/stta/dataconf/defs/ldapcache.iplanet b/stta/dataconf/defs/ldapcache.iplanet
new file mode 100755
index 0000000..7f64f5a
--- /dev/null
+++ b/stta/dataconf/defs/ldapcache.iplanet
@@ -0,0 +1,23 @@
+ldapcache_server=LDAPCACHE-SERVER-HOSTNAME
+ldapcache_port=LDAPCACHE-SERVERPORT
+ldapcache_user=LDAPCACHE-DIRECTORY-MANAGER-LOGIN
+ldapcache_passwd=LDAPCACHE-PASSWORD
+ldapcache_version=LDAPCACHE-VERSION
+ldapcache_servertitle=PRIMARY-LDAPCACHE-SERVER-TITLE
+ldapcache_dirname=slapd-TTACACHE-NAME
+ldapcache_restart=IPLANET-SOFTWARE-DIR-PATH/ldap/slapd-TTACACHE-NAME/restart-slapd
+ldapcache_ldif=IPLANET-SOFTWARE-DIR-PATH/ldap/slapd-TTACACHE-NAME/db2ldif
+ldapcache_stop=IPLANET-SOFTWARE-DIR-PATH/ldap/slapd-TTACACHE-NAME/stop-slapd
+ldapcache_server_log_name=IPLANET-SOFTWARE-DIR-PATH/ldap/slapd-TTACACHE-NAME/logs/errors
+ldapcache_server_log_perm=clean
+ldapcache_server_log_fperm=0600
+ldapcache_server_log_tail=30
+ldapcache_load=IPLANET-SOFTWARE-DIR-PATH/ldap/slapd-TTACACHE-NAME/ldif2db -i
+ldapcache_start=IPLANET-SOFTWARE-DIR-PATH/ldap/slapd-TTACACHE-NAME/start-slapd
+ldapcache_server_acclog_name=IPLANET-SOFTWARE-DIR-PATH/ldap/slapd-TTACACHE-NAME/logs/access
+ldapcache_server_acclog_perm=clean
+ldapcache_server_acclog_fperm=0600
+ldapcache_server_acclog_tail=30
+ldapcache_backup=IPLANET-SOFTWARE-DIR-PATH/ldap/slapd-TTACACHE-NAME/db2bak
+ldapcache_restore=
+ldapcache_type=LDAPCACHE_TYPE
diff --git a/stta/dataconf/defs/ldapcache.openldap b/stta/dataconf/defs/ldapcache.openldap
new file mode 100755
index 0000000..83f7cd5
--- /dev/null
+++ b/stta/dataconf/defs/ldapcache.openldap
@@ -0,0 +1,24 @@
+ldapcache_server=LDAPCACHE-SERVER-HOSTNAME
+ldapcache_port=LDAPCACHE-SERVERPORT
+ldapcache_user=LDAPCACHE-DIRECTORY-MANAGER-LOGIN,ORGANIZATION-ROOT-LDAPCACHE-TOP-DN
+ldapcache_passwd=LDAPCACHE-PASSWORD
+ldapcache_version=LDAPCACHE-VERSION
+ldapcache_servertitle=PRIMARY-LDAPCACHE-SERVER-TITLE
+ldapcache_restart=TTA-SOFTWARE-DIR-PATH/tools/openldap restart TTACACHE-NAME
+ldapcache_ldif=TTA-SOFTWARE-DIR-PATH/tools/oldapadm ldiff TTACACHE-NAME
+ldapcache_stop=TTA-SOFTWARE-DIR-PATH/tools/openldap stop TTACACHE-NAME
+ldapcache_dirname=TTACACHE-NAME
+ldapcache_server_log_name=/opt/ldapdbs/TTACACHE-NAME.log
+ldapcache_server_log_perm=clean
+ldapcache_server_log_fperm=0600
+ldapcache_server_log_tail=30
+ldapcache_load=TTA-SOFTWARE-DIR-PATH/tools/oldapadm load TTACACHE-NAME
+ldapcache_start=TTA-SOFTWARE-DIR-PATH/tools/openldap start TTACACHE-NAME
+ldapcache_server_acclog_name=/opt/ldapdbs/TTACACHE-NAME.acclog
+ldapcache_server_acclog_perm=clean
+ldapcache_server_acclog_fperm=0600
+ldapcache_server_acclog_tail=30
+ldapcache_backup=TTA-SOFTWARE-DIR-PATH/tools/oldapadm backup TTACACHE-NAME
+ldapcache_restore=TTA-SOFTWARE-DIR-PATH/tools/oldapadm restore TTACACHE-NAME
+ldapcache_type=LDAPCACHE_TYPE
+ldapcache_conf=/etc/openldap/TTACACHE-NAME.conf
diff --git a/stta/dataconf/defs/ldapcache2.iplanet b/stta/dataconf/defs/ldapcache2.iplanet
new file mode 100755
index 0000000..2340368
--- /dev/null
+++ b/stta/dataconf/defs/ldapcache2.iplanet
@@ -0,0 +1,8 @@
+ldapcache2_server=LDAPCACHE2-SERVER-HOSTNAME
+ldapcache2_passwd=LDAPCACHE2-PASSWORD
+ldapcache2_port=LDAPCACHE2-SERVERPORT
+ldapcache2_user=cn=LDAPCACHE2-DIRECTORY-MANAGER-LOGIN
+ldapcache2_version=LDAPCACHE2-VERSION
+ldapcache2_servertitle=SECONDARY-LDAP-SERVER-TITLE
+ldapcache2_restart=IPLANET-SOFTWARE-DIR-PATH/ldap/slapd-TTACACHE-NAME2/restart-slapd
+
diff --git a/stta/dataconf/defs/ldapcache2.openldap b/stta/dataconf/defs/ldapcache2.openldap
new file mode 100755
index 0000000..bceb485
--- /dev/null
+++ b/stta/dataconf/defs/ldapcache2.openldap
@@ -0,0 +1,10 @@
+ldapcache2_server=LDAPCACHE2-SERVER-HOSTNAME
+ldapcache2_passwd=LDAPCACHE2-PASSWORD
+ldapcache2_port=LDAPCACHE2-SERVERPORT
+ldapcache2_user=LDAPCACHE2-DIRECTORY-MANAGER-LOGIN,ORGANIZATION-ROOT-LDAPCACHE-TOP-DN
+ldapcache2_version=LDAPCACHE2-VERSION
+ldapcache2_servertitle=SECONDARY-LDAP-SERVER-TITLE
+ldapcache2_restart=TTA-SOFTWARE-DIR-PATH/tools/openldap restart ttacache
+ldapcache2_type=LDAPCACHE2_TYPE
+ldapcache2_conf=/etc/openldap/ttacache2.conf
+
diff --git a/stta/dataconf/defs/ldapcache_vars.iplanet b/stta/dataconf/defs/ldapcache_vars.iplanet
new file mode 100755
index 0000000..1e44281
--- /dev/null
+++ b/stta/dataconf/defs/ldapcache_vars.iplanet
@@ -0,0 +1,11 @@
+ldapcache_daemon=LDAPCACHE-DAEMON
+tta_ldapcacheApps=ORGANIZATION-ROOT-APPS-LDAPCACHE-DN
+ldapcache_dndefaultobj=cn=default_obj,ORGANIZATION-ROOT-LDAPCACHE-TOP
+ldapcache_base=ORGANIZATION-ROOT-LDAPCACHE-TOP-DN
+tta_ldapcacheUser=ORANIZATION-ROOT-USER-LDAPCACHE-DN
+ldapcache_ldif_dir=SAVE-PATH-DIR/ldif_cache
+ldapcache_defaultobj=default_obj
+ldapcache_replicate=TTA-SOFTWARE-DIR-PATH/tools/ldapcachereplicate
+ldapcache_type=IPLANET
+tta_ldapcacheHosts=ORGANIZATION-ROOT-HOSTS-LDAPCACHE-DN
+ldapcache_backup_dir=SAVE-PATH-DIR/bak_cache
diff --git a/stta/dataconf/defs/ldapcache_vars.openldap b/stta/dataconf/defs/ldapcache_vars.openldap
new file mode 100755
index 0000000..8e73f52
--- /dev/null
+++ b/stta/dataconf/defs/ldapcache_vars.openldap
@@ -0,0 +1,10 @@
+ldapcache_daemon=LDAPCACHE-DAEMON
+tta_ldapcacheApps=ORGANIZATION-ROOT-APPS-LDAPCACHE-DN
+ldapcache_dndefaultobj=cn=default_obj,ORGANIZATION-ROOT-LDAPCACHE-TOP
+ldapcache_base=ORGANIZATION-ROOT-LDAPCACHE-TOP-DN
+tta_ldapcacheUser=ORANIZATION-ROOT-USER-LDAPCACHE-DN
+ldapcache_ldif_dir=SAVE-PATH-DIR/ldif_cache
+ldapcache_defaultobj=default_obj
+ldapcache_replicate=TTA-SOFTWARE-DIR-PATH/tools/ldapcachereplicate
+tta_ldapcacheHosts=ORGANIZATION-ROOT-HOSTS-LDAPCACHE-DN
+ldapcache_backup_dir=SAVE-PATH-DIR/bak_cache
diff --git a/stta/dataconf/defs/list b/stta/dataconf/defs/list
new file mode 100755
index 0000000..17b4b30
--- /dev/null
+++ b/stta/dataconf/defs/list
@@ -0,0 +1,11 @@
+apps_list=STTA-DEFS_LIST_PATH/apps_list
+profcache_list=STTA-DEFS_LIST_PATH/profcache_list
+hostsuser_list=STTA-DEFS_LIST_PATH/.passwd
+domains_list=STTA-DEFS_LIST_PATH/domains_list
+links_list=STTA-DEFS_LIST_PATH/links_list
+grphosts_list=STTA-DEFS_LIST_PATH/grphosts_list
+grpapps_list=STTA-DEFS_LIST_PATH/grpapps_list
+ou_list=STTA-DEFS_LIST_PATH/ou_list
+acts_list=STTA-DEFS_LIST_PATH/acts_list
+hosts_list=STTA-DEFS_LIST_PATH/hosts_list
+sysusers_list=STTA-DEFS_LIST_PATH/sysusers_list
diff --git a/stta/dataconf/defs/logs b/stta/dataconf/defs/logs
new file mode 100755
index 0000000..9994d23
--- /dev/null
+++ b/stta/dataconf/defs/logs
@@ -0,0 +1,12 @@
+list_debuglogs_name=/etc/webmin/stta/dataconf/debuglogs_list
+list_debuglogs_perm=write
+list_debuglogs_fperm=0600
+list_debuglogs_delhours=0.30
+list_sttalogs_name=/etc/webmin/stta/dataconf/sttalogs_list
+list_sttalogs_perm=write
+list_sttalogs_fperm=0600
+list_sttalogs_delhours=24
+list_backups_name=/etc/webmin/stta/dataconf/backups_list
+list_backups_perm=write
+list_backups_fperm=0600
+list_backups_delhours=168
diff --git a/stta/dataconf/defs/main b/stta/dataconf/defs/main
new file mode 100755
index 0000000..31c2ec0
--- /dev/null
+++ b/stta/dataconf/defs/main
@@ -0,0 +1,14 @@
+check_services=true
+has_cronsess=true
+masterHostURL=HTTP-WEBMIN-PROTOCOL://MASTER-HOSTNAME:10000/stta
+is_ldapcache=true
+has_monitor=true
+masterHost=MASTER-HOSTNAME
+is_masterHost=true
+help_active=true
+stta_hosts=MASTER-HOSTNAME
+stta_sync=true
+has_ldapusers=true
+has_systemusers=true
+iferror_objects=stop
+motd=
diff --git a/stta/dataconf/defs/ordercfgs.iplanet b/stta/dataconf/defs/ordercfgs.iplanet
new file mode 100755
index 0000000..0c50e66
--- /dev/null
+++ b/stta/dataconf/defs/ordercfgs.iplanet
@@ -0,0 +1,23 @@
+main=config_main
+interface=config_interface
+list=config_list
+stta=config_stta
+tta=config_tta
+ldap.iplanet=config_ldap_iplanet
+ldap2.iplanet=config_ldap2_iplanet
+ldap_vars.iplanet=config_ldap_vars_iplanet
+cache=config_cache
+ldapcache.iplanet=config_ldapcache_iplanet
+ldapcache2.iplanet=config_ldapcache2_iplanet
+ldapcache_vars.iplanet=config_ldapcache_vars_iplanet
+http=config_http
+path=config_path
+session=config_session
+ticksess=config_ticksess
+alias=config_alias
+values=config_values
+debug=config_debug
+feedback=config_feedbak
+logs=config_logs
+shells=config_shells
+
diff --git a/stta/dataconf/defs/ordercfgs.openldap b/stta/dataconf/defs/ordercfgs.openldap
new file mode 100755
index 0000000..5a76d7d
--- /dev/null
+++ b/stta/dataconf/defs/ordercfgs.openldap
@@ -0,0 +1,22 @@
+main=config_main
+interface=config_interface
+list=config_list
+stta=config_stta
+tta=config_tta
+ldap.openldap=config_ldap_openldap
+ldap2.openldap=config_ldap2_openldap
+ldap_vars.openldap=config_ldap_vars_openldap
+cache=config_cache
+ldapcache.openldap=config_ldapcache_openldap
+ldapcache2.openldap=config_ldapcache2_openldap
+ldapcache_vars.openldap=config_ldapcache_vars_openldap
+http=config_http
+path=config_path
+session=config_session
+ticksess=config_ticksess
+alias=config_alias
+values=config_values
+debug=config_debug
+feedback=config_feedback
+logs=config_logs
+shells=config_shells
diff --git a/stta/dataconf/defs/path b/stta/dataconf/defs/path
new file mode 100755
index 0000000..abd4519
--- /dev/null
+++ b/stta/dataconf/defs/path
@@ -0,0 +1,3 @@
+system_log=/var/log
+filemgr_path=TTA-SOFTWARE-DIR-PATH/var/log
+monitor_scripts_path=STTA-DEFS_LIST_PATH/scripts
diff --git a/stta/dataconf/defs/session b/stta/dataconf/defs/session
new file mode 100755
index 0000000..bc989b5
--- /dev/null
+++ b/stta/dataconf/defs/session
@@ -0,0 +1,12 @@
+tta_websessions=TTA-SOFTWARE-DIR-PATH/bin/tarantella webtopsession list
+sessout_timeout=11
+tta_emusessions=TTA-SOFTWARE-DIR-PATH/bin/tarantella emulatorsession list
+tta_websessions_logout=TTA-SOFTWARE-DIR-PATH/bin/tarantella webtopsession logout
+tta_sessout_file=TTA-SOFTWARE-DIR-PATH/var/log/stta_sess.out
+countsessout_file=TTA-SOFTWARE-DIR-PATH/var/log/stta_countsess.out
+totalsessout_file=TTA-SOFTWARE-DIR-PATH/var/log/stta_totalsess.out
+osdataout_file=TTA-SOFTWARE-DIR-PATH/var/log/stta_osdata.out
+cmd_getosdata=TTA-SOFTWARE-DIR-PATH/tools/getOSdata.sh
+tta_billing_dir=SAVE-PATH-DIR/billing
+msg_noticket=
+msg_nosess=
diff --git a/stta/dataconf/defs/shells b/stta/dataconf/defs/shells
new file mode 100755
index 0000000..c788ea8
--- /dev/null
+++ b/stta/dataconf/defs/shells
@@ -0,0 +1,15 @@
+stta_tools_dir=TTA-SOFTWARE-DIR-PATH/tools
+service_tosend=http
+to_send_dir=SAVE-PATH-DIR/toreplicate
+get_dir=/opt/save/torep
+save_send_dir=SAVE-PATH-DIR/replicas
+master_sender_host=
+target_hosts=
+login_tosend=
+passw_tosend=TTA-SOFTWARE-DIR-PATH/tools/etc/.passwd
+tclx_library=TTA-SOFTWARE-DIR-PATH/bin/lib/tcl7.5
+stta_wkdir=/tmp
+ziptool=gzip -f
+unziptool=gunzip
+extract_cmd=cpio -idumvI
+backup_cmd=cpio -ocvO
diff --git a/stta/dataconf/defs/stta b/stta/dataconf/defs/stta
new file mode 100755
index 0000000..7901f06
--- /dev/null
+++ b/stta/dataconf/defs/stta
@@ -0,0 +1,10 @@
+stta_logdir=TTA-SOFTWARE-DIR-PATH/var/log/stta
+stta_debugname=TTA-SOFTWARE-DIR-PATH/var/log/stta/dbug_
+stta_defslist=STTA-DEFS_LIST_PATH
+stta_logname=TTA-SOFTWARE-DIR-PATH/var/log/stta/cmd_
+stta_srvtitle=HOSTSERVER-TITLE
+list_to_sync=ou_list grphosts_list hosts_list hostsuser_list grpapps_list apps_list domains_list links_list acts_list profcache_list sysusers_list
+other_list_sync=ldap_log_name
+default_portalive=22
+stta_savedir=SAVE-PATH-DIR
+
diff --git a/stta/dataconf/defs/sttavalues b/stta/dataconf/defs/sttavalues
new file mode 100755
index 0000000..6fbdc35
--- /dev/null
+++ b/stta/dataconf/defs/sttavalues
@@ -0,0 +1,59 @@
+ORANIZATION-ROOT-USER-LDAPCACHE-DN=
+LDAPCACHE-DIRECTORY-MANAGER-LOGIN=
+SAVE-PATH-DIR=
+masterHostURL=
+ORGANIZATION-TTA-DN=
+ORGANIZATION-ROOT-LDAPCACHE-TOP=
+LDAPCACHE2-SERVERPORT=
+TTA-SOFTWARE-DIR-PATH=
+STTA-DEFS_LIST_PATH=
+LDAP-SERVER-HOSTNAME=
+SECONDARY-LDAPCACHE-SERVER-TITLE=
+LDAPCACHE-SERVER-HOSTNAME=
+COMPANY-DOMAIN-FOR-EMAILS=
+LDAPCACHE2-SERVER-HOSTNAME=
+IPLANET-LDAP-DIR-NAME=
+MASTER-HOSTNAME=
+ORGANIZATION-ROOT-LDAP-TOP-DN=
+HTTP-WEBMIN-PROTOCOL=
+LDAPCACHE2-VERSION=
+LDAP2-SERVERPORT=
+LDAPCACHE-SERVERPORT=
+LDAPCACHE2-DIRECTORY-MANAGER-LOGIN=
+OPENLDAP-LDAP-DIR-NAME=
+IPLANET-SOFTWARE-DIR-PATH=
+SECONDARY-LDAP-SERVER-TITLE=
+TTALDAP-NAME=
+LDAPCACHE-VERSION=
+LDAP-DIRECTORY-MANAGER-LOGIN=
+LDAP2-VERSION=
+is_masterHost=
+LDAP2-DIRECTORY-MANAGER-LOGIN=
+CACHE-DOMAIN=
+ORGANIZATION-ROOT-LDAP-USERS-DN=
+ldap_type=
+LDAP-DAEMON=
+LDAPCACHE-DAEMON=
+PRIMARY-LDAPCACHE-SERVER-TITLE=
+has_cronsess=
+HTTPS-SOFTWARE-DIR-LOG=
+has_monitor=
+PRIMARY-LDAP-SERVER-TITLE=
+HTTPS-SERVER-PORT=
+ORGANIZATION-ROOT-HOSTS-LDAPCACHE-DN=
+ORGANIZATION-ROOT-APPS-LDAPCACHE-DN=
+HTTP-SOFTWARE-DIR-LOG=
+OPENLDAP-SOFTWARE-DIR-PATH=
+COMPANY-DOMAIN=
+is_ldapcache=
+LDAP-SERVERPORT=
+LDAP-VERSION=
+LDAP2-SERVER-HOSTNAME=
+HTTP-SERVER-PORT=
+TTACACHE-NAME=
+HOSTSERVER-TITLE=
+help_active=
+LDAPCACHE-PASSWORD=
+LDAP2-PASSWORD=
+LDAPCACHE2-PASSWORD=
+LDAP-PASSWORD=
diff --git a/stta/dataconf/defs/ticksess b/stta/dataconf/defs/ticksess
new file mode 100755
index 0000000..85d2ffa
--- /dev/null
+++ b/stta/dataconf/defs/ticksess
@@ -0,0 +1,3 @@
+default_maxsess=9999
+check_maxsess=true
+check_ticket=true
diff --git a/stta/dataconf/defs/tta b/stta/dataconf/defs/tta
new file mode 100755
index 0000000..cb72462
--- /dev/null
+++ b/stta/dataconf/defs/tta
@@ -0,0 +1,26 @@
+tta_daemon=TTA-SOFTWARE-DIR-PATH/bin/bin/ttaauxserv
+tta_ensdump_dir=SAVE-PATH-DIR/ensdumps
+tta_ensload=TTA-SOFTWARE-DIR-PATH/tools/ensload
+tta_webtops=STTA-DEFS_LIST_PATH/webtops
+tta_backup_dir=SAVE-PATH-DIR/tta
+ens_base=.../_ens/
+tta_ensrecreate=TTA-SOFTWARE-DIR-PATH/tools/ensrecreate
+tta_emusessions_end=TTA-SOFTWARE-DIR-PATH/bin/tarantella emulatorsession end
+tta_dir=TTA-SOFTWARE-DIR-PATH
+tta_defaults_ou=STTA-DEFS_LIST_PATH/orgunit-defaults
+tta_ldapUser=.../_service/sco/tta/ldapcache/
+tta_restart=TTA-SOFTWARE-DIR-PATH/bin/tarantella restart --force
+ttalog_path=TTA-SOFTWARE-DIR-PATH/var/log
+tta_status=TTA-SOFTWARE-DIR-PATH/bin/tarantella status --byserver
+url_tta=http://TTALDAP-NAME/tarantella/help/en-us/admintocs/TOC_index.html
+tta_ensload_dir=SAVE-PATH-DIR/ensloads
+tta_backup=TTA-SOFTWARE-DIR-PATH/tools/ttabackup
+tta_ensrestore=TTA-SOFTWARE-DIR-PATH/tools/ensrestore
+tta_archive=TTA-SOFTWARE-DIR-PATH/bin/tarantella archive
+tta_defaults_obj=STTA-DEFS_LIST_PATH/person-defaults
+tta_ensdump=TTA-SOFTWARE-DIR-PATH/tools/ensdump
+tta_defaults_hosts=STTA-DEFS_LIST_PATH/host-defaults
+tta_base=ORGANIZATION-TTA-DN
+tta_aliascmd=TTA-SOFTWARE-DIR-PATH/bin/tarantella
+tta_appwidth=640
+tta_appheigth=480
diff --git a/stta/dataconf/defs/values b/stta/dataconf/defs/values
new file mode 100755
index 0000000..c1794ca
--- /dev/null
+++ b/stta/dataconf/defs/values
@@ -0,0 +1,5 @@
+run_exec_user=root
+mon_title=#title:
+companyntdomain=COMPANY-DOMAIN
+companydomain=COMPANY-DOMAIN-FOR-EMAILS
+loginUsername=ttauser
diff --git a/stta/dataconf/envshlistcfgs b/stta/dataconf/envshlistcfgs
new file mode 100755
index 0000000..5956e25
--- /dev/null
+++ b/stta/dataconf/envshlistcfgs
@@ -0,0 +1,51 @@
+TTADIR=tta_dir
+TTAINSTDIR=tta_dir
+STTA_TOOLS_DIR=stta_tools_dir
+STTA_serviceToSend=service_tosend
+STTA_toSendDir=to_send_dir
+STTA_toGetDir=get_dir
+STTA_saveSendDir=save_send_dir
+STTA_masterSenderHost=master_sender_host
+STTA_targetHosts=target_hosts
+STTA_loginToSend=login_tosend
+STTA_passwToSend=passw_tosend
+STTA_ldapLog=ldap_log_name
+LDAP_Home=ldap_dir
+LDAP_TYPE=ldap_type
+LDAP_conf=ldap_conf
+LDAP_port=ldap_port
+LDAP_server=ldap_server
+LDAP_dirname=ldap_dirname
+LDAP_ldif=ldap_ldif
+LDAP_load=ldap_load
+LDAP_stop=ldap_stop
+LDAP_start=ldap_start
+LDAP_debug=ldap_debug
+LDAP_daemon=ldap_daemon
+LDAP_restore=ldap_restore
+LDAP_backup=ldap_backup
+LDAP_acclog=ldap_server_acclog_name
+LDAP_log=ldap_server_log_name
+LDAPCACHE_TYPE=ldapcache_type
+LDAPCACHE_conf=ldapcache_conf
+LDAPCACHE_port=ldapcache_port
+LDAPCACHE_server=ldapcache_server
+LDAPCACHE_dirname=ldapcache_dirname
+LDAPCACHE_ldif=ldapcache_ldif
+LDAPCACHE_load=ldapcache_load
+LDAPCACHE_stop=ldapcache_stop
+LDAPCACHE_start=ldapcache_start
+LDAPCACHE_debug=ldapcache_debug
+LDAPCACHE_daemon=ldapcache_daemon
+LDAPCACHE_backup=ldapcache_backup
+LDAPCACHE_restore=ldapcache_restore
+LDAPCACHE_debugfile=ldapcache_debugfile
+LDAPCACHE_acclog=ldapcache_server_acclog_name
+LDAPCACHE_log=ldapcache_server_log_name
+STTA_WKDIR=stta_wkdir
+STTA_defslist=stta_defslist
+TCLX_LIBRARY=tclx_library
+ZipTool=ziptool
+UnZipTool=unziptool
+extract_cmd=extract_cmd
+backup_cmd=backup_cmd
diff --git a/stta/dataconf/form_vars b/stta/dataconf/form_vars
new file mode 100755
index 0000000..9f23064
--- /dev/null
+++ b/stta/dataconf/form_vars
@@ -0,0 +1,50 @@
+# do not translate any line of this file
+# All are services variables
+
+dn_objclass=ttacacheapp,organizationalunit
+dn_method=one,subtree
+dn_orderby=cn,sn,mail,departmentnumber
+dncache_orderby=objcnou,description,dn
+
+# TTA PARAMETERS
+
+tta_ext_cfgfiles=.properties
+tta_global_dir=/var/serverconfig/global/
+tta_local_dir=/var/serverconfig/local/
+tta_bootstrap=bootstrap.properties
+tta_components=components.properties
+tta_properties=applaunch array bootstrap cdm components ldap lictypes security webauth
+
+ttases_app=Application
+ttases_appserv=Application Server
+ttases_user=User
+ttases_client=Client
+ttases_pe=Protocol Engine ID
+ttases_status=Status
+ttases_id=Session ID
+ttases_time=Start Time
+ttases_resume=Resumable For
+ttases_serveruser=Application Server User
+
+sess_orderby=pe_id,user,application,applicationServer,startTime,resume,status,serverUser
+
+modules=browsers,tta,ldap,password,ldapprofile,ldapcache,objects,monitor,supervision,admin,servers
+
+defs_lists_value=ous,hosts,grphosts,apps,grpapps,links,domains,actions,profcache,hostsuser,webtops
+check_objs_value=ous,hosts,grphosts,apps,grpapps,links,domains
+mon_target_value=user,ou,host,grphosts,app,grpapps,link,domains,date,time
+mon_actions_value=run-script,logout,cancel-old-resume
+mon_conditions_value=gt,lt,eq,ne,noactive,disconnected
+mon_when_value=start-tta,start-sys,stop-tta,stop-sys
+mon_how_value=manual,auto,task
+
+ticket_status_value=no,day,time,counter
+
+f_perm_desc=-rwxr-xr-x,-rwxr--r--,-rwxrw-rw-,-rwxrwxrwx,-rw-------,-rw-r--r--,-rw-rw-rw-,-rwx------,-r-x------,-r-xr-xr-x
+f_perm_value=0755,0744,0766,0777,0600,0644,0666,0700,0500,0555
+
+md5=MD5
+crypt=Unix Crypt
+
+format_html=HTML
+format_cvs=cvs
diff --git a/stta/dataconf/list-logs/head.en b/stta/dataconf/list-logs/head.en
new file mode 100755
index 0000000..603c8a4
--- /dev/null
+++ b/stta/dataconf/list-logs/head.en
@@ -0,0 +1,5 @@
+# Este fichero contiene la lista de directorios o ficheros a borrar
+# a partir de un nro de horas transcurridas
+# el formato es: titulo-o-comentario=PATH (directorio o fichero)
+# el nro. de horas se configura en STTA
+#
diff --git a/stta/dataconf/list-logs/head.es b/stta/dataconf/list-logs/head.es
new file mode 100755
index 0000000..603c8a4
--- /dev/null
+++ b/stta/dataconf/list-logs/head.es
@@ -0,0 +1,5 @@
+# Este fichero contiene la lista de directorios o ficheros a borrar
+# a partir de un nro de horas transcurridas
+# el formato es: titulo-o-comentario=PATH (directorio o fichero)
+# el nro. de horas se configura en STTA
+#
diff --git a/stta/dataconf/list-logs/list_backups b/stta/dataconf/list-logs/list_backups
new file mode 100755
index 0000000..520f52c
--- /dev/null
+++ b/stta/dataconf/list-logs/list_backups
@@ -0,0 +1,7 @@
+Path Ldap logs=ldap_log_name
+Path Backup Dir=ldap_backup_dir
+Path Ldap ldifs=ldap_ldif_dir
+Path Ldapcache ldifs=ldapcache_ldif_dir
+Path Ldapcache Backups=ldapcache_backup_dir
+Path TTA ensloads=tta_ensload_dir
+Path TTA ensdumps=tta_ensdump_dir
diff --git a/stta/dataconf/list-logs/list_debuglogs b/stta/dataconf/list-logs/list_debuglogs
new file mode 100755
index 0000000..59026cc
--- /dev/null
+++ b/stta/dataconf/list-logs/list_debuglogs
@@ -0,0 +1,2 @@
+Path Cache Debug Logs Dir=cache_debuglog_dir
+Path Cache Debug Logs=cache_debuglog
diff --git a/stta/dataconf/list-logs/list_sttalogs b/stta/dataconf/list-logs/list_sttalogs
new file mode 100755
index 0000000..e684c69
--- /dev/null
+++ b/stta/dataconf/list-logs/list_sttalogs
@@ -0,0 +1,11 @@
+Path STTA logs Dir=stta_logdir
+Path TTA logs Dir=ttalog_path
+Path System logs Dir=system_log
+Path HTTP logs=http_log_name
+Path HTTP access log =httpsacc_log_name
+Path HTTPS logs=https_log_name
+Path HTTPS access log=httpacc_log_name
+Path LDAP server access log=ldap_server_acclog_name
+Path LDAP server log=ldap_server_log_name
+Path LDAPCACHE server log=ldapcache_server_acclog_name
+Path LDAPCACHE server access log=ldapcache_server_log_name
diff --git a/stta/dataconf/map_vars b/stta/dataconf/map_vars
new file mode 100755
index 0000000..a5edcd0
--- /dev/null
+++ b/stta/dataconf/map_vars
@@ -0,0 +1,66 @@
+# do not translate any line of this file
+# All are services variables
+# This is to map ENS values to Tarantella command line interface
+
+cmd_execution_inorder=on
+cmd_execution_optimised=off
+ens_execution_oni=inorder
+ens_execution_off=optimized
+
+cmd_resumable_always=forever
+ens_resumable_forever=always
+
+cmd_roottype_custom=color
+ens_roottype_color=custom
+
+cmd_windowclose_notifyapp=notifyclient
+cmd_windowclose_killapp=killclient
+ens_windowclose_notifyclient=notifyapp
+ens_windowclose_killclient=killapp
+
+ens_displayusing_mainbrowser=webtop
+ens_displayusing_multiplewindows=clientwm
+ens_displayusing_awtwindow=independent
+cmd_displayusing_webtop=mainbrowser
+cmd_displayusing_clientwm=multiplewindows
+cmd_displayusing_independent=awtwindow
+
+cmd_maximize_true=1
+cmd_maximize_false=0
+ens_maximize_1=true
+ens_maximize_0=false
+
+cmd_scalable_true=1
+cmd_scalable_false=0
+ens_scalable_1=true
+ens_scalable_0=false
+
+cmd_accel_true=1
+cmd_accel_false=0
+ens_accel_1=true
+ens_accel_0=false
+
+cmd_delayed_true=1
+cmd_delayed_false=0
+ens_delayed_1=true
+ens_delayed_0=false
+
+cmd_force3button_true=1
+cmd_force3button_false=0
+ens_force3button_1=true
+ens_force3button_0=false
+
+cmd_keepopen_true=1
+cmd_keepopen_false=0
+ens_keepopen_1=true
+ens_keepopen_0=false
+
+cmd_lockkeymap_true=1
+cmd_lockkeymap_false=0
+ens_lockkeymap_1=true
+ens_lockkeymap_0=false
+
+cmd_share_true=1
+cmd_share_false=0
+ens_share_1=true
+ens_share_0=false
diff --git a/stta/dataconf/ordercfgs b/stta/dataconf/ordercfgs
new file mode 100755
index 0000000..70871c9
--- /dev/null
+++ b/stta/dataconf/ordercfgs
@@ -0,0 +1,22 @@
+main=config_main
+interface=config_interface
+list=config_list
+stta=config_stta
+tta=config_tta
+ldap=config_ldap
+ldap2=config_ldap2
+ldap_vars=config_ldap_vars
+cache=config_cache
+ldapcache=config_ldapcache
+ldapcache2=config_ldapcache2
+ldapcache_vars=config_ldapcache_vars
+http=config_http
+path=config_path
+session=config_session
+ticksess=config_ticksess
+alias=config_alias
+values=config_values
+debug=config_debug
+feedback=config_feedback
+logs=config_logs
+shells=config_shells
diff --git a/stta/dataconf/scanlistcfgs b/stta/dataconf/scanlistcfgs
new file mode 100755
index 0000000..fc77ea7
--- /dev/null
+++ b/stta/dataconf/scanlistcfgs
@@ -0,0 +1,17 @@
+list=config_list
+stta=config_stta
+tta=config_tta
+cache=config_cache
+ldapcache=config_ldapcache
+ldapcache2=config_ldapcache2
+ldapcache_vars=config_ldapcache_vars
+ldap=config_ldap
+ldap2=config_ldap2
+ldap_vars=config_ldap_vars
+path=config_path
+session=config_session
+ticksess=config_ticksess
+alias=config_alias
+values=config_values
+debug=config_debug
+main=config_main
diff --git a/stta/dataconf/sttavalues b/stta/dataconf/sttavalues
new file mode 100755
index 0000000..aafc897
--- /dev/null
+++ b/stta/dataconf/sttavalues
@@ -0,0 +1,58 @@
+ORANIZATION-ROOT-USER-LDAPCACHE-DN=
+LDAPCACHE-DIRECTORY-MANAGER-LOGIN=
+SAVE-PATH-DIR=
+masterHostURL=
+ORGANIZATION-TTA-DN=
+ORGANIZATION-ROOT-LDAPCACHE-TOP=
+LDAPCACHE2-SERVERPORT=
+TTA-SOFTWARE-DIR-PATH=
+STTA-DEFS_LIST_PATH=
+LDAP-SERVER-HOSTNAME=
+SECONDARY-LDAPCACHE-SERVER-TITLE=
+LDAPCACHE-SERVER-HOSTNAME=
+COMPANY-DOMAIN-FOR-EMAILS=
+LDAPCACHE2-SERVER-HOSTNAME=
+IPLANET-LDAP-DIR-NAME=
+MASTER-HOSTNAME=
+ORGANIZATION-ROOT-LDAP-TOP-DN=
+HTTP-WEBMIN-PROTOCOL=
+LDAPCACHE2-VERSION=
+LDAP2-SERVERPORT=
+LDAPCACHE-SERVERPORT=
+LDAPCACHE2-DIRECTORY-MANAGER-LOGIN=
+OPENLDAP-LDAP-DIR-NAME=
+IPLANET-SOFTWARE-DIR-PATH=
+SECONDARY-LDAP-SERVER-TITLE=
+TTALDAP-NAME=
+LDAPCACHE-VERSION=
+LDAP-DIRECTORY-MANAGER-LOGIN=
+LDAP2-VERSION=
+is_masterHost=
+LDAP2-DIRECTORY-MANAGER-LOGIN=
+CACHE-DOMAIN=
+ORGANIZATION-ROOT-LDAP-USERS-DN=
+ldap_type=
+LDAP-DAEMON=
+PRIMARY-LDAPCACHE-SERVER-TITLE=
+has_cronsess=
+HTTPS-SOFTWARE-DIR-LOG=
+has_monitor=
+PRIMARY-LDAP-SERVER-TITLE=
+HTTPS-SERVER-PORT=
+ORGANIZATION-ROOT-HOSTS-LDAPCACHE-DN=
+ORGANIZATION-ROOT-APPS-LDAPCACHE-DN=
+HTTP-SOFTWARE-DIR-LOG=
+OPENLDAP-SOFTWARE-DIR-PATH=
+COMPANY-DOMAIN=
+is_ldapcache=
+LDAP-SERVERPORT=
+LDAP-VERSION=
+LDAP2-SERVER-HOSTNAME=
+HTTP-SERVER-PORT=
+TTACACHE-NAME=
+HOSTSERVER-TITLE=
+help_active=
+LDAPCACHE-PASSWORD=
+LDAP2-PASSWORD=
+LDAPCACHE2-PASSWORD=
+LDAP-PASSWORD=
diff --git a/stta/defaultacl b/stta/defaultacl
new file mode 100755
index 0000000..3eb57a3
--- /dev/null
+++ b/stta/defaultacl
@@ -0,0 +1,30 @@
+monitor=1
+supervision=1
+sessions=1
+replicate=1
+passwdCache=1
+admin=1
+delusr=1
+delhostsuser=1
+addhosts=1
+delou=1
+passwd=1
+addapps=1
+delapps=1
+dellinks=1
+delgrphosts=1
+addgrpapps=1
+stop=1
+addou=1
+global=1
+addlinks=1
+addgrphosts=1
+delgrpapps=1
+backup=1
+addhostsuser=1
+alivehosts=1
+adddomains=1
+addusr=1
+deldomains=1
+delhosts=1
+feedback=2
diff --git a/stta/delact.cgi b/stta/delact.cgi
new file mode 100755
index 0000000..59ada34
--- /dev/null
+++ b/stta/delact.cgi
@@ -0,0 +1,46 @@
+#!/usr/bin/perl
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+# delact.cgi
+# delete Action for Services with Tarantella Monitor
+
+require './stta-lib.pl';
+if ( ! $access{'monitor'} ) { &redirect("index.cgi"); }
+if ( $config{'has_monitor'} ne "true" ) { &redirect("index.cgi"); }
+&ReadParse();
+if ( !$in{aliasAct} ) { &redirect("mon_actdef.cgi"); }
+&headerstta($text{'index_monitor_act'}, "", "monitor_act",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+$aliasAct=$in{aliasAct};
+$descrip=$in{descrip};
+$postform=$in{postform};
+$monTarget=$in{monTarget};
+$monCondition=$in{monCondition};
+$monAction=$in{monAction};
+$monConditionValue=$in{monConditionValue};
+$monScript=$in{monScript};
+$monHow=$in{monHow};
+$monWhen=$in{monWhen};
+ if ( $monTarget eq "user" ) {
+ $objectAct=$in{'username'};
+ } elsif ( $monTarget eq "ou" ) {
+ $objectAct=$in{'user_ou'};
+ } elsif ( $monTarget eq "host" ) {
+ $objectAct=$in{'hostname'};
+ } elsif ( $monTarget eq "grphosts" ) {
+ $objectAct=$in{'usergrphosts'};
+ } elsif ( $monTarget eq "app" ) {
+ $objectAct=$in{'appname'};
+ } elsif ( $monTarget eq "grpapps" ) {
+ $objectAct=$in{'grpappsname'};
+ }
+
+print "\n";
+print " $text{'titidx_monitor_delact'}: $aliasAct - $descrip \n";
+print " \n";
+ if ( $aliasAct ne "" ) {
+ &out_objslist( "delete", "delact.cgi", "actions", "acts_list", $aliasAct, "", \%h_actions );
+ print "".$text{'user_delete'}.$aliasAct." -> ".$objectAct."
\n";
+ print " \n";
+ }
+ &footHere;
+ exit;
diff --git a/stta/delapps.cgi b/stta/delapps.cgi
new file mode 100755
index 0000000..0b0cb37
--- /dev/null
+++ b/stta/delapps.cgi
@@ -0,0 +1,62 @@
+#!/usr/bin/perl
+# tta_delapp.cgi
+# Delete OrgUnits from Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+do 'app-lib.pl';
+if ( $config{'is_ldapcache'} eq "true" ) {
+ do "ldap-lib.pl";
+}
+
+&headerstta($text{'index_delapp'}, "", "delapp",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "\n";
+#if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
+&foreign_require("proc", "proc-lib.pl");
+&ReadParse();
+
+$appname=$in{appname};
+
+ if ($appname ) {
+ $descrip="";
+ $ensapp="";
+ $dnsapp="";
+ $obj_name="";
+ %h_apps=&list_apps();
+ if ( $h_apps{$appname}->{'alias'} ne $appname ) {
+ $err_msg=$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ $dnapp=$h_apps{$appname}->{'obj'};
+ $obj_name=$h_apps{$appname}->{'name'};
+ $ensapp=$h_apps{$appname}->{'ens'};
+ $descrip=$h_apps{$appname}->{'descrip'};
+ $grpalias=$h_apps{$appname}->{'grpalias'};
+ }
+ print "
\n";
+ print " $text{'titidx_delapp'} $appname - $obj_name \n";
+ print " \n";
+ print "\n";
+ print " \n";
+ print "\n";
+ if (!$ensapp ) { &footHere; exit } ;
+ $ens_obj = "--name \"".$config{tta_ldapcacheApps}."/$ensapp\"\n";
+ $type_cmd="delete";
+ if (&run_tta_cmd("delete",$ens_obj)) {
+ print " $text{'user_delete'}... Tarantella
\n";
+ } else { &html_errshow("tta")};
+ if ( $config{'is_ldapcache'} eq "true" && $dnapp ) {
+ $ldapcache_server=1;
+ &connect_cache ();
+ $dn = "$dnapp,".$config{ldapcache_base};
+ if ( &del_ldap_obj($dn) eq 0 ) {
+ print "".$text{'user_delete'}."... LDAP CACHE ... \n";
+ } else { &html_errshow("ldap")};
+ }
+ &out_objslist( "delete", "delapps.cgi", "apps", "apps_list", $appname, "", \%h_apps );
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
diff --git a/stta/deldomains.cgi b/stta/deldomains.cgi
new file mode 100755
index 0000000..7019441
--- /dev/null
+++ b/stta/deldomains.cgi
@@ -0,0 +1,60 @@
+#!/usr/bin/perl
+# tta_deldomain.cgi
+# Delete OrgUnits from Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+do "ldap-lib.pl";
+
+&headerstta($text{'index_deldomain'}, "", "deldomain",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "
\n";
+#if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
+&foreign_require("proc", "proc-lib.pl");
+$ldapcache_server=1;
+&connect_cache();
+&ReadParse();
+
+ $domainname=$in{domainname};
+
+ if ($domainname ) {
+ $descrip="";
+ $ensdomain="";
+ $dnsdomain="";
+ %h_domains=&list_domains();
+ if ( $h_domains{$domainname}->{'alias'} ne $domainname) {
+ $err_msg=$domainname.":".$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ $ensdomain=$h_domains{$domainname}->{ens};
+ $dndomain=$h_domains{$domainname}->{obj};
+ $obj_name=$h_domains{$domainname}->{name};
+ $descrip=$h_domains{$domainname}->{descrip};
+ }
+ print "
\n";
+ print " $text{'titidx_deldomain'} $domainname - $obj_name \n";
+ print " \n";
+ print "\n";
+ print " \n";
+ print "\n";
+ if (!$ensdomain ) { &footHere; exit } ;
+ $ens_obj = "--name \"".$config{tta_ldapcacheApps}."/$ensdomain\" --children";
+ $type_cmd="delete";
+ if (&run_tta_cmd("delete",$ens_obj)) {
+ print " $text{'user_delete'}... Tarantella
\n";
+ } else { &html_errshow("tta")};
+ if ( $config{'is_ldapcache'} eq "true" && $dndomain ) {
+ $ldapcache_server=1;
+ &connect_cache ();
+ $dn = "$dndomain,".$config{ldapcache_base};
+ if ( &del_ldap_obj($dn) eq 0 ) {
+ print "".$text{'user_delete'}."... LDAP CACHE ... \n";
+ } else { &html_errshow("ldap")};
+ }
+ &out_objslist( "delete", "deldomains.cgi", "domains", "domains_list", $domainname, "", \%h_domains );
+ print "\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
diff --git a/stta/delfile.cgi b/stta/delfile.cgi
new file mode 100755
index 0000000..530ecbc
--- /dev/null
+++ b/stta/delfile.cgi
@@ -0,0 +1,74 @@
+#!/usr/bin/perl
+# delfile.cgi
+# Delete file for Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
+$postform = ($in{postform}) ? $in{postform} : "delfile";
+$cgiPost = ($in{cgiPost}) ? $in{cgiPost} : "file";
+$cgiName = ($in{cgiName}) ? $in{cgiName} : "delfile.cgi";
+$wkdir = ($in{wkdir}) ? $in{wkdir} : eval("\$config{'$postform"."_path'}");
+if ( ! $in{fName} ) { &redirect("index.cgi"); }
+if ( $postform eq "filemgr" ) { $postform="delfile"; }
+$fName=$in{fName};
+$cmd=$in{cmd};
+if ( $in{fPerm} ) {
+ if ( substr($in{fPerm},0,1) ne "-" ) {
+ @l_target = split(/,/,$text{'f_perm_value'}, -1);
+ @l_target_tit = split(/,/,$text{'f_perm_desc'}, -1);
+ $nItems=0;
+ foreach $item (@l_target) {
+ if ( $item eq $in{fPerm} ) {
+ $fMode=$l_target_tit[$nItems];
+ $fPerm=substr($fMode,2,1);
+ last;
+ }
+ print $l_target_tit{$nItems};
+ $nItems++;
+ }
+ } else {
+ $fMode=$in{fPerm};
+ $fPerm=substr($fMode,2,1);
+ }
+}
+$perm=$in{perm};
+if ( $perm ne "new" && substr($in{fPerm},1,3) eq "rwx" ) { $perm="all"; }
+
+&headerstta(eval("\$text{'index_$postform'}"), "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+
+print "
\n";
+print " ";
+if ( $postform ne "delfile" ) { print $text{'delete'}; }
+print " ".eval("\$text{'titidx_$postform'}")." \n";
+print " \n";
+if ( $fPerm ne "w" ) {
+ print ">";
+ print &text('file_err',$text{'delete'},$wkdir,$fName,$fMode);
+ print " \n";
+ &footHere;
+ exit 1;
+}
+ $lnum = 0;
+ $f_path=$wkdir."/".$fName;
+ &unlock_file($f_path);
+ unless ( unlink($f_path) ) {
+ print ">";
+ print &text('file_err',$text{'delete'},$wkdir,$fName,$fMode);
+ print " \n";
+ &footHere;
+ exit 1;
+ }
+
+ &webmin_log("$text{delete} ($perm) ","file","$f_path $fMode");
+ print "\n";
+ print "$text{'user_delete'} $wkdir /$fName \n";
+ if ( $debug gt 0 ) { print " ($fMode) ";}
+ print " \n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
diff --git a/stta/delgrpapps.cgi b/stta/delgrpapps.cgi
new file mode 100755
index 0000000..8b1d776
--- /dev/null
+++ b/stta/delgrpapps.cgi
@@ -0,0 +1,62 @@
+#!/usr/bin/perl
+# tta_delgrpapps.cgi
+# Delete OrgUnits from Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+if ( $config{'is_ldapcache'} eq "true" ) {
+ do "ldap-lib.pl"
+}
+
+&headerstta($text{'index_delgrpapps'}, "", "delgrpapps",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "
\n";
+#if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
+&foreign_require("proc", "proc-lib.pl");
+&ReadParse();
+
+ $aliasgrpapps=$in{aliasgrpapps};
+
+ if ($aliasgrpapps ) {
+ $descrip="";
+ $ensgrpapps="";
+ $dnsgrpapps="";
+ $obj_name="";
+ %h_grpapps=&list_grpapps();
+ if ( $h_grpapps{$aliasgrpapps}->{'alias'} ne $aliasgrpapps) {
+ $err_msg=$aliasgrpapps.":".$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ $ensgrpapps=$h_grpapps{$aliasgrpapps}->{ens};
+ $dngrpapps=$h_grpapps{$aliasgrpapps}->{obj};
+ $descrip=$h_grpapps{$aliasgrpapps}->{descrip};
+ $obj_name=$h_grpapps{$aliasgrpapps}->{name};
+ }
+ print "
\n";
+ print " $text{'titidx_delgrpapps'} $aliasgrpapps - $obj_name \n";
+ print " \n";
+ print "\n";
+ print " \n";
+ print "\n";
+ if (!$ensgrpapps ) { &footHere; exit } ;
+ $ens_obj = "--name \"".$config{tta_base}."/$ensgrpapps\" --children";
+ $type_cmd="delete";
+ if (&run_tta_cmd("delete",$ens_obj)) {
+ print " $text{'user_delete'}... Tarantella
\n";
+ } else { &html_errshow("tta")};
+ if ( $config{'is_ldapcache'} eq "true" && $dngrpapps ) {
+ $ldapcache_server=1;
+ &connect_cache ();
+ $dn = "$dngrpapps,".$config{ldapcache_base};
+ if ( &del_ldap_obj($dn) eq 0 ) {
+ print "".$text{'user_delete'}."... LDAP CACHE ... \n";
+ } else { &html_errshow("ldap")};
+ }
+ &out_objslist( "delete", "delgrpapps.cgi", "grpapps", "grpapps_list", $aliasgrpapps, "", \%h_grpapps );
+ print "\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
diff --git a/stta/delgrphosts.cgi b/stta/delgrphosts.cgi
new file mode 100755
index 0000000..0359324
--- /dev/null
+++ b/stta/delgrphosts.cgi
@@ -0,0 +1,58 @@
+#!/usr/bin/perl
+# tta_delgrphosts.cgi
+# Delete Hosts Group from Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+ require './stta-lib.pl';
+&foreign_require("proc", "proc-lib.pl");
+if ( $config{'is_ldapcache'} eq "true" ) {
+ do "ldap-lib.pl";
+}
+&ReadParse();
+
+ $usergrphosts=$in{usergrphosts};
+ &headerstta($text{'index_delgrphosts'}, "", "delgrphosts",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ print "
\n";
+ print "
\n";
+ print " $text{'titidx_delgrphosts'} $usergrphosts \n";
+ print " \n";
+ print "\n";
+
+if ($usergrphosts ) {
+ $obj_name="";
+ $ens_grphosts="";
+ $dn_grphosts="";
+ %h_grphosts=&list_grphosts();
+ if ( $h_grphosts{$usergrphosts}->{'alias'} ne $usergrphosts) {
+ $err_msg=$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ $ens_grphosts=$h_grphosts{$usergrphosts}->{ens};
+ $dn_grphosts=$h_grphosts{$usergrphosts}->{obj};
+ $obj_name=$h_grphosts{$usergrphosts}->{name};
+}
+print " \n";
+print "\n";
+if (!$ens_grphosts ) { &footHere; exit } ;
+ $ens_obj = "--name \"".$config{tta_base}."/$ens_grphosts\" --children";
+ $type_cmd="delete";
+ if (&run_tta_cmd("delete",$ens_obj)) {
+ print " $text{'user_delete'}... Tarantella
\n";
+ } else { &html_errshow("tta")};
+ if ( $config{'is_ldapcache'} eq "true" && $dn_grphosts ) {
+ $ldapcache_server=1;
+ &connect_cache ();
+ $dn="$dn_grphosts,".$config{ldapcache_base};
+ if ( &del_ldap_obj($dn) eq 0 ) {
+ print "".$text{'user_delete'}."... LDAP CACHE ... \n";
+ } else { &html_errshow("ldap")};
+ }
+ &out_objslist( "delete", "delgrphosts.cgi", "grphosts", "grphosts_list", $usergrphosts, "", \%h_grphosts );
+ print "\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
diff --git a/stta/delhosts.cgi b/stta/delhosts.cgi
new file mode 100755
index 0000000..3bbd191
--- /dev/null
+++ b/stta/delhosts.cgi
@@ -0,0 +1,58 @@
+#!/usr/bin/perl
+# tta_delhosts.cgi
+# Delete Hosts from Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+ require './stta-lib.pl';
+&foreign_require("proc", "proc-lib.pl");
+do "ldap-lib.pl";
+&ReadParse();
+
+ $hostname=$in{hostname};
+ &headerstta($text{'index_delhosts'}, "", "delhosts",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ print "
\n";
+ print "
\n";
+
+if ( !$hostname ) { &footHere; exit; }
+ $obj_name="";
+ $ens_hosts="";
+ $dns_hosts="";
+ %h_hosts=&list_hosts();
+ if ( $h_hosts{$hostname}->{'alias'} ne $hostname ) {
+ $err_msg=$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ if ( $h_hosts{$hostname}->{'alias'} eq $hostname) {
+ $ens_hosts=$h_hosts{$hostname}->{ens};
+ $dn_hosts=$h_hosts{$hostname}->{obj};
+ $obj_name=$h_hosts{$hostname}->{name};
+ }
+print " $text{'titidx_delhosts'} $hostname - $obj_name \n";
+print " \n";
+if ( !$dn_hosts) { &footHere; exit } ;
+ print " \n";
+ print "\n";
+ if ( $ens_hosts ne "" ) {
+ $ens_obj = "--name \"".$config{tta_base}."/$ens_hosts\"\n";
+ $type_cmd="delete";
+ if (&run_tta_cmd("delete",$ens_obj)) {
+ print " $text{'user_delete'}... Tarantella
\n";
+ } else { &html_errshow("tta")};
+ &out_objslist( "delete", "delhosts.cgi", "hosts", "hosts_list", $hostname, "", \%h_hosts );
+ if ( $config{'is_ldapcache'} eq "true" ) {
+ $ldapcache_server=1;
+ &connect_cache ();
+ $dn="$dn_hosts,".$config{ldapcache_base};
+ if ( &del_ldap_obj($dn) eq 0 ) {
+ print "".$text{'user_delete'}."... LDAP CACHE ... \n";
+ } else { &html_errshow("ldap")};
+ }
+ print "\n";
+ }
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
diff --git a/stta/delhostsuser.cgi b/stta/delhostsuser.cgi
new file mode 100755
index 0000000..1385928
--- /dev/null
+++ b/stta/delhostsuser.cgi
@@ -0,0 +1,31 @@
+#!/usr/bin/perl
+# tta_delhostsuser.cgi
+# Delete Hosts Group Users from Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+ require './stta-lib.pl';
+&foreign_require("proc", "proc-lib.pl");
+do "ldap-lib.pl";
+&ReadParse();
+
+ $hostsusername=$in{hostsusername};
+ &headerstta($text{'index_delhostsuser'}, "", "delhostsuser",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ print "
\n";
+ print "
\n";
+ print " $text{'titidx_delhostsuser'} $hostusername \n";
+ print " \n";
+ print "\n";
+
+if ($hostsusername ) {
+ print " \n";
+ print "$text{'user_delete'}... Tarantella
\n";
+ %h_hostsuser=&list_hostsuser();
+ &out_objslist( "delete", "delhostsuser.cgi", "hostsuser", "hostsuser_list", $hostsusername, "", \%h_hostsuser );
+ print "\n";
+ }
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
diff --git a/stta/dellinks.cgi b/stta/dellinks.cgi
new file mode 100755
index 0000000..db6f19c
--- /dev/null
+++ b/stta/dellinks.cgi
@@ -0,0 +1,62 @@
+#!/usr/bin/perl
+# tta_dellink.cgi
+# Delete OrgUnits from Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+#do "ldap-lib.pl";
+
+&headerstta($text{'index_dellink'}, "", "dellink",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "
\n";
+&foreign_require("proc", "proc-lib.pl");
+#$ldapcache_server=1;
+#&connect_cache();
+&ReadParse();
+
+ $linkname=$in{linkname};
+
+ if ($linkname ) {
+ $descrip="";
+ $enslink="";
+ $dnslink="";
+ %h_links=&list_links();
+ if ( $h_links{$linkname}->{'alias'} ne $linkname) {
+ $err_msg=$linkname.":".$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ $enslink=$h_links{$linkname}->{ens};
+ $dnlink=$h_links{$linkname}->{obj};
+ $obj_name=$h_links{$linkname}->{name};
+ $descrip=$h_links{$linkname}->{descrip};
+ }
+ print "
\n";
+ print " $text{'titidx_dellink'} $linkname - $obj_name \n";
+ print " \n";
+ print "\n";
+ print " \n";
+ print "\n";
+ if (!$enslink ) { &footHere; exit } ;
+# $ens_obj = "--name \"".$config{tta_ldapcacheApps}."/$enslink\" --children";
+ $ens_obj = "--name \"".$config{tta_ldapcacheApps}."/$enslink\" ";
+ print " $ens_obj ";
+ $type_cmd="delete";
+ if (&run_tta_cmd("delete",$ens_obj)) {
+ print " $text{'user_delete'}... Tarantella
\n";
+ } else { &html_errshow("tta")};
+# if ( $config{'is_ldapcache'} eq "true" && $dnlink ) {
+# $ldapcache_server=1;
+# &connect_cache ();
+# $dn = "$dnlink,".$config{ldapcache_base};
+# if ( &del_ldap_obj($dn) eq 0 ) {
+# print "".$text{'user_delete'}."... LDAP CACHE ... \n";
+ } else { &html_errshow("ldap")};
+# }
+ print "\n";
+ &out_objslist( "delete", "dellinks.cgi", "links", "links_list", $linkname, "", \%h_links );
+ print "".$str."... \n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
diff --git a/stta/delobj.cgi b/stta/delobj.cgi
new file mode 100755
index 0000000..4862cae
--- /dev/null
+++ b/stta/delobj.cgi
@@ -0,0 +1,65 @@
+#!/usr/bin/perl
+# delobj.cgi
+# ... Services with Tarantella.:
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+do "ldap-lib.pl";
+
+&ReadParse();
+&headerstta($text{'index_delldapcache'}, "", "delldapcache",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "
\n";
+if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
+if (!$in{dn}) { &footHere; exit }
+
+&foreign_require("proc", "proc-lib.pl");
+ $dn=$in{dn};
+ $grpdn=$in{grpdn};
+ $lin_user=$in{lin_user};
+ $lin_name=$in{lin_name};
+ $NameUser=$in{NameUser};
+ $objType=$in{objType};
+
+ print "
\n";
+ print " $text{'titidx_delldapcache'} : $in{desc} \n";
+ print " \n";
+
+ $ldapcache_server=1;
+ &connect_cache ();
+ if ( $lnro > -1 && $dn !=~ /cn=/ ) { # cleaning entries
+ if ( &del_ldap_obj($dn) eq 0 ) {
+ print "".$text{'user_delete'}."... LDAP CACHE ... \n";
+ } else { &html_errshow("ldap")};
+ &footHere;
+ exit;
+ }
+
+ print "
$text{'obj_origin'} \n";
+
+ print " ",&hlink("$text{'f_obj'} ","fobj")," \n";
+ print "$NameUser --- $lin_user \n";
+ print "
$text{'obj_target'} \n";
+
+ if ( "$objType" eq "app" ) {
+ print " ",&hlink("$text{'f_appobjname'} ","fappobjname")," \n";
+ } elsif ( "$objType" eq "grpapps" ) {
+ print " ",&hlink("$text{'f_aliasgrpapps'} ","faliasgrpapps")," \n"
+ } elsif ( "$objType" eq "host" ) {
+ print " ",&hlink("$text{'f_hostname'} ","fhostname")," \n";
+ } elsif ( "$objType" eq "grphosts" ) {
+ print " ",&hlink("$text{'f_usergrphosts'} ","fusergrphosts")," \n"
+ }
+ print "$lin_name \n";
+
+ if ( &del_obj($dn) ne 0 ) { &footHere; exit };
+ if ( $config{ldapcache2_server}.length gt 0 ) {
+ $ldapcache_server=2;
+ &connect_cache ();
+ if ( &del_obj($dn) ne 0 ) { &err_replication() }
+ }
+ print "".$text{'user_delete'}."
\n";
+ print " \n";
+ &footHere;
+ exit;
+
diff --git a/stta/delou.cgi b/stta/delou.cgi
new file mode 100755
index 0000000..0307a1f
--- /dev/null
+++ b/stta/delou.cgi
@@ -0,0 +1,69 @@
+#!/usr/bin/perl
+# tta_delou.cgi
+# Delete OrgUnits from STTA
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+ require './stta-lib.pl';
+&foreign_require("proc", "proc-lib.pl");
+if ( $config{'has_ldapusers'} eq "true" || $config{'is_ldapcache'} eq "true" ) {
+ do "ldap-lib.pl";
+}
+&ReadParse();
+
+ $userou=$in{userou};
+ &headerstta($text{'index_delou'}, "", "delou",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ print "\n";
+ print "
\n";
+ print " $text{'titidx_delou'} $userou \n";
+ print " \n";
+ print "\n";
+
+ if ( !$userou ) { &footHere; exit }
+ %h_ou=&list_ous();
+ if ( $h_ou{$userou}->{'alias'} ne $userou ) {
+ $err_msg=$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ $dn_ou=$h_ou{$userou}->{'obj'};
+ $organizationname=$h_ou{$userou}->{'name'};
+ $ens_ou=$h_ou{$userou}->{'ens'};
+ if ( $dn_ou ne "" && $config{'has_ldapusers'} eq "true" ) {
+ $dn = "$dn_ou,".$config{ldap_base};
+ $ldap_server=1;
+ &connect ();
+ if ( &del_ou() eq 0 ) {
+ if ( $config{ldap2_server}.length gt 0 ) {
+ $ldap_server=2;
+ &connect ();
+ if ( &del_ou() ne 0 ) { &err_replication() }
+ }
+ print " \n";
+ print "".$text{'user_delete'}."... LDAP ... \n";
+ } else { &html_errshow("ldap")};
+ }
+ if ( $ens_ou ne "" ) {
+ print "\n";
+ $ens_obj = "--name \"".$config{tta_base}."/$ens_ou\" --children";
+ $type_cmd="delete";
+ if (&run_tta_cmd("delete",$ens_obj)) {
+ print " $text{'user_delete'}... Tarantella
\n";
+ } else { &html_errshow("tta")};
+ print "\n";
+ &out_objslist( "delete", "delou.cgi", "ou", "ou_list", $userou, "", \%h_ou );
+ # Cleaning sysusers_list to delete users belonging to $userou will be done also !!!
+ }
+ if ( $config{'is_ldapcache'} eq "true" ) {
+ $ldapcache_server=1;
+ &connect_cache ();
+ $dn = "$dn_ou,".$config{ldapcache_base};
+ if ( &del_ldap_obj($dn) eq 0 ) {
+ print "".$text{'user_delete'}."... LDAP CACHE ... \n";
+ } else { &html_errshow("ldap")};
+ }
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
diff --git a/stta/delprofcache.cgi b/stta/delprofcache.cgi
new file mode 100755
index 0000000..199d6f8
--- /dev/null
+++ b/stta/delprofcache.cgi
@@ -0,0 +1,35 @@
+#!/usr/bin/perl
+# tta_delprofcache.cgi
+# Delete Cache Profile from Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+ require './stta-lib.pl';
+ &headerstta($text{'index_delprofcache'}, "", "delprofcache",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ if ( $config{'is_ldapcache'} eq "true" ) {
+ $err_msg=$text{'ldapcache_enable'};
+ &footCacheHere;
+ exit;
+ }
+
+ &ReadParse();
+ $profilename=$in{profilename};
+ print "
\n";
+ print "
\n";
+ print " $text{'titidx_delprofcache'} $profcache \n";
+ print " \n";
+ print " \n";
+
+if ($profilename) {
+ print "\n";
+ print " \n";
+ %h_profcache=&list_profcache();
+ &out_objslist( "delete", "delprofcache.cgi", "profcache", "profcache_list", $profilename, "", \%h_profcache );
+ print " $text{'user_delete'}... Tarantella
\n";
+ print "\n";
+}
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
diff --git a/stta/delusr.cgi b/stta/delusr.cgi
new file mode 100755
index 0000000..070ca7b
--- /dev/null
+++ b/stta/delusr.cgi
@@ -0,0 +1,110 @@
+#!/usr/bin/perl
+# tta_delusr.cgi
+# Delete Users to Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+ require './stta-lib.pl';
+&foreign_require("proc", "proc-lib.pl");
+if ( $config{'has_ldapusers'} eq "true" || $config{'is_ldapcache'} eq "true") {
+ do "ldap-lib.pl";
+}
+&ReadParse();
+
+ $dn = $in{dn};
+ if (!$dn) { &redirect("tta_selusr.cgi?form=delusr"); }
+ $username=$in{username};
+ $sysuser=$in{sysuser};
+ if ( $sysuser ne "" && $dn eq "-" ) {
+ $username=$sysuser;
+ $dn="";
+ }
+ $userou=$in{userou};
+ &headerstta($text{'index_delusr'}, "", "delusr",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ print "
\n";
+ print "
\n";
+ %h_ou=&list_ous();
+ print " $text{'titidx_delusr'} $username (".$h_ou{$userou}->{name}.") \n";
+ if ( $h_ou{$userou}->{'alias'} ne $userou || $userou eq "" ) {
+ $err_msg=$text{'list_errno'};
+ &footHere;
+ exit;
+ }
+ $dn_ou=$h_ou{$userou}->{'obj'};
+ $organizationname=$h_ou{$userou}->{'name'};
+ $ens_ou=$h_ou{$userou}->{'ens'};
+ print " \n";
+ if ( $config{'has_ldapusers'} eq "true" && $dn ) {
+ $ldap_server=1;
+ &connect ();
+ if ( &del_usr() eq 0 ) {
+ if ( $config{ldap2_server}.length gt 0 ) {
+ $ldap_server=2;
+ &connect ();
+ if ( &del_usr() ne 0 ) { &err_replication() }
+ }
+ if ( $config{'ldap_log_name'} ne "" ) {
+ $lin_user="del::".$username."::::::".$dn;
+ &lock_file($config{'ldap_log_name'});
+ open(FILELDAPLOG, ">>$config{'ldap_log_name'}");
+ print FILELDAPLOG "$lin_user\n";
+ close (FILELDAPLOG);
+ &unlock_file($config{'ldap_log_name'});
+ &remote_file("write",$config{ldap_log_name},"ldap_log_name");
+ }
+ $str=$text{'user_delete'}.$username." -> ".$dn;
+ &additional_log('delusr.cgi', "usr", $str);
+ &webmin_log($config{'ldap_log_name'}, "usr", "delete");
+ print " \n";
+ print "".$text{'user_delete'}."... LDAP ... \n";
+ } else { &html_errshow("ldap")};
+ }
+ if ( $config{'has_systemusers'} ne "true") { $sysuser="" }
+ print "\n";
+ if ( $username ) {
+ if ( $ens_ou eq "" ) {
+ $ensobj = "cn=$username";
+ } else {
+ $ensobj = "$ens_ou/cn=$username";
+ }
+ $ens_obj = "--name \"".$config{tta_base}."/$ensobj\"";
+ $type_cmd="delete";
+ if (&run_tta_cmd("delete",$ens_obj)) {
+ print " $text{'user_delete'}... Tarantella \n";
+ } else { &html_errshow("tta")};
+ }
+ if ( $sysuser ne "" ) {
+ %h_sysusers=&list_sysusers();
+ $lin_sysuser=$sysuser."::".$userou."::".$ensobj."::".$maxsess."::".$in{email}."::".$where."::";
+ &out_objslist( "delete", "delusr.cgi", "sysusers", "sysusers_list", $sysuser, $lin_sysuser, \%h_sysusers );
+ # Try to delete in remote OS ...
+ if ( $in{syncuser} eq "true" ) { &make_remote_user("delete",$sysuser); }
+ # Try to delete in local OS ...
+ &foreign_require("useradmin", "user-lib.pl");
+ @ulist=&foreign_call("useradmin", "list_users");
+ %h_ulist=();
+ foreach $item (@ulist) { $h_ulist{$item->{user}} = $item }
+ &foreign_call("useradmin", "delete_user",$h_ulist{$sysuser});
+ &webmin_log("$sysuser", "local_user_del","$sysuser",$h_ulist{$sysuser});
+ if ( $debug gt 1 ) { print "$text{user_delete} ($sysuser)"; }
+ }
+ if ( $config{'is_ldapcache'} eq "true" ) {
+ if ( $sysuser ne "" ) {
+ $dn_org = "ou=$sysuser";
+ } else {
+ $dn_org = "ou=$username";
+ }
+ if ( $dn_ou ne "" ) { $dn_org .= ",$dn_ou"; }
+ $ldapcache_server=1;
+ &connect_cache ();
+ $dn = "$dn_org,".$config{ldapcache_base};
+ if ( &del_ldap_obj($dn) eq 0 ) {
+ print " ".$text{'user_delete'}."... LDAP CACHE ... \n";
+ } else { &html_errshow("ldap")};
+ }
+ if ( $debug lt 2 ) { unlink($temp_f); }
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
diff --git a/stta/devtools/backupnow b/stta/devtools/backupnow
new file mode 100755
index 0000000..b9002c8
--- /dev/null
+++ b/stta/devtools/backupnow
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+[ ! "$STTA" ] && echo "STTA no set " && exit 2
+. $STTA/envprofile
+
+cd $WEBMINDIR
+
+DIRDEST=$BACKUPDIR/$ahora
+mkdir $DIRDEST 2>$dn
+chown root:bin $DIRDEST
+chmod 755 $DIRDEST
+
+DEST=$DIRDEST/$SAVEFILE
+
+. $DEVTOOLS/savecfgs
+tar cvf $DEST $MODULE >$dn
+echo "comprimiendo ..."
+gzip -f $DEST
+. $DEVTOOLS/countall $MODULE >$DIRDEST/countall.out
+echo "BackupNOW to $DEST done !!! "
diff --git a/stta/devtools/cleanup b/stta/devtools/cleanup
new file mode 100755
index 0000000..847fbb7
--- /dev/null
+++ b/stta/devtools/cleanup
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+[ ! "$STTA" ] && echo "STTA no set " && exit 2
+. $STTA/envprofile
+
+
+#keep_ext=".cgi .pl .sh .js .txt"
+#keep_prefix="config default module envprofile"
+#keep_dir="config_dir images lang help index setup cgitools updates ldaptools gpl"
+#f_toremove="envprofile toremove"
+#d_toremove="devtools ldap save tmp tools images/.xvpics images/.pics old home-tta dataconf etc-rcs"
+#to_copyhere="/etc/webmin/tarantella/config /etc/webmin/tarantella/admin.acl"
+
+# sh $DEVTOOLS/$CP_command
+cd $WEBMINDIR/$MODULE
+for file in `ls `
+do
+ [ -f $file ] && {
+ case $file in
+ *.cgi|*.sh|*.pl|*.js|*.acl|*.old|*.txt|*.tcl) continue ;;
+ config*|default*|module*|dataconf*) continue ;;
+ envprofile*) continue ;;
+ *) cp $file $TRASHDIR ; rm $file ;;
+ esac
+
+ }
+done
diff --git a/stta/devtools/cntwebmin b/stta/devtools/cntwebmin
new file mode 100755
index 0000000..ce270e0
--- /dev/null
+++ b/stta/devtools/cntwebmin
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+[ ! "$STTA" ] && echo "STTA no set " && exit 2
+. $STTA/envprofile
+
+cd $WEBMINDIR
+
+for nom in ` ls `
+do
+ [ -d $nom ] && stta countall $nom $@
+done
diff --git a/stta/devtools/countall b/stta/devtools/countall
new file mode 100755
index 0000000..29dc3de
--- /dev/null
+++ b/stta/devtools/countall
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+[ ! "$1" ] && exit 2
+
+[ "$STTA" ] && . $STTA/envprofile
+
+[ ! -d $WEBMINDIR/$1 ] && exit 2
+
+cd $WEBMINDIR/$1
+list_ext="cgi pl sh js idx tcl shells"
+dn=/dev/null
+
+nfiles=0
+nlines=0
+for ext in ` echo $list_ext `
+do
+ dest="*."$ext
+ [ "$ext" == "idx" ] && dest="index/*.pl"
+ [ "$ext" == "shells" ] && dest="shells/*.sh"
+ eval "nlines_$ext=`(cat $dest | wc -l | sed s'/ //g') 2>$dn`"
+ eval "nfiles_$ext=`(ls $dest | wc -l | sed 's/ //g' ) 2>$dn`"
+ eval "cnt=\$nlines_$ext"
+ nlines=`expr $nlines + $cnt 2>$dn`
+ eval "cnt=\$nfiles_$ext"
+ nfiles=`expr \$nfiles + $cnt 2>$dn`
+ [ "$2" != "-t" ] && eval "echo \"$ext: \$nlines_$ext lines in \$nfiles_$ext files\" "
+done
+echo "TOTAL $WEBMINDIR in $1 ...:"
+echo "$nfiles files with $nlines lines"
diff --git a/stta/devtools/dataconfvalues b/stta/devtools/dataconfvalues
new file mode 100755
index 0000000..2c31d02
--- /dev/null
+++ b/stta/devtools/dataconfvalues
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+cd /etc/webmin/stta/dataconf
+wc -l `cat ordercfgs | awk -F "=" '{ print $1}'`
+wc -l sttavalues
+wc -l config.old
diff --git a/stta/devtools/docs/sha-perl b/stta/devtools/docs/sha-perl
new file mode 100755
index 0000000..0eae59e
--- /dev/null
+++ b/stta/devtools/docs/sha-perl
@@ -0,0 +1,52 @@
+#!/usr/bin/perl
+use Crypt::PasswdMD5;
+use String::Random;
+use MIME::Base64;
+use SHA;
+
+if ( $#ARGV != 0 ) {
+ print STDERR "cryptword: Usage:\n";
+ print STDERR " cryptword {word}\n";
+ exit(1);
+}
+
+$randomfoo = new String::Random;
+$salt = $randomfoo->randpattern("ss");
+
+$password = $ARGV[0]; shift;
+
+print "The DES encrypted password for $password is: {crypt}";
+print crypt($password,$salt), "\n";
+
+$cryptedpassword = unix_md5_crypt($password, $salt);
+
+print "The MD5 encrypted password for $password is: {md5}";
+$encoded = encode_base64($cryptedpassword);
+#print "${cryptedpassword} ${encoded}\n";
+print "${encoded}";
+
+$sha = new SHA;
+$newsalt = pack ("H*", $salt);
+$hash = $sha->hash ($password . $newsalt);
+#printf ("%s ", unpack ("H*", $hash));
+print "The SHA encrypted password for $password is: {sha}";
+print encode_base64 ($hash . $salt, "");
+
+exit(0);
+#---------------------------------------------------------
+
+Example execution of "cryptword":
+# cryptword Secret4
+The DES encrypted password for Secret4 is: {crypt}n3vmujR3T5fcU
+The MD5 encrypted password for Secret4 is: {md5}JDEkbjMkTVZsWG5jcHFScUovMmxidzdwSDNYLg==
+The SHA encrypted password for Secret4 is: {sha}VlNqRC/0HJCfiftkKwoTE8yMTMVuMw==
+
+
+Your assistance is appreciated.
+
+--
+Frank Koenen
+Director of Technical Services
+Monet Technologies Inc.
+Email: fkoenen@vonworld.com Voice: 1-312-372-7500 x204 Fax: 1-312-372-6020
+
diff --git a/stta/devtools/grabacd b/stta/devtools/grabacd
new file mode 100755
index 0000000..538d4dc
--- /dev/null
+++ b/stta/devtools/grabacd
@@ -0,0 +1,3 @@
+mkisofs -o cd.iso -R -l CD
+mount /home2/cd.iso /mnt -o loop=/dev/loop3,blocksize=1024
+cdrecord -v speed=4 dev=1,2,0 /home2/cd.iso
diff --git a/stta/devtools/help/mktools b/stta/devtools/help/mktools
new file mode 100755
index 0000000..6284af8
--- /dev/null
+++ b/stta/devtools/help/mktools
@@ -0,0 +1,7 @@
+
+____________________________________________________________________________
+
+
+ MESSAGE
+____________________________________________________________________________
+
diff --git a/stta/devtools/help/stta.en b/stta/devtools/help/stta.en
new file mode 100755
index 0000000..6284af8
--- /dev/null
+++ b/stta/devtools/help/stta.en
@@ -0,0 +1,7 @@
+
+____________________________________________________________________________
+
+
+ MESSAGE
+____________________________________________________________________________
+
diff --git a/stta/devtools/help/stta.es b/stta/devtools/help/stta.es
new file mode 100755
index 0000000..9d6dfc4
--- /dev/null
+++ b/stta/devtools/help/stta.es
@@ -0,0 +1,6 @@
+____________________________________________________________________________
+
+
+ MENSAJE
+____________________________________________________________________________
+
diff --git a/stta/devtools/help/sttadev b/stta/devtools/help/sttadev
new file mode 100755
index 0000000..6284af8
--- /dev/null
+++ b/stta/devtools/help/sttadev
@@ -0,0 +1,7 @@
+
+____________________________________________________________________________
+
+
+ MESSAGE
+____________________________________________________________________________
+
diff --git a/stta/devtools/help/sttadev.en b/stta/devtools/help/sttadev.en
new file mode 100755
index 0000000..6284af8
--- /dev/null
+++ b/stta/devtools/help/sttadev.en
@@ -0,0 +1,7 @@
+
+____________________________________________________________________________
+
+
+ MESSAGE
+____________________________________________________________________________
+
diff --git a/stta/devtools/help/sttadev.es b/stta/devtools/help/sttadev.es
new file mode 100755
index 0000000..9d6dfc4
--- /dev/null
+++ b/stta/devtools/help/sttadev.es
@@ -0,0 +1,6 @@
+____________________________________________________________________________
+
+
+ MENSAJE
+____________________________________________________________________________
+
diff --git a/stta/devtools/install.sh b/stta/devtools/install.sh
new file mode 100755
index 0000000..7406c8d
--- /dev/null
+++ b/stta/devtools/install.sh
@@ -0,0 +1,58 @@
+#!/bin/sh
+# Shell to install STTA path
+
+cgilist="tta_sessbilling.cgi tta_sesstotal.cgi"
+libs="ttasess-lib.pl lists-lib.pl"
+
+dn=/dev/null
+ case `basename $STTA` in
+ tarantella) # Version 1.2
+ for file in `ls ./config/* 2>$dn`
+ do
+ nom=`basename $file`
+ cat $file >> /etc/webmin/tarantella/config
+ done
+ ;;
+ stta) # Version 1.3
+ for file in `ls ./config/* 2>$dn`
+ do
+ nom=`basename $file`
+ cat $file >> /etc/webmin/stta/dataconf/$nom
+ done
+ ;;
+ *) echo "ERROR: STTA is not SET "
+ echo "Set STTA to STTA directory "
+ exit 2;
+ ;;
+ esac
+ # Setting Lang files
+ for file in `ls ./lang/* 2>$dn`
+ do
+ nom=`basename $file`
+ cat $file >> $STTA/lang/$nom
+ done
+
+ # Setting Help files
+ [ -d ./help ] && cp -pr ./help $STTA
+
+ # Setting images files
+ [ -d ./images ] && cp -pr ./images $STTA
+
+ # INDEX
+ for file in `ls ./index/* 2>$dn`
+ do
+ cp $file $STTA/index
+ done
+ # CGIS & LIBS
+ for file in `echo $cgilist`
+ do
+ cp $file $STTA
+ done
+ for file in `echo $libs`
+ do
+ cp $file $STTA
+ done
+
+ [ -r ./syscmd ] && sh syscmd 2>$dn
+
+ echo "$STTA Updated !!!! "
diff --git a/stta/devtools/lang-chk.pl b/stta/devtools/lang-chk.pl
new file mode 100755
index 0000000..a583f34
--- /dev/null
+++ b/stta/devtools/lang-chk.pl
@@ -0,0 +1,22 @@
+ %esLang=();
+ %enLang=();
+ &read_file("$root_directory/$module_name/lang/en", \%enLang);
+ &read_file("$root_directory/$module_name/lang/es", \%esLang);
+ open(WLANG, ">$root_directory/$module_name/lang/EN");
+ open(FLANG, "$root_directory/$module_name/lang/es");
+ while() {
+ s/\r|\n//g;
+ if (/\S/ && !/^[#\+\-]/) {
+ @line=split(/=/, $_, -1);
+ $k=$line[0];
+ if ( $enLang{$k} && $enLang{$k} ne "" ) {
+ print WLANG "$k=$enLang{$k}\n";
+ } else {
+ print WLANG "$k=$esLang{$k}\n";
+ }
+ } else {
+ print WLANG "$_\n";
+ }
+ }
+ close(FLANG);
+ close(WLANG);
diff --git a/stta/devtools/lang-save/do.sh b/stta/devtools/lang-save/do.sh
new file mode 100755
index 0000000..9dda782
--- /dev/null
+++ b/stta/devtools/lang-save/do.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+ USAGE="$0 [base] [new] "
+i=1
+>out
+for line in `cat $1 | awk '{print $1}' `
+do
+ isLine=`echo $line | egrep = 2>/dev/null`
+ if [ -n "$isLine" ] ; then
+ value=`echo $line | awk -F"=" '{print $1}'`
+ #cut -f1 -d= 2>/dev/null`
+ if [ -n "$value" ] ; then
+ isLine=`cat $2 | egrep ^$value= 2>/dev/null`
+ if [ -z "$isLine" ] ; then
+ echo "$i -- $line"
+ echo "$i " >>out
+ echo "$line ">>out
+ fi
+ fi
+ fi
+ i=`expr $i + 1`
+done
diff --git a/stta/devtools/lang-save/e b/stta/devtools/lang-save/e
new file mode 100755
index 0000000..52faf83
--- /dev/null
+++ b/stta/devtools/lang-save/e
@@ -0,0 +1,173 @@
+# Para Cabeceras y Títulos Pricipales
+
+index_title=Servicios Tarantella
+index=Indice
+index_globalldap=Configuración LDAP
+index_globaltta=Configuración Tarantella
+
+headpage_right=Info
+head_logout=Desconectar Comentarios
+head_below=STTA
+
+ttasess_title=Sesiones Tarantella
+ttasesscount_title=Contador Sesiones Tarantella
+ttasesstotal_title=Resumen Sesiones Tarantella
+ttasessbill_title=Registro Sesiones Tarantella
+ttastatus_title=Status Tarantella
+ttainfo_title=Info Tarantella
+index_servers=Servidores
+index_warn=Precaución
+index_any=cualquiera
+index_acl=Autorizaciones
+index_module=Info.Módulo
+index_default=Por defecto
+index_auto=Automático
+index_users=Usuarios
+index_mvusers=Mover Usuarios
+index_ou=Organizaciones
+index_mvou=Mover Organizaciones
+index_ous=Organizaciones
+index_grphosts=Grupo Hosts
+index_mvhosts=Mover Hosts
+index_mvgrphosts=Mover Grupos Hosts
+index_apps=Aplicaciones
+index_mvapps=Mover Aplicaciones
+index_grpapps=Grupo Aplicaciones
+index_mvgrpapps=Mover Grupos Aplicaciones
+index_hosts=Hosts
+index_hostsuser=Hosts User
+index_passwd=Password
+index_passwdcache=TTA Password Cache
+index_ttabackup=Copia de Tarantella
+index_ldaploglist=Lista Ldap-log
+index_ldapbackup=Copia de LDAP
+index_ldapcachebackup=Copia de LDAP Cache
+index_replica=Replicación
+index_update=Actualización
+index_addusr=Alta Nuevo Usuario
+index_mvusr=Mover Usuarios
+index_loadusr=Carga de Usuarios
+index_loadou=Carga de Organizaciones
+index_loadhosts=Carga de Hosts
+index_loadhostsuser=Carga Usuarios Hosts
+index_delusr=Borrado de Usuarios
+index_moddusr=Modificar Usuarios
+index_moddou=Modificar Organización
+index_addou=Nueva Organización
+index_addapp=Nueva Aplicación
+index_addgrpapps=Nuevo Grupo Aplicaciones
+index_adddomain=Nuevo Dominio
+index_mvdomains=Mover Dominio
+index_addlink=Nuevo Vínculo
+index_mvlinks=Mover Vínculo
+index_addgrphosts=Nuevo Grupo Hosts
+index_addhosts=Nuevo Host
+index_addhostsuser=Nuevo Usuario de Hosts
+index_filter=Criterio de Selección
+index_delou=Borrado de Organizaciones
+index_fixlists=Actualizado de Listas
+index_delapp=Borrado de Aplicaciones
+index_modapp=Modificar Aplicaciones
+index_delgrpapps=Borrar Grupo Aplicaciones
+index_modgrpapps=Modificar Grupo Aplicaciones
+index_deldomain=Borrado de Dominios
+index_moddomain=Modificar Dominios
+index_dellink=Borrado de Vínculos
+index_modlink=Modificar de Vínculos
+index_delhosts=Borrado de Host
+index_alivehosts=Status de Hosts
+index_modhosts=Modificar Host
+index_delgrphosts=Borrado de Grupo Hosts
+index_modgrphosts=Modificar Grupo Hosts
+index_delhostsuser=Borrado de Usuario Hosts
+index_profilecache=Perfiles Password Cache
+index_profcache=Perfiles Password Cache
+index_mvprofcache=Mover Perfiles Password Cache
+index_updatecache=Cambio password Cache
+index_updateALLcache=Actualizar Perfiles Cache
+index_addprofcache=Crear Perfil Cache
+index_addldapcache=Crear LDAP Cache
+index_delprofcache=Borrar Perfil Cache
+index_delldapcache=Borrar LDAP Cache
+index_modldapcache=Modificar LDAP Cache
+index_selldapcache=Selección LDAP Cache
+index_ttastatus=Status Servicios Tarantella
+index_ttaarchive=Archivo Logs TTA
+index_ttarestart=Reinicio Servicios Tarantella
+index_ldaprestart=Reinicio Servicios LDAP
+index_ldapcacherestart=Reinicio LDAP Cache
+index_ldap=LDAP
+index_ttaproperties=Propiedades Tarantella
+index_monitor_act=Monitor Acciones
+index_runact=Ejecutar Acciones
+index_acts=Acciones del Monitor
+index_mvactions=Mover Acciones del Monitor
+index_ldapldif=Ldif del LDAP
+index_ldapload=Carga del LDAP
+index_ldapreplica=Replicar LDAP
+index_ldapcacheldif=Ldif LDAP Cache
+index_ldapcacheload=Carga LDAP Cache
+index_ldapcache=LDAP - Cache
+index_webtops=Webtops
+index_apps=Aplicaciones
+index_grpapps=Grupo Aplicaciones
+index_domains=Dominios
+index_links=Vínculos
+index_ttasess=Sesiones Tarantella
+index_ttasess_count=Contadores Sesiones TTA
+index_ttasess_total=Resumen Sesiones TTA
+index_ttasess_bill=Registro Sesiones TTA
+index_ttabackup=Backup Tarantella
+index_ttaensbk=Backup Tarantella ENS
+index_ttaensdump=Descarga Tarantella ENS
+index_ttaensload=Carga Tarantella ENS
+index_ttaensrecreate=Re-crear Tarantella ENS
+index_ttaensrestore=Recuperar ENS Backup
+index_ldapcachebackup=Backup del LDAP Cache
+index_works=En construcción
+run_noout=No hay salida de la orden ejecutada
+index_ldapusers=Usuarios LDAP
+index_sysusers=Usuarios Sistema
+index_winldapusers=Usuarios
+index_ldapobjs=Objetos LDAP Cache
+index_winldapobjs=Objetos
+index_monitor=Monitor
+index_supervision=Supervisión
+index_admin=Admin
+index_filemgr=Ficheros
+index_modfile=Modificar Fichero
+index_delfile=Borrar Fichero
+index_cleanfile=Vaciar Fichero
+index_showlist= Ver Lista Objetos
+index_deldefslists= Borrar Lista Objetos
+index_moddefslists= Modificar Lista Objetos
+index_addfile=Crear Fichero
+index_runfile=Ejecutar Fichero
+index_ttascript=Ficheros de Ordenes
+index_logldap=Log Users LDAP
+index_logstta=Logs de STTA
+index_dirdefstta=Listas Objetos
+index_loghttp=Log HTTP
+index_loghttpacc=Log Accesos HTTP
+index_loghttps=Log HTTPS
+index_loghttpsacc=Log Accesos HTTPS
+index_dirlogstta=Tarantella Logs
+index_dirlogscache=Cache LDAP Logs
+index_logaccldap=Log Acceso LDAP
+index_logaccldapcache=Log Acceso LDAP CACHE
+index_logsystem=Log Sistema
+index_logldapsrv=Log LDAP
+index_logldapcachesrv=Log LDAP CACHE
+index_dirsave=Dir. Copias
+index_ldapschema=Esquema LDAP
+index_ldapcacheschema=Esquema LDAP CACHE
+index_installupd=Instalar/Actualizar
+index_listdebuglogs=Lista Logs Debug
+index_liststtalogs=Lista Logs STTA
+index_listbackups=Lista Copias STTA
+index_webhelp=Generar Web Ayuda
+index_checksync=Comprobar Integridad
+index_sttareport=Informe de STTA
+index_brandmgr=Marcar STTA
+index_synclist=Sincronizar Listas
+
diff --git a/stta/devtools/lang-save/el b/stta/devtools/lang-save/el
new file mode 100755
index 0000000..b3be2d0
--- /dev/null
+++ b/stta/devtools/lang-save/el
@@ -0,0 +1,168 @@
+index_title=Servicios Tarantella
+index=Indice
+index_globalldap=Configuración LDAP
+index_globaltta=Configuración Tarantella
+headpage_right=Info
+head_logout=Desconectar Comentarios
+head_below=STTA
+ttasess_title=Sesiones Tarantella
+ttasesscount_title=Contador Sesiones Tarantella
+ttasesstotal_title=Resumen Sesiones Tarantella
+ttasessbill_title=Registro Sesiones Tarantella
+ttastatus_title=Status Tarantella
+ttainfo_title=Info Tarantella
+index_servers=Servidores
+index_warn=Precaución
+index_any=cualquiera
+index_acl=Autorizaciones
+index_module=Info.Módulo
+index_default=Por defecto
+index_auto=Automático
+index_users=Usuarios
+index_mvusers=Mover Usuarios
+index_ou=Organizaciones
+index_mvou=Mover Organizaciones
+index_ous=Organizaciones
+index_grphosts=Grupo Hosts
+index_mvhosts=Mover Hosts
+index_mvgrphosts=Mover Grupos Hosts
+index_apps=Aplicaciones
+index_mvapps=Mover Aplicaciones
+index_grpapps=Grupo Aplicaciones
+index_mvgrpapps=Mover Grupos Aplicaciones
+index_hosts=Hosts
+index_hostsuser=Hosts User
+index_passwd=Password
+index_passwdcache=TTA Password Cache
+index_ttabackup=Copia de Tarantella
+index_ldaploglist=Lista Ldap-log
+index_ldapbackup=Copia de LDAP
+index_ldapcachebackup=Copia de LDAP Cache
+index_replica=Replicación
+index_update=Actualización
+index_addusr=Alta Nuevo Usuario
+index_mvusr=Mover Usuarios
+index_loadusr=Carga de Usuarios
+index_loadou=Carga de Organizaciones
+index_loadhosts=Carga de Hosts
+index_loadhostsuser=Carga Usuarios Hosts
+index_delusr=Borrado de Usuarios
+index_moddusr=Modificar Usuarios
+index_moddou=Modificar Organización
+index_addou=Nueva Organización
+index_addapp=Nueva Aplicación
+index_addgrpapps=Nuevo Grupo Aplicaciones
+index_adddomain=Nuevo Dominio
+index_mvdomains=Mover Dominio
+index_addlink=Nuevo Vínculo
+index_mvlinks=Mover Vínculo
+index_addgrphosts=Nuevo Grupo Hosts
+index_addhosts=Nuevo Host
+index_addhostsuser=Nuevo Usuario de Hosts
+index_filter=Criterio de Selección
+index_delou=Borrado de Organizaciones
+index_fixlists=Actualizado de Listas
+index_delapp=Borrado de Aplicaciones
+index_modapp=Modificar Aplicaciones
+index_delgrpapps=Borrar Grupo Aplicaciones
+index_modgrpapps=Modificar Grupo Aplicaciones
+index_deldomain=Borrado de Dominios
+index_moddomain=Modificar Dominios
+index_dellink=Borrado de Vínculos
+index_modlink=Modificar de Vínculos
+index_delhosts=Borrado de Host
+index_alivehosts=Status de Hosts
+index_modhosts=Modificar Host
+index_delgrphosts=Borrado de Grupo Hosts
+index_modgrphosts=Modificar Grupo Hosts
+index_delhostsuser=Borrado de Usuario Hosts
+index_profilecache=Perfiles Password Cache
+index_profcache=Perfiles Password Cache
+index_mvprofcache=Mover Perfiles Password Cache
+index_updatecache=Cambio password Cache
+index_updateALLcache=Actualizar Perfiles Cache
+index_addprofcache=Crear Perfil Cache
+index_addldapcache=Crear LDAP Cache
+index_delprofcache=Borrar Perfil Cache
+index_delldapcache=Borrar LDAP Cache
+index_modldapcache=Modificar LDAP Cache
+index_selldapcache=Selección LDAP Cache
+index_ttastatus=Status Servicios Tarantella
+index_ttaarchive=Archivo Logs TTA
+index_ttarestart=Reinicio Servicios Tarantella
+index_ldaprestart=Reinicio Servicios LDAP
+index_ldapcacherestart=Reinicio LDAP Cache
+index_ldap=LDAP
+index_ttaproperties=Propiedades Tarantella
+index_monitor_act=Monitor Acciones
+index_runact=Ejecutar Acciones
+index_acts=Acciones del Monitor
+index_mvactions=Mover Acciones del Monitor
+index_ldapldif=Ldif del LDAP
+index_ldapload=Carga del LDAP
+index_ldapreplica=Replicar LDAP
+index_ldapcacheldif=Ldif LDAP Cache
+index_ldapcacheload=Carga LDAP Cache
+index_ldapcache=LDAP - Cache
+index_webtops=Webtops
+index_apps=Aplicaciones
+index_grpapps=Grupo Aplicaciones
+index_domains=Dominios
+index_links=Vínculos
+index_ttasess=Sesiones Tarantella
+index_ttasess_count=Contadores Sesiones TTA
+index_ttasess_total=Resumen Sesiones TTA
+index_ttasess_bill=Registro Sesiones TTA
+index_ttabackup=Backup Tarantella
+index_ttaensbk=Backup Tarantella ENS
+index_ttaensdump=Descarga Tarantella ENS
+index_ttaensload=Carga Tarantella ENS
+index_ttaensrecreate=Re-crear Tarantella ENS
+index_ttaensrestore=Recuperar ENS Backup
+index_ldapcachebackup=Backup del LDAP Cache
+index_works=En construcción
+run_noout=No hay salida de la orden ejecutada
+index_ldapusers=Usuarios LDAP
+index_sysusers=Usuarios Sistema
+index_winldapusers=Usuarios
+index_ldapobjs=Objetos LDAP Cache
+index_winldapobjs=Objetos
+index_monitor=Monitor
+index_supervision=Supervisión
+index_admin=Admin
+index_filemgr=Ficheros
+index_modfile=Modificar Fichero
+index_delfile=Borrar Fichero
+index_cleanfile=Vaciar Fichero
+index_showlist= Ver Lista Objetos
+index_deldefslists= Borrar Lista Objetos
+index_moddefslists= Modificar Lista Objetos
+index_addfile=Crear Fichero
+index_runfile=Ejecutar Fichero
+index_ttascript=Ficheros de Ordenes
+index_logldap=Log Users LDAP
+index_logstta=Logs de STTA
+index_dirdefstta=Listas Objetos
+index_loghttp=Log HTTP
+index_loghttpacc=Log Accesos HTTP
+index_loghttps=Log HTTPS
+index_loghttpsacc=Log Accesos HTTPS
+index_dirlogstta=Tarantella Logs
+index_dirlogscache=Cache LDAP Logs
+index_logaccldap=Log Acceso LDAP
+index_logaccldapcache=Log Acceso LDAP CACHE
+index_logsystem=Log Sistema
+index_logldapsrv=Log LDAP
+index_logldapcachesrv=Log LDAP CACHE
+index_dirsave=Dir. Copias
+index_ldapschema=Esquema LDAP
+index_ldapcacheschema=Esquema LDAP CACHE
+index_installupd=Instalar/Actualizar
+index_listdebuglogs=Lista Logs Debug
+index_liststtalogs=Lista Logs STTA
+index_listbackups=Lista Copias STTA
+index_webhelp=Generar Web Ayuda
+index_checksync=Comprobar Integridad
+index_sttareport=Informe de STTA
+index_brandmgr=Marcar STTA
+index_synclist=Sincronizar Listas
diff --git a/stta/devtools/lang-save/en b/stta/devtools/lang-save/en
new file mode 100755
index 0000000..707ef85
--- /dev/null
+++ b/stta/devtools/lang-save/en
@@ -0,0 +1,1001 @@
+# For headers and main titles
+
+index_title=Tarantella Services
+index=Index
+index_globalldap=LDAP Configuration
+index_globaltta=Tarantella Configuration
+
+headpage_right=Info
+head_logout=Desconectar Comentarios
+head_below=STTA
+
+ttasess_title=Tarantella Sessions
+ttasesscount_title=Tarantella Sessions Counter
+ttasessteotal_title=Tarantella Sessions Report
+ttastatus_title=Tarantella Status
+ttainfo_title=Tarantella Info
+index_servers=Servers
+index_warn=Warning
+index_any=any
+index_acl=Permissions
+index_module=Module Info
+index_default=by default
+index_auto=Automatic
+index_users=Users
+index_mvusers=Move Users
+index_ou=Organization
+index_mvou=Move Organizations
+index_ous=Organizations
+index_grphosts=Hosts Group
+index_mvgrphosts=Move Hosts Groups
+index_app=Applications
+index_mvapp=Move Applications
+index_grpapps=Applicacions Group
+index_mvgrpapps=Move Applicacions Groups
+index_hosts=Hosts
+index_hostsuser=Hosts User
+index_passwd=Password
+index_passwdcache=TTA Password Cache
+index_ttabackup=Tarantella Backup
+index_ldaploglist=Lista Ldap-log
+index_ldapbackup=LDAP Backup
+index_ldapcachebackup=LDAP Cache Backup
+index_replica=Replication
+index_update=Update
+index_addusr=Create New User
+index_mvusr=Mover Usuarios
+index_loadusr=Loading Users
+index_loadou=Loading Organizations
+index_loadhosts=Loading Hosts
+index_loadhostsuser=Loading Hosts Users
+index_delusr=Delete Users
+index_moddusr=Modify Users
+index_moddou=Modify Organization
+index_addou=Nueva Organización
+index_addapp=Nueva Aplicación
+index_addgrpapps=New Application Group
+index_adddomain=New Domain
+index_mvdomain=Move Domain
+index_addlink=New Link
+index_mvlink=Move Link
+index_addgrphosts=New Hosts Group
+index_mvgrphosts=Move Hosts Group
+index_mvhosts=Move Host
+index_addhosts=New Host
+index_addhostsuser=New Host User
+index_filter=Selection Criteria
+index_delou=Delete Organizations
+index_fixlists=Updating Lists
+index_delapp=Delete Applications
+index_modapp=Modify Applications
+index_delgrpapps=Delte Applications Group
+index_modgrpapps=Modify Applications Group
+index_deldomain=Delete Domains
+index_moddomain=Modify Domains
+index_dellink=Delete Links
+index_modlink=Modify Links
+index_delhosts=Delte Host
+index_alivehosts=Host Status
+index_modhosts=Host Modify
+index_delgrphosts=Host Group Delete
+index_modgrphosts=Host Group Modify
+index_delhostsuser=Delete Host User
+index_profilecache=Password Cache Profiles
+index_profcache=Password Cache Profiles
+index_updatecache=Change password Cache
+index_updateALLcache=Update Cache Profiles
+index_addprofcache=Create Cache Profile
+index_addldapcache=Create LDAP Cache
+index_delprofcache=Delete Cache Profile
+index_delldapcache=Delete LDAP Cache
+index_modldapcache=Modify LDAP Cache
+index_selldapcache=Selection LDAP Cache
+index_ttastatus=Tarantella Servicies Status
+index_ttaarchive=TTA logs archive
+index_ttarestart=Tarantella Services Restart
+index_ldaprestart=LDAP Services Restart
+index_ldapcacherestart=LDAP Cache Restart
+index_ldap=LDAP
+index_ttaproperties=Tarantella Propierties
+index_monitor_act=Actions Monitor
+index_acts=Acctions for Monitor
+index_ldapldif=LDAP Ldiff
+index_ldapload=Load LDAP
+index_ldapreplica=Repliciate LDAP
+index_ldapcacheldif=LDAP Cache Ldiff
+index_ldapcacheload=Load LDAP Cache
+index_ldapcache=LDAP - Cache
+index_webtops=Webtops
+index_apps=Applications
+index_grpapps=Applications Group
+index_domains=Domins
+index_links=links
+index_ttasess=Tarantella Sessions
+index_ttasess_count=TTA Sessions Counters
+index_ttasess_total=TTA Sessions Report
+index_ttabackup=Tarantella Backup
+index_ttaensbk=Tarantella ENS Backup
+index_ttaensdump=Tarantella ENS Download
+index_ttaensload=Tarantella ENS load
+index_ttaensrecreate=Tarantella ENS Recreate
+index_ttaensrestore=Restore form ENS Backup
+index_ldapcachebackup=LDAP Cache Backup
+index_works=Under Construction
+run_noout=No output from command
+index_ldapusers=LDAP Users
+index_sysusers=System Users
+index_winldapusers=Users
+index_ldapobjs=LDAP Cache Objects
+index_winldapobjs=Objects
+index_monitor=Monitor
+index_supervision=Supervision
+index_admin=Admin
+index_filemgr=Files
+index_modfile=Modify Files
+index_delfile=Delete File
+index_cleanfile=Clean File
+index_showlist= View Objects List
+index_deldefslists= Delete Objects List
+index_moddefslists= Modify Objects List
+index_addfile=Create File
+index_runfile=Run File
+index_ttascript=Command Files
+index_logldap=LDAP Users Log
+index_logstta=STTA Logs
+index_dirdefstta=Objects Lists
+index_loghttp=HTTP Log
+index_loghttpacc=HTTP Access Log
+index_loghttps=Log HTTPS
+index_loghttpsacc=HTTPS Access Log
+index_dirlogstta=Tarantella Logs
+index_dirlogscacheLDAP Cache Log
+index_logaccldap=LDAP Access Log
+index_logaccldapcache=LDAP CACHE Access Log
+index_logsystem=System Log
+index_logldapsrv=LDAP Log
+index_logldapcachesrv=LDAP CACHE Log
+index_dirsave=Copies Dir
+index_ldapschema=Esquema LDAP
+index_ldapcacheschema=Esquema LDAP CACHE
+index_installupd=Instalar/Actualizar
+index_listdebuglogs=Lista Logs Debug
+index_liststtalogs=Lista Logs STTA
+index_listbackups=Lista Copias STTA
+index_webhelp=Generar Web Ayuda
+index_checksync=Comprobar Integridad
+index_sttareport=Informe de STTA
+index_brandmgr= Brand STTA code
+index_synclist=Sincronizar Listas
+
+
+----------------------------------
+# For Errors
+
+config_error_=Ajuste la configuración del módulo correctamente.
+index_eroot=El directorio raiz de Tarantella $1 no existe. Si Tarantella está instalado, ajuste la configuración del módulo con la localización correcta.
+index_eserver=Ejecutable del servidor Tarantella $1 no existe. Si Tarantella está instalado, ajuste la configuración del módulo con la localización correcta.
+index_cmderr=¡¡ Orden No Configurada !!
+ldap_noconnect=No se pudo conectar con el servidor LDAP
+ldap_conerr=LDAP Error conectividad
+ldap_admerr=Error en Gestión del LDAP
+ldapcache_noconnect=No se pudo conectar con el servidor LDAP Cache
+ldapcache_conerr=LDAP Cache Error de conectividad
+ldapcache_admerr=Error en Gestión del LDAP Cache
+ldapcache_disable=Gestión del LDAP Cache no Habilitada
+ldapcache_enable=Gestión del LDAP Cache Habilitada
+ldapcache_norecord=Objeto sin valores por defecto en LDAP Cache
+list_err=!!! Registro ya existe !!!
+list_errno=!!! Registro NO existe !!!
+list_errgrp=??? El Grupo no existe !!!
+nohascountsess_err=No se ha activado el Registro (cron-list) de Contadores de Sessiones
+nosess_err=No hay Sesiones Activas
+noacts_err=No hay Acciones Definidas
+sessdiff_err=Lista y Contador de Sesiones cancelados. Volver a solicitar lista de sesisones.
+tta_noobject=Objeto no encontrado en Basede Datos Tarantella
+ieconfigsave_err=Salvar toda la configuración con IE produce errores. Usar otro Browser.
+error_found= ¡¡¡ Se ha producido un error en el proceso !!!
+
+# Para Títulos y Formularios en Tablas
+
+titidx_works=¡¡ Pediente de Desarrollo. !!
+titidx_warn=¡¡ Comprobar Servicios. !!
+titidx_ttastatus=Estado de los Servicios de Tarantella
+titidx_ttasess=Sesiones en los Servicios de Tarantella
+titidx_ttasess_count=Contadores de Sesiones en los Servicios de Tarantella
+titidx_ttasess_total=Tarantella Services Session Report
+titidx_ttarestart=Re-arranque de los Servicios de Tarantella
+titidx_ldaprestart=Re-arranque de los Servicios de LDAP
+titidx_ldapcacherestart=Re-arranque de los Servicios de LDAP Cache
+titidx_ttabackup=Backup Tarantella
+titidx_ttaensbk=Tarantella ENS Backup
+titidx_ttaensdump=Descarga Tarantella ENS
+titidx_ttaensrestore=Recuperar ENS Backup
+titidx_ttaensrecreate=Re-Crear Tarantella ENS
+titidx_ttaensload=Carga Tarantella ENS
+titidx_ttaarchive=Archive Tarantella
+titidx_ldapbackup=Copia de LDAP
+titidx_ldapldif=Ldif del LDAP
+titidx_ldapload=Carga del LDAP
+titidx_ldapreplica=Replicar LDAPs
+titidx_ldapcachebackup=Copia de LDAP Cache
+titidx_ldapcacheldif=Ldif del LDAP Cache
+titidx_ldapcacheload=Carga del LDAP Cache
+titidx_ldapbrw=LDAP browser
+titidx_ldapcachebrw=LDAP Cache browser
+titidx_ldapcachebackup=Backup del LDAP Cache
+titidx_adusr=Atributos para Crear un Nuevo Usuario
+titidx_loadusr=Carga de Nuevos Usuario
+titidx_loadou=Carga de Nuevas Organizaciones
+titidx_loadhosts=Carga de Nuevos Hosts
+titidx_loadhostsuser=Carga de Nuevos Usuarios de Hosts
+titidx_filter=Definir criterios de selección de usuarios
+titidx_sessfilter=Definir criterios de visualizar Sesiones de Tarantella
+titidx_cachefilter=Definir criterios de selección LDAP Cache
+titidx_monitor_defact=Definir criterios de Acción del Monitor
+titidx_monitor_delact=Delete Acción del Monitor
+titidx_monitor_modact=Modify criterios de Acción
+titidx_delou=Delete Organización ->
+titidx_fixlists=Actualizar Listas ->
+titidx_delapp=Delete Aplicación ->
+titidx_modapp=Modify Aplicación ->
+titidx_deldomain=Delete Dominio ->
+titidx_moddomain=Modify Dominio ->
+titidx_dellink=Delete Vínculo ->
+titidx_modlink=Modify Vínculo ->
+titidx_delgrpapps=Delete Grupo Aplicaciones ->
+titidx_modgrpapps=Modify Grupo Aplicaciones ->
+titidx_delgrphosts=Delete Grupo Hosts ->
+titidx_modgrphosts=Modify Grupo Hosts ->
+titidx_alivehosts=Status Hosts ->
+titidx_modhosts=Modify Hosts ->
+titidx_delhosts=Delete Hosts ->
+titidx_delhostsuser=Delete Usuario Hosts ->
+titidx_update= Actualizando Módulo
+titidx_delusr=Borrando Usuario:
+titidx_modusr=Atributos de " $1 " de " $2 "
+titidx_modou=Atributos de " $1 "
+titidx_modou0=Atributos de la Organización
+titidx_modusr0=Atributos del Usuario
+titidx_adou=Atributos para Crear un Nuevo Grupo/Organización
+titidx_adapp=Atributos para Crear una Nueva Aplicación
+titidx_adgrpapps=Atributos para Crear un Nuevo Grupo Aplicaciones
+titidx_addomain=Atributos para Crear un Nuevo Domino
+titidx_adlink=Atributos para Crear un Nuevo Vínculo
+titidx_adgrphosts=Atributos para Crear un Nuevo Grupo Hosts
+titidx_adhosts=Atributos para Crear un Nuevo Host
+titidx_adhostsuser=Atributos para Crear un Nuevo Usuario de Hosts
+titidx_modgrp=Atributos de $1
+titidx_modgrp0=Atributos del Grupo
+titidx_passwd=Cambio de Clave de Acceso
+titidx_ldaploglist=Lista de Usuarios para Ldap-log
+titidx_updatecache=Actualizar Claves de Acceso en Cache
+titidx_addprofcache=Crear Perfil de Claves de Acceso en Cache
+titidx_addldapcache=Crear Claves de Acceso en LDAP Cache
+titidx_modldapcache=Modify Claves de Acceso en LDAP Cache
+titidx_delprofcache=Delete Perfil de Claves de Acceso en Cache
+titidx_delldapcache=Delete Claves de Acceso en LDAP Cache
+titidx_winldapusers=Selección de Usuarios LDAP
+titidx_ldapusers=Selección de usuarios LDAP
+titidx_systemusers=Selección de usuarios del Sistema
+titidx_winldapobjs=Selección de Objetos LDAP Cache
+titidx_ldapobjs=Selección de objetos LDAP Cache
+titidx_selact=Seleccionar Acciones
+titidx_delact=Delete Acciones
+titidx_modact=Modify Acciones
+titidx_runact=Ejecutar Acciones
+titidx_filemgr=Seleccionar Ficheros
+titidx_delfile=Delete Ficheros
+titidx_modfile=Modify Ficheros
+titidx_addfile=Crear Ficheros
+titidx_runfile=Ejecutar Ficheros
+titidx_showlist=Mostrar Lista Objetos
+titidx_deldefslists= Delete Lista Objetos
+titidx_moddefslists= Modify Lista Objetos
+titidx_ttascript=Ficheros de Ordenes del Monitor
+titidx_logldap=Log de Cambios de Usuarios en LDAP
+titidx_dirdefstta=Listas de Objetos
+titidx_loghttp=Log de servidor Web HTTP
+titidx_loghttpacc=Log de Accesos al servidor Web HTTP
+titidx_loghttps=Log de servidor Web HTTPS
+titidx_loghttpsacc=Log de Accesos al servidor Web HTTPS
+titidx_dirlogstta=Tarantella Logs
+titidx_dirlogscache=Cache LDAP Logs
+titidx_logaccldap=Log de Acceso al servidor LDAP
+titidx_logaccldapcache=Log de Acceso al servidor LDAP Cache
+titidx_logsystem=Log Sistema
+titidx_logldapsrv=Log LDAP
+titidx_logldapcachesrv=Log LDAP CACHE
+titidx_dirsave=Directorio Salvaguardia
+titidx_ldapschema=Esquema del LDAP
+titidx_ldapcacheschema=Esquema del LDAP CACHE
+titidx_installupd=Instalar / Actualizar STTA
+titidx_listdebuglogs=Lista de directorios y ficheros de Logs de Debug
+titidx_liststtalogs=Lista de directorios y ficheros de Logs de STTA
+titidx_listbackups=Lista de directorios y ficheros de Copias de STTA
+titidx_webhelp=Generar ficheros HTML de ayuda de STTA
+titidx_checksync=Comprobar la integridad de los Servicios
+titidx_sttareport=Generar informe de STTA
+titidx_brandmgr=Branding STTA code
+titidx_synclist=Sincronizar Listas de Objetos del Servicios
+
+# For Icons and links
+
+tta_backup=Copia TTA
+tta_ensbk=Copia TTA ENS
+tta_ensrestore=Recuperar TTA ENS
+tta_ensdump=Descarga TTA ENS
+tta_ensload=Carga TTA ENS
+tta_ensrecreate=Recrear TTA ENS
+tta_archive=TTA Archivar Logs
+ldap_backup=Copia LDAP
+ldap_loglist=Lista ldap-log
+ldapcache_backup=Copia LDAP Cache
+ldap_ldif=Ldif LDAP
+ldap_load=Carga LDAP
+ldapcache_ldif=Ldif LDAP Cache
+ldapcache_load=Carga LDAP Cache
+tta_restart=Reinicio_TTA
+tta_help=Guía_TTA
+ldap_restart=Reinicio_LDAP
+ldapcache_restart=Reinicio_LDAP_Cache
+ldap_help=LDAP_Guía
+ttaps_title=Procesos TTA
+ttaps_list_title=TTA Process List
+logstta_title=Logs STTA
+ldapps_title=Procesos LDAP
+ldapps_list_title=Procesos LDAP List
+ldapcache_title=Procesos LDAP Cache
+ldapcache_list_title=Procesos LDAP Cache List
+ldap_title=LDAP
+admin_title=Admin
+sttaconfig_title=Configurar
+ldapbrw_title=Navegador LDAP
+ldapcachebrw_title=Navegador LDAP Cache
+ldapusrs_title=Usuarios LDAP
+sysusrs_title=Usuarios Sistema
+ldapcache_title=Cache LDAP
+addusr_title=Nuevo
+modusr_title=Modify
+delusr_title=Delete
+addou_title=Nuevo
+addapp_title=Nueva
+addgrpapps_title=Nuevo
+addgrphosts_title=Nuevo
+addhosts_title=Nuevo
+addhostsuser_title=Nuevo
+adddomains_title=Nuevo
+addlinks_title=Nuevo
+modou_title=Modify
+delou_title=Delete
+delapp_title=Delete
+delgrpapps_title=Delete
+deldomains_title=Delete
+dellinks_title=Delete
+delgrphosts_title=Delete
+delhosts_title=Delete
+alivehosts_title=Status
+modhosts_title=Modify
+mvhosts_title=Move
+modgrphosts_title=Modify
+mvgrphosts_title=Move
+modgrpapps_title=Modify
+mvgrpapps_title=Move
+modapps_title=Modify
+modapps_title=Modify
+moddomains_title=Modify
+mvdomains_title=Move
+mvdlinks_title=Modify
+mvlinks_title=Move
+delhostsuser_title=Delete
+passwd_title=Modify Usuarios
+updatecache_title=Actualizar Cache
+addprofcache_title=Crear
+delprofcache_title=Delete
+replica_title=Replicar LDAP
+loadusrs_title=Cargar
+loadous_title=Cargar
+loadhosts_title=Cargar
+loadhostsuser_title=Cargar
+addapps_title=Nuevo
+modapps_title=Modify
+delapps_title=Delete
+mvapps_title=Move
+addgrpapps_title=Nuevo
+modgrpapps_title=Modify
+delgrpapps_title=Delete
+mvgrpapps_title=Move
+addobj_title=Nuevo
+modobj_title=Modify
+delobj_title=Delete
+monitor_title=Monitor
+showlist_title=Ver Lista
+actdef_title=Crear Acciones
+ttascript_title=Ficheros de Ordenes
+logldap_title=Log users LDAP
+dirdefstta_title=Listas Objetos
+loghttp_title=Log HTTP
+loghttpacc_title=Log Accesos HTTP
+loghttps_title=Log HTTPS
+loghttpsacc_title=Log Accesos HTTPS
+dirlogstta_title=Tarantella Logs
+dirlogscache_title=Cache-LDAP Logs
+logaccldap_title=Log Acceso LDAP
+logaccldapcache_title=Log Acceso LDAP CACHE
+logsystem_title=Log Sistema
+dirsave_title=Dir. Copias
+logldapsrv_title=Log LDAP
+logldapcachesrv_title=Log LDAP CACHE
+maincfg_title=Parámetros Principales
+debugcfg_title=Parámetros Debug
+sessioncfg_title=Parámetros Sesiones
+migrate_title=Migrando
+ldapschema_title=Esquema LDAP
+ldapcacheschema_title=Esquema LDAP CACHE
+installupd_title=Proceso de Instalar / Actualizar STTA
+listdebuglogs_title=Lista Logs Debug
+liststtalogs_title=Lista Logs
+listbackups_title=Lista Copias
+sttareport_title=Informe STTA
+webhelp_title=Generar Web Ayuda
+checksync_title=Comprobar Integridad
+sttareport_title=Informe de STTA
+synclist_title=Sincronizar Listas
+
+# Para formularios
+
+f_nameorg=Name:
+f_ldapserver=Servidor LDAP:
+f_ldapcacheserver=Servidor LDAP CACHE:
+f_profilename=Alias del Perfil:
+f_ipaddress=HostName o IP:
+f_hostname=Nombre de Host:
+f_location=Localización:
+f_username=Nombre de Usuario LDAP:
+f_globaluser=Nombre de Usuario:
+f_hostusername=Usuario en Servidor:
+f_grupo=del Grupo:
+f_aliasou=Alias:
+f_aliasapp=Alias:
+f_aliasgrpapps=Alias:
+f_aliasgrphosts=Alias:
+f_aliasdomain=Alias:
+f_aliaslink=Alias:
+f_aliashosts=Alias:
+f_aliashostsuser=Alias:
+f_aliasact=Alias:
+f_surname=Apellido:
+f_descrip=Descripción:
+f_user=Usuario del Sistema:
+f_email=Correo Electrónico:
+f_ntdomain=Dominio NT:
+f_webtop=Tipo de Webtop:
+f_inherit=Hereda atributos del Grupo:
+f_shared=Usuario Compartido:
+f_enabled=Usuario Activado para LOGIN:
+f_conect=Conexiones
+f_ipaddr=(direcc
+f_contype= -tipo):
+f_cdm=Mapeo de Unidades locales:
+f_bandwidth=Máximo ancho de banda en bps permitido:
+f_links=Enlaces:
+f_defaultlinks=Enlaces por defecto del grupo
+f_sendreq=Enviar Petición
+f_cancelreq=Cancelar
+f_clearreq=Inicializar
+f_password=Clave de Acceso:
+f_passwdcache=Clave por defecto para Acceso a Servidores:
+f_administrador=Usuario Administrador:
+f_userou=Grupo de:
+f_usergrphosts=Grupo de Hosts:
+f_objname=Nombre Objeto:
+f_appobjname=Nombre Objeto Aplicación:
+f_domainobjname=Nombre Objeto Dominio:
+f_linkobjname=Nombre Objeto Vínculo:
+f_grpappsobjname=Nombre Objeto Grupo Aplicaciones:
+f_grpapps=Grupo de Aplicaciones:
+f_grpdomains=Grupo de Dominios:
+f_grplinks=Grupo de Vínculos:
+f_selecou=-- Seleccionar Grupo u Organización --
+f_selecgrphosts=-- Seleccionar Grupo de Hosts --
+f_selecapp=-- Seleccionar Aplicaciones --
+f_selecdomain=-- Seleccionar Dominios --
+f_seleclink=-- Seleccionar Vínculos --
+f_selecgrpapps=-- Seleccionar Grupo de Aplicaciones --
+f_selechosts=-- Seleccionar Host --
+f_selecmethod=-- Seleccionar Método --
+f_selecobjclass=-- Seleccionar Tipo de Objeto --
+f_groupname=Nombre de Grupo o Subgrupo:
+f_grphostname=Nombre de Grupo:
+f_seluserhost=-- Seleccionar Usuario Hosts --
+f_selobj=-- Seleccionar Objeto --
+f_selecord=-- Seleccionar Orden --
+f_selecprofcache=-- Seleccionar Perfil --
+f_selecdeflists=-- Seleccionar Lista --
+f_filter=Filtro:
+f_filtercn=Filtro (cn):
+f_orderby=Ordenado por:
+f_method=Método:
+f_obj=Objeto:
+f_passwordchk=Repetir Clave:
+f_next=Mas Usuarios
+f_defpasswd3tier=Clave por defecto para Acceso a Servidores:
+f_loadfile=Fichero de Carga
+f_loaddirens=Directorio de Carga de ENS
+f_dirbackens=Directorio de Backup de ENS
+f_domain=Dominio (dns o nt):
+f_link=Vínculo:
+f_3tierdomain=Dominio:
+f_3tierlogin=*Usuario (login):
+f_3tierpassword=Clave (password):
+f_3tierstringcmd=Linea a ejecutar:
+f_3tiertitle=*Descripción:
+f_3tierappkey1=Dialogo app (1):
+f_3tierappkey2=Dialogo app (2):
+f_3tierappkey3=Dialogo app (3):
+f_3tierappkey4=Dialogo app (4):
+f_3tierappkey5=Dialogo app (5):
+f_3tierappkey6=Dialogo app (6):
+f_deflists=Lista de Objetos:
+f_checkboxdelobj=Marcar la entrada a Borrar y usar el botón
+f_outdir=Directorio para crear la estructura Web
+f_urlbase=Url base para los enlaces (href)
+f_imgbasedir=Directorio de images para los gráficos
+f_packcmd=Orden para empaquetar directorio
+f_bgimage=Imagen de fondo de páginas
+f_cs_page=Color de fondo de página (hex)
+f_cs_table=Color de fondo cuerpo de Tablas (hex)
+f_cs_header=Color de fondo Cabeceras de Tablas (hex)
+f_cs_link=Color de enlaces de texto en páginas(hex)
+f_cs_text=Color de texto en páginas (hex)
+f_cs_revtext=Color de texto inverso en páginas (hex)
+f_filereport=Nombre Fichero para Informe
+f_sttasrvs=Servidores de STTA
+
+viewlog_action=Action Details
+f_error=Error
+msgerr_brand=Clave $1 incorrecta !!!
+msgerr_brandinfo=¡¡¡ HAY $1 FICHEROS ALTERADA !!!
+msgerr_tta=when running Tarantella request command
+msgerr_cmd=when running system request command
+msgerr_sync=al sinconizar $1
+msgerr_0=Running successfully
+msgerr_120=Running error
+msgerr_68=LDAP record already exist !!!
+msgerr_32=Object not found in LDAP !!!
+msgerr_21=Invalid syntax !!!
+msgerr_65=Request does not comply with LDAP server schema !!!
+msgerr_66= Object has other child entries under his entry !!!
+
+dn_orderby=cn,sn,mail,departmentnumber
+dn_tit_orderby=Login,Nombre,Correo,Departamento
+dncache_orderby=objcnou,description,dn
+dncache_tit_orderby=cn_ou,Descripción,DN
+dn_method=one,subtree
+dn_tit_method=Unico,Arbol
+dn_objclass=ttacacheapp,organizationalunit
+dn_tit_objclass=Objeto,Organización
+# Para mensages y Formularios (alers, checking, etc.)
+
+msg_close=Cerrar
+tta_obj= [ OBJETO TARANTELLA ]
+default_obj= [ OBJETO por DEFECTO ]
+obj_params= [ OBJETO Configuración ]
+obj_origin= [ ORIGEN (de) ]
+obj_target= [ DESTINO (en) ]
+user_made=Ha sido creado ->
+user_clean=Ha sido vaciado ->
+user_madetta=Ha sido creado en Tarantella ->
+user_delete=Ha sido Borrado ->
+user_update=Ha sido actualizado ->
+msg_0=Valor por Defecto asignado
+msg_1=el valor no es correcto
+msg_3=¿¿ Cambiar Password por Defecto para Servidores ??
+msg_2=¿¿ Este usuario va a ser un Administrador ??
+msg_4=Se mantienen valores actuales almacenados
+msg_5=¿¿ Este usuario va a ser COMPARTIDO ??
+msg_6=¿¿ Este usuario NO va tener activado el LOGIN ??
+msg_7=> Bajo ->
+msg_8= Operación no permitida
+msg_9= Ya se ha ejecutado.
+msg_10= ATENCION: Esta opción sólo se puede ejecutar una vez.\nATENCION: Puede realizar cambios críticos no reversibles.\n ¿ Continuar ?.
+loadusr_noexist=El Fichero de Carga de Usuarios no puede ser Abierto:
+loadou_noexist=El Fichero de Carga de Organizaciones no puede ser Abierto:
+
+replica_err=No se ha podido Sicronizar con LDAP
+replica_msg=¡¡ Se aconseja realizar una Replicación Global !!
+
+# Pie y Derechos de Copia
+
+cpr_line1=Version 1.3 derechos de Copia © 2001-2003 por
+cpr_line2=Este módulo STTA de Webmin está bajo
+f_modatt=Modify Atributos
+
+index_equals=iguales
+index_matches=matches
+index_nequals=no iguales
+index_nmatches=not matches
+
+# For ACLs
+
+acl_addusr=¿Puedo crear nuevos usuarios?
+acl_delusr=¿Puedo borrar usuarios?
+acl_addou=¿Puedo crear una nueva Organización?
+acl_delou=¿Puedo cancelar una organización?
+acl_addgrphosts=¿Puedo crear un nuevo Grupo de Hosts?
+acl_delgrphosts=¿Puedo cancelar un Grupo de Hosts?
+acl_addapps=¿Puedo crear una nueva Aplicación?
+acl_delapps=¿Puedo cancelar una Aplicación?
+acl_addgrpapps=¿Puedo crear un nuevo Grupo de Aplicaciones?
+acl_delgrpapps=¿Puedo cancelar un Grupo de Aplicaciones?
+acl_addhosts=¿Puedo crear un nuevo Hosts?
+acl_delhosts=¿Puedo cancelar un Hosts?
+acl_alivehosts=¿Puedo comprobar Status de un Hosts?
+acl_adddomains=¿Puedo crear Dominios?
+acl_deldomains=¿Puedo borrar Dominios?
+acl_addlinks=¿Puedo crear Vínculos?
+acl_dellinks=¿Puedo borrar Vínculos?
+acl_addhostsuser=¿Puedo crear un nuevo Usuario de Hosts?
+acl_delhostsuser=¿Puedo cancelar un Usuario de Hosts?
+acl_stop=¿Puedo parar los servicios?
+acl_global=¿Puedo administrar los servicios?
+acl_restart=Reniciar sólo
+acl_passwd=¿Cambiar password del usuario?
+acl_passwdCache=¿Cambiar la Caché de passwords ?
+acl_backup=¿Puedo copiar TTA y/o LDAP ?
+acl_replicate=¿Puedo replicar el LDAP ?
+acl_sessions=¿Puedo gestionar Sesiones TTA ?
+acl_monitor=¿Puedo usar el Monitor TTA ?
+acl_supervision=¿Puedo acceder a la Supervisión del Servicio?
+acl_admin=¿Puedo acceder a la Administración del Servicio?
+acl_feedback=¿Puedo enviar comentarios de TTA ?
+
+l_description=Descripción
+l_dn=DN
+l_objcnou=CN-OU
+
+l_uid=Login
+uidnumber=UID
+gidnumber=GID
+gecos=GECOS
+homedirectory=Home
+loginshell=Shell
+
+l_givenname=Nombre
+l_sn=Apellidos
+l_cn=Nombre Completo
+l_mail=Correo Electrónico
+l_orderby=Ordenado por
+l_total=Total $1 líneas
+total=Total
+l_billtotal=Fecha: $1 --- Líneas: $2 --- Emulaciones: $3 ---- aplicaciones: $4
+l_line=Línea
+title=Título
+organizationname=Nombre Empresa
+l_department=Departamento
+physicaldeliveryofficename=Oficina
+telephonenumber=Nro. Teléfono
+mobile=Teléfono Móbil
+pager=paginador
+officefax=Fax
+comment=Comentarios
+
+sess_orderby=pe_id,user,application,applicationServer,startTime,resume,status,serverUser
+sess_tit_orderby=ID,Usuario,Aplicación,Servidor Apliciación,Inicio,resume,status,serverUser
+tit_ttasess=Sesión PED:
+l_ses_peid=ID
+l_ses_user=Usuario
+l_ses_client=Cliente
+l_ses_app=Aplicación
+l_ses_starttime=Inicio
+l_ses_resume=Recuperar
+l_ses_status=Status
+l_ses_appsrv=Servidor Aplicación
+l_ses_serveruser=login
+l_ses_object=objeto
+l_ses_num=nro.
+l_ses_count=-- RESUMEN --
+
+modules=browsers,tta,ldap,password,ldapprofile,ldapcache,objects,monitor,supervision,admin,servers
+category_tta=Tarantella
+category_ldap=Ldap
+category_ldapcache=Ldap-Cache
+category_ldapprofile=Perfil-Cache
+category_objects=Objetos
+category_monitor=Monitor
+category_password=Claves
+category_browsers=Navegadores
+category_supervision=Supervisión
+category_admin=Admin
+category_servers=Servidores
+
+defs_lists_value=ous,hosts,grphosts,apps,grpapps,links,domains,actions,profcache,hostsuser,webtops
+check_objs_value=ous,hosts,grphosts,apps,grpapps,links,domains
+mon_target_value=user,ou,host,grphosts,app,grpapps,link,domains,date,time
+mon_user_sess=Nro. de Sesiones de Usuario
+mon_ou_sess=Nro. de Sesiones de Grupo
+mon_host_sess=Nro. de Sesiones de Host
+mon_grphosts_sess=Nro. de Sesiones de Grupo Hosts
+mon_grpapps_sess=Nro. de Sesiones de Grupo Aplicaciones
+mon_app_sess=Nro. de Sesiones de Aplicación
+mon_link_sess=Nro. de Sesiones de Vínculos
+mon_domains_sess=Nro. de Sesiones de Dominios
+mon_time_sess=Hora en formato "hhmmss"
+mon_date_sess=Fecha en fomato "yymmdd"
+mon_actions_desc=Ejecutar Guión,Desalojar,Cancelar Sesiones Inactivas
+mon_actions_value=run-script,logout,cancel-old-resume
+mon_conditions_desc=Mayor que, Menor que, Igual a,Distinto de,Inactivo,Desconectado
+mon_conditions_value=gt,lt,eq,ne,noactive,disconnected
+mon_how_desc=Manual,Automático,Programado
+mon_how_value=manual,auto,task
+mon_when_desc=Al arrancar Tarantella,Al arrancar el Sistema,Al parar Tarantella,Al parar el Sistema
+mon_when_value=start-tta,start-sys,stop-tta,stop-sys
+f_maxsess=Nro. Máximo de Sesiones:
+f_portalive=Puerto status (on-line):
+f_mon_target_sel=-- Seleccionar Objeto --
+f_mon_target=Objeto:
+f_mon_condition_sel=-- Seleccionar Condición --
+f_mon_condition=Condición:
+f_mon_condition_value=Valor:
+f_mon_actions=Acción:
+f_mon_actions_sel=-- Seleccionar Acción a ejecutar --
+f_mon_script=Guión para ejecutar:
+f_mon_script_sel=-- Seleccionar Guión para ejecutar --
+f_mon_how=Modo ejecución:
+f_mon_how_sel=-- Seleccionar Modo de ejecutar --
+f_mon_when=Cuándo ejecutar:
+f_mon_when_sel=-- Seleccionar Cuándo ejecutar --
+l_monalias=Alias
+l_monname=Descripción
+l_montarget=Tipo
+l_monobject=Objeto
+l_moncondition=Condición
+l_monconditionvalue=Valor
+l_monaction=Acción
+l_monscript=Guión
+l_monhow=Modo
+l_monwhen=Cuándo
+
+ticket_status_value=no,day,time,counter
+ticket_no_tit=No activo
+ticket_day_tit=Hasta Fecha en fomato "ddmmyyyy"
+ticket_time_tit=Hasta Hora en formato "hhmmss"
+ticket_counter_tit=Hasta consumir el contador
+f_3tiermaxsess=Nro. Máximo de Sesiones:
+f_endticket=Valor del límite del Ticket:
+f_ticketcounter=Contador (nro de Accesos):
+f_ticketstatus=Definición del Ticket de acceso:
+f_ticketstatus_sel=-- Seleccionar Tipo de Ticket de acceso --
+f_doifendticket=Acción para Ticket expirado:
+
+msg_count_update=Contadores Actualizados
+sv_histAct_title=Historial de Acciones Webmin
+f_fname=Nombre
+f_fperm=Permisos
+f_fowner=Propietario
+f_fgroup=Group
+f_fsize=Tamaño
+f_fmonth=Mes
+f_fday=Día
+f_ftime=Hora
+f_fdefault=Por defecto
+f_filelistName=Nombre de Fichero:
+f_sessreload=Recargar Lista de Sessiones
+
+f_perm_desc=-rwxr-xr-x,-rwxr--r--,-rwxrw-rw-,-rwxrwxrwx,-rw-------,-rw-r--r--,-rw-rw-rw-,-rwx------,-r-x------,-r-xr-xr-x
+f_perm_value=0755,0744,0766,0777,0600,0644,0666,0700,0500,0555
+f_perm_sel=-- Seleccionar Permisos --
+file_err=No es posible $1 fichero $2/$3 permisos $4
+file_errexist=El fichero $1/$2 ya existe.
+file_errexec=Los permisos para $1/$2 no son correctos.
+file_errdir=No se puede acceder al directorio $1
+showlist_errName=Error$1 $2 : DESCONOCIDA ( Directorio: $3 Fichero: $4 Permisos: $5)
+
+sckerr_noip=Fallo al resolver la direción IP de $1
+sckerr_no=Fallo al crear el socket : $1
+sckerr_noconn=Fallo al conectar con $1:$2 : $3
+
+posixAccount=Perfil Usuario Unix
+addressbook=Datos Agenda
+
+user_options=Opciones creación Usuario
+userpasswd=Password inicial
+passwdtype=Tipo Password
+md5=MD5
+crypt=Unix Crypt
+plaintext=sin hash (texto plano)
+create_home=¿Crear directorio Home ?
+copy_files=¿Copiar ficheros al directorio Home ?
+yes=Si
+no=No
+none=Ninguno
+task=tarea
+
+index=Indice
+help=Ayuda
+create=Crear
+modify=Modify
+delete=Delete
+execute=Ejecutar
+make=Make
+clean=Vaciar
+showlist=Ver Lista
+view=Ver
+tail=Ver desde Final
+select=Seleccionar
+set_passwd=Asigna Password
+OK=Correcto
+warn=Precaución
+stop=Parar
+browse=browse
+unknown=Desconocido
+
+header_1=LDAP usuario Creado
+header_2=LDAP usuario Modificado
+header_3=Editar usaurio LDAP
+header_4=Crear usuario LDAP
+
+masterHost_msg=Host con Tablas Maestras
+
+
+edit_input=Entrada del comando
+edit_when=Cuándo ejecutar
+edit_minutes=Minutos
+edit_mins=Minutos
+edit_hours=Horas
+edit_days=Días
+edit_months=Meses
+edit_weekdays=Días de Semana
+edit_all=Todos
+edit_selected=Seleccionado...
+edit_run=Ejecutar Ahora
+
+month_1=Enero
+month_2=Febrero
+month_3=Marzo
+month_4=Abril
+month_5=Mayo
+month_6=Junio
+month_7=Julio
+month_8=Agosto
+month_9=Septiembre
+month_10=Octubre
+month_11=Noviembre
+month_12=Diciembre
+
+day_0=Domingo
+day_1=Lunes
+day_2=Martes
+day_3=Miércoles
+day_4=Jueves
+day_5=Viernes
+day_6=Sábado
+
+
+# TTA PARAMETERS
+
+tta_ext_cfgfiles=.properties
+tta_global_dir=/var/serverconfig/global/
+tta_local_dir=/var/serverconfig/local/
+tta_bootstrap=bootstrap.properties
+tta_components=components.properties
+tta_properties=applaunch array bootstrap cdm components ldap lictypes security webauth
+ttases_app=Application
+ttases_appserv=Application Server
+ttases_user=User
+ttases_client=Client
+ttases_pe=Protocol Engine ID
+ttases_status=Status
+ttases_id=Session ID
+ttases_time=Start Time
+ttases_resume=Resumable For
+ttases_serveruser=Application Server User
+
+responding_on=Respondiendo en el puerto $1
+srvTTA_CDM=TTA Client Drive Mapping
+srvTTA_STD=TTA acceso estándard
+srvTTA_SSL=TTA acceso SSL
+srvTTA_Array=TTA Array
+srvHTTP=Servicios HTTP
+srvHTTPS=Servicios HTTPs
+srvLDAP=Servicios LDAP
+srvLDAPCACHE=Servicios LDAPCACHE
+srvSTATUS=STATUS de Servicios
+
+cfg_is_masterHost=Es Host Master de las Tablas del Servicio
+cfg_masterHost=Host Master de las Tablas del Servicio
+cfg_masterHostURL=URL del Host Master de las Tablas del Servicio
+cfg_ldap_type=LDAP Software
+cfg_is_ldapcache=Esta usando el servico LDAP-CACHE
+cfg_ldapcache_type=Software de LDAP Cache
+cfg_cache_chkdefaults=Usar objeto por defecto LDAP CACHE
+cfg_cache_chkttalogin=Usar valores login de usuario tta en LDAP CACHE
+cfg_cache_scandebug=Depuración de búsqueda en TTA LDAP Cache
+cfg_cache_domain=Dominio por defecto de login para LDAP CACHE
+cfg_check_maxsess=Comprobar límite de Sesiones
+cfg_default_maxsess=Número ilimitado de Sesiones
+cfg_check_ticket=Comprobar Ticket de Sesiones
+cfg_default_cat=Modulo por defecto
+cfg_order_cat=Orden de Modulos
+cfg_interface=Menu Interface
+cfg_has_monitor=Está usando el Monitor TTA
+cfg_has_cronsess=Usa Cron para Listar Sessiones
+cfg_sessout_timeout=Recargar Informes de Sesiones cada
+cfg_output_cgis=Visualizar Errores por Pantalla
+cfg_debug_code=Nivel de Depuración de Codigo en Ejecución
+cfg_check_services=Comprobar Servicos en cada Acceso
+cfg_iferror_services=Si hay error en Servicos
+
+chk_srv_title=Comprobar los Servicios
+msg_sttasrvs=Seleccionar Servidor Webmin como base de configuración ... Registrar
+msg_works=Estamos trabajando ... perdonen las molestias !!!
+msg_processing=Procesando ...
+noacl_cgi=Acceso a "$1" no permitido !!!!
+load_data=Se recomienda copiar la base de Datos de Tarantella y los LDAP antes de CARGAR DATOS !!!
+msg_ttataskstop=Tarantella Requiere ser Parado para esta taraea !!!
+license=Licencia
+license_file=license-es
+
+pid=Process ID
+owner=Owner
+command=Command
+cpu=CPU
+stta_locked=EL módulo STTA está bloqueado por tareas de Instalación / Actualizaciones
+note=NOTE:
+info=INFO:
+run=Ejecutar:
+menu=Opciones:
+not_found=no encontrado
+
+viewon_screen=Ver por pantalla
+stta_sync=Sincronización de STTA
+remote_sync=Sync:
+see_also=see also
+img_dircopy=Copiar directorio de imágenes:
+
+l_group=Grupo
+l_time=Tiempo
+l_servtta=Serv.TTA
+l_data=Datos
+f_billstartdate=Desde (yyyy/mm/dd ):
+f_billenddate=Hasta (yyyy/mm/dd ):
+f_makereportbill=Crear ficheros de Informes
+f_dirbillout=Directorio informes:
+f_formatbillout=Formato informes:
+format_html=HTML
+format_cvs=cvs
+licenseinfo=Info. Licencias
+
+brand_data=Marca
+brand_desc=Descripción
+brand_all=Marcar Todo
+brand_broken=Corregir Marcas
+sel_lang=Seleccionar lengua:
+f_ttaapptype=Tipo Aplicación:
+msg_fieldsreq=(Los valores precedidos con * son obligatorios)
+choose_selhosts=Host Seleccionados
+choose_selgrphosts=Grupos de Hosts Seleccionados
+choose_selapps=Aplicaciones Seleccionadas
+choose_selgrpapps=Grupos de Aplicaciones Seleccionadas
+choose_listhosts=Lista de Hosts
+choose_listhosts=Lista de Hosts
+choose_listgrphosts=Lista de Grupos de Hosts
+choose_listapps=Lista de Aplicaciones
+choose_listgrpapps=Lista de Grupos de Aplicaciones
+choose_ok=Confirmar
+choose_cancel=Cancelar
+choose_clear=Limpiar
+choose_msg_tosel=Click sobre el enlacepara seleccionar
+choose_msg_tounsel=Click sobre el enlacepara eliminar de la selección
+sync_user=Replicar Usuario
+selec_noldapsrv=No usar servidor
+f_norunttacmd=No sincronizar Tarantella:
+f_fixobjsync=Fijar errores de integridad:
+f_filechecksync=Path fichero para volcar información:
+l_alias=Alias
+copy=Copiar
+move=Mover
+rename=Renombrar
+f_newname=Nuevo nombre:
+msg_noticket=Ticket not Valid !!!
+msg_nosess=No Sessions Availables !!!
+ldap_log_err=No hay definido un ldap_log o usuarios LDAP
diff --git a/stta/devtools/lang-save/en.cfg b/stta/devtools/lang-save/en.cfg
new file mode 100755
index 0000000..5ceb785
--- /dev/null
+++ b/stta/devtools/lang-save/en.cfg
@@ -0,0 +1,108 @@
+main_title=Configuración Principal
+interface_title=Configuración interface
+list_title=Configuración Ficheros de Listas
+stta_title=Configuración STTA
+tta_title=Configuración TTA
+ldap_title=Configuración LDAP
+ldap2_title=Configuración LDAP2
+ldap_vars_title=Configuración Variables LDAP
+cache_title=Configuración CACHE
+ldapcache_title=Configuración LDAPCACHE
+ldapcache2_title=Configuración LDAPCACHE2
+ldapcache_vars_title=Configuración variables LDAPCACHE
+http_title=Configuración HTTP
+path_title=Configuración PATHS
+session_title=Configuración Sesiones
+ticksess_title=Configuración Ticket de Sesiones
+alias_title=Configuración Alias
+values_title=Configuración Valores
+debug_title=Configuración Parámetros Debug
+feedback_title=Configuración Comentarios de STTA
+logs_title=Configuración lista de Logs y Copias
+install=Instalación de STTA
+loadfiles=Cargar ficheros en STTA
+joinarray=Servidor en Array sin LDAPs
+masterstta=Servidor Master STTA (secundario)
+work_secuence=Secuencia de tareas
+lockstta=Bloqueo de STTA
+readme1st=Leer primero
+dataconf=Configuración de STTA
+defslists=Listas de definición de objetos
+checklist=Comprobaciones
+ldapbasedns=Base DN del LDAP
+ttaensbase=Base del ENS Tarantella
+makelogsdir=Crear los directorios de logs
+maketools=Crear los scripts para ejecutar tareas (tools)
+expectchanges=Cambiar Expects TCLs de Tarantella para LDAP Cache
+readmelast=Leer al final
+unlockstta=Desbloquear STTA
+update=Actualización de STTA
+doupdate=Ejecutar guión de actualización
+upgrade=Cambio de Versión (upgrade)
+doupgrade=Ejecutar guión de cambio de versión
+patch=Parchear STTA
+dopatch=Ejecutar guión para parchear STTA
+doloadfiles=Ejecutar guión para Cargar Ficheros en STTA
+fixstampdata=Fijar datos de sellado y control ficheros
+nextstep=Paso Siguiente
+unlockstta_msg=¡¡¡ El desbloqueo no garantiza el funcionamiento correcto\n si no se ha seguido la secuencia establecida !!!
+lockstta_msg=¡¡¡ El bloqueo garantiza que no se pueda acceder al módulo\n mientras se procesa la secuencia de instalar o actualizar\n y/o hasta que se desbloquee !!!
+visited=Visitado
+f_taskinstupd=Seleccionar Tarea:
+warn_lockstta=¡¡¡ El módulo debe de bloquearse\n pulsando el botón en la pantalla de proceso\n o sólo estará en modo consulta !!!
+warn_lockstta2=¡¡¡ Módulo en modo consulta o visualización, sin bloquear !!!
+tit_fileupdpatch=Fichero para "$1"
+f_fileupdpatch=Path del fichero:
+warn_updpatch= !!! Se recomienda proceder a la copia de seguridad antes de continuar el proceso !!!
+tit_runfilename=Proceso del fichero: $1
+file_erraccess=No se puede acceder al fichero $1
+dir_erraccess=No se puede acceder al directorio $1
+error_runonce_step=No se puede ejecutar $1 más de una vez.
+error_unknown_step=Paso "$2" ($1) no tiene acciones definidas o han provocado errores !!!.
+done=Realizado
+this_colorline=Línea en este color
+black_line=Línea en negrita
+step_runonce=Paso que sólo se puede ejecutar una vez (el resto en cualquier momento)
+step_current=Paso seleccionado y ejecutado de la secuencia
+steps_done=Paso realizado ya de la secuencia
+nro_visited=Contador de visitas realizadas
+step_next=Paso siguiente y recomendado de la secuencia
+help_msg1=Es necesario que el módulo esté bloqueado para ejecutar/seleccionar los pasos de la secuencia
+make_msg1=Pulsar el botón o Ejecutar otra opción de la secuencia de tareas para no continuar con la acción.
+info_panel=Panel de información y detalles de "$1 "
+help_panel=Panel de ayuda de uso de "$1 "
+run_panel=Panel de ejecución de "$1 "
+menu_panel=Panel de Opciones y secuencias para "$1 "
+opc_msg=Seleccionar tarea a ejecuar:
+mode_run=Modo Ejecución
+mode_browse=Modo Consulta
+defslists_msg1=Para $1 los siguientes ficheros serán inicializados:
+deflist_rootorg=Organización
+deflist_rootdesc=Raiz de la organización
+making_files=Generando ficheros de $1
+ldapbasedns_msg1=LDAP $1 DN=$2
+ttaensbase_msg1=Tarantella ENS=$1
+ldapcachebasedns_msg1=LDAP-CACHE $1 DN=$2
+tools_msg1=STTA tools en $1
+expect_msg1=TTA Cache tcl expects de $1
+running=En ejecución
+notrunning=No operativo
+dn_ok=con DN
+dn_no=DN no existe
+no_ldaprunning=Los servicios LDAP no están operativos.
+no_ldapcacherunning=Los servicios LDAP CACHE no están operativos.
+rc_ldaps=Hay ejemplos de arranque automático en $1
+rc_files=Arranque
+f_conf=configuración
+f_openldapname=Nombre del servidor LDAP
+f_openldapdb=Directorio para la base de datos LDAP
+tta_cachefix=Ajustar Tarantella para LDAP Cache
+tta_ldaplogin=Asignar Credenciales LDAP en Tarantella
+startup_service=Es necesario arrancar el servicio $1 para continuar
+tta_dbcreate=Recrear la Base de Datos de Tarantella
+msg_ttasettools=Es neceario crear los scripts para ejecutar tareas
+expect_new=Guiones nuevos salvados en $1
+expect_back=Guiones originales (sin ldap cache ) salvados en $1
+seehelpInfo=Ver Panel de Ayuda al final de la página
+error_version=Version Incorrecta
+error_stamp=Marca de Ficheros de Código Incorrecta
diff --git a/stta/devtools/lang-save/en.feedback b/stta/devtools/lang-save/en.feedback
new file mode 100755
index 0000000..481cf68
--- /dev/null
+++ b/stta/devtools/lang-save/en.feedback
@@ -0,0 +1,28 @@
+main_feedback=Feedback..
+feedback_title=Webmin Feedback
+feedback_desc=This form allows you to report bugs on make suggestions to the STTA developers regarding any problems or missing features that you have found. When the Send button is clicked, the details entered into the form will be emailed to $1.
+feedback_header=Feedback details
+feedback_name=Your name
+feedback_email=Your email address
+feedback_module=Regarding module
+feedback_all=All modules
+feedback_text=Description of problem or suggestion
+feedback_os=Include operating system details in email?
+feedback_osdesc=If this option is selected, the automatic feedback email will include your operating system name and version.
+feedback_config=Include module configuration in email?
+feedback_configdesc=If this is selected, the email will include the configuration of the related module and the contents of any config files that the module uses. For example.
+feedback_attach=Additional files to attach
+feedback_send=Send Feedback
+feedback_mailserver=Send via SMTP server
+feedback_mailserver_def=Local sendmail program
+feedback_err=Failed to send feedback
+feedback_emodule=You chose to include module configuration in the email, but did not select a module.
+feedback_emodule2=Selected module does not exist
+feedback_econfig=You do not have full access to the selected module.
+feedback_via=Sent feedback to $1 via SMTP server $2
+feedback_prog=Sent feedback to $1 using sendmail program $2
+feedback_esend=Failed to send feedback via sendmail program or local SMTP server.
+feedback_to=Send feedback to addresses
+feedback_enoto=No addresses were entered to send feedback to
+feedback_ecannot=You are not allowed to send feedback
+feedback_ecannot2=You are not allowed to send feedback containing config files
diff --git a/stta/devtools/lang-save/en.help b/stta/devtools/lang-save/en.help
new file mode 100755
index 0000000..fb9b98e
--- /dev/null
+++ b/stta/devtools/lang-save/en.help
@@ -0,0 +1,28 @@
+#
+#
+book_stta=Book STTA
+introtitle=Introducción
+whystta=Cómo surge STTA
+features=Funcionalidades y Características.
+syncsrvs=Sincronización y conexión de servicios.
+sttatechs=Tecnologías en STTA.
+sec_definitions=¿ Qué es STTA ?
+sec_features=Características
+sec_architecture=Arquitectura de STTA
+
+sec_origenstta=Origen y antecentes de STTA
+sec_asttaservicesinterface=STTA como Interface de Servicios con Tarantella
+sec_sttainterface=Interface de STTA
+sec_sttatechnologies=Tecnologías en STTA
+sec_elemensandobjects=Objetos y Elementos en STTA
+sec_setupmodes=Modalidades o formas de uso y configuración
+sec_configstta=Parámetros y configuración de STTA
+sec_installupdstta=Instalación y actualizaciones de STTA
+sec_admintools=Utilidades de administración
+sec_supervisiontools=Utilidades de Supervisión
+sec_sttautilities=Otras utilidades
+sec_othersttasrvs=Acceso a otros servidores STTA
+sec_appsaccess=Autenticación de acceso a Servidores de Aplicaciones
+sec_listlogsmgr=Gestión de listas de logs de los Servicios
+sec_monitorstta=Monitor de Acciones de STTA
+sec_sesstickets=Gestión de sesiones y Tickets
diff --git a/stta/devtools/lang-save/en.tta_apps b/stta/devtools/lang-save/en.tta_apps
new file mode 100755
index 0000000..5870fb1
--- /dev/null
+++ b/stta/devtools/lang-save/en.tta_apps
@@ -0,0 +1,120 @@
+f_tta_true=Yes
+f_tta_false=No
+f_tta_name=Name
+f_tta_width=Width
+f_tta_height=Heigth
+f_tta_description=Description
+f_tta_app=Application
+f_tta_appserv=Host
+f_tta_method=Connection Method
+f_tta_resumable=Resumable
+f_tta_never=Never
+f_tta_session=Tarantella Webtop Session
+f_tta_always=Always
+f_tta_endswhen=Session Ends When
+f_tta_lastclient=Last Client exits
+f_tta_windowmanager=Window Manager exists
+f_tta_windowmanageralone=Only Window Manager remains
+f_tta_nowindows=No visible windows
+f_tta_loginscript=Script exist or no windows
+f_tta_displayusing=Display Using
+f_tta_webtop=Webtop
+f_tta_mainbrowser=Webtop
+f_tta_clientwm=Client window management
+f_tta_newbrowser=New browser window
+f_tta_independent=Independent window
+f_tta_awtwindow=Independent window
+f_tta_kiosk=kiosk
+f_tta_localx=Local X server
+f_tta_maximize=Application Size
+f_tta_depth=Color Depth
+f_tta_icon=Webtop Icon
+f_tta_roottype=Root Window
+f_tta_default=Default apparence
+f_tta_custom=Custom color
+f_tta_rootcolor=Color
+f_tta_compression=Command Compression
+f_tta_automatic=Adjust dynamically
+f_tta_on=on
+f_tta_off=off
+f_tta_execution=Command Execution
+f_tta_inorder=In order (best for animantion)
+f_tta_optimized=Optimized
+f_tta_quality=Color Quality
+f_tta_best=Best at application start
+f_tta_interlaced=Interlaces Images
+f_tta_accel=Use graphics acceletarion
+f_tta_delayed=Allow delayed updates
+f_tta_args=Command-line Argum...
+f_tta_env=Environment Variables
+f_tta_winmgr=Window Manager
+f_tta_login=Login Script
+f_tta_empage=Emulator Applet Page
+f_tta_resumetimeout=Resumable For
+f_tta_middlemouse=Middle Mouse Timeout
+f_tta_windowclose=Window Close Action
+f_tta_notifyapp=Notify Application
+f_tta_killapp=Kill Application
+f_tta_suspendsession=Suspend Session
+f_tta_endsession=End Session
+f_tta_euro=Euro Character
+f_tta_dpi=Monitor Resolution
+f_tta_keepopen=Keep launch connections open
+f_tta_lockkeymap=Lock keymap
+f_tta_share=Share resources between similar sessions
+f_tta_winproto=Windows Protocol
+f_tta_wts=Windows Terminal Services
+f_tta_wincenter=WinCenter
+f_tta_uis=Citrix UNIX Integration Services
+f_tta_merge=SCO Merge
+f_tta_winframe=WinFrame/MetaFrame
+f_tta_none=None
+f_tta_trylocal=Try running from client first
+f_tta_ntdomain=Windows NT Domain
+f_tta_wincursor=Windows Cursor
+f_tta_protoargs=Protocol Arguments
+f_tta_url=URL
+f_tta_emulator=Emulation Type
+f_tta_scocon=SCO Console
+f_tta_vt420=VT420
+f_tta_wyse60=Wyse 60
+f_tta_termtype=Terminal Type
+f_tta_cols=Columns
+f_tta_lines=Lines
+f_tta_font=Font Family
+f_tta_courier=Courier
+f_tta_helvetica=Helvetica
+f_tta_timesroman=Times Roman
+f_tta_fontsize=Font Size
+f_tta_fixedfont=Fixed font size
+f_tta_autowrap=Wrap long lines
+f_tta_cursor=Cursor
+f_tta_off=Off
+f_tta_block=Block
+f_tta_underline=Underline
+f_tta_statusline=Status Line
+f_tta_none=None
+f_tta_indicator=Cursor position and print mode
+f_tta_hostmessages=Messages form the host
+f_tta_standard=Standard
+f_tta_extended=Extended
+f_tta_scrollstyle=Scroll Style
+f_tta_line=Line-by-line
+f_tta_multiple=Several lines at once
+f_tta_smooth=Smooth but slower
+f_tta_border=Border Style
+f_tta_normal=Normal
+f_tta_indented=Indented
+f_tta_raised=Raised
+f_tta_answermsg=Answerback Message
+f_tta_appkeymode=Application key mode
+f_tta_keypad=Keypad
+f_tta_numeric=Always numbers
+f_tta_application=Application can change codes
+f_tta_cursorkeys=Cursor Keys
+f_tta_cursor=Always cursor movement codes
+f_tta_escape=Escape sequence
+f_tta_codepage=Code Page
+f_tta_keymap=Keyboard Map
+f_tta_attributemap=Attribute Map
+f_tta_colormap=Color Map
diff --git a/stta/devtools/lang-save/es b/stta/devtools/lang-save/es
new file mode 100755
index 0000000..86cb71c
--- /dev/null
+++ b/stta/devtools/lang-save/es
@@ -0,0 +1,1027 @@
+# Para Cabeceras y Títulos Pricipales
+
+index_title=Servicios Tarantella
+index=Indice
+index_globalldap=Configuración LDAP
+index_globaltta=Configuración Tarantella
+
+headpage_right=Info
+head_logout=Desconectar Comentarios
+head_below=STTA
+
+ttasess_title=Sesiones Tarantella
+ttasesscount_title=Contador Sesiones Tarantella
+ttasesstotal_title=Resumen Sesiones Tarantella
+ttasessbill_title=Registro Sesiones Tarantella
+ttastatus_title=Status Tarantella
+ttainfo_title=Info Tarantella
+index_servers=Servidores
+index_warn=Precaución
+index_any=cualquiera
+index_acl=Autorizaciones
+index_module=Info.Módulo
+index_default=Por defecto
+index_auto=Automático
+index_users=Usuarios
+index_mvusers=Mover Usuarios
+index_ou=Organizaciones
+index_mvou=Mover Organizaciones
+index_ous=Organizaciones
+index_grphosts=Grupo Hosts
+index_mvhosts=Mover Hosts
+index_mvgrphosts=Mover Grupos Hosts
+index_apps=Aplicaciones
+index_mvapps=Mover Aplicaciones
+index_grpapps=Grupo Aplicaciones
+index_mvgrpapps=Mover Grupos Aplicaciones
+index_hosts=Hosts
+index_hostsuser=Hosts User
+index_passwd=Password
+index_passwdcache=TTA Password Cache
+index_ttabackup=Copia de Tarantella
+index_ldaploglist=Lista Ldap-log
+index_ldapbackup=Copia de LDAP
+index_ldapcachebackup=Copia de LDAP Cache
+index_replica=Replicación
+index_update=Actualización
+index_addusr=Alta Nuevo Usuario
+index_mvusr=Mover Usuarios
+index_loadusr=Carga de Usuarios
+index_loadou=Carga de Organizaciones
+index_loadhosts=Carga de Hosts
+index_loadhostsuser=Carga Usuarios Hosts
+index_delusr=Borrado de Usuarios
+index_moddusr=Modificar Usuarios
+index_moddou=Modificar Organización
+index_addou=Nueva Organización
+index_addapp=Nueva Aplicación
+index_addgrpapps=Nuevo Grupo Aplicaciones
+index_adddomain=Nuevo Dominio
+index_mvdomains=Mover Dominio
+index_addlink=Nuevo Vínculo
+index_mvlinks=Mover Vínculo
+index_addgrphosts=Nuevo Grupo Hosts
+index_addhosts=Nuevo Host
+index_addhostsuser=Nuevo Usuario de Hosts
+index_filter=Criterio de Selección
+index_delou=Borrado de Organizaciones
+index_fixlists=Actualizado de Listas
+index_delapp=Borrado de Aplicaciones
+index_modapp=Modificar Aplicaciones
+index_delgrpapps=Borrar Grupo Aplicaciones
+index_modgrpapps=Modificar Grupo Aplicaciones
+index_deldomain=Borrado de Dominios
+index_moddomain=Modificar Dominios
+index_dellink=Borrado de Vínculos
+index_modlink=Modificar de Vínculos
+index_delhosts=Borrado de Host
+index_alivehosts=Status de Hosts
+index_modhosts=Modificar Host
+index_delgrphosts=Borrado de Grupo Hosts
+index_modgrphosts=Modificar Grupo Hosts
+index_delhostsuser=Borrado de Usuario Hosts
+index_profilecache=Perfiles Password Cache
+index_profcache=Perfiles Password Cache
+index_mvprofcache=Mover Perfiles Password Cache
+index_updatecache=Cambio password Cache
+index_updateALLcache=Actualizar Perfiles Cache
+index_addprofcache=Crear Perfil Cache
+index_addldapcache=Crear LDAP Cache
+index_delprofcache=Borrar Perfil Cache
+index_delldapcache=Borrar LDAP Cache
+index_modldapcache=Modificar LDAP Cache
+index_selldapcache=Selección LDAP Cache
+index_ttastatus=Status Servicios Tarantella
+index_ttaarchive=Archivo Logs TTA
+index_ttarestart=Reinicio Servicios Tarantella
+index_ldaprestart=Reinicio Servicios LDAP
+index_ldapcacherestart=Reinicio LDAP Cache
+index_ldap=LDAP
+index_ttaproperties=Propiedades Tarantella
+index_monitor_act=Monitor Acciones
+index_runact=Ejecutar Acciones
+index_acts=Acciones del Monitor
+index_mvactions=Mover Acciones del Monitor
+index_ldapldif=Ldif del LDAP
+index_ldapload=Carga del LDAP
+index_ldapreplica=Replicar LDAP
+index_ldapcacheldif=Ldif LDAP Cache
+index_ldapcacheload=Carga LDAP Cache
+index_ldapcache=LDAP - Cache
+index_webtops=Webtops
+index_apps=Aplicaciones
+index_grpapps=Grupo Aplicaciones
+index_domains=Dominios
+index_links=Vínculos
+index_ttasess=Sesiones Tarantella
+index_ttasess_count=Contadores Sesiones TTA
+index_ttasess_total=Resumen Sesiones TTA
+index_ttasess_bill=Registro Sesiones TTA
+index_ttabackup=Backup Tarantella
+index_ttaensbk=Backup Tarantella ENS
+index_ttaensdump=Descarga Tarantella ENS
+index_ttaensload=Carga Tarantella ENS
+index_ttaensrecreate=Re-crear Tarantella ENS
+index_ttaensrestore=Recuperar ENS Backup
+index_ldapcachebackup=Backup del LDAP Cache
+index_works=En construcción
+run_noout=No hay salida de la orden ejecutada
+index_ldapusers=Usuarios LDAP
+index_sysusers=Usuarios Sistema
+index_winldapusers=Usuarios
+index_ldapobjs=Objetos LDAP Cache
+index_winldapobjs=Objetos
+index_monitor=Monitor
+index_supervision=Supervisión
+index_admin=Admin
+index_filemgr=Ficheros
+index_modfile=Modificar Fichero
+index_delfile=Borrar Fichero
+index_cleanfile=Vaciar Fichero
+index_showlist= Ver Lista Objetos
+index_deldefslists= Borrar Lista Objetos
+index_moddefslists= Modificar Lista Objetos
+index_addfile=Crear Fichero
+index_runfile=Ejecutar Fichero
+index_ttascript=Ficheros de Ordenes
+index_logldap=Log Users LDAP
+index_logstta=Logs de STTA
+index_dirdefstta=Listas Objetos
+index_loghttp=Log HTTP
+index_loghttpacc=Log Accesos HTTP
+index_loghttps=Log HTTPS
+index_loghttpsacc=Log Accesos HTTPS
+index_dirlogstta=Tarantella Logs
+index_dirlogscache=Cache LDAP Logs
+index_logaccldap=Log Acceso LDAP
+index_logaccldapcache=Log Acceso LDAP CACHE
+index_logsystem=Log Sistema
+index_logldapsrv=Log LDAP
+index_logldapcachesrv=Log LDAP CACHE
+index_dirsave=Dir. Copias
+index_ldapschema=Esquema LDAP
+index_ldapcacheschema=Esquema LDAP CACHE
+index_installupd=Instalar/Actualizar
+index_listdebuglogs=Lista Logs Debug
+index_liststtalogs=Lista Logs STTA
+index_listbackups=Lista Copias STTA
+index_webhelp=Generar Web Ayuda
+index_checksync=Comprobar Integridad
+index_sttareport=Informe de STTA
+index_brandmgr=Marcar STTA
+index_synclist=Sincronizar Listas
+
+# Para errores
+
+config_error_=Ajuste la configuración del módulo correctamente.
+index_eroot=El directorio raiz de Tarantella $1 no existe. Si Tarantella está instalado, ajuste la configuración del módulo con la localización correcta.
+index_eserver=Ejecutable del servidor Tarantella $1 no existe. Si Tarantella está instalado, ajuste la configuración del módulo con la localización correcta.
+index_cmderr=¡¡ Orden No Configurada !!
+ldap_noconnect=No se pudo conectar con el servidor LDAP
+ldap_conerr=LDAP Error conectividad
+ldap_admerr=Error en Gestión del LDAP
+ldapcache_noconnect=No se pudo conectar con el servidor LDAP Cache
+ldapcache_conerr=LDAP Cache Error de conectividad
+ldapcache_admerr=Error en Gestión del LDAP Cache
+ldapcache_disable=Gestión del LDAP Cache no Habilitada
+ldapcache_enable=Gestión del LDAP Cache Habilitada
+ldapcache_norecord=Objeto sin valores por defecto en LDAP Cache
+list_err=!!! Registro ya existe !!!
+list_errno=!!! Registro NO existe !!!
+list_errgrp=??? El Grupo no existe !!!
+nohascountsess_err=No se ha activado el Registro (cron-list) de Contadores de Sessiones
+nohastotalsess_err=No se ha activado el Registro (cron-list) de Resumen de Sessiones
+nohasbillsess_err=No se ha configurado el Registro de Sessiones de Tarantella
+nosess_err=No hay Sesiones Activas
+noacts_err=No hay Acciones Definidas
+sessdiff_err=Lista y Contador de Sesiones cancelados. Volver a solicitar lista de sesisones.
+tta_noobject=Objeto no encontrado en Base de Datos Tarantella
+ieconfigsave_err=Salvar toda la configuración con IE produce errores. Usar otro Browser.
+error_found= ¡¡¡ Se ha producido un error en el proceso !!!
+
+# Para Títulos y Formularios en Tablas
+
+titidx_works=¡¡ Pediente de Desarrollo. !!
+titidx_warn=¡¡ Comprobar Servicios. !!
+titidx_ttastatus=Estado de los Servicios de Tarantella
+titidx_ttasess=Sesiones en los Servicios de Tarantella
+titidx_ttasess_count=Contadores de Sesiones en los Servicios de Tarantella
+titidx_ttasess_total=Resumen de Sesiones en los Servicios de Tarantella
+titidx_ttasess_bill=Registro de Sesiones en los Servicios de Tarantella
+titidx_ttarestart=Re-arranque de los Servicios de Tarantella
+titidx_ldaprestart=Re-arranque de los Servicios de LDAP
+titidx_ldapcacherestart=Re-arranque de los Servicios de LDAP Cache
+titidx_ttabackup=Backup Tarantella
+titidx_ttaensbk=Backup Tarantella ENS
+titidx_ttaensdump=Descarga Tarantella ENS
+titidx_ttaensrestore=Recuperar ENS Backup
+titidx_ttaensrecreate=Re-Crear Tarantella ENS
+titidx_ttaensload=Carga Tarantella ENS
+titidx_ttaarchive=Archive Tarantella
+titidx_ldapbackup=Copia de LDAP
+titidx_ldapldif=Ldif del LDAP
+titidx_ldapload=Carga del LDAP
+titidx_ldapreplica=Replicar LDAPs
+titidx_ldapcachebackup=Copia de LDAP Cache
+titidx_ldapcacheldif=Ldif del LDAP Cache
+titidx_ldapcacheload=Carga del LDAP Cache
+titidx_ldapbrw=LDAP browser
+titidx_ldapcachebrw=LDAP Cache browser
+titidx_ldapcachebackup=Backup del LDAP Cache
+titidx_adusr=Atributos para Crear un Nuevo Usuario
+titidx_loadusr=Carga de Nuevos Usuario
+titidx_loadou=Carga de Nuevas Organizaciones
+titidx_loadhosts=Carga de Nuevos Hosts
+titidx_loadhostsuser=Carga de Nuevos Usuarios de Hosts
+titidx_filter=Definir criterios de selección de usuarios
+titidx_sessfilter=Definir criterios de visualizar Sesiones de Tarantella
+titidx_cachefilter=Definir criterios de selección LDAP Cache
+titidx_monitor_defact=Definir criterios de Acción del Monitor
+titidx_monitor_delact=Borrar Acción del Monitor
+titidx_monitor_modact=Modificar criterios de Acción
+titidx_delou=Borrar Organización ->
+titidx_fixlists=Actualizar Listas ->
+titidx_delapp=Borrar Aplicación ->
+titidx_modapp=Modificar Aplicación ->
+titidx_deldomain=Borrar Dominio ->
+titidx_moddomain=Modificar Dominio ->
+titidx_dellink=Borrar Vínculo ->
+titidx_modlink=Modificar Vínculo ->
+titidx_delgrpapps=Borrar Grupo Aplicaciones ->
+titidx_modgrpapps=Modificar Grupo Aplicaciones ->
+titidx_delgrphosts=Borrar Grupo Hosts ->
+titidx_modgrphosts=Modificar Grupo Hosts ->
+titidx_alivehosts=Status Hosts ->
+titidx_modhosts=Modificar Hosts ->
+titidx_delhostsr=Borrar Hosts ->
+titidx_delhostsuser=Borrar Usuario Hosts ->
+titidx_update= Actualizando Módulo
+titidx_delusr=Borrando Usuario:
+titidx_modusr=Atributos de " $1 " de " $2 "
+titidx_modou=Atributos de " $1 "
+titidx_modou0=Atributos de la Organización
+titidx_modusr0=Atributos del Usuario
+titidx_adou=Atributos para Crear un Nuevo Grupo/Organización
+titidx_adapp=Atributos para Crear una Nueva Aplicación
+titidx_adgrpapps=Atributos para Crear un Nuevo Grupo Aplicaciones
+titidx_addomain=Atributos para Crear un Nuevo Domino
+titidx_adlink=Atributos para Crear un Nuevo Vínculo
+titidx_adgrphosts=Atributos para Crear un Nuevo Grupo Hosts
+titidx_adhosts=Atributos para Crear un Nuevo Host
+titidx_adhostsuser=Atributos para Crear un Nuevo Usuario de Hosts
+titidx_modgrp=Atributos de $1
+titidx_modgrp0=Atributos del Grupo
+titidx_passwd=Cambio de Clave de Acceso
+titidx_ldaploglist=Lista de Usuarios para Ldap-log
+titidx_updatecache=Actualizar Claves de Acceso en Cache
+titidx_addprofcache=Crear Perfil de Claves de Acceso en Cache
+titidx_addldapcache=Crear Claves de Acceso en LDAP Cache
+titidx_modldapcache=Modificar Claves de Acceso en LDAP Cache
+titidx_delprofcache=Borrar Perfil de Claves de Acceso en Cache
+titidx_delldapcache=Borrar Claves de Acceso en LDAP Cache
+titidx_winldapusers=Selección de Usuarios LDAP
+titidx_ldapusers=Selección de usuarios LDAP
+titidx_sysusers=Selección de usuarios LDAP
+titidx_winldapobjs=Selección de Objetos LDAP Cache
+titidx_ldapobjs=Selección de objetos LDAP Cache
+titidx_selact=Seleccionar Acciones
+titidx_delact=Borrar Acciones
+titidx_modact=Modificar Acciones
+titidx_runact=Ejecutar Acciones
+titidx_filemgr=Seleccionar Ficheros
+titidx_delfile=Borrar Ficheros
+titidx_modfile=Modificar Ficheros
+titidx_addfile=Crear Ficheros
+titidx_runfile=Ejecutar Ficheros
+titidx_showlist=Mostrar Lista Objetos
+titidx_deldefslists= Borrar Lista Objetos
+titidx_moddefslists= Modificar Lista Objetos
+titidx_ttascript=Ficheros de Ordenes del Monitor
+titidx_logldap=Log de Cambios de Usuarios en LDAP
+titidx_dirdefstta=Listas de Objetos
+titidx_loghttp=Log de servidor Web HTTP
+titidx_loghttpacc=Log de Accesos al servidor Web HTTP
+titidx_loghttps=Log de servidor Web HTTPS
+titidx_loghttpsacc=Log de Accesos al servidor Web HTTPS
+titidx_dirlogstta=Tarantella Logs
+titidx_dirlogscache=Cache LDAP Logs
+titidx_logaccldap=Log de Acceso al servidor LDAP
+titidx_logaccldapcache=Log de Acceso al servidor LDAP Cache
+titidx_logsystem=Log Sistema
+titidx_logldapsrv=Log LDAP
+titidx_logldapcachesrv=Log LDAP CACHE
+titidx_dirsave=Directorio Salvaguardia
+titidx_ldapschema=Esquema del LDAP
+titidx_ldapcacheschema=Esquema del LDAP CACHE
+titidx_installupd=Proceso para Instalar y/o Actualizar STTA
+titidx_listdebuglogs=Lista de directorios y ficheros de Logs de Debug
+titidx_liststtalogs=Lista de directorios y ficheros de Logs de STTA
+titidx_listbackups=Lista de directorios y ficheros de Copias de STTA
+titidx_webhelp=Generar ficheros HTML de ayuda de STTA
+titidx_checksync=Comprobar la integridad de los Servicios
+titidx_sttareport=Generar informe de STTA
+titidx_brandmgr=Marcar Ficheros de STTA
+titidx_synclist=Sincronizar Listas de Objetos del Servicios
+titidx_mvgrphosts=Mover grupos de hosts
+titidx_mvhosts=Mover hosts
+titidx_mvgrpapps=Mover grupos de Aplicaciones
+titidx_mvapps=Mover Aplicaciones
+titidx_mvlinks=Mover Vínculos o Enlace
+titidx_mvdomains=Mover Dominios
+titidx_mvusers=Mover Usuarios
+titidx_mvou=Mover Organizaciones
+titidx_mvactions=Mover Acciones del monitor
+
+
+# For Icons and links
+
+tta_backup=Copia TTA
+tta_ensbk=Copia TTA ENS
+tta_ensrestore=Recuperar TTA ENS
+tta_ensdump=Descarga TTA ENS
+tta_ensload=Carga TTA ENS
+tta_ensrecreate=Recrear TTA ENS
+tta_archive=TTA Archivar Logs
+ldap_backup=Copia LDAP
+ldapcache_backup=Copia LDAP Cache
+ldap_ldif=Ldif LDAP
+ldap_load=Carga LDAP
+ldap_loglist=Lista ldap-log
+ldapcache_ldif=Ldif LDAP Cache
+ldapcache_load=Carga LDAP Cache
+tta_restart=Reinicio_TTA
+tta_help=Guía-TTA
+ldap_restart=Reinicio_LDAP
+ldapcache_restart=Reinicio_LDAP_Cache
+ldap_help=Guía-LDAP
+ttaps_title=Procesos TTA
+ttaps_list_title=Lista Procesos TTA
+logstta_title=Logs STTA
+ldapps_title=Procesos LDAP
+ldapps_list_title=Lista Procesos LDAP
+ldapcacheps_title=Procesos LDAP Cache
+ldapcacheps_list_title=Lista Procesos LDAP Cache
+ldap_title=LDAP
+admin_title=Admin
+sttaconfig_title=Configurar
+ldapbrw_title=Navegador LDAP
+ldapcachebrw_title=Navegador LDAP Cache
+ldapusrs_title=Usuarios LDAP
+sysusrs_title=Usuarios Sistema
+ldapcache_title=Cache LDAP
+addusr_title=Nuevo
+modusr_title=Modificar
+mvusr_title=Mover
+delusr_title=Borrar
+addou_title=Nuevo
+mvou_title=Mover
+addapp_title=Nueva
+mvapps_title=Mover
+addgrpapps_title=Nuevo
+mvgrpapps_title=Mover
+addgrphosts_title=Nuevo
+addhosts_title=Nuevo
+mvhosts_title=Mover
+mvgrphosts_title=Mover
+addhostsuser_title=Nuevo
+adddomains_title=Nuevo
+mvdomains_title=Mover
+addlinks_title=Nuevo
+mvlinks_title=Mover
+modou_title=Modificar
+delou_title=Borrar
+delapp_title=Borrar
+delgrpapps_title=Borrar
+deldomains_title=Borrar
+dellinks_title=Borrar
+delhosts_title=Borrar
+delgrphosts_title=Borrar
+alivehosts_title=Status
+modhosts_title=Modificar
+modgrphosts_title=Modificar
+modgrpapps_title=Modificar
+modapps_title=Modificar
+moddomains_title=Modificar
+modlinks_title=Modificar
+delhostsuser_title=Borrar
+passwd_title=Modificar Usuarios
+updatecache_title=Actualizar Cache
+addprofcache_title=Crear
+delprofcache_title=Borrar
+replica_title=Replicar LDAP
+loadusrs_title=Cargar
+loadous_title=Cargar
+loadhosts_title=Cargar
+loadhostsuser_title=Cargar
+addapps_title=Nuevo
+modapps_title=Modificar
+delapps_title=Borrar
+addgrpapps_title=Nuevo
+modgrpapps_title=Modificar
+delgrpapps_title=Borrar
+addobj_title=Nuevo
+modobj_title=Modificar
+delobj_title=Borrar
+monitor_title=Monitor
+showlist_title=Ver Lista
+actdef_title=Crear Acciones
+ttascript_title=Ficheros de Ordenes
+logldap_title=Log users LDAP
+dirdefstta_title=Listas Objetos
+loghttp_title=Log HTTP
+loghttpacc_title=Log Accesos HTTP
+loghttps_title=Log HTTPS
+loghttpsacc_title=Log Accesos HTTPS
+dirlogstta_title=Tarantella Logs
+dirlogscache_title=Cache-LDAP Logs
+logaccldap_title=Log Acceso LDAP
+logaccldapcache_title=Log Acceso LDAP CACHE
+logsystem_title=Log Sistema
+dirsave_title=Dir. Copias
+logldapsrv_title=Log LDAP
+logldapcachesrv_title=Log LDAP CACHE
+maincfg_title=Parámetros Principales
+debugcfg_title=Parámetros Debug
+sessioncfg_title=Parámetros Sesiones
+migrate_title=Migrando
+ldapschema_title=Esquema LDAP
+ldapcacheschema_title=Esquema LDAP CACHE
+installupd_title=Instalar/Actualizar STTA
+listdebuglogs_title=Lista Logs Debug
+liststtalogs_title=Lista Logs
+listbackups_title=Lista Copias
+sttareport_title=Informe STTA
+brandmgr_title=Marcar STTA
+webhelp_title=Generar Web Ayuda
+checksync_title=Comprobar Integridad
+synclist_title=Sincronizar Listas
+
+# Para formularios
+
+f_nameorg=Nombre:
+f_ldapserver=Servidor LDAP:
+f_ldapcacheserver=Servidor LDAP CACHE:
+f_profilename=Alias del Perfil:
+f_ipaddress=HostName o IP:
+f_hostname=Nombre de Host:
+f_location=Localización:
+f_username=Nombre de Usuario LDAP:
+f_globaluser=Nombre de Usuario:
+f_hostusername=Usuario en Servidor:
+f_grupo=del Grupo:
+f_aliasou=Alias:
+f_aliasapp=Alias:
+f_aliasgrpapps=Alias:
+f_aliasgrphosts=Alias:
+f_aliasdomain=Alias:
+f_aliaslink=Alias:
+f_aliashosts=Alias:
+f_aliashostsuser=Alias:
+f_aliasact=Alias:
+f_surname=Apellido:
+f_descrip=Descripción:
+f_user=Usuario del Sistema:
+f_email=Correo Electrónico:
+f_ntdomain=Dominio NT:
+f_webtop=Tipo de Webtop:
+f_inherit=Hereda atributos del Grupo:
+f_shared=Usuario Compartido:
+f_enabled=Usuario Activado para LOGIN:
+f_conect=Conexiones
+f_ipaddr=(direcc
+f_contype= -tipo):
+f_cdm=Mapeo de Unidades locales:
+f_bandwidth=Máximo ancho de banda en bps permitido:
+f_links=Enlaces:
+f_defaultlinks=Enlaces por defecto del grupo
+f_sendreq=Enviar Petición
+f_cancelreq=Cancelar
+f_clearreq=Limpiar
+f_password=Clave de Acceso:
+f_passwdcache=Clave por defecto para Acceso a Servidores:
+f_administrador=Usuario Administrador:
+f_userou=Grupo de:
+f_usergrphosts=Grupo de Hosts:
+f_objname=Nombre Objeto:
+f_appobjname=Nombre Objeto Aplicación:
+f_domainobjname=Nombre Objeto Dominio:
+f_linkobjname=Nombre Objeto Vínculo:
+f_grpappsobjname=Nombre Objeto Grupo Aplicaciones:
+f_grpapps=Grupo de Aplicaciones:
+f_grpdomains=Grupo de Dominios:
+f_grplinks=Grupo de Vínculos:
+f_selecou=-- Seleccionar Grupo u Organización --
+f_selecgrphosts=-- Seleccionar Grupo de Hosts --
+f_selecapp=-- Seleccionar Aplicaciones --
+f_selecdomain=-- Seleccionar Dominios --
+f_seleclink=-- Seleccionar Vínculos --
+f_selecgrpapps=-- Seleccionar Grupo de Aplicaciones --
+f_selechosts=-- Seleccionar Host --
+f_selecmethod=-- Seleccionar Método --
+f_selecobjclass=-- Seleccionar Tipo de Objeto --
+f_groupname=Nombre de Grupo o Subgrupo:
+f_grphostname=Nombre de Grupo:
+f_seluserhost=-- Seleccionar Usuario Hosts --
+f_selobj=-- Seleccionar Objeto --
+f_selecord=-- Seleccionar Orden --
+f_selecprofcache=-- Seleccionar Perfil --
+f_selecdeflists=-- Seleccionar Lista --
+f_filter=Filtro:
+f_filtercn=Filtro (cn):
+f_orderby=Ordenado por:
+f_method=Método:
+f_obj=Objeto:
+f_passwordchk=Repetir Clave:
+f_next=Mas Usuarios
+f_defpasswd3tier=Clave por defecto para Acceso a Servidores:
+f_loadfile=Fichero de Carga
+f_loaddirens=Directorio de Carga de ENS
+f_dirbackens=Directorio de Backup de ENS
+f_domain=Dominio (dns o nt):
+f_link=Vínculo:
+f_3tierdomain=Dominio:
+f_3tierlogin=*Usuario (login):
+f_3tierpassword=Clave (password):
+f_3tierstringcmd=Linea a ejecutar:
+f_3tiertitle=*Descripción:
+f_3tierappkey1=Dialogo app (1):
+f_3tierappkey2=Dialogo app (2):
+f_3tierappkey3=Dialogo app (3):
+f_3tierappkey4=Dialogo app (4):
+f_3tierappkey5=Dialogo app (5):
+f_3tierappkey6=Dialogo app (6):
+f_deflists=Lista de Objetos:
+f_checkboxdelobj=Marcar la entrada a Borrar y usar el botón
+f_filereport=Nombre Fichero para Informe
+
+viewlog_action=Detalles de Acción.
+f_error=Error
+msgerr_brand=Clave $1 incorrecta !!!
+msgerr_brandinfo=¡¡¡ HAY $1 FICHEROS ALTERADOS !!!
+msgerr_tta=al ejecutar la petición de Tarantella
+msgerr_cmd=al ejecutar la petición al sistema
+msgerr_sync=al sincronizar $1
+msgerr_120=Error de ejecución
+msgerr_0=Ejecución correcta
+msgerr_68=¡¡¡ El registro ya existe en el LDAP !!!
+msgerr_32=¡¡¡ Objeto no encontrado en el LDAP !!!
+msgerr_21=¡¡¡ Sintaxis Incorrecta !!!
+msgerr_65=¡¡¡ La petición no cumple con el esquema del servidor LDAP !!!
+msgerr_66=¡¡¡ El objeto tiene otros (objetos hijo) bajo su jerarquía !!!
+
+dn_orderby=cn,sn,mail,departmentnumber
+dn_tit_orderby=Login,Nombre,Correo,Departamento
+dncache_orderby=objcnou,description,dn
+dncache_tit_orderby=cn_ou,Descripción,DN
+dn_method=one,subtree
+dn_tit_method=Unico,Arbol
+dn_objclass=ttacacheapp,organizationalunit
+dn_tit_objclass=Objeto,Organización
+# Para mensages y Formularios (alers, checking, etc.)
+
+msg_close=Cerrar
+tta_obj= [ OBJETO TARANTELLA ]
+default_obj= [ OBJETO por DEFECTO ]
+obj_params= [ OBJETO Configuración ]
+obj_origin= [ ORIGEN (de) ]
+obj_target= [ DESTINO (en) ]
+user_made=Ha sido creado ->
+user_clean=Ha sido vaciado ->
+user_madetta=Ha sido creado en Tarantella ->
+user_delete=Ha sido Borrado ->
+user_update=Ha sido actualizado ->
+msg_0=Valor por Defecto asignado
+msg_1=el valor no es correcto
+msg_3=¿¿ Cambiar Password por Defecto para Servidores ??
+msg_2=¿¿ Este usuario va a ser un Administrador ??
+msg_4=Se mantienen valores actuales almacenados
+msg_5=¿¿ Este usuario va a ser COMPARTIDO ??
+msg_6=¿¿ Este usuario NO va tener activado el LOGIN ??
+msg_7=> Bajo ->
+msg_8= Operación no permitida
+msg_9= Ya se ha ejecutado.
+msg_10= ATENCION: Esta opción sólo se puede ejecutar una vez.\nATENCION: Puede realizar cambios críticos no reversibles.\n ¿ Continuar ?.
+loadusr_noexist=El Fichero de Carga de Usuarios no puede ser Abierto:
+loadou_noexist=El Fichero de Carga de Organizaciones no puede ser Abierto:
+
+replica_err=No se ha podido Sicronizar con LDAP
+replica_msg=¡¡ Se aconseja realizar una Replicación Global !!
+
+# Pie y Derechos de Copia
+
+cpr_line1=Versión 1.3 derechos de Copia © 2001-2003 por
+cpr_line2=Este módulo STTA de Webmin está bajo
+f_modatt=Modificar Atributos
+
+index_equals=iguales
+index_matches=matches
+index_nequals=no iguales
+index_nmatches=not matches
+
+# For ACLs
+
+acl_addusr=¿Puedo crear nuevos usuarios?
+acl_delusr=¿Puedo borrar usuarios?
+acl_addou=¿Puedo crear una nueva Organización?
+acl_delou=¿Puedo cancelar una organización?
+acl_addgrphosts=¿Puedo crear un nuevo Grupo de Hosts?
+acl_delgrphosts=¿Puedo cancelar un Grupo de Hosts?
+acl_addapps=¿Puedo crear una nueva Aplicación?
+acl_delapps=¿Puedo cancelar una Aplicación?
+acl_addgrpapps=¿Puedo crear un nuevo Grupo de Aplicaciones?
+acl_delgrpapps=¿Puedo cancelar un Grupo de Aplicaciones?
+acl_addhosts=¿Puedo crear un nuevo Hosts?
+acl_delhosts=¿Puedo cancelar un Hosts?
+acl_alivehosts=¿Puedo comprobar Status de un Hosts?
+acl_adddomains=¿Puedo crear Dominios?
+acl_deldomains=¿Puedo borrar Dominios?
+acl_addlinks=¿Puedo crear Vínculos?
+acl_dellinks=¿Puedo borrar Vínculos?
+acl_addhostsuser=¿Puedo crear un nuevo Usuario de Hosts?
+acl_delhostsuser=¿Puedo cancelar un Usuario de Hosts?
+acl_stop=¿Puedo parar los servicios?
+acl_global=¿Puedo administrar los servicios?
+acl_restart=Reniciar sólo
+acl_passwd=¿Cambiar password del usuario?
+acl_passwdCache=¿Cambiar la Caché de passwords ?
+acl_backup=¿Puedo copiar TTA y/o LDAP ?
+acl_replicate=¿Puedo replicar el LDAP ?
+acl_sessions=¿Puedo gestionar Sesiones TTA ?
+acl_monitor=¿Puedo usar el Monitor TTA ?
+acl_supervision=¿Puedo acceder a la Supervisión del Servicio?
+acl_admin=¿Puedo acceder a la Administración del Servicio?
+acl_feedback=¿Puedo enviar comentarios de TTA ?
+
+l_description=Descripción
+l_dn=DN
+l_objcnou=CN-OU
+
+l_uid=Login
+uidnumber=UID
+gidnumber=GID
+gecos=GECOS
+homedirectory=Home
+loginshell=Shell
+
+l_givenname=Nombre
+l_sn=Apellidos
+l_cn=Nombre Completo
+l_mail=Correo Electrónico
+l_orderby=Ordenado por
+l_total=Total $1 líneas
+total=Total
+l_billtotal=Fecha: $1 --- Líneas: $2 --- Emulaciones: $3 ---- aplicaciones: $4
+l_line=Línea
+title=Título
+organizationname=Nombre Empresa
+l_department=Departamento
+physicaldeliveryofficename=Oficina
+telephonenumber=Nro. Teléfono
+mobile=Teléfono Móbil
+pager=paginador
+officefax=Fax
+comment=Comentarios
+
+sess_orderby=pe_id,user,application,applicationServer,startTime,resume,status,serverUser
+sess_tit_orderby=ID,Usuario,Aplicación,Servidor Apliciación,Inicio,resume,status,serverUser
+tit_ttasess=Sesión PED:
+l_ses_peid=ID
+l_ses_user=Usuario
+l_ses_client=Cliente
+l_ses_app=Aplicación
+l_ses_starttime=Inicio
+l_ses_resume=Recuperar
+l_ses_status=Status
+l_ses_appsrv=Servidor Aplicación
+l_ses_serveruser=login
+l_ses_object=objeto
+l_ses_num=nro.
+l_ses_count=-- RESUMEN --
+
+modules=browsers,tta,ldap,password,ldapprofile,ldapcache,objects,monitor,supervision,admin,servers
+category_tta=Tarantella
+category_ldap=Ldap
+category_ldapcache=Ldap-Cache
+category_ldapprofile=Perfil-Cache
+category_objects=Objetos
+category_monitor=Monitor
+category_password=Claves
+category_browsers=Navegadores
+category_supervision=Supervisión
+category_admin=Admin
+category_servers=Servidores
+
+defs_lists_value=ous,hosts,grphosts,apps,grpapps,links,domains,actions,profcache,hostsuser,webtops
+check_objs_value=ous,hosts,grphosts,apps,grpapps,links,domains
+mon_target_value=user,ou,host,grphosts,app,grpapps,link,domains,date,time
+mon_user_sess=Nro. de Sesiones de Usuario
+mon_ou_sess=Nro. de Sesiones de Grupo
+mon_host_sess=Nro. de Sesiones de Host
+mon_grphosts_sess=Nro. de Sesiones de Grupo Hosts
+mon_grpapps_sess=Nro. de Sesiones de Grupo Aplicaciones
+mon_app_sess=Nro. de Sesiones de Aplicación
+mon_link_sess=Nro. de Sesiones de Vínculos
+mon_domains_sess=Nro. de Sesiones de Dominios
+mon_time_sess=Hora en formato "hhmmss"
+mon_date_sess=Fecha en fomato "yyyymmdd"
+mon_actions_desc=Ejecutar Guión,Desalojar,Cancelar Sesiones Inactivas
+mon_actions_value=run-script,logout,cancel-old-resume
+mon_conditions_desc=Mayor que, Menor que, Igual a,Distinto de,Inactivo,Desconectado
+mon_conditions_value=gt,lt,eq,ne,noactive,disconnected
+mon_how_desc=Manual,Automático,Programado
+mon_how_value=manual,auto,task
+mon_when_desc=Al arrancar Tarantella,Al arrancar el Sistema,Al parar Tarantella,Al parar el Sistema
+mon_when_value=start-tta,start-sys,stop-tta,stop-sys
+f_maxsess=Nro. Máximo de Sesiones:
+f_portalive=Puerto status (on-line):
+f_mon_target_sel=-- Seleccionar Objeto --
+f_mon_target=Objeto:
+f_mon_condition_sel=-- Seleccionar Condición --
+f_mon_condition=Condición:
+f_mon_condition_value=Valor:
+f_mon_actions=Acción:
+f_mon_actions_sel=-- Seleccionar Acción a ejecutar --
+f_mon_script=Guión para ejecutar:
+f_mon_script_sel=-- Seleccionar Guión para ejecutar --
+f_mon_how=Modo ejecución:
+f_mon_how_sel=-- Seleccionar Modo de ejecutar --
+f_mon_when=Cuándo ejecutar:
+f_mon_when_sel=-- Seleccionar Cuándo ejecutar --
+l_monalias=Alias
+l_monname=Descripción
+l_montarget=Tipo
+l_monobject=Objeto
+l_moncondition=Condición
+l_monconditionvalue=Valor
+l_monaction=Acción
+l_monscript=Guión
+l_monhow=Modo
+l_monwhen=Cuándo
+
+ticket_status_value=no,day,time,counter
+ticket_no_tit=No activo
+ticket_day_tit=Hasta Fecha en fomato "ddmmyyyy"
+ticket_time_tit=Hasta Hora en formato "hhmmss"
+ticket_counter_tit=Hasta consumir el contador
+f_3tiermaxsess=Nro. Máximo de Sesiones:
+f_endticket=Valor del límite del Ticket:
+f_ticketcounter=Contador (nro de Accesos):
+f_ticketstatus=Definición del Ticket de acceso:
+f_ticketstatus_sel=-- Seleccionar Tipo de Ticket de acceso --
+f_doifendticket=Acción para Ticket expirado:
+f_sttasrvs=Servidores de STTA
+
+msg_count_update=Contadores Actualizados
+sv_histAct_title=Historial de Acciones Webmin
+f_fname=Nombre
+f_fperm=Permisos
+f_fowner=Propietario
+f_fgroup=Group
+f_fsize=Tamaño
+f_fmonth=Mes
+f_fday=Día
+f_ftime=Hora
+f_fdefault=Por defecto
+f_outdir=Directorio para crear la estructura Web
+f_urlbase=Url base para los enlaces (href)
+f_imgbasedir=Directorio de images para los gráficos
+f_packcmd=Orden para empaquetar directorio
+f_bgimage=Imagen de fondo de páginas
+f_cs_page=Color de fondo de página (hex)
+f_cs_table=Color de fondo cuerpo de Tablas (hex)
+f_cs_header=Color de fondo Cabeceras de Tablas (hex)
+f_cs_link=Color de enlaces de texto en páginas(hex)
+f_cs_text=Color de texto en páginas (hex)
+f_cs_revtext=Color de texto inverso en páginas (hex)
+
+f_filelistName=Nombre de Fichero:
+f_sessreload=Recargar Lista de Sessiones
+
+f_perm_desc=-rwxr-xr-x,-rwxr--r--,-rwxrw-rw-,-rwxrwxrwx,-rw-------,-rw-r--r--,-rw-rw-rw-,-rwx------,-r-x------,-r-xr-xr-x
+f_perm_value=0755,0744,0766,0777,0600,0644,0666,0700,0500,0555
+f_perm_sel=-- Seleccionar Permisos --
+file_err=No es posible $1 fichero $2/$3 permisos $4
+file_errexist=El fichero $1/$2 ya existe.
+file_errexec=Los permisos para $1/$2 no son correctos.
+file_errdir=No se puede acceder al directorio $1
+showlist_errName=Error$1 $2 : DESCONOCIDA ( Directorio: $3 Fichero: $4 Permisos: $5)
+
+sckerr_noip=Fallo al resolver la direción IP de $1
+sckerr_no=Fallo al crear el socket : $1
+sckerr_noconn=Fallo al conectar con $1:$2 : $3
+
+posixAccount=Perfil Usuario Unix
+addressbook=Datos Agenda
+
+user_options=Opciones creación Usuario
+userpasswd=Password inicial
+passwdtype=Tipo Password
+md5=MD5
+crypt=Unix Crypt
+plaintext=sin hash (texto plano)
+create_home=¿Crear directorio Home ?
+copy_files=¿Copiar ficheros al directorio Home ?
+yes=Si
+no=No
+none=Ninguno
+task=tarea
+
+index=Indice
+help=Ayuda
+create=Crear
+modify=Modificar
+delete=Borrar
+execute=Ejecutar
+clean=Vaciar
+showlist=Ver Lista
+view=Ver
+tail=Ver desde Final
+select=Seleccionar
+set_passwd=Asigna Password
+OK=Correcto
+warn=Precaución
+stop=Parar
+browse=Visualizar
+unknown=Desconocido
+
+header_1=LDAP usuario Creado
+header_2=LDAP usuario Modificado
+header_3=Editar usuario LDAP
+header_4=Crear usuario LDAP
+
+masterHost_msg=Host con Tablas Maestras
+
+
+edit_input=Entrada del comando
+edit_when=Cuándo ejecutar
+edit_minutes=Minutos
+edit_mins=Minutos
+edit_hours=Horas
+edit_days=Días
+edit_months=Meses
+edit_weekdays=Días de Semana
+edit_all=Todos
+edit_selected=Seleccionado...
+edit_run=Ejecutar Ahora
+
+month_1=Enero
+month_2=Febrero
+month_3=Marzo
+month_4=Abril
+month_5=Mayo
+month_6=Junio
+month_7=Julio
+month_8=Agosto
+month_9=Septiembre
+month_10=Octubre
+month_11=Noviembre
+month_12=Diciembre
+
+day_0=Domingo
+day_1=Lunes
+day_2=Martes
+day_3=Miércoles
+day_4=Jueves
+day_5=Viernes
+day_6=Sábado
+
+
+# TTA PARAMETERS
+
+tta_ext_cfgfiles=.properties
+tta_global_dir=/var/serverconfig/global/
+tta_local_dir=/var/serverconfig/local/
+tta_bootstrap=bootstrap.properties
+tta_components=components.properties
+tta_properties=applaunch array bootstrap cdm components ldap lictypes security webauth
+tta_properties=applaunch array bootstrap cdm clientaccess components ldap lictypes security tier3lb webauth xpe
+
+ttases_app=Application
+ttases_appserv=Application Server
+ttases_user=User
+ttases_client=Client
+ttases_pe=Protocol Engine ID
+ttases_status=Status
+ttases_id=Session ID
+ttases_time=Start Time
+ttases_resume=Resumable For
+ttases_serveruser=Application Server User
+
+responding_on=Respondiendo en el puerto $1
+srvTTA_CDM=TTA Client Drive Mapping
+srvTTA_STD=TTA acceso estándard
+srvTTA_SSL=TTA acceso SSL
+srvTTA_Array=TTA Array
+srvHTTP=Servicios HTTP
+srvHTTPS=Servicios HTTPs
+srvLDAP=Servicios LDAP
+srvLDAPCACHE=Servicios LDAPCACHE
+srvSTATUS=STATUS de Servicios
+
+cfg_is_masterHost=Es Host Master de las Tablas del Servicio
+cfg_masterHost=Host Master de las Tablas del Servicio
+cfg_masterHostURL=URL del Host Master de las Tablas del Servicio
+cfg_ldap_type=LDAP Software
+cfg_is_ldapcache=Esta usando el servico LDAP-CACHE
+cfg_ldapcache_type=Software de LDAP Cache
+cfg_cache_chkdefaults=Usar objeto por defecto LDAP CACHE
+cfg_cache_chkttalogin=Usar valores login de usuario tta en LDAP CACHE
+cfg_cache_scandebug=Depuración de búsqueda en TTA LDAP Cache
+cfg_cache_domain=Dominio por defecto de login para LDAP CACHE
+cfg_check_maxsess=Comprobar límite de Sesiones
+cfg_default_maxsess=Número ilimitado de Sesiones
+cfg_check_ticket=Comprobar Ticket de Sesiones
+cfg_default_cat=Modulo por defecto
+cfg_order_cat=Orden de Modulos
+cfg_interface=Menu Interface
+cfg_has_monitor=Está usando el Monitor TTA
+cfg_has_cronsess=Usa Cron para Listar Sessiones
+cfg_sessout_timeout=Recargar Informes de Sesiones cada
+cfg_output_cgis=Visualizar Errores por Pantalla
+cfg_debug_code=Nivel de Depuración de Codigo en Ejecución
+cfg_check_services=Comprobar Servicos en cada Acceso
+cfg_iferror_services=Si hay error en Servicos
+
+chk_srv_title=Comprobar los Servicios
+msg_sttasrvs=Seleccionar Servidor Webmin como base de configuración ... Registrar
+msg_works=Estamos trabajando ... perdonen las molestias !!!
+msg_processing=Procesando ...
+noacl_cgi=Acceso a "$1" no permitido !!!!
+load_data=Se recomienda copiar la base de Datos de Tarantella y los LDAP antes de CARGAR DATOS !!!
+msg_ttataskstop=Tarantella Requiere ser Parado para esta taraea !!!
+license=Licencia
+license_file=license-es
+
+pid=ID de Proceso
+owner=Propietario
+command=Comando
+cpu=UCP
+stta_locked=EL módulo STTA está bloqueado por tareas de Instalación / Actualizaciones
+note=NOTA:
+info=INFO:
+run=Ejecutar:
+make=Realizar
+menu=Opciones:
+not_found=no encontrado
+brand_list=Lista de marcado de Fichero
+brand_title=Marcado de Ficheros
+branding=Marcando Ficheros ...
+viewon_screen=Ver por pantalla
+
+stta_sync=Sincronización de STTA
+remote_sync=Sincronizados:
+see_also=ver también
+img_dircopy=Copiar directorio de imágenes:
+
+l_group=Grupo
+l_time=Tiempo
+l_servtta=Serv.TTA
+l_data=Datos
+f_billstartdate=Desde (yyyy/mm/dd ):
+f_billenddate=Hasta (yyyy/mm/dd ):
+f_makereportbill=Crear ficheros de Informes
+f_dirbillout=Directorio informes:
+f_formatbillout=Formato informes:
+format_html=HTML
+format_cvs=cvs
+licenseinfo=Info. Licencias
+
+brand_data=Marca
+brand_desc=Descripción
+brand_all=Marcar Todo
+brand_broken=Corregir Marcas
+sel_lang=Seleccionar lengua:
+sys_user=Usuario del Sistema
+f_ttaapptype=Tipo Aplicación:
+msg_fieldsreq=(Los valores precedidos con * son obligatorios)
+choose_selhosts=Host Seleccionados
+choose_selgrphosts=Grupos de Hosts Seleccionados
+choose_selapps=Aplicaciones Seleccionadas
+choose_selgrpapps=Grupos de Aplicaciones Seleccionadas
+choose_listhosts=Lista de Hosts
+choose_listgrphosts=Lista de Grupos de Hosts
+choose_listapps=Lista de Aplicaciones
+choose_listgrpapps=Lista de Grupos de Aplicaciones
+choose_ok=Confirmar
+choose_cancel=Cancelar
+choose_clear=Limpiar
+choose_msg_tosel=Click sobre el enlacepara seleccionar
+choose_msg_objtosel=Click sobre el enlace para seleccionar Click sobre el icono para ver registro
+choose_msg_tounsel=Click sobre el enlacepara eliminar de la selección
+sync_user=Replicar Usuario
+selec_noldapsrv=No usar servidor
+f_norunttacmd=No sincronizar Tarantella:
+f_fixobjsync=Fijar errores de integridad:
+f_filechecksync=Path fichero para volcar información:
+l_alias=Alias
+copy=Copiar
+move=Mover
+rename=Renombrar
+f_newname=Nuevo nombre:
+msg_noticket=Ticket no Valido !!!!
+msg_nosess=No hay Sesiones Disponibles !!!
+ldap_log_err=No hay definido un ldap_log o usuarios LDAP
+done=Realizado
+extracting=Extrayendo
+set_perms=Asignando permisos
+fixing=Fijando
diff --git a/stta/devtools/lang-save/es.cfg b/stta/devtools/lang-save/es.cfg
new file mode 100755
index 0000000..7e1a00b
--- /dev/null
+++ b/stta/devtools/lang-save/es.cfg
@@ -0,0 +1,113 @@
+main_title=Configuración Principal
+interface_title=Configuración interface
+list_title=Configuración Ficheros de Listas
+stta_title=Configuración STTA
+tta_title=Configuración TTA
+ldap_title=Configuración LDAP
+ldap2_title=Configuración LDAP2
+ldap_vars_title=Configuración Variables LDAP
+cache_title=Configuración CACHE
+ldapcache_title=Configuración LDAPCACHE
+ldapcache2_title=Configuración LDAPCACHE2
+ldapcache_vars_title=Configuración variables LDAPCACHE
+http_title=Configuración HTTP
+path_title=Configuración PATHS
+session_title=Configuración Sesiones
+ticksess_title=Configuración Ticket de Sesiones
+alias_title=Configuración Alias
+values_title=Configuración Valores
+debug_title=Configuración Parámetros Debug
+feedback_title=Configuración Comentarios de STTA
+logs_title=Configuración lista de Logs y Copias
+shells_title=Configuración de Shells
+install=Instalación de STTA
+loadfiles=Cargar ficheros en STTA
+joinarray=Servidor en Array sin LDAPs
+masterstta=Servidor Master STTA (secundario)
+work_secuence=Secuencia de tareas
+lockstta=Bloqueo de STTA
+readme1st=Leer primero
+dataconf=Configuración de STTA
+defslists=Listas de definición de objetos
+checklist=Comprobaciones
+ldapbasedns=Base DN del LDAP
+ttaensbase=Base del ENS Tarantella
+makelogsdir=Crear los directorios de logs
+maketools=Crear los scripts para ejecutar tareas (tools)
+expectchanges=Cambiar Expects TCLs de Tarantella para LDAP Cache
+readmelast=Leer al final
+unlockstta=Desbloquear STTA
+update=Actualización de STTA
+doupdate=Ejecutar guión de actualización
+upgrade=Cambio de Versión (upgrade)
+doupgrade=Ejecutar guión de cambio de versión
+patch=Parchear STTA
+dopatch=Ejecutar guión para parchear STTA
+doloadfiles=Ejecutar guión para Cargar Ficheros en STTA
+fixstampdata=Fijar datos de sellado y control ficheros
+nextstep=Paso Siguiente
+unlockstta_msg=¡¡¡ El desbloqueo no garantiza el funcionamiento correcto\n si no se ha seguido la secuencia establecida !!!
+lockstta_msg=¡¡¡ El bloqueo garantiza que no se pueda acceder al módulo\n mientras se procesa la secuencia de instalar o actualizar\n y/o hasta que se desbloquee !!!
+visited=Visitado
+f_taskinstupd=Seleccionar Tarea:
+warn_lockstta=¡¡¡ El módulo debe de bloquearse\n pulsando el botón en la pantalla de proceso\n o sólo estará en modo consulta !!!
+warn_lockstta2=¡¡¡ Módulo en modo consulta o visualización, sin bloquear !!!
+tit_fileupdpatch=Fichero para "$1"
+f_fileupdpatch=Path del fichero:
+warn_updpatch= !!! Se recomienda proceder a la copia de seguridad antes de continuar el proceso !!!
+tit_runfilename=Proceso del fichero: $1
+file_erraccess=No se puede acceder al fichero $1
+dir_erraccess=No se puede acceder al directorio $1
+error_runonce_step=No se puede ejecutar $1 más de una vez.
+error_unknown_step=Paso "$2" ($1) no tiene acciones definidas o han provocado errores !!!.
+done=Realizado
+this_colorline=Línea en este color
+black_line=Línea en negrita
+step_runonce=Paso que sólo se puede ejecutar una vez (el resto en cualquier momento)
+step_current=Paso seleccionado y ejecutado de la secuencia
+steps_done=Paso realizado ya de la secuencia
+nro_visited=Contador de visitas realizadas
+step_next=Paso siguiente y recomendado de la secuencia
+help_msg1=Es necesario que el módulo esté bloqueado para ejecutar/seleccionar los pasos de la secuencia
+make_msg1=Pulsar el botón o Ejecutar otra opción de la secuencia de tareas para no continuar con la acción.
+info_panel=Panel de información y detalles de "$1 "
+help_panel=Panel de ayuda de uso de "$1 "
+run_panel=Panel de ejecución de "$1 "
+menu_panel=Panel de Opciones y secuencias para "$1 "
+opc_msg=Seleccionar tarea a ejecuar:
+mode_run=Modo Ejecución
+mode_browse=Modo Consulta
+defslists_msg1=Para $1 los siguientes ficheros serán inicializados:
+deflist_rootorg=Organización
+deflist_rootdesc=Raiz de la organización
+making_files=Generando ficheros de $1
+ldapbasedns_msg1=LDAP $1 DN=$2
+ttaensbase_msg1=Tarantella ENS=$1
+ldapcachebasedns_msg1=LDAP-CACHE $1 DN=$2
+tools_msg1=STTA tools en $1
+expect_msg1=TTA Cache tcl expects de $1
+running=En ejecución
+notrunning=No operativo
+dn_ok=con DN
+dn_no=DN no existe
+no_ldaprunning=Los servicios LDAP no están operativos.
+no_ldapcacherunning=Los servicios LDAP CACHE no están operativos.
+rc_ldaps=Hay ejemplos de arranque automático en $1
+rc_files=Arranque
+f_conf=configuración
+f_openldapname=Nombre del servidor LDAP
+f_openldapdb=Directorio para la base de datos LDAP
+tta_cachefix=Ajustar Tarantella para LDAP Cache
+tta_ldaplogin=Asignar Credenciales LDAP en Tarantella
+startup_service=Es necesario arrancar el servicio $1 para continuar
+tta_dbcreate=Recrear la Base de Datos de Tarantella
+msg_ttasettools=Es neceario crear los scripts para ejecutar tareas
+expect_new=Guiones nuevos salvados en $1
+expect_back=Guiones originales (sin ldap cache ) salvados en $1
+seehelpInfo=Ver Panel de Ayuda al final de la página
+error_version=La versión de STTA es incorrecta
+error_stamp=El código de marca de ficheros es incorrecto
+set_env_vars=# Setting environment values for STTA tools & scripts
+set_env_vars=# Asignación de variables de entorno para los tools y scripts de STTA
+no_brand_need=No Branding and Stamp need
+no_brand_need=No es necesario fijar/marcar el código
diff --git a/stta/devtools/lang-save/es.feedback b/stta/devtools/lang-save/es.feedback
new file mode 100755
index 0000000..3c30702
--- /dev/null
+++ b/stta/devtools/lang-save/es.feedback
@@ -0,0 +1,42 @@
+feedback_title=Comentarios de STTA
+feedback_desc=Este formulario te permite informar sobre errores o realizar sugerencias a los desarrolladores de STTA referentes a cualquier problema o característica que falte. Al hacer click en el botón de enviar, los detalles rellenados en el formulario serán enviados mediante email a $1.
+feedback_desc2=Este comentario será enviado al desarrollador de TTA
+feedback_header=Detalles de comentario
+feedback_name=Nombre
+feedback_email=Dirección de email
+feedback_module=Referente al módulo
+feedback_text=Descripción del problema o sugerencia
+feedback_cfg=¿Incluir detalles de configuración de STTA?
+feedback_cfgdesc=Si se selecciona esta opción, el email incluirá los detalles de configuración de STTA
+feedback_config=¿Incluir informe de STTA?
+feedback_configdesc=Si se selecciona, el email incluirá un informe de STTA, servicios (TTA,LDAP), procesos, etc.
+feedback_DBS=¿Incluyo Bases de Datos de los servicios?
+feedback_configDBS=Si se selecciona las bases de datos de Taratella y los LDAP serán enviadas.
+feedback_BACKUPS=¿Incluir Backups de los servicios?
+feedback_configBACKUPS=Si se seleeciona se enviarán los backups de configuración de STTA, Tarantella y los LDAP
+feedback_LOGS=¿Incluir Logs de los servicios?
+feedback_configLOGS=Si se selecciona esta opción se incluirán las últimas líneas de los logs de los Servicios con STTA.
+feedback_STATUS=¿Incluir STATUS de los servicios?
+feedback_configSTATUS=Si se selecciona se incluirá un status de procesos de los servicios con STTA.
+feedback_attach=Archivos adicionales a incluir
+feedback_configDIRNAME=En caso de no poder enviar correos desde este sistema. Seleccionar un directorio para empaquetar el envio.
+feedback_send=Enviar Comentario
+feedback_dirname=Directorio para depositar la información a enviar
+feedback_mailserver=Enviar vía servidor SMTP
+feedback_mailserver_def=Programa de sendmail local
+feedback_err=No pude enviar comentario
+feedback_emodule=Seleccionaste incluir configuración del módulo en el email, pero no seleccionaste un módulo.
+feedback_emodule2=El módulo seleccionado no existe
+feedback_econfig=No tienes acceso completo al módulo seleccionado.
+feedback_via=Enviado comentario a $1 vía servidor SMTP $2
+feedback_prog=Enviado comentario a $1 usando el programa sendmail $2
+feedback_dirname=Archivado el comentario y datos en $1
+feedback_esend=No pude enviar comentario vía programa sendmail o servidor SMTP local.
+feedback_to=Enviar comentario a direcciones
+feedback_enoto=No se han digitado direcciones a donde enviar comentarios
+feedback_ecannot=No estás autorizado a enviar comentarios
+feedback_ecannot2=No estás autorizado a enviar comentarios que contengan archivos de configuración
+feedback_packcmd=Orden para empaquetar envio
+feedback_packcmddesc=Si se vuelcan los ficheros a un directorio pueden empaquetarse mediante una orden del sistema. ej: tar cf ../comment.tar * ; gzip ../comment.tar
+feedback_taillogs=Recoger de los logs las últimas
+feedback_timelogs=Recoger los logs de los últimos
diff --git a/stta/devtools/lang-save/es.help b/stta/devtools/lang-save/es.help
new file mode 100755
index 0000000..bc55e6e
--- /dev/null
+++ b/stta/devtools/lang-save/es.help
@@ -0,0 +1,76 @@
+#
+#
+book_stta=Libro STTA
+introtitle=Introducción
+historytitle=Historia de STTA
+sttaconfig=Configuración de STTA
+whystta=Cómo surge STTA
+features=Funcionalidades y Características.
+syncsrvs=Sincronización y conexión de servicios.
+sttatechs=Tecnologías en STTA.
+sec_definitions=¿ Qué es STTA ?
+sec_features=Características
+sec_architecture=Arquitectura de STTA
+sec_origenstta=Origen y antecentes de STTA
+sec_asttaservicesinterface=STTA como Interface de Servicios con Tarantella
+sec_sttainterface=Interface de STTA
+sec_sttatechnologies=Tecnologías en STTA
+sec_elemensandobjects=Objetos y Elementos en STTA
+sec_setupmodes=Modalidades o formas de uso y configuración
+sec_configstta=Parámetros y configuración de STTA
+sec_installupdstta=Instalación y actualizaciones de STTA
+sec_admintools=Utilidades de administración
+sec_supervisiontools=Utilidades de Supervisión
+sec_sttautilities=Otras utilidades
+sec_othersttasrvs=Acceso a otros servidores STTA
+sec_appsaccess=Autenticación de acceso a Servidores de Aplicaciones
+sec_listlogsmgr=Gestión de listas de logs de los Servicios
+sec_monitorstta=Monitor de Acciones de STTA
+sec_sesstickets=Gestión de sesiones y Tickets
+inface_types=Tipos de Interfaces
+inface_custom=Personalizar Interface
+inface_head=Botones y enlaces de navegación: Cabecera de página
+inface_foot=Botones y enlaces de navegación: Pie de página
+inface_help=Acceso a la ayuda según contexto
+inface_feedback=Uso de comentarios y mecanismos de feedback
+inface_webminsrvs=Servidores de Webmin y STTA
+inface_logs=Diarios, históricos, logs de acciones de Webmin y STTA
+inface_webmin=Sesiones Webmin y comunicación con otros servicios
+inface_scripts=Scripts de STTA
+inface_browsers=Navegadores
+stta_webmin=Integración con Webmin STTA como módulo de Webmin
+stta_ldap=Perl LDAP Conexión con LDAP mediante interface Perl
+stta_tta=Tarantella Conexión con Tarantella mediante scripts
+stup_passwdcache= Con password cache de Tarantella
+stup_ldapcache= Con LDAP Cache
+stup_srvcheck=Con verificación de los servicios con las petición http
+stup_monitor=Con Monitor de acciones
+stup_sessions=Con Gestor de sesiones
+stup_tickets=Con Tickets de acceso
+stup_sync=Con Sincronización en tiempo real
+stup_hostmaster=Declarando un Host Master de las tablas del Servicio
+stup_ldaptypes=Bajo Open LDAP o Iplanet
+stup_ldapsecondary=Con LDAPs de backup o secundario
+stup_listslogs=Con gestión de listas de Logs
+stup_nohelp=Sin ayuda activa
+stup_debuglevels=Niveles de debug y acciones en caso de error en el servicio
+inst_howto=Interface, reglas, bloqueo STTA y procedimientos
+inst_install=Instalación
+inst_update=Actualización (update)
+inst_upgrade=Cambio de versión (upgrade)
+inst_patch=Aplicar parche
+inst_loadfiles=Cargar ficheros
+inst_seconldap=Instalar servidor secundario con LDAP
+inst_arraysrv=Instalar servidor en array sin LDAP
+other_webminsrv=Registrar servidor en Webmin
+other_hostsync=Incluirlo en la lista de host a sincronizar
+other_deflists=Definir listas automáticas de sincronización
+other_synclists=Ejecutar sincronización de listas
+other_replicalists=Replicación de listas
+scancache=STTA LDAP Cache (scancache) vía tcls
+tclextend=Extensión de los mecanismos de conexión a las apliaciones de los servidores
+listlogs=Declarar lista a monitorizar
+listlogs_config=Parámetors y opciones de gestión de listas de logs
+cfgmonitor=Modos de ejecución de acciones y disparadores
+show_status=Mostrar Status de STTA
+
diff --git a/stta/devtools/lang-save/es.shells b/stta/devtools/lang-save/es.shells
new file mode 100755
index 0000000..72d3871
--- /dev/null
+++ b/stta/devtools/lang-save/es.shells
@@ -0,0 +1,43 @@
+#!/bin/sh
+#
+msg_binpath="Path para ejecutables (links):" ; export msg_binpath
+msg_mkfiles="Creando Ficheros ..." ; export msg_mkfiles
+msg_mkdirs="Creando Directorios ..." ; export msg_mkdirs
+msg_mklinks="Creando Enlaces Simbolicos ..." ; export msg_mklinks
+msg_mklibs="Creando bibliotecas ..." ; export msg_mklibs
+
+msg_mkbrandinfo="Marcando el código instalado ..."; export msg_mkbrandinfo
+msg_mklang="Making lang \"$newlang\" into $STTA/$HELPDIR ... " ; export msg_mklang
+msg_ensrenamed="ens renamed to ens.old ..." ; export msg_ensrenamed
+msg_errorens="error: ens recovered" ; export msg_errorens
+msg_noensfile="No File$ensBak in $dataDir " ; export msg_noensfile
+
+msg_default="by default" ; export msg_default
+msg_dbcreate="Making Data Base" ; export msg_dbcreate
+msg_dbdelete="Deleting Data Base Directory" ; export msg_dbdelete
+msg_orgname="Organization Name: " ; export msg_orgname
+msg_default="Por defecto" ; export msg_default
+msg_dbcreate="Creando Base de Datos" ; export msg_dbcreate
+msg_dbdelete="Borrando Directorio de Base de Datos" ; export msg_dbdelete
+msg_orgname="Nombre de la Organizacion: " ; export msg_orgname
+msg_ensdumpUSAGE="ensdump [top-organization-ens-name] [ file-to-output]" ; export msg_ensdumpUSAGE
+msg_ensdumpUSAGE="ensdump [nombre-organizacion-ens] [ fichero-de-salida]" ; export msg_ensdumpUSAGE
+msg_ensloadUSAGE="ensload [ dump-file-data-Store ] [ existing-working-directory] " ; export msg_ensloadUSAGE
+msg_ensloadUSAGE="ensload [ fichero-de-dumpfile-data-Store ] [ directorio-de-trabajo-existente] " ; export msg_ensloadUSAGE
+msg_nofileDataStore="No file: $dataStore " ; export msg_nofileDataStore
+msg_nofileDataStore="No existe el fichero: $dataStore " ; export msg_nofileDataStore
+msg_mkhelplangUSAGE="mkhelplang [ idioma-nuevo ] [ idioma-base-modelo ] " ; export msg_ensloadUSAGE
+msg_mkhelplang="Making lang \"$newlang\" into $STTA/$HELPDIR ... " ; export msg_mkhelplang
+msg_nobaselang="base-lang \"$2\" unknown "; export msg_nobaselang
+msg_nobaselang="idioma-base-modelo \"$2\" desconocido "; export msg_nobaselang
+msg_ttabackupUSAGE="ttabackup {directorio-de-backup} {directorios-de-var} [-nodocroot] " ; export msg_ttabackupUSAGE
+msg_cpfiles="Copiando Ficheros de " ; export msg_cpfiles
+msg_notexistdir="Directorio no existe " ; export msg_notexistdir
+msg_loading="Cargango " ; export msg_loading
+msg_from="desde " ; export msg_from
+msg_envnotset="entorno no configurado " ; export msg_envnotset
+msg_runsttacfg="Ejecutar configuración de STTA" ; export msg_runsttacfg
+msg_unsuppmethod="Unsupported transfer method !!!"; export msg_unsuppmethod
+msg_unsuppmethod="Método de transferencia no soportado !!!"; export msg_unsuppmethod
+msg_fixingFile="Ajustando fichero " ; export msg_fixingFile
+
diff --git a/stta/devtools/lang-save/es.tta_apps b/stta/devtools/lang-save/es.tta_apps
new file mode 100755
index 0000000..7af4553
--- /dev/null
+++ b/stta/devtools/lang-save/es.tta_apps
@@ -0,0 +1,118 @@
+f_tta_true=Si
+f_tta_false=No
+f_tta_name=Nombre
+f_tta_width=Anchura
+f_tta_height=Altura
+f_tta_description=Descripción
+f_tta_app=Aplicación
+f_tta_appserv=Host
+f_tta_method=Método de conexión
+f_tta_resumable=Recuperable
+f_tta_never=Nunca
+f_tta_session=En Webtop de sesión Tarantella
+f_tta_always=Siempre
+f_tta_endswhen=La sesión acaba cuando
+f_tta_lastclient=Termina el último cliente
+f_tta_windowmanager=Termina el gestor de ventanas
+f_tta_windowmanageralone=Sólo queda el gestor de ventanas
+f_tta_nowindows=No hay ventanas visibles
+f_tta_loginscript=Termina el "script" o no hay ventanas
+f_tta_displayusing=Visualizar usando
+f_tta_webtop=Webtop
+f_tta_mainbrowser=Webtop
+f_tta_clientwm=Gestor ventanas del cliente
+f_tta_newbrowser=Nueva ventana del navegador
+f_tta_independent=Ventana independiente
+f_tta_awtwindow=Ventana independiente
+f_tta_kiosk=kiosco
+f_tta_localx=Servidor X local
+f_tta_maximize=Tamaño de Aplicación
+f_tta_depth=Profundidad de Color
+f_tta_icon=Icono del Webtop
+f_tta_roottype=Ventana Raíz
+f_tta_default=Apariencia por defecto
+f_tta_custom=Ajuste de color
+f_tta_rootcolor=Color
+f_tta_compression=Orden para Compresión
+f_tta_automatic=Adjustar dinamicamente
+f_tta_on=Activar
+f_tta_off=Desactivar
+f_tta_execution=Order a ejecutar
+f_tta_inorder=Arreglar (mejor para animaciones)
+f_tta_optimized=Optimizado
+f_tta_quality=Color de calidad
+f_tta_best=Mejor al arrancar la aplicación
+f_tta_interlaced=Imágenes entrelazadas
+f_tta_accel=Usar aceleración de gráficos
+f_tta_delayed=Permitir actualizaciones retardadas
+f_tta_args=Argumentos de línea-comandos
+f_tta_env=Variables de entorno
+f_tta_winmgr=Gestor de ventanas
+f_tta_login="script" de "login"
+f_tta_empage=Página del "applet" emulador
+f_tta_resumetimeout=Recuperable durante
+f_tta_middlemouse=Tiempo botón medio del ratón
+f_tta_windowclose=Acción al cerrar la ventana
+f_tta_notifyapp=Notificar a la aplicación
+f_tta_killapp=Terminar la aplicación
+f_tta_suspendsession=Suspender la sesión
+f_tta_endsession=Finalizar la sesión
+f_tta_euro=Caracter Euro
+f_tta_dpi=Resolución del Monitor
+f_tta_keepopen=Mantenerlas conexiones abiertas
+f_tta_lockkeymap=Bloquer teclado numérico
+f_tta_share=Compartir recursos similares entre sesiones
+f_tta_winproto=Protocolo Windows
+f_tta_wts=Servicio de Terminales Windows
+f_tta_wincenter=WinCenter
+f_tta_uis=Servicio de Intregración UNIX de Citrix
+f_tta_merge=SCO Merge
+f_tta_winframe=WinFrame/MetaFrame
+f_tta_none=Ninguno
+f_tta_trylocal=Intentar ejecuar primero en el cliente
+f_tta_ntdomain=Dominio NT Windows
+f_tta_wincursor=Cursor de ventanas
+f_tta_protoargs=Argumentos del protocolo
+f_tta_url=URL
+f_tta_emulator=Tipo de emulación
+f_tta_scocon=Consola SCO
+f_tta_vt420=VT420
+f_tta_wyse60=Wyse 60
+f_tta_termtype=Tipo de Terminal
+f_tta_cols=Columnas
+f_tta_lines=Líneas
+f_tta_font=Familia de Fuentes
+f_tta_courier=Courier
+f_tta_helvetica=Helvetica
+f_tta_timesroman=Times Roman
+f_tta_fontsize=Tamaño de fuentes
+f_tta_fixedfont=Tamaño fijo de fuente
+f_tta_autowrap=Repartir lineas largas
+f_tta_cursor=Cursor
+f_tta_block=Bloque
+f_tta_underline=Subrayado
+f_tta_statusline=Línea de estado
+f_tta_indicator=Posición de cursor y modo impresión
+f_tta_hostmessages=Mensajes del host
+f_tta_standard=Standard
+f_tta_extended=Extendido
+f_tta_scrollstyle=Estilo "scroll"
+f_tta_line=Línea-a-línea
+f_tta_multiple=Varias líneas a la vez
+f_tta_smooth=Sueve pero más despacio
+f_tta_border=Estilo de bordes
+f_tta_normal=Normal
+f_tta_indented=Indentado
+f_tta_raised=Alzado
+f_tta_answermsg=Mensaje de respuesta
+f_tta_appkeymode=Modo tecla de aplicación
+f_tta_keypad="Keypad"
+f_tta_numeric=Siempre numeros
+f_tta_application=La aplicación puede cambiar códigos
+f_tta_cursorkeys=Teclas de cursor
+f_tta_cursor=Siempre códigos para mover el cursor
+f_tta_escape=Secuencia de "Escape"
+f_tta_codepage=Página de códigos
+f_tta_keymap=Mapa de teclado
+f_tta_attributemap=Mapa de atributos
+f_tta_colormap=Mapa de color
diff --git a/stta/devtools/lang-save/n b/stta/devtools/lang-save/n
new file mode 100755
index 0000000..c9cd973
--- /dev/null
+++ b/stta/devtools/lang-save/n
@@ -0,0 +1,170 @@
+# For headers and main titles
+
+index_title=Tarantella Services
+index=Index
+index_globalldap=LDAP Configuration
+index_globaltta=Tarantella Configuration
+
+headpage_right=Info
+head_logout=Desconectar Comentarios
+head_below=STTA
+
+ttasess_title=Tarantella Sessions
+ttasesscount_title=Tarantella Sessions Counter
+ttasessteotal_title=Tarantella Sessions Report
+ttastatus_title=Tarantella Status
+ttainfo_title=Tarantella Info
+index_servers=Servers
+index_warn=Warning
+index_any=any
+index_acl=Permissions
+index_module=Module Info
+index_default=by default
+index_auto=Automatic
+index_users=Users
+index_mvusers=Move Users
+index_ou=Organization
+index_mvou=Move Organizations
+index_ous=Organizations
+index_grphosts=Hosts Group
+index_mvgrphosts=Move Hosts Groups
+index_app=Applications
+index_mvapp=Move Applications
+index_grpapps=Applicacions Group
+index_mvgrpapps=Move Applicacions Groups
+index_hosts=Hosts
+index_hostsuser=Hosts User
+index_passwd=Password
+index_passwdcache=TTA Password Cache
+index_ttabackup=Tarantella Backup
+index_ldaploglist=Lista Ldap-log
+index_ldapbackup=LDAP Backup
+index_ldapcachebackup=LDAP Cache Backup
+index_replica=Replication
+index_update=Update
+index_addusr=Create New User
+index_mvusr=Mover Usuarios
+index_loadusr=Loading Users
+index_loadou=Loading Organizations
+index_loadhosts=Loading Hosts
+index_loadhostsuser=Loading Hosts Users
+index_delusr=Delete Users
+index_moddusr=Modify Users
+index_moddou=Modify Organization
+index_addou=Nueva Organización
+index_addapp=Nueva Aplicación
+index_addgrpapps=New Application Group
+index_adddomain=New Domain
+index_mvdomain=Move Domain
+index_addlink=New Link
+index_mvlink=Move Link
+index_addgrphosts=New Hosts Group
+index_mvgrphosts=Move Hosts Group
+index_mvhosts=Move Host
+index_addhosts=New Host
+index_addhostsuser=New Host User
+index_filter=Selection Criteria
+index_delou=Delete Organizations
+index_fixlists=Updating Lists
+index_delapp=Delete Applications
+index_modapp=Modify Applications
+index_delgrpapps=Delte Applications Group
+index_modgrpapps=Modify Applications Group
+index_deldomain=Delete Domains
+index_moddomain=Modify Domains
+index_dellink=Delete Links
+index_modlink=Modify Links
+index_delhosts=Delte Host
+index_alivehosts=Host Status
+index_modhosts=Host Modify
+index_delgrphosts=Host Group Delete
+index_modgrphosts=Host Group Modify
+index_delhostsuser=Delete Host User
+index_profilecache=Password Cache Profiles
+index_profcache=Password Cache Profiles
+index_updatecache=Change password Cache
+index_updateALLcache=Update Cache Profiles
+index_addprofcache=Create Cache Profile
+index_addldapcache=Create LDAP Cache
+index_delprofcache=Delete Cache Profile
+index_delldapcache=Delete LDAP Cache
+index_modldapcache=Modify LDAP Cache
+index_selldapcache=Selection LDAP Cache
+index_ttastatus=Tarantella Servicies Status
+index_ttaarchive=TTA logs archive
+index_ttarestart=Tarantella Services Restart
+index_ldaprestart=LDAP Services Restart
+index_ldapcacherestart=LDAP Cache Restart
+index_ldap=LDAP
+index_ttaproperties=Tarantella Propierties
+index_monitor_act=Actions Monitor
+index_acts=Acctions for Monitor
+index_ldapldif=LDAP Ldiff
+index_ldapload=Load LDAP
+index_ldapreplica=Repliciate LDAP
+index_ldapcacheldif=LDAP Cache Ldiff
+index_ldapcacheload=Load LDAP Cache
+index_ldapcache=LDAP - Cache
+index_webtops=Webtops
+index_apps=Applications
+index_grpapps=Applications Group
+index_domains=Domins
+index_links=links
+index_ttasess=Tarantella Sessions
+index_ttasess_count=TTA Sessions Counters
+index_ttasess_total=TTA Sessions Report
+index_ttabackup=Tarantella Backup
+index_ttaensbk=Tarantella ENS Backup
+index_ttaensdump=Tarantella ENS Download
+index_ttaensload=Tarantella ENS load
+index_ttaensrecreate=Tarantella ENS Recreate
+index_ttaensrestore=Restore form ENS Backup
+index_ldapcachebackup=LDAP Cache Backup
+index_works=Under Construction
+run_noout=No output from command
+index_ldapusers=LDAP Users
+index_sysusers=System Users
+index_winldapusers=Users
+index_ldapobjs=LDAP Cache Objects
+index_winldapobjs=Objects
+index_monitor=Monitor
+index_supervision=Supervision
+index_admin=Admin
+index_filemgr=Files
+index_modfile=Modify Files
+index_delfile=Delete File
+index_cleanfile=Clean File
+index_showlist= View Objects List
+index_deldefslists= Delete Objects List
+index_moddefslists= Modify Objects List
+index_addfile=Create File
+index_runfile=Run File
+index_ttascript=Command Files
+index_logldap=LDAP Users Log
+index_logstta=STTA Logs
+index_dirdefstta=Objects Lists
+index_loghttp=HTTP Log
+index_loghttpacc=HTTP Access Log
+index_loghttps=Log HTTPS
+index_loghttpsacc=HTTPS Access Log
+index_dirlogstta=Tarantella Logs
+index_dirlogscacheLDAP Cache Log
+index_logaccldap=LDAP Access Log
+index_logaccldapcache=LDAP CACHE Access Log
+index_logsystem=System Log
+index_logldapsrv=LDAP Log
+index_logldapcachesrv=LDAP CACHE Log
+index_dirsave=Copies Dir
+index_ldapschema=Esquema LDAP
+index_ldapcacheschema=Esquema LDAP CACHE
+index_installupd=Instalar/Actualizar
+index_listdebuglogs=Lista Logs Debug
+index_liststtalogs=Lista Logs STTA
+index_listbackups=Lista Copias STTA
+index_webhelp=Generar Web Ayuda
+index_checksync=Comprobar Integridad
+index_sttareport=Informe de STTA
+index_brandmgr= Brand STTA code
+index_synclist=Sincronizar Listas
+
+
diff --git a/stta/devtools/lang-save/nl b/stta/devtools/lang-save/nl
new file mode 100755
index 0000000..8228265
--- /dev/null
+++ b/stta/devtools/lang-save/nl
@@ -0,0 +1,163 @@
+index_title=Tarantella Services
+index=Index
+index_globalldap=LDAP Configuration
+index_globaltta=Tarantella Configuration
+headpage_right=Info
+head_logout=Desconectar Comentarios
+head_below=STTA
+ttasess_title=Tarantella Sessions
+ttasesscount_title=Tarantella Sessions Counter
+ttasessteotal_title=Tarantella Sessions Report
+ttastatus_title=Tarantella Status
+ttainfo_title=Tarantella Info
+index_servers=Servers
+index_warn=Warning
+index_any=any
+index_acl=Permissions
+index_module=Module Info
+index_default=by default
+index_auto=Automatic
+index_users=Users
+index_mvusers=Move Users
+index_ou=Organization
+index_mvou=Move Organizations
+index_ous=Organizations
+index_grphosts=Hosts Group
+index_mvgrphosts=Move Hosts Groups
+index_app=Applications
+index_mvapp=Move Applications
+index_grpapps=Applicacions Group
+index_mvgrpapps=Move Applicacions Groups
+index_hosts=Hosts
+index_hostsuser=Hosts User
+index_passwd=Password
+index_passwdcache=TTA Password Cache
+index_ttabackup=Tarantella Backup
+index_ldaploglist=Lista Ldap-log
+index_ldapbackup=LDAP Backup
+index_ldapcachebackup=LDAP Cache Backup
+index_replica=Replication
+index_update=Update
+index_addusr=Create New User
+index_mvusr=Mover Usuarios
+index_loadusr=Loading Users
+index_loadou=Loading Organizations
+index_loadhosts=Loading Hosts
+index_loadhostsuser=Loading Hosts Users
+index_delusr=Delete Users
+index_moddusr=Modify Users
+index_moddou=Modify Organization
+index_addou=Nueva Organización
+index_addapp=Nueva Aplicación
+index_addgrpapps=New Application Group
+index_adddomain=New Domain
+index_mvdomain=Move Domain
+index_addlink=New Link
+index_mvlink=Move Link
+index_addgrphosts=New Hosts Group
+index_mvgrphosts=Move Hosts Group
+index_mvhosts=Move Host
+index_addhosts=New Host
+index_addhostsuser=New Host User
+index_filter=Selection Criteria
+index_delou=Delete Organizations
+index_fixlists=Updating Lists
+index_delapp=Delete Applications
+index_modapp=Modify Applications
+index_delgrpapps=Delte Applications Group
+index_modgrpapps=Modify Applications Group
+index_deldomain=Delete Domains
+index_moddomain=Modify Domains
+index_dellink=Delete Links
+index_modlink=Modify Links
+index_delhosts=Delte Host
+index_alivehosts=Host Status
+index_modhosts=Host Modify
+index_delgrphosts=Host Group Delete
+index_modgrphosts=Host Group Modify
+index_delhostsuser=Delete Host User
+index_profilecache=Password Cache Profiles
+index_profcache=Password Cache Profiles
+index_updatecache=Change password Cache
+index_updateALLcache=Update Cache Profiles
+index_addprofcache=Create Cache Profile
+index_addldapcache=Create LDAP Cache
+index_delprofcache=Delete Cache Profile
+index_delldapcache=Delete LDAP Cache
+index_modldapcache=Modify LDAP Cache
+index_selldapcache=Selection LDAP Cache
+index_ttastatus=Tarantella Servicies Status
+index_ttaarchive=TTA logs archive
+index_ttarestart=Tarantella Services Restart
+index_ldaprestart=LDAP Services Restart
+index_ldapcacherestart=LDAP Cache Restart
+index_ldap=LDAP
+index_ttaproperties=Tarantella Propierties
+index_monitor_act=Actions Monitor
+index_acts=Acctions for Monitor
+index_ldapldif=LDAP Ldiff
+index_ldapload=Load LDAP
+index_ldapreplica=Repliciate LDAP
+index_ldapcacheldif=LDAP Cache Ldiff
+index_ldapcacheload=Load LDAP Cache
+index_ldapcache=LDAP - Cache
+index_webtops=Webtops
+index_apps=Applications
+index_grpapps=Applications Group
+index_domains=Domins
+index_links=links
+index_ttasess=Tarantella Sessions
+index_ttasess_count=TTA Sessions Counters
+index_ttasess_total=TTA Sessions Report
+index_ttabackup=Tarantella Backup
+index_ttaensbk=Tarantella ENS Backup
+index_ttaensdump=Tarantella ENS Download
+index_ttaensload=Tarantella ENS load
+index_ttaensrecreate=Tarantella ENS Recreate
+index_ttaensrestore=Restore form ENS Backup
+index_ldapcachebackup=LDAP Cache Backup
+index_works=Under Construction
+run_noout=No output from command
+index_ldapusers=LDAP Users
+index_sysusers=System Users
+index_winldapusers=Users
+index_ldapobjs=LDAP Cache Objects
+index_winldapobjs=Objects
+index_monitor=Monitor
+index_supervision=Supervision
+index_admin=Admin
+index_filemgr=Files
+index_modfile=Modify Files
+index_delfile=Delete File
+index_cleanfile=Clean File
+index_showlist= View Objects List
+index_deldefslists= Delete Objects List
+index_moddefslists= Modify Objects List
+index_addfile=Create File
+index_runfile=Run File
+index_ttascript=Command Files
+index_logldap=LDAP Users Log
+index_logstta=STTA Logs
+index_dirdefstta=Objects Lists
+index_loghttp=HTTP Log
+index_loghttpacc=HTTP Access Log
+index_loghttps=Log HTTPS
+index_loghttpsacc=HTTPS Access Log
+index_dirlogstta=Tarantella Logs
+index_logaccldap=LDAP Access Log
+index_logaccldapcache=LDAP CACHE Access Log
+index_logsystem=System Log
+index_logldapsrv=LDAP Log
+index_logldapcachesrv=LDAP CACHE Log
+index_dirsave=Copies Dir
+index_ldapschema=Esquema LDAP
+index_ldapcacheschema=Esquema LDAP CACHE
+index_installupd=Instalar/Actualizar
+index_listdebuglogs=Lista Logs Debug
+index_liststtalogs=Lista Logs STTA
+index_listbackups=Lista Copias STTA
+index_webhelp=Generar Web Ayuda
+index_checksync=Comprobar Integridad
+index_sttareport=Informe de STTA
+index_brandmgr= Brand STTA code
+index_synclist=Sincronizar Listas
diff --git a/stta/devtools/lang-save/out b/stta/devtools/lang-save/out
new file mode 100755
index 0000000..4a3c696
--- /dev/null
+++ b/stta/devtools/lang-save/out
@@ -0,0 +1,78 @@
+11
+ttasesstotal_title=Resumen
+12
+ttasessbill_title=Registro
+31
+index_mvapps=Mover
+57
+index_mvdomains=Mover
+59
+index_mvlinks=Mover
+82
+index_mvprofcache=Mover
+99
+index_runact=Ejecutar
+101
+index_mvactions=Mover
+116
+index_ttasess_bill=Registro
+152
+index_dirlogscache=Cache
+188
+nohastotalsess_err=No
+189
+nohasbillsess_err=No
+203
+titidx_ttasess_bill=Registro
+249
+titidx_delhostsr=Borrar
+277
+titidx_sysusers=Selección
+318
+titidx_mvgrphosts=Mover
+319
+titidx_mvhosts=Mover
+320
+titidx_mvgrpapps=Mover
+321
+titidx_mvapps=Mover
+322
+titidx_mvlinks=Mover
+323
+titidx_mvdomains=Mover
+324
+titidx_mvusers=Mover
+325
+titidx_mvou=Mover
+326
+titidx_mvactions=Mover
+352
+ldapcacheps_title=Procesos
+353
+ldapcacheps_list_title=Lista
+364
+mvusr_title=Mover
+367
+mvou_title=Mover
+395
+modlinks_title=Modificar
+444
+brandmgr_title=Marcar
+917
+brand_list=Lista
+918
+brand_title=Marcado
+919
+branding=Marcando
+942
+sys_user=Usuario
+957
+choose_msg_objtosel=Click
+972
+done=Realizado
+973
+extracting=Extrayendo
+974
+set_perms=Asignando
+975
+fixing=Fijando
diff --git a/stta/devtools/lang-save/tmp/en-save b/stta/devtools/lang-save/tmp/en-save
new file mode 100755
index 0000000..718a6b2
--- /dev/null
+++ b/stta/devtools/lang-save/tmp/en-save
@@ -0,0 +1,234 @@
+# Para Cabeceras y Títulos Pricipales
+
+index_title=Servicios Tarantella
+index=Optiones
+index_globalldap=Configuración LDAP
+index_globaltta=Configuración Tarantella
+
+ttasess_title=Sesiones Tarantella
+ttastatus_title=Status Tarantella
+ttainfo_title=Info Tarantella
+index_any=cualquiera
+index_default=Por defecto
+index_auto=Automático
+index_users=Usuarios
+index_ou=Organizaciones
+index_passwd=Password
+index_backuptta=Copia de Tarantella
+index_backupldap=Copia de LDAP
+index_replica=Replicación
+index_addusr=Alta Nuevo Usuario
+index_loadusr=Carga de Usuarios
+index_delusr=Borrado de Usuarios
+index_moddusr=Modificar Usuarios
+index_moddou=Modificar Organización
+index_addou=Nueva Organización
+index_filter=Criterio de Selección
+index_delou=Borrado de Organizaciones
+index_passwd=Passwords
+index_passwdcache=Cambio de password en Cache
+index_ttastatus=Status Servicios Tarantella
+index_ttarestart=Reinicio Servicios Tarantella
+index_ldaprestart=Reinicio Servicios LDAP
+index_ttasess=Sesiones Tarantella
+index_ttabackup=Backup Tarantella
+index_ttaensbk=Backup Tarantella ENS
+index_ldapbackup=Backup del LDAP
+index_works=En construcción
+run_nout=No hay salida de la orden ejecutada
+index_ldapusers=Usuarios LDAP
+
+
+# Para errores
+
+index_eroot=El directorio raiz de Tarantella $1 no existe. Si Tarantella está instalado, ajuste la configuración del módulo con la localización correcta.
+index_eserver=Ejecutable del servidor Tarantella $1 no existe. Si Tarantella está instalado, ajuste la configuración del módulo con la localización correcta.
+index_cmderr=Orden No Configurada !!
+ldap_noconnect=No se pudo conectar con el servidor LDAP
+ldap_conerr=LDAP Connectivity Error
+ldap_admerr=Error en Gestión del LDAP
+
+# Para Títulos y Formularios en Tablas
+
+titidx_works=i¡¡ Pediente de Desarrollo. !!!
+titidx_ttastatus=Estado de los Servicios de Tarantella
+titidx_ttasess=Sesiones en los Servicios de Tarantella
+titidx_ttarestart=Re-arranque de los Servicios de Tarantella
+titidx_ldaprestart=Re-arranque de los Servicios de LDAP
+titidx_ttabackup=Backup Tarantella
+titidx_ttaensbk=Backup Tarantella ENS
+titidx_ttaarchive=Archive Tarantella
+titidx_ldapldif=Ldif del LDAP
+titidx_ldapbrw=LDAP browser
+titidx_ldapbackup=Backup del LDAP
+titidx_adusr=Atributos para Crear un Nuevo Usuario
+titidx_loadusr=Carga de Nuevos Usuario
+titidx_filter=Definir criterios de selección de usuarios
+titidx_delou=Borrar Organizacion ->
+titidx_delusr=Borrando Usuario:
+titidx_modusr=Atributos de " $1 " de " $2 "
+titidx_modou=Atributos de " $1 "
+titidx_modou0=Atributos de la Organizacion
+titidx_modusr0=Atributos del Usuario
+titidx_adou=Atributos para Crear un Nuevo Grupo/Organizacion
+titidx_modgrp=Atributos de $1
+titidx_modgrp0=Atributos del Grupo
+titidx_passwd=Cambio de Clave de Acceso
+titidx_passwdcache=Cambio de Claves de Acceso en Cache
+
+# For Icons and links
+
+tta_backup=Copia TTA
+tta_ensbk=Copia TTA ENS
+tta_archive=TTA Archivar Logs
+ldap_backup=Copia LDAP
+ldap_ldif=Ldif LDAP
+tta_restart=Reinicio_TTA
+tta_help=Guía_TTA
+ldap_restart=Reinicio_LDAP
+ldap_help=LDAP_Guía
+ttaps_title=Procesos TTA
+ldapps_title=Procesos LDAP
+ldapbrw_title=Navegador LDAP
+ldapusrs_title=Usuarios LDAP
+addusr_title=Nuevo
+modusr_title=Modificar
+delusr_title=Borrar
+addou_title=Nuevo
+modou_title=Modificar
+delou_title=Borrar
+passwd_title=Modificar Usuarios
+passwdcache_title=Modificar Cache
+replica_title=Replicar LDAP
+loadusrs_title=Cargar usuarios
+
+# Para formularios
+
+f_username=Nombre de Usuario:
+f_username3=Usuario en Servidor:
+f_grupo=del Grupo:
+f_aliasou=Alias:
+f_surname=Apellido:
+f_descrip=Descripción:
+f_user=Usuario del Sistema:
+f_email=Correo Electrónico:
+f_ntdomain=Dominio NT:
+f_webtop=Tipo de Webtop:
+f_inherit=Hereda atributos del Grupo:
+f_shared=Usuario Compartido:
+f_enabled=Usuario Activado para LOGIN:
+f_conect=Conexiones
+f_ipaddr=(direcc
+f_contype= -tipo):
+f_cdm=Mapeo de Unidades locales:
+f_bandwidth=Máximo ancho de banda en bps permitido:
+f_links=Enlaces:
+f_defaultlinks=Enlaces por defecto del grupo
+f_sendreq=Enviar Petición
+f_cancelreq=Cancelar
+f_password=Clave de Acceso:
+f_passwdcache=Clave por defecto para Acceso a Servidores:
+f_administrador=Usuario Administrador:
+f_userou=Grupo de:
+f_selecou=-- Seleccionar Grupo u Organización --
+f_groupname=Nombre de Grupo o Subgrupo:
+f_selobj=-- Seleccionar Objeto --
+f_selecord=-- Seleccionar Orden --
+f_filter=Filtro (cn):
+f_orderby=Ordenado por:
+f_obj=Objeto:
+f_passwordchk=Repetir Clave:
+f_next=Mas Usuarios
+f_defpasswd3tier=Clave por defecto para Acceso a Servidores:
+f_loadfile=Fichero de Carga
+
+dn_orderby=cn,uid,email,department
+# Para mensages y Formularios (alers, checking, etc.)
+
+user_made=Ha sido creado ->
+user_madetta=Ha sido creado en Tarantella ->
+user_delete=Ha sido Borrado ->
+user_update=Ha sido actualizado ->
+msg_0=Valor por Defecto asignado
+msg_1=el valor no es correcto
+msg_3=¿¿ Cambiar Password por Defecto para Servidores ??
+msg_2=¿¿ Este usuario va a ser un Administrador ??
+msg_4=Se mantienen valores actuales almacenados
+msg_5=¿¿ Este usuario va a ser COMPARTIDO ??
+msg_6=¿¿ Este usuario NO va tener activado el LOGIN ??
+msg_7=> Bajo ->
+loadusr_noexist=El Fichero de Carga no puede ser Abierto:
+
+# Pie y Derechos de Copia
+
+cpr_line1=derechos de Copia © 2001 por
+cpr_line2=Este módulo de Webmin está bajo
+f_modatt=Modificar Atributos
+
+index_equals=iguales
+index_matches=matches
+index_nequals=no iguales
+index_nmatches=not matches
+
+# For ACLs
+
+acl_addusr=¿Puedo crear nuevos usuarios?
+acl_delusr=¿Puedo borrar usuarios?
+acl_addou=¿Puedo crear una nueva Organización?
+acl_delou=¿Puedo cancelar una organización?
+acl_stop=¿Puedo parar los servicios?
+acl_global=¿Puedo administrar los servicios?
+acl_restart=Reniciar sólo
+acl_passwd=¿Cambiar password del usuario?
+acl_passwdCache=¿Cambiar la Caché de passwords ?
+acl_backup=¿puedo copiar TTA y/o LDAP ?
+acl_replicate=¿Puedo replicar el LDAP ?
+
+
+l_uid=Login
+uidnumber=UID
+gidnumber=GID
+gecos=GECOS
+homedirectory=Home
+loginshell=Shell
+
+l_givenname=Nombre
+l_sn=Apellidos
+l_cn=Nombre Completo
+l_mail=Correo Electrónico
+l_orderby=Ordenado por
+title=Título
+organizationname=Nombre Empresa
+l_department=Departamento
+physicaldeliveryofficename=Oficina
+telephonenumber=Nro. Teléfono
+mobile=Teléfono Móbil
+pager=paginador
+officefax=Fax
+comment=Comentarios
+
+posixAccount=Perfil Usuario Unix
+addressbook=Datos Agenda
+
+user_options=Opciones creación Usuario
+userpasswd=Password inicial
+passwdtype=Tipo Password
+md5=MD5
+crypt=Unix Crypt
+plaintext=sin hash (texto plano)
+create_home=¿Crear directorio Home ?
+copy_files=¿Copiar ficheros al directorio Home ?
+yes=Si
+no=No
+
+create=Crear
+modify=Modificar
+delete=Borrar
+set_passwd=Asigna Password
+
+header_1=LDAP usuario Creado
+header_2=LDAP usuario Modificado
+header_3=Editar usaurio LDAP
+header_4=Crear usuario LDAP
+
+
diff --git a/stta/devtools/lang-save/tmp/es-total-lang b/stta/devtools/lang-save/tmp/es-total-lang
new file mode 100755
index 0000000..9535df6
--- /dev/null
+++ b/stta/devtools/lang-save/tmp/es-total-lang
@@ -0,0 +1,3 @@
+index_ttasess_total=Resumen Sesiones TTA
+titidx_ttasess_total=Resumen de Sesiones en los Servicios de Tarantella
+nohastoralsess_err=No se ha activado el Registro (cron-list) de Resumen de Sessiones
diff --git a/stta/devtools/lang-save/tmp/us b/stta/devtools/lang-save/tmp/us
new file mode 100755
index 0000000..b3b44cd
--- /dev/null
+++ b/stta/devtools/lang-save/tmp/us
@@ -0,0 +1,241 @@
+# For Top and Main Titles
+
+index_title=Tarantella Services
+index=Options
+index_globalldap=Configuration LDAP
+index_globaltta=Configuration Tarantella
+
+ttasess_title=Tarantella Session Admin
+ttastatus_title=Tarantella Status
+ttainfo_title=Tarantella Info
+index_any=Any
+index_default=Default
+index_auto=Automatic
+index_users=Users
+index_ou=Organizations
+index_passwd=Password
+index_backuptta=Backup Tarantella
+index_backupldap=Backup LDAP
+index_replica=Replication
+index_addusr=New User Request
+index_loadusr=User Load Request
+index_delusr=Delete User Request
+index_moddusr=Change User values
+index_moddou=Change OrgUnit values
+index_addou=New Group Request
+index_filter=Selection Criteria
+index_delou=Delete Group Request
+index_passwd=Passwords
+index_passwdcache=Change password Cache
+index_ttastatus=Tarantella Services Status
+index_ttarestart=Tarantella Services Restart
+index_ldaprestart=LDAP Services Restart
+index_ttasess=Sesiones Tarantella
+index_ttabackup=Backup Tarantella
+index_ttaensbk=Backup Tarantella ENS
+index_ldapbackup=Backup del LDAP
+index_works=En construccion
+run_nout=No hay salida de la orden ejecutada
+index_ldapusers=Usuarios LDAP
+
+
+# For errors
+
+index_eroot=The Tarantella root directory $1 does not exist. If you have Tarantella installed, adjust the module configuration to use the correct paths.
+index_eserver=The Tarantella server executable $1 does not exist. If you have Tarantella installed, adjust the module configuration to use the correct path.
+index_cmderr=Orden No Configurada !!
+ldap_noconnect=Couldn't connect to LDAP server
+ldap_conerr=LDAP Connectivity Error
+
+sckerr_noip=Failed to lookup IP address for $1
+sckerr_no=Failed to create socket : $1
+sckerr_noconn=Failed to connect to $1:$2 : $3
+
+# For Titles in Form Tables
+
+titidx_works=i¡¡ Pediente de Desarrollo. !!!
+titidx_ttastatus=Estado de los Servicios de Tarantella
+titidx_ttasess=Sesiones en los Servicios de Tarantella
+titidx_ttarestart=Re-arranque de los Servicios de Tarantella
+titidx_ldaprestart=Re-arranque de los Servicios de LDAP
+titidx_ttabackup=Backup Tarantella
+titidx_ttaensbk=Backup Tarantella ENS
+titidx_ttaarchive=Archive Tarantella
+titidx_ldapldif=Ldif del LDAP
+titidx_ldapbrw=LDAP browser
+titidx_ldapbackup=Backup del LDAP
+titidx_adusr=Atributos para Crear un Nuevo Usuario
+titidx_loadusr=Carga de Nuevos Usuario
+titidx_filter=Defining criteria for user selection
+titidx_delou=Borrar Organizacion ->
+titidx_delusr=Borrando Usuario:
+titidx_modusr=Atributos de " $1 " de " $2 "
+titidx_modou=Atributos de " $1 "
+titidx_modou0=Atributos de la Organizacion
+titidx_modusr0=Atributos del Usuario
+titidx_adou=Atributos para Crear un Nuevo Grupo/Organizacion
+titidx_modgrp=Atributos de $1
+titidx_modgrp0=Atributos del Grupo
+titidx_passwd=Cambio de Clave de Acceso
+titidx_passwdcache=Cambio de Claves de Acceso en Cache
+
+# For Icons and links
+
+tta_backup=TTA Backup
+tta_ensbk=TTA ENS Backup
+tta_archive=TTA Archive
+ldap_backup=LDAP Backup
+ldap_ldif=LDAP Ldif
+tta_restart=Restart_TTA
+tta_help=TTA_Guide
+ldap_restart=Restart_LDAP
+ldap_help=LDAP_Guide
+ttaps_title=TTA Process
+ldapps_title=LDAP Process
+ldapbrw_title=LDAP Browser
+ldapusrs_title=LDAP Users
+addusr_title=New
+modusr_title=Change
+delusr_title=Delete
+addou_title=New
+modou_title=Change
+delou_title=Delete
+passwd_title=Change Users
+passwdcache_title=Change Cache
+replica_title=Replicate LDAP
+loadusrs_title=Load Users
+
+# For Forms
+
+f_username=Nombre de Usuario:
+f_username3=Usuario en Servidor:
+f_grupo=del Grupo:
+f_aliasou=Alias:
+f_surname=Apellido:
+f_descrip=Descripcion:
+f_user=Usuario del Sistema:
+f_email=Correo Electronico:
+f_ntdomain=Dominio NT:
+f_webtop=Tipo de Webtop:
+f_inherit=Hereda atributos del Grupo:
+f_shared=Usuario Compartido:
+f_enabled=Usuario Activado para LOGIN:
+f_conect=Conexiones
+f_ipaddr=(direcc
+f_contype= -tipo):
+f_cdm=Mapeo de Unidades locales:
+f_bandwidth=Máximo ancho de banda en bps permitido:
+f_links=Enlaces:
+f_defaultlinks=Enlaces por defecto del grupo
+f_sendreq=Enviar Peticion
+f_cancelreq=Cancelar
+f_password=Clave de Acceso:
+f_passwdcache=Clave por defecto para Acceso a Servidores:
+f_administrador=Usuario Administrador:
+f_userou=Grupo de:
+f_selecou=-- Seleccionar Grupo u Organizacion --
+f_groupname=Nombre de Grupo o Subgrupo:
+f_selobj=-- Seleccionar Objeto --
+f_selecord=-- Seleccionar Orden --
+f_filter=Filtro (cn):
+f_orderby=Ordenado por:
+f_obj=Objeto:
+f_passwordchk=Repetir Clave:
+f_next=Mas Usuarios
+f_defpasswd3tier=Clave por defecto para Acceso a Servidores:
+f_loadfile=Fichero de Carga
+
+dn_orderby=cn,uid,email,department
+# For Messsages in Forms (alers, checking, etc.)
+
+user_made=Ha sido creado ->
+user_madetta=Ha sido creado en Tarantella ->
+user_delete=Ha sido Borrado ->
+user_update=Ha sido actualizado ->
+msg_0=Valor por Defecto asignado
+msg_1=el valor no es correcto
+msg_3=¿¿ Cambiar Password por Defecto para Servidores ??
+msg_2=¿¿ Este usuario va a ser un Administrador ??
+msg_4=Se mantienen valores actuales almacenados
+msg_5=¿¿ Este usuario va a ser COMPARTIDO ??
+msg_6=¿¿ Este usuario NO va tener activado el LOGIN ??
+msg_7=> Bajo ->
+loadusr_noexist=El Fichero de Carga no puede ser Abierto:
+
+# Foot and Copyright
+
+cpr_line1=Copyright © 2001 by
+cpr_line2=This Webmin module is under the
+f_modatt=Modificar Atributos
+
+index_equals=equals
+index_matches=matches
+index_nequals=not equals
+index_nmatches=not matches
+
+# For ACLs
+
+acl_addusr=Can add new users?
+acl_delusr=Can delete users?
+acl_addou=Can add new Organization?
+acl_delou=Can cancel Organization?
+acl_stop=Can stop or start Services?
+acl_global=Can Admin Services?
+acl_restart=Restart only
+acl_passwd=Change User password?
+acl_passwdCache=Change password Cache ?
+acl_backup=Can backup TTA and/or LDAP ?
+acl_replicate=Can replicate LDAP ?
+
+
+l_uid=Login
+uidnumber=UID
+gidnumber=GID
+gecos=GECOS
+homedirectory=Home
+loginshell=Shell
+
+l_givenname=Name
+l_sn=Surname
+l_cn=Full Name
+l_mail=E-mail
+l_orderby=Order by
+title=Title
+organizationname=Company Name
+l_department=Department
+physicaldeliveryofficename=Office
+telephonenumber=Phone Number
+mobile=Mobile Phone
+pager=Pager
+officefax=Fax
+comment=Comments
+
+posixAccount=Unix User Profile
+addressbook=AddressBook Data
+field_obs=This field will be generated if left empty
+
+user_options=User Creation Options
+userpasswd=Initial Password
+passwdtype=Password Type
+md5=MD5
+crypt=Unix Crypt
+plaintext=Do not hash (plain text)
+create_home=Create Home Directory ?
+copy_files=Copy Files to Home Directory?
+yes=Yes
+no=No
+
+create=Create
+modify=Modify
+delete=Delete
+set_passwd=Set Password
+
+error_1=You must type at least the Login, GID, Shell, Name and Surname
+error_1=You must type at least the Login, UID, GID, Homedir, Shell, Name and Surname
+
+header_1=LDAP User Created
+header_2=LDAP User Changed
+header_3=Edit LDAP User
+header_4=Create LDAP User
+
+
diff --git a/stta/devtools/lang-save/tmp/us-save b/stta/devtools/lang-save/tmp/us-save
new file mode 100755
index 0000000..9e71200
--- /dev/null
+++ b/stta/devtools/lang-save/tmp/us-save
@@ -0,0 +1,237 @@
+# For Top and Main Titles
+
+index_title=Tarantella Services
+index=Options
+index_globalldap=Configuration LDAP
+index_globaltta=Configuration Tarantella
+
+ttasess_title=Tarantella Session Admin
+ttastatus_title=Tarantella Status
+ttainfo_title=Tarantella Info
+index_any=Any
+index_default=Default
+index_auto=Automatic
+index_users=Users
+index_ou=Organizations
+index_passwd=Password
+index_backuptta=Backup Tarantella
+index_backupldap=Backup LDAP
+index_replica=Replication
+index_addusr=New User Request
+index_loadusr=User Load Request
+index_delusr=Delete User Request
+index_moddusr=Change User values
+index_moddou=Change OrgUnit values
+index_addou=New Group Request
+index_filter=Selection Criteria
+index_delou=Delete Group Request
+index_passwd=Passwords
+index_passwdcache=Change password Cache
+index_ttastatus=Tarantella Services Status
+index_ttarestart=Tarantella Services Restart
+index_ldaprestart=LDAP Services Restart
+index_ttasess=Sesiones Tarantella
+index_ttabackup=Backup Tarantella
+index_ttaensbk=Backup Tarantella ENS
+index_ldapbackup=Backup del LDAP
+index_works=En construccion
+run_nout=No hay salida de la orden ejecutada
+index_ldapusers=Usuarios LDAP
+
+
+# For errors
+
+index_eroot=The Tarantella root directory $1 does not exist. If you have Tarantella installed, adjust the module configuration to use the correct paths.
+index_eserver=The Tarantella server executable $1 does not exist. If you have Tarantella installed, adjust the module configuration to use the correct path.
+index_cmderr=Orden No Configurada !!
+ldap_noconnect=Couldn't connect to LDAP server
+ldap_conerr=LDAP Connectivity Error
+
+# For Titles in Form Tables
+
+titidx_works=i¡¡ Pediente de Desarrollo. !!!
+titidx_ttastatus=Estado de los Servicios de Tarantella
+titidx_ttasess=Sesiones en los Servicios de Tarantella
+titidx_ttarestart=Re-arranque de los Servicios de Tarantella
+titidx_ldaprestart=Re-arranque de los Servicios de LDAP
+titidx_ttabackup=Backup Tarantella
+titidx_ttaensbk=Backup Tarantella ENS
+titidx_ttaarchive=Archive Tarantella
+titidx_ldapldif=Ldif del LDAP
+titidx_ldapbrw=LDAP browser
+titidx_ldapbackup=Backup del LDAP
+titidx_adusr=Atributos para Crear un Nuevo Usuario
+titidx_loadusr=Carga de Nuevos Usuario
+titidx_filter=Defining criteria for user selection
+titidx_delou=Borrar Organizacion ->
+titidx_delusr=Borrando Usuario:
+titidx_modusr=Atributos de " $1 " de " $2 "
+titidx_modou=Atributos de " $1 "
+titidx_modou0=Atributos de la Organizacion
+titidx_modusr0=Atributos del Usuario
+titidx_adou=Atributos para Crear un Nuevo Grupo/Organizacion
+titidx_modgrp=Atributos de $1
+titidx_modgrp0=Atributos del Grupo
+titidx_passwd=Cambio de Clave de Acceso
+titidx_passwdcache=Cambio de Claves de Acceso en Cache
+
+# For Icons and links
+
+tta_backup=TTA Backup
+tta_ensbk=TTA ENS Backup
+tta_archive=TTA Archive
+ldap_backup=LDAP Backup
+ldap_ldif=LDAP Ldif
+tta_restart=Restart_TTA
+tta_help=TTA_Guide
+ldap_restart=Restart_LDAP
+ldap_help=LDAP_Guide
+ttaps_title=TTA Process
+ldapps_title=LDAP Process
+ldapbrw_title=LDAP Browser
+ldapusrs_title=LDAP Users
+addusr_title=New
+modusr_title=Change
+delusr_title=Delete
+addou_title=New
+modou_title=Change
+delou_title=Delete
+passwd_title=Change Users
+passwdcache_title=Change Cache
+replica_title=Replicate LDAP
+loadusrs_title=Load Users
+
+# For Forms
+
+f_username=Nombre de Usuario:
+f_username3=Usuario en Servidor:
+f_grupo=del Grupo:
+f_aliasou=Alias:
+f_surname=Apellido:
+f_descrip=Descripcion:
+f_user=Usuario del Sistema:
+f_email=Correo Electronico:
+f_ntdomain=Dominio NT:
+f_webtop=Tipo de Webtop:
+f_inherit=Hereda atributos del Grupo:
+f_shared=Usuario Compartido:
+f_enabled=Usuario Activado para LOGIN:
+f_conect=Conexiones
+f_ipaddr=(direcc
+f_contype= -tipo):
+f_cdm=Mapeo de Unidades locales:
+f_bandwidth=Máximo ancho de banda en bps permitido:
+f_links=Enlaces:
+f_defaultlinks=Enlaces por defecto del grupo
+f_sendreq=Enviar Peticion
+f_cancelreq=Cancelar
+f_password=Clave de Acceso:
+f_passwdcache=Clave por defecto para Acceso a Servidores:
+f_administrador=Usuario Administrador:
+f_userou=Grupo de:
+f_selecou=-- Seleccionar Grupo u Organizacion --
+f_groupname=Nombre de Grupo o Subgrupo:
+f_selobj=-- Seleccionar Objeto --
+f_selecord=-- Seleccionar Orden --
+f_filter=Filtro (cn):
+f_orderby=Ordenado por:
+f_obj=Objeto:
+f_passwordchk=Repetir Clave:
+f_next=Mas Usuarios
+f_defpasswd3tier=Clave por defecto para Acceso a Servidores:
+f_loadfile=Fichero de Carga
+
+dn_orderby=cn,uid,email,department
+# For Messsages in Forms (alers, checking, etc.)
+
+user_made=Ha sido creado ->
+user_madetta=Ha sido creado en Tarantella ->
+user_delete=Ha sido Borrado ->
+user_update=Ha sido actualizado ->
+msg_0=Valor por Defecto asignado
+msg_1=el valor no es correcto
+msg_3=¿¿ Cambiar Password por Defecto para Servidores ??
+msg_2=¿¿ Este usuario va a ser un Administrador ??
+msg_4=Se mantienen valores actuales almacenados
+msg_5=¿¿ Este usuario va a ser COMPARTIDO ??
+msg_6=¿¿ Este usuario NO va tener activado el LOGIN ??
+msg_7=> Bajo ->
+loadusr_noexist=El Fichero de Carga no puede ser Abierto:
+
+# Foot and Copyright
+
+cpr_line1=Copyright © 2001 by
+cpr_line2=This Webmin module is under the
+f_modatt=Modificar Atributos
+
+index_equals=equals
+index_matches=matches
+index_nequals=not equals
+index_nmatches=not matches
+
+# For ACLs
+
+acl_addusr=Can add new users?
+acl_delusr=Can delete users?
+acl_addou=Can add new Organization?
+acl_delou=Can cancel Organization?
+acl_stop=Can stop or start Services?
+acl_global=Can Admin Services?
+acl_restart=Restart only
+acl_passwd=Change User password?
+acl_passwdCache=Change password Cache ?
+acl_backup=Can backup TTA and/or LDAP ?
+acl_replicate=Can replicate LDAP ?
+
+
+l_uid=Login
+uidnumber=UID
+gidnumber=GID
+gecos=GECOS
+homedirectory=Home
+loginshell=Shell
+
+l_givenname=Name
+l_sn=Surname
+l_cn=Full Name
+l_mail=E-mail
+l_orderby=Order by
+title=Title
+organizationname=Company Name
+l_department=Department
+physicaldeliveryofficename=Office
+telephonenumber=Phone Number
+mobile=Mobile Phone
+pager=Pager
+officefax=Fax
+comment=Comments
+
+posixAccount=Unix User Profile
+addressbook=AddressBook Data
+field_obs=This field will be generated if left empty
+
+user_options=User Creation Options
+userpasswd=Initial Password
+passwdtype=Password Type
+md5=MD5
+crypt=Unix Crypt
+plaintext=Do not hash (plain text)
+create_home=Create Home Directory ?
+copy_files=Copy Files to Home Directory?
+yes=Yes
+no=No
+
+create=Create
+modify=Modify
+delete=Delete
+set_passwd=Set Password
+
+error_1=You must type at least the Login, GID, Shell, Name and Surname
+error_1=You must type at least the Login, UID, GID, Homedir, Shell, Name and Surname
+
+header_1=LDAP User Created
+header_2=LDAP User Changed
+header_3=Edit LDAP User
+header_4=Create LDAP User
+
+
diff --git a/stta/devtools/makebasedefs b/stta/devtools/makebasedefs
new file mode 100755
index 0000000..2fabf16
--- /dev/null
+++ b/stta/devtools/makebasedefs
@@ -0,0 +1,9 @@
+#!/bin/sh
+#!/bin/sh
+# STTA Rev. 1.3 Copyright (c) 2001-2003 Jesús Pérez Lorenzo --- license GNU GPL
+for nom in `ls `
+do
+ cat $nom | awk -F "=" '{ printf "%s=\n",$1 }' >$nom.new
+ wc -l $nom*
+ mv $nom.new $nom
+done
diff --git a/stta/devtools/makecinta b/stta/devtools/makecinta
new file mode 100755
index 0000000..405b4fa
--- /dev/null
+++ b/stta/devtools/makecinta
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+[ ! "$STTA" ] && echo "STTA no set " && exit 2
+
+. $STTA/envprofile
+
+DESTDIR=$CINTADIR/$ahora
+[ "$1" ] && {
+ DESTDIR=$CINTADIR/$1
+ [ ! -d $DESTDIR ] && {
+ echo "Making $DESTDIR "
+ make_dir $DESDIR
+ [ $? != 0 ] && exit 1
+ }
+ DESTDIR=$CINTADIR/$1/$ahora
+}
+
+make_dir $DESDIR
+
+echo "CINTA in $DESTDIR ..."
+echo $DESTDIR
+
diff --git a/stta/devtools/makepack b/stta/devtools/makepack
new file mode 100755
index 0000000..75fac1f
--- /dev/null
+++ b/stta/devtools/makepack
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+[ ! "$1" ] && exit 2
+[ ! -d $1 ] && exit 2
+
+cd $1
+
+echo "Making $MODULE in $1 ..."
+
diff --git a/stta/devtools/makestamp b/stta/devtools/makestamp
new file mode 100755
index 0000000..3933fc7
--- /dev/null
+++ b/stta/devtools/makestamp
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+[ ! "$STTA" ] && echo "STTA no set " && exit 2
+
+. $STTA/envprofile
+
+cd $STTA
+MODINFO=module.info
+dn=/dev/null
+
+ahora=`date +%Y_%m_%d_%H%M%S`;
+
+ex - $MODINFO << EOF
+/^stamp/
+d
+wq
+EOF
+echo "stamp=$ahora" >>$MODINFO
+echo "$MODULE Stamp $ahora ..."
+
diff --git a/stta/devtools/mkhtmldatconfs b/stta/devtools/mkhtmldatconfs
new file mode 100755
index 0000000..105184c
--- /dev/null
+++ b/stta/devtools/mkhtmldatconfs
@@ -0,0 +1,21 @@
+#!/bin/sh
+# shell to make html for HELP config files
+USAGE="$0 [file in stta/dataconf ]"
+
+[ $# = 0 ] && echo "$USAGE" && exit 1
+if [ -e /etc/webmin/stta/dataconf/$1 ] ;
+then
+ file=/etc/webmin/stta/dataconf/$1
+else
+ echo "$1 no exite "
+ exit 1
+fi
+cat $file | while read line ;
+do
+ variable=`echo $line | cut -f1 -d= `
+ value=`echo $line | cut -f2 -d= `
+ echo "\$infoCfg{$variable} ($variable) "
+ echo " "
+# echo " $variable $value "
+ echo " \$infoCfg{$variable} ($variable) -- $value " > $STTA/help/wk/$variable.html
+done
diff --git a/stta/devtools/mklnks b/stta/devtools/mklnks
new file mode 100755
index 0000000..25e5b0f
--- /dev/null
+++ b/stta/devtools/mklnks
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+[ ! "$STTA" ] && echo "STTA no set " && exit 2
+. $STTA/envprofile
+
+cd $WEBMINDIR/$MODULE 2>$dn
+lista=`ls *.sh 2>$dn`
+cd $DEVTOOLS 2>$dn
+for file in `echo $lista`
+do
+ nom=`( echo $file | sed 's/.sh//' | sed 's/..\///g' ) 2>$dn`
+ [ -n $nom ] && [ ! -e $nom ] && {
+ echo "ln -s ../$file to $nom "
+ ln -s ../$file $nom
+ }
+done
+cd $origen
diff --git a/stta/devtools/mkpl b/stta/devtools/mkpl
new file mode 100755
index 0000000..dc6fb7a
--- /dev/null
+++ b/stta/devtools/mkpl
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+[ ! "$STTA" ] && echo "STTA no set " && exit 2
+. $STTA/envprofile
+
+[ -r "$1" ] && perl $* >/dev/null
diff --git a/stta/devtools/mktools b/stta/devtools/mktools
new file mode 100755
index 0000000..07e2eae
--- /dev/null
+++ b/stta/devtools/mktools
@@ -0,0 +1,206 @@
+#!/bin/sh
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+USAGE="mktools.sh [lang] [webmin-etc]";
+dn=/dev/null
+TTA_CMD="tarantella"
+
+if [ -z "$WEBMIN_ETC" ] ; then
+ if [ -n "$2" ] ; then
+ WEBMIN_ETC=$2
+ fi
+ [ ! -d "$WEBMIN_ETC" ] && WEBMIN_ETC="/etc/webmin"
+fi
+if [ -z "$STTA_DATACONF" ] ; then
+ STTA_DATACONF=$WEBMIN_ETC"/stta/dataconf"
+ export STTA_DATACONF
+fi
+if [ -z "$STTA" ] ; then
+ STTA=`cat $WEBMIN_ETC/miniserv.conf 2>$dn | egrep "^root=" | sed 's/root=//g'`/stta
+ export STTA
+fi
+
+[ ! -d "$STTA" ] && STTA=`pwd`
+[ ! -r "$STTA/envprofile" ] && echo "STTA environment not set " && exit 2
+if [ -z "$defaultLang" ] ; then
+ defaultLang=`cat $WEBMIN_ETC/config 2>$dn | egrep "^lang=" | sed 's/lang=//g'`
+ export defaultLang
+fi
+. $STTA/envprofile
+DIRTOOLS=$STTA/$STTA_SHELLS
+
+if [ -n "$1" ] ; then
+ WEBMIN_LANG=$1
+else
+ WEBMIN_LANG=$defaultLang
+fi
+if [ ! -d "$STTA_DATACONF" ] ; then
+ echo "STTA config not set "
+ exit 2
+fi
+STTA_TOOLSDIR=`fgrep "stta_tools_dir" $STTA_DATACONF/shells 2>/dev/null | sed 's/stta_tools_dir=//g'`
+if [ -z "$STTA_TOOLSDIR" ] ; then
+ echo "STTA TOOLS Dir not set "
+ exit 2
+fi
+TTABINDIR=`fgrep "tta_dir" $STTA_DATACONF/tta 2>/dev/null | sed 's/tta_dir=//g'`"/bin"
+TTACMD=$TTABINDIR"/"$TTA_CMD
+if [ ! -x "$TTACMD" ] ; then
+ echo "TTA bin file not set "
+ exit 2
+fi
+
+N=""
+C=""
+if echo -n | grep n >$dn
+then
+ C="\c"
+else
+ N="-n"
+fi
+case `uname -a` in
+*inux*) N="$N -e" ;;
+esac
+
+if [ -d $STTA/lang ] ; then
+ [ ! -r "$STTA/lang/shells/$WEBMIN_LANG" ] && WEBMIN_LANG=$defaultLang
+ [ -r "$STTA/lang/shells/$WEBMIN_LANG" ] && {
+ . $STTA/lang/shells/$WEBMIN_LANG
+ }
+else
+ echo "LANG not set "
+ echo "$USAGE"
+ exit 2
+fi
+
+UNAME=`uname`
+case $UNAME in
+ Linux|inux|linux) CRONTAB=/var/spool/cron/tabs/root
+ ;;
+ *)
+ CRONTAB=/usr/spool/cron/tabs/root
+ ;;
+esac
+[ ! -f $CRONTAB ] && CRONTAB=/usr/spool/cron/crontabs/root
+
+has_monitor=`fgrep "has_monitor" $STTA_DATACONF/main 2>/dev/null | sed 's/has_monitor=//g'`
+has_cronsess=`fgrep "has_cronsess" $STTA_DATACONF/main 2>/dev/null | sed 's/has_cronsess=//g'`
+
+if [ ! -d $STTA_TOOLSDIR ] ; then
+ mkdir $STTA_TOOLSDIR
+ chown root:bin $STTA_TOOLSDIR
+ chmod 755 $STTA_TOOLSDIR
+fi
+if [ ! -d $STTA/$TOOLSDIR ] ; then
+ mkdir $STTA/$TOOLSDIR
+else
+ rm -r $STTA/$TOOLSDIR/* 2>$dn
+fi
+
+echo "$msg_mkfiles"
+for file in ` echo $LIST_STTACMDS $LIST_TTACMDS $LIST_TCLS `
+do
+ [ "$file" = "openldap" ] && [ ! -d "/etc/openldap" ] && continue
+ [ "$file" = "oldapadm" ] && [ ! -d "/etc/openldap" ] && continue
+ cat $DIRTOOLS/$file.sh | sed "s,STTATOOLSDIR,$STTA_TOOLSDIR,g" |\
+ sed "s,ETCWEBMINDIR,$WEBMIN_ETC,g" >$STTA_TOOLSDIR/$file
+ chmod 555 $STTA_TOOLSDIR/$file
+ chown root:bin $STTA_TOOLSDIR/$file
+ chmod 555 $STTA_TOOLSDIR/$file
+ cp -p $STTA_TOOLSDIR/$file $STTA/$TOOLSDIR
+done
+[ -x $STTA_DATACONF/envstta ] && cp -p $STTA_DATACONF/envstta $STTA_TOOLSDIR
+echo $N "$msg_mkbrandinfo$C"
+cat $STTA/$SttaBrandInfoFile | grep -v "stta/$TOOLSDIR/" >$STTA/$brandInfoFile
+for file in ` echo $LIST_STTACMDS $LIST_TTACMDS $LIST_TCLS `
+do
+ brand_data=`grep "^# stta: (@#)" $STTA/$TOOLSDIR/$file 2>$dn`
+ if [ -n "$brand_data" ] ; then
+ brand_code=`echo $brand_data | awk '{ printf "%s", $4 }' `
+ brand_date=`echo $brand_data | awk '{ printf "%s",$5 }' `
+ file_size=`ls -l $STTA/$TOOLSDIR/$file | awk '{ printf "%s", $5 }' `
+ echo "stta/$TOOLSDIR/$file::$brand_code::$file_size::$brand_date" >>$STTA/$brandInfoFile
+ echo $N "$file $C";
+ fi
+done
+echo "";
+
+echo "$msg_mklibs"
+if [ ! -d $STTA_TOOLSDIR/lang ] ; then
+ mkdir $STTA_TOOLSDIR/lang
+ chown root:bin $STTA_TOOLSDIR/lang
+ chmod 755 $STTA_TOOLSDIR/lang
+else
+ rm -r $STTA_TOOLSDIR/lang/*
+fi
+mkdir $STTA_TOOLSDIR/lang/shells
+chown root:bin $STTA_TOOLSDIR/lang/shells
+chmod 755 $STTA_TOOLSDIR/lang/shells
+for file in ` echo $STTA/lang/shells/* `
+do
+ name=`basename $file`
+ if [ -r $STTA/lang/$name ] ; then
+ cp -p $file $STTA_TOOLSDIR/lang/shells/$name
+ chown root:bin $STTA_TOOLSDIR/lang/shells/$name
+ chmod 755 $STTA_TOOLSDIR/lang/shells/$name
+ fi
+done
+cp -pr $STTA_TOOLSDIR/lang $STTA/$TOOLSDIR
+for name in ` echo $LIST_DIRS `
+do
+ if [ ! -d $STTA_TOOLSDIR/$name ] ; then
+ mkdir $STTA_TOOLSDIR/$name
+ chown root:bin $STTA_TOOLSDIR/$name
+ chmod 755 $STTA_TOOLSDIR/$name
+ else
+ rm $STTA_TOOLSDIR/$name/* 2>$dn
+ fi
+ eval "LIST=\$LIST_$name"
+ for file in ` echo $LIST `
+ do
+ cp -p $STTA/$file $STTA_TOOLSDIR/$name
+ done
+ cp -pr $STTA_TOOLSDIR/$name $STTA/$TOOLSDIR
+done
+
+if [ ! -d "$2" ] ; then
+ npath=`echo $PATH | awk -F ":" '{ print $1}'`
+ # echo $N "$msg_binpath$C"
+ #read npath
+else
+ npath=$2
+fi
+[ "$npath" ] && [ -d "$npath" ] && {
+ echo "$msg_mklinks"
+ for file in ` echo $LIST_LNKCMDS `
+ do
+ rm $npath/$file 2>$dn
+ ln -s $STTA_TOOLSDIR/$file $npath/$file
+ done
+}
+
+set_monline () {
+ echo "#!/bin/sh" >$TTACMD
+ echo "if [ -n \"\$1\" ] ">>$TTACMD
+ echo "then ">>$TTACMD
+ echo " case \"\$1\" in ">>$TTACMD
+ echo " start) $STTA_TOOLSDIR/monitor auto \$1 ;; ">>$TTACMD
+ echo " stop) $STTA_TOOLSDIR/monitor auto \$1 ;; ">>$TTACMD
+ echo " esac ">>$TTACMD
+ echo "fi ">>$TTACMD
+ cat $TTAORG >>$TTACMD
+ chown bin:bin $TTACMD
+ chmod 755 $TTACMD
+}
+
+if [ $has_cronsess = "true" ] ; then
+ line=`fgrep ttasess $CRONTAB`
+ [ -z "$line" ] && echo "30 * * * * $STTA_TOOLSDIR/ttasess -r 1>/dev/null 2>/dev/console ">>$CRONTAB
+fi
+if [ $has_monitor = "true" ] ; then
+ TTAORG=$TTACMD".org"
+ [ ! -f $TTAORG ] && cp -p $TTACMD $TTAORG && set_monline
+ line=`fgrep monitor $CRONTAB`
+ [ -z "$line" ] && echo "59 * * * * $STTA_TOOLSDIR/monitor task 1>/dev/null 2>/dev/console ">>$CRONTAB
+fi
diff --git a/stta/devtools/new b/stta/devtools/new
new file mode 100755
index 0000000..931426e
--- /dev/null
+++ b/stta/devtools/new
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+[ "$STTA" ] && . $STTA/envprofile
+
+show_file $STTATOOLS/README
diff --git a/stta/devtools/openldap-old.sh b/stta/devtools/openldap-old.sh
new file mode 100755
index 0000000..afa83cf
--- /dev/null
+++ b/stta/devtools/openldap-old.sh
@@ -0,0 +1,69 @@
+#! /bin/sh
+# STTA Rev. 1.3 Copyright (c) 2001-2002 Jesús Pérez Lorenzo --- license GNU GPL
+# Rc for OpenLdap
+#
+
+USAGE="$0 [ star|stop ] [ ldapserver-Names ] ";
+HOSTNAME=`hostname`
+
+#debug_args="-d 256";
+
+N=""
+C=""
+if echo -n | grep n > /dev/null
+then
+ C="\c"
+else
+ N="-n"
+fi
+case `uname -a` in
+*inux*) N="$N -e" ;;
+esac
+
+if [ -n "$2" ]
+then
+ ServerNames=$2;
+else
+ ServerNames="ttaldap ttacache"
+fi
+ttaldap_args=" -h ldap://$HOSTNAME:389/ -f /etc/openldap/ttaldap.conf $debug_args "
+ttacache_args=" -h ldap://$HOSTNAME:802/ -f /etc/openldap/ttacache.conf $debug_args "
+SLAPD_BIN="/usr/local/libexec/slapd"
+
+case "$1" in
+ start)
+ echo -n "Starting-up Open LDAP servers:"
+ for nom in `echo $ServerNames`
+ do
+ eval LDAP_ARGS=\$$nom"_args"
+ SLAPD_CMD=$SLAPD_BIN" "$LDAP_ARGS
+ $SLAPD_CMD &
+ [ $? -eq 0 ] && echo $N "$nom $C"
+ done
+ ;;
+ stop)
+ echo -n "Shutting down ALL Open LDAP server: "
+ for nom in `echo $ServerNames`
+ do
+ eval ldap_args=\$$nom"_args"
+ LDAP_ARGS=`echo $ldap_args | cut -f1-2 -d"-" 2>/dev/null`
+ SLAPD_CMD=$SLAPD_BIN" "$LDAP_ARGS
+ pids=`ps -ef | grep "$SLAPD_CMD" | \
+ grep -v grep | awk '{ print $2 }' `
+ if [ -n "$pids" ] ; then
+ kill -TERM $pids
+ [ $? -eq 0 ] && echo $N "$nom $C"
+ fi
+ done
+ ;;
+ restart)
+ $0 stop
+ # sometimes slapd needs some time to stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "$USAGE"
+ exit 1
+esac
+echo " "
diff --git a/stta/devtools/pack b/stta/devtools/pack
new file mode 100755
index 0000000..c77c87c
--- /dev/null
+++ b/stta/devtools/pack
@@ -0,0 +1,74 @@
+#!/bin/sh
+
+[ ! "$STTA" ] && echo "STTA no set " && exit 2
+
+. $STTA/envprofile
+PORTAL=/home2/eagora/stta/~downloads/files/last_develop_vers
+
+$DEVTOOLS/cleanup
+
+cd $WEBMINDIR
+
+mkdir $WKDIR 2>$dn
+[ ! -d $WKDIR ] && exit 2
+chown root:bin $WKDIR
+chmod 755 $WKDIR
+
+tar cvf $WKDIR/$MODULE".tar" $MODULE >$dn
+[ $? != 0 ] && exit 1
+cd $WKDIR
+tar xvf $MODULE".tar" >$dn
+rm $MODULE".tar"
+cd $WKDIR/$MODULE
+
+[ "$f_toremove" ] && {
+ for file in `echo $f_toremove `
+ do
+ rm $file 2>$dn
+ done
+}
+
+[ "$d_toremove" ] && {
+ for dir in `echo $d_toremove `
+ do
+ rm -r $dir 2>$dn
+ done
+}
+
+mv envprofile.deploy envprofile
+cat .brandinfofile | grep -v "stta/$TOOLSDIR/" >.brandinfofile.stta
+cp -p .brandinfofile.stta .brandinfofile
+
+[ "$PACKMAKER" ] && sh $DEVTOOLS/$PACKMAKER $WKDIR
+
+cd $WKDIR
+
+DIRDEST=$DESTPACK/$ahora
+mkdir $DIRDEST 2>$dn
+chown root:bin $DIRDEST
+chmod 755 $DIRDEST
+
+DEST=$DIRDEST/$SAVEFILE
+
+tar cvf $DEST $MODULE >$dn
+gzip -f $DEST
+
+cd $origen
+rm -r $WKDIR
+echo "PACKED $MODULE in $DEST ..."
+
+[ -d "$PORTAL" ] && {
+ cp $DEST*gz $PORTAL
+ cd $PORTAL
+ eagor1sync $SAVEFILE.gz
+ cp $STTA/module.info $PORTAL/module.info.txt
+ eagor1sync module.info.txt
+ cp $STTA/.brandinfofile $PORTAL/brandinfofile
+ eagor1sync brandinfofile
+ cd ../../files
+ cp $STTA/.brandinfofile brandinfo.txt
+ eagor1sync brandinfo.txt
+ echo "$PORTAL updated !!! ..."
+ echo "Files in queue Waiting for FTP ..."
+}
+
diff --git a/stta/devtools/patch/p.pl b/stta/devtools/patch/p.pl
new file mode 100755
index 0000000..d30cb39
--- /dev/null
+++ b/stta/devtools/patch/p.pl
@@ -0,0 +1,7 @@
+
+
+print " HOLA !!!!!!!!!!!!!!!!!!!!";
+print " $task $DirInstall $ENV{'FOREIGN_ROOT_DIRECTORY'} $ostr $hostname ";
+print " $text{index_title} -- ".`pwd`." ";
+
+1;
diff --git a/stta/devtools/patch/patch.pl b/stta/devtools/patch/patch.pl
new file mode 100755
index 0000000..89883b4
--- /dev/null
+++ b/stta/devtools/patch/patch.pl
@@ -0,0 +1,11 @@
+print " HOLA !!!!!!!!!!!!!!!!!!!!";
+print " $task $DirInstall $ENV{'FOREIGN_ROOT_DIRECTORY'} $ostr $hostname ";
+print " $text{index_title} -- ".`pwd`." ";
+
+ @line=split(/\//, $ENV{'FOREIGN_ROOT_DIRECTORY'}, -1);
+ $nomf=$line[$#line];
+ print " -- $nomf ---";
+ $str="sh $DirInstall/tmp/$task.sh";
+ &run_cmd($str);
+
+1;
diff --git a/stta/devtools/patch/patch.sh b/stta/devtools/patch/patch.sh
new file mode 100755
index 0000000..8b98981
--- /dev/null
+++ b/stta/devtools/patch/patch.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+ echo "ESOTY en `pwd` "
+
+ set
+
+
diff --git a/stta/devtools/patch/tmp/p.pl b/stta/devtools/patch/tmp/p.pl
new file mode 100755
index 0000000..d30cb39
--- /dev/null
+++ b/stta/devtools/patch/tmp/p.pl
@@ -0,0 +1,7 @@
+
+
+print " HOLA !!!!!!!!!!!!!!!!!!!!";
+print " $task $DirInstall $ENV{'FOREIGN_ROOT_DIRECTORY'} $ostr $hostname ";
+print " $text{index_title} -- ".`pwd`." ";
+
+1;
diff --git a/stta/devtools/patch/tmp/patch.pl b/stta/devtools/patch/tmp/patch.pl
new file mode 100755
index 0000000..89883b4
--- /dev/null
+++ b/stta/devtools/patch/tmp/patch.pl
@@ -0,0 +1,11 @@
+print " HOLA !!!!!!!!!!!!!!!!!!!!";
+print " $task $DirInstall $ENV{'FOREIGN_ROOT_DIRECTORY'} $ostr $hostname ";
+print " $text{index_title} -- ".`pwd`." ";
+
+ @line=split(/\//, $ENV{'FOREIGN_ROOT_DIRECTORY'}, -1);
+ $nomf=$line[$#line];
+ print " -- $nomf ---";
+ $str="sh $DirInstall/tmp/$task.sh";
+ &run_cmd($str);
+
+1;
diff --git a/stta/devtools/patch/tmp/patch.sh b/stta/devtools/patch/tmp/patch.sh
new file mode 100755
index 0000000..8b98981
--- /dev/null
+++ b/stta/devtools/patch/tmp/patch.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+ echo "ESOTY en `pwd` "
+
+ set
+
+
diff --git a/stta/devtools/perls/cifra.pl b/stta/devtools/perls/cifra.pl
new file mode 100755
index 0000000..4bb7f30
--- /dev/null
+++ b/stta/devtools/perls/cifra.pl
@@ -0,0 +1,101 @@
+#!/usr/bin/perl
+
+# seed_random()
+# Seeds the random number generator, if needed
+sub seed_random
+{
+if (!$main::done_seed_random) {
+ if (open(RANDOM, "/dev/urandom")) {
+ local $buf;
+ read(RANDOM, $buf, 4);
+ close(RANDOM);
+ srand(time() ^ $$ ^ $buf);
+ }
+ else {
+ srand(time() ^ $$);
+ }
+ $main::done_seed_random = 1;
+ }
+}
+
+$LONGCLAVE=12;
+@CLAVE=("0","1","2","3","4","5","6","7","0","1","2","3","4","5","6","7","0","1","2","3","4");
+
+# cifrar( text, length(text), key, length(key),results)
+# return text_cifrar
+sub cifrar
+{
+ local $i,$pos;
+ local @buffer;
+ local @string_arr;
+
+ &seed_random();
+ for ( $pos = 0; $pos < $_[3]; $pos++ ) {
+ $i=int(rand($_[3]));
+ $string_arr[$pos]=${$_[2]}[$i];
+ }
+ if (($_[1] + 2) >= $_[3]) {
+ $pos = 1;
+ } else {
+ $pos = int(rand($_[3] - ($_[1] + 2)));
+ }
+ if ( $pos < 1 ) { $pos=1; }
+ $string_arr[$pos - 1] = '\\';
+ for ( $i=0 ; $i < ($_[1]+1) ; $i++ ) {
+ $string_arr[$pos+$i]=${$_[0]}[$i];
+ }
+ $string_arr[$pos + $_[1]+1] = '\\';
+
+ for ( $i = 0; $i < $_[3]; $i++) {
+ $buffer[$i]= $string_arr[$i] ^ ${$_[2]}[$i];
+ ${$_[4]}.=$buffer[$i];
+ }
+ return;
+
+}
+
+# descifrar( text, key, length(key),results)
+# return text_cifrar
+sub descifrar
+{
+
+ local $i,$tobuff;
+ local @buffer;
+
+ for ( $i = 0; $i < $_[2]; $i++) {
+ $buffer[$i] = ${$_[0]}[$i] ^ ${$_[1]}[$i];
+ }
+
+ $tobuff="0";
+ for ( $i = 0; $i < $_[2]; $i++) {
+ if ($buffer[$i] eq '\\' ) {
+ if ( $tobuff eq "1" ) {
+ $tobuff="0";
+ } elsif ( $tobuff eq "0" ) {
+ $tobuff="1";
+ next;
+ }
+ }
+ if ( $tobuff eq "1" ) { ${$_[3]}.=$buffer[$i]; }
+ }
+
+ return;
+}
+ @texto =();
+
+ $lon=length($ARGV[0]);
+ for ( $i = 0; $i < $lon;$i++) {
+ $texto[$i]=substr($ARGV[0],$i,1);
+ }
+ &cifrar(\@texto, $#texto, \@CLAVE, $LONGCLAVE,\$string_cif);
+
+ @texto =();
+ $lon=length($string_cif);
+ for ( $i = 0; $i < $lon;$i++) {
+ $texto[$i]=substr($string_cif,$i,1);
+ }
+ $string_descif="";
+ &descifrar(\@texto, \@CLAVE, $lon,\$string_descif);
+
+ print "$ARGV[0] --- \"$string_cif\" -$lon- $string_descif\n";
+
diff --git a/stta/devtools/save b/stta/devtools/save
new file mode 100755
index 0000000..0696e93
--- /dev/null
+++ b/stta/devtools/save
@@ -0,0 +1,14 @@
+#!/bin/sh
+#!/bin/sh
+
+[ ! "$STTA" ] && echo "STTA no set " && exit 2
+. $STTA/envprofile
+
+cd $WEBMINDIR
+
+. $DEVTOOLS/savecfgs
+tar cvf $SAVEDIR/$SAVEFILE $MODULE >$dn
+echo "comprimiendo ..."
+gzip -f $SAVEDIR/$SAVEFILE
+cp $SAVEDIR/$SAVEFILE".gz" $SAVEDIR2
+echo "copy in $SAVEDIR/$SAVEFILE.gz ... & $SAVEDIR2"
diff --git a/stta/devtools/savecfgs b/stta/devtools/savecfgs
new file mode 100755
index 0000000..a1e85d7
--- /dev/null
+++ b/stta/devtools/savecfgs
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+[ "$STTA" ] && . $STTA/envprofile && show_help $STTATOOLS/help
+
+echo "$msg_mkfiles"
+origen=`pwd`
+for file in ` echo $to_copyhere `
+do
+ name=`basename $file`
+ if [ -d $file ] ; then
+ cd $file
+ tar cvf $WEBMINDIR/$MODULE/$name/$name.tar *
+ gzip -f $WEBMINDIR/$MODULE/$name/$name.tar
+ cd $origen
+ else
+ cp $file $file".old"
+ cp $WEBMINDIR/$MODULE/$name $WEBMINDIR/$MODULE/$name".old"
+ cp $file $WEBMINDIR/$MODULE/$name
+ fi
+done
+echo "$to_copyhere ..."
diff --git a/stta/devtools/settools b/stta/devtools/settools
new file mode 100755
index 0000000..9f6d980
--- /dev/null
+++ b/stta/devtools/settools
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+[ ! "$STTA" ] && echo "STTA no set " && exit 2
+. $STTA/envprofile
+
+DEST=$SETUPDIR"/tools"
+cd $WEBMINDIR/$MODULE
+
+echo "$msg_mkfiles"
+for file in ` echo $LIST_STTACMDS $LIST_TTACMDS $LIST_TCLS `
+do
+# nom=`echo $file| sed 's/.sh//g' 2>$dn`
+ cp -p $file".sh" $DEST/$file
+ chown root:bin $DEST/$file
+ chmod 555 $DEST/$file
+done
+for file in ` echo $LIST_LIBS `
+do
+ cp -p $file $DEST/lib/$file
+ chown root:bin $DEST/lib/$file
+ chmod 555 $DEST/lib/$file
+done
+
+if [ $1 != "pack" ] ; then
+ sh $MKTOOLS
+ cp $DEVTOOLS/sttadev /sbin/stta
+ chown root:bin /sbin/stta
+ chmod 555 /sbin/stta
+fi
+cd $origen
+
diff --git a/stta/devtools/shells/chg2003.sh b/stta/devtools/shells/chg2003.sh
new file mode 100755
index 0000000..e3dca19
--- /dev/null
+++ b/stta/devtools/shells/chg2003.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+ for file in ` ls `
+do
+
+ [ -d "$file" ] && continue
+ cat $file | sed "s/2001-2003/2001-2004/g" >$file.new
+# cat $file | sed "s/ STTA Rev. 1.2 Copyright (c) / STTA Rev. 1.3 Copyright (c) 2001-2002 /g" >$file.new
+ mv $file.new $file
+ echo "$file done !!"
+done
diff --git a/stta/devtools/shells/do.sh b/stta/devtools/shells/do.sh
new file mode 100755
index 0000000..9979a39
--- /dev/null
+++ b/stta/devtools/shells/do.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+ for file in ` ls *.sh`
+do
+
+# cat $file | sed "s/headerheaderstta/headerstta/g" >$file.new
+ cat $file | sed "s/ STTA Rev. 1.2 Copyright (c) / STTA Rev. 1.3 Copyright (c) 2001-2002 /g" >$file.new
+ mv $file.new $file
+ echo "$file done !!"
+done
diff --git a/stta/devtools/shells/doconfighelp.sh b/stta/devtools/shells/doconfighelp.sh
new file mode 100755
index 0000000..2366be8
--- /dev/null
+++ b/stta/devtools/shells/doconfighelp.sh
@@ -0,0 +1,9 @@
+
+for file in `ls conf*es*html*`
+do
+ name=`echo $file| sed 's/config_//g' | sed 's/.es.html//g'`
+ cat h | sed "s/MAIN/$name/g" > $file
+ /usr/local/webmin-1.050/stta/devtools/mkhtmldatconfs $name >>$file
+ cat f | sed "s/config_$name//g" >>$file
+done
+
diff --git a/stta/devtools/shells/mkh.sh b/stta/devtools/shells/mkh.sh
new file mode 100755
index 0000000..82597c4
--- /dev/null
+++ b/stta/devtools/shells/mkh.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+m1=tmpf/m1
+m2=tmpf/m2
+m3=tmpf/m3
+m4=tmpf/m4
+[ "$1" ] && {
+ cat $m1 | sed "s/ou/$1/g" | sed "s/organization/$1/g" | sed "s/username/$1name/g" >h/h1_$1
+ cat $m2 | sed "s/ou/$1/g" | sed "s/organization/$1/g" | sed "s/username/$1name/g" >h/h2_$1
+ cat $m3 | sed "s/ou/$1/g" | sed "s/organization/$1/g" | sed "s/username/$1name/g">h/h3_$1
+ cat $m4 | sed "s/ou/$1/g" | sed "s/organization/$1/g" | sed "s/username/$1name/g" >h/h4_$1
+}
diff --git a/stta/devtools/shells/obj.sh b/stta/devtools/shells/obj.sh
new file mode 100755
index 0000000..6e15f92
--- /dev/null
+++ b/stta/devtools/shells/obj.sh
@@ -0,0 +1,13 @@
+#!/bin
+
+l_objs="ou usr grphosts hosts hostsuser profcache grpapps apps domains obj act file"
+l_tta_objs="ou usr grphosts hosts hostsuser profcache"
+l_cache_objs="grpapps apps domains obj"
+l_mon_objs="ou usr grphosts hosts hostsuser profcache grpapps apps domains obj act file"
+
+l_shs="ensdump ensrestore ldapreplicate mktools monitor scanttacache setupstta stta tta ttabackup ttasess"
+
+l_libs="tarantella-lib base-lib global-lib html-lib ldap-lib ldapbase-lib lists-lib print-lib monitor-lib ttacache-lib ttasess-lib"
+
+l_pls="acl_security monitor ttasess footer"
+
diff --git a/stta/devtools/shells/v.sh b/stta/devtools/shells/v.sh
new file mode 100755
index 0000000..05f492d
--- /dev/null
+++ b/stta/devtools/shells/v.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+for file in ` ls *.cgi`
+do
+ nom=` echo $file | sed 's/tta_/_/g' | sed 's/cache_/_/g' | sed 's/_sel/_add/g' `
+ nom=` echo $nom | sed 's/_mod/_/g' | sed 's/_//g' | sed 's/.cgi//g' `
+ val=`egrep -e "^"$nom /etc/webmin/tarantella/admin.acl 2>/dev/null`
+ echo "$file $nom: ------ $val"
+done
diff --git a/stta/devtools/shells/vv.sh b/stta/devtools/shells/vv.sh
new file mode 100755
index 0000000..95b905f
--- /dev/null
+++ b/stta/devtools/shells/vv.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+
+
+for file in ` ls *.cgi`
+do
+ nom=`echo $file | egrep -v act`
+ if [ $nom ] ; then
+ nom=` echo $file | sed 's/tta_/_/g' | sed 's/cache_/_/g' | sed 's/_sel/_add/g' `
+ nom=` echo $nom | sed 's/_//g' | sed 's/mod/add/g' | sed 's/.cgi//g' `
+ val=`egrep -e "^"$nom /etc/webmin/tarantella/admin.acl 2>/dev/null`
+ echo "$file $nom: ------ $val" >>lista2
+ fi
+done
+
+ cat lista2 | egrep -v "=" | egrep -v "file" | egrep -v "log" | egrep -v "ldap" | egrep -v "fix" | egrep -v "update" | egrep -v "sess"
+exit
diff --git a/stta/devtools/stta-architec.tar.gz b/stta/devtools/stta-architec.tar.gz
new file mode 100755
index 0000000..dbbe801
Binary files /dev/null and b/stta/devtools/stta-architec.tar.gz differ
diff --git a/stta/devtools/sttadev b/stta/devtools/sttadev
new file mode 100755
index 0000000..de39263
--- /dev/null
+++ b/stta/devtools/sttadev
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+[ ! "$STTA" ] && echo "STTA no set " && exit 2
+. $STTA/envprofile
+
+show_help $DEVTOOLS/help
+
+if [ $1 ] ; then
+ opc=""
+ case $1 in
+ -x|x) opc="-x" ; shift ;;
+ esac
+ cmd=$1
+ shift
+else
+ cd $DEVTOOLS 2>$dn
+ echo "sttadev [ cmd args] [ -c|-b backup | -s save | -r remove/cleanup ]"
+ echo "tools list ($DEVTOOLS): "
+ lista=`ls 2>$dn`
+ for file in ` echo $lista `
+ do
+ [ ! -d $file ] && [ -x $file ] && echo "$file"
+ done
+ exit 1
+fi
+case $cmd in
+ -c|-C|-b|-B) cmd=$CP_command ;;
+ -s|-S) cmd=$SAVE_command ;;
+ -r|-R) cmd=$CLEANUP_command ;;
+esac
+if [ -x $DEVTOOLS/$cmd ]
+then
+ [ "$opc" ] && sh $opc $DEVTOOLS/$cmd $@ && exit
+ exec $DEVTOOLS/$cmd $@
+else
+ echo "No puedo ejecutar $cmd $@"
+fi
diff --git a/stta/devtools/t/concatfiles.sh b/stta/devtools/t/concatfiles.sh
new file mode 100755
index 0000000..1058917
--- /dev/null
+++ b/stta/devtools/t/concatfiles.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+# STTA Rev. 1.3 Copyright (c) 2001-2003 Jesús Pérez Lorenzo --- license GNU GPL
+
+case "$1" in
+ es|ES|spa) errorDir="Error Directorio "
+ fixingFile="Ajustando fichero "
+ USAGE="$0 [LANG] [Path origen] [ Path para concatenar] [Defs Dir]"
+ ;;
+ en|EN|eng|*)
+ errorDir="Directory Error"
+ fixingFile="Fixing File "
+ USAGE="$0 [LANG] [Path origin] [Path to concatenate] [Defs Dir]"
+ ;;
+esac
+
+case "$#" in
+ 0|1|2|3) echo "$USAGE"
+ exit 1
+ ;;
+esac
+
+if [ ! -d $2 ]
+then
+ echo "$errorDir $2 "
+ exit 1
+fi
+if [ ! -d $3 ]
+then
+ echo "$errorDir $3 "
+ exit 1
+fi
+if [ ! -d $4 ]
+then
+ echo "$errorDir $4 "
+ exit 1
+fi
+
+cd $2
+for nomfile in `ls`
+do
+ cat $nomfile | sed "s,DIRDEFS,$4,g" >>$3/$nomfile
+ echo "$fixingFile $nomfile "
+done
diff --git a/stta/devtools/t/dataconf/list b/stta/devtools/t/dataconf/list
new file mode 100755
index 0000000..6afdd5b
--- /dev/null
+++ b/stta/devtools/t/dataconf/list
@@ -0,0 +1 @@
+sysusers_list=DIRDEFS/sysusers_list
diff --git a/stta/devtools/t/dataconf/main b/stta/devtools/t/dataconf/main
new file mode 100755
index 0000000..d1c90d0
--- /dev/null
+++ b/stta/devtools/t/dataconf/main
@@ -0,0 +1,3 @@
+has_ldapusers=true
+has_systemusers=true
+iferror_objects=stop
diff --git a/stta/devtools/t/dataconf/stta b/stta/devtools/t/dataconf/stta
new file mode 100755
index 0000000..c4c7b57
--- /dev/null
+++ b/stta/devtools/t/dataconf/stta
@@ -0,0 +1 @@
+list_to_sync=ou grphosts hosts hostsuser grpapps apps domains links acts profcache sysusers
diff --git a/stta/devtools/t/dataconf/tta b/stta/devtools/t/dataconf/tta
new file mode 100755
index 0000000..4ae5304
--- /dev/null
+++ b/stta/devtools/t/dataconf/tta
@@ -0,0 +1,3 @@
+tta_appwidth=640
+tta_appheigth=480
+tta_defaults_grpapps=DIRDEFS/grpapps-defaults
diff --git a/stta/devtools/t/info/dopatch.html b/stta/devtools/t/info/dopatch.html
new file mode 100755
index 0000000..37c2ab4
--- /dev/null
+++ b/stta/devtools/t/info/dopatch.html
@@ -0,0 +1,22 @@
+
+
+flower.gif
+
+
+
+
+
+
+
+
+
+
+
+::
+::inst_howto
+
+
+
+
diff --git a/stta/devtools/t/info/es/body/dopatch.html b/stta/devtools/t/info/es/body/dopatch.html
new file mode 100755
index 0000000..82e1b68
--- /dev/null
+++ b/stta/devtools/t/info/es/body/dopatch.html
@@ -0,0 +1,60 @@
+
+
+ Se desempaqueta y extrae el código nuevo de STTA
+ Orden "tar" sobre el directorio de Webmin
+
+
+
Se asignan valores a las variables nuevas de configuración
+ Se añaden los valores a los existentes sin alterar los mismos
+ El valor del directorio de los ficheros de sincronización
+ Se extrae de actual de la "lista de aplicaciones".
+ Se alteran en /etc/webmin/stta/dataconf :main list tta stta
+
+
+
La nueva funcionalidad para "gestionar usuarios del Sistema"
+ Queda activada por defecto ( valor has_systemusers=true )
+ ( permite crear usuarios en TTA y en las tablas del sistema de los servidores )
+ Los usuarios del sistema son gestionados por Webmin y STTA
+ mediante la lista de "host a sincronizar" o "host del array del servicio"
+ y almacenados por defecto en el fichero "/opt/tarantella/defs/sysusers_list"
+ También se mantiene activo la gestiión usuarios LDAP ( has_ldapusers=true )
+ Esta se desactiva en el caso de que el servidor LDAP no esté operativo
+ La opción permite Sincronizar y replicar el usuario y sys modificaciones
+ en los servidores bajo Webmin registrados en STTA.
+ La opcion disponible al seleccionar usuarios
+ permite excluir a los usuarios LDAP de la selección
+ del mismo modo que al marcar en la selección muestra los usuarios del sistema resgistrados en STTA y TTA
+
+
+
Con la instalación de este código nuevo de STTA
+ Es posible crear aplicaciones en TTA y LDAP-CACHE registrando sus definiciones en STTA
+ STTA usa una única interface que carga los valores que el Objeto TTA necesita
+ Se han creado los valores tta_appwidth=640 -$infoCfg{tta_appwidth}- y tta_appheigth=480 -$infoCfg{tta_appheigth}-
+ Gracias a ello se pueden crear las aplicaciones de modo muy simple con un único interfaz.
+ Los valores que se mantengan "por defecto" no son enviados a Tarantella
+ Las aplicaciones se pueden borrar, modificar y crear. (TTA y LDAP-CACHE)
+ En la interface los nombres de los valores y las opciones de los objetos TTA
+ aparecen en "castellano" o "inglés" según se configure Webmin.
+
+
+
Se incluye un selector de "hosts" que permite selecciones múltiples.
+ Este "selector" permite asignar varios "hosts" como servidores de una aplicación
+ También se ha adaptado el CGI de "control de estado de los hosts" para que use el nuevo "selector" de hosts y se ejecute un "scan" de los hosts elegidos
+
+
+
El nuevo valor de configuración iferror_objects $infoCfg{iferror_objects}-configura la respuesta de STTA si hay error en la Gestion de Objetos puede:
+ Parar (stop) el proceso de sincronización y mostrar el error
+ Avisar con un enlace mostrando el error y continuar el proceso (warn)
+ Si se quiere conservar la integridad de los servicios debe usarse Parar (stop)
+ Para tareas de ajuste puede alterarse, or defecto es Parar
+ Se ha alterado la conexión de STTA con todos los servicios
+ de modo que la gestión de cada servicio pueda ser usada independiente
+ si ferror_objects no es (stop).
+
+
+
La creación de objetos permite marcar la opción
+ que evita la llamada y creacción del objeto en Tarantella
+ La idea es trabajar con objetos ya existentes en Tarantella para darlos de alta en STTA y LDAP-CACHE.
+
+
+
diff --git a/stta/devtools/t/info/es/body/fixstampdata.html b/stta/devtools/t/info/es/body/fixstampdata.html
new file mode 100755
index 0000000..8be807c
--- /dev/null
+++ b/stta/devtools/t/info/es/body/fixstampdata.html
@@ -0,0 +1,6 @@
+
+
+ El código que se instala con este parche tiene marcas nuevas
+
+
+
diff --git a/stta/devtools/t/info/es/head/dopatch.html b/stta/devtools/t/info/es/head/dopatch.html
new file mode 100755
index 0000000..2d4976d
--- /dev/null
+++ b/stta/devtools/t/info/es/head/dopatch.html
@@ -0,0 +1,2 @@
+ Parcheo de 1.3pre Nro.1#1.3pre1043988902-) 31-01-2003
+
diff --git a/stta/devtools/t/info/es/head/fixstampdata.html b/stta/devtools/t/info/es/head/fixstampdata.html
new file mode 100755
index 0000000..a771ca2
--- /dev/null
+++ b/stta/devtools/t/info/es/head/fixstampdata.html
@@ -0,0 +1,2 @@
+ Fijado de Marcas de Ficheros de Código
+
diff --git a/stta/devtools/t/info/es/msg/dopatch.html b/stta/devtools/t/info/es/msg/dopatch.html
new file mode 100755
index 0000000..e5e6c17
--- /dev/null
+++ b/stta/devtools/t/info/es/msg/dopatch.html
@@ -0,0 +1,6 @@
+ - Se sustituye todo el código (hay 1.197 líneas nuevas)
+ con correcciones, estructuras y nuevas funcionalidades
+ - Se alteran los valores de configuración
+ - Sin cambios en las estructuras de sincronización con TTA y los LDAP
+ - Se han modificado en distinta medida 64 CGIs y bibliotecas,
+ y se han creado 2 nuevos.
diff --git a/stta/devtools/t/info/es/msg/fixstampdata.html b/stta/devtools/t/info/es/msg/fixstampdata.html
new file mode 100755
index 0000000..ed31019
--- /dev/null
+++ b/stta/devtools/t/info/es/msg/fixstampdata.html
@@ -0,0 +1,2 @@
+ Dado que se instala un nuevo código completo
+ No es necesario fijar las marcas del mismo
diff --git a/stta/devtools/t/info/fixstampdata.html b/stta/devtools/t/info/fixstampdata.html
new file mode 100755
index 0000000..e620099
--- /dev/null
+++ b/stta/devtools/t/info/fixstampdata.html
@@ -0,0 +1,22 @@
+
+
+flower.gif
+
+
+
+
+
+
+
+
+
+
+
+::
+::inst_howto
+
+
+
+
diff --git a/stta/devtools/t/patch.pl b/stta/devtools/t/patch.pl
new file mode 100755
index 0000000..430705e
--- /dev/null
+++ b/stta/devtools/t/patch.pl
@@ -0,0 +1,61 @@
+#!/usr/bin/perl
+# patch.pl
+# STTA Rev. 1.3 Copyright (c) 2001-2003 Jesús Pérez Lorenzo --- license GNU GPL
+
+$patch_date="2003_1_31_055502";
+$patch_num="1#1.3pre1043988902-";
+
+%infoCfg=();
+# Use config.info to create config inputs
+&read_file("$root_directory/$module/config.info", \%infoCfg);
+foreach $o (@lang_order_list) {
+ &read_file("$root_directory/$module/config.info.$o", \%infoCfg);
+}
+
+sub do_patch
+{
+ %minfo=&load_minfo("$root_directory/stta/");
+ print "$minfo{name} $minfo{version} ( $minfo{brand} $minfo{stamp} ) \n";
+ if ( $minfo{version} ne "1.3pre" ) {
+ print "ERROR: $text{error_version} ";
+ return false;
+ }
+ if ( $minfo{stamp} ne "2003_1_15_121724" || $minfo{brand} ne "1.3pre1042620827-" ) {
+ print "ERROR: $text{error_stamp} ";
+ return false;
+ }
+ &extract_code(); # To extract stta pack
+ &concat_dataconf(); # To fix dataconf by concat.sh
+
+}
+
+sub extract_code
+{
+ print "Extracting ..... ";
+ local $str="cd $DirInstall/tmp; gunzip -f *.gz";
+ &run_cmd($str);
+
+ $str="cd $root_directory;";
+ $str .= "tar xvf $DirInstall/tmp/stta-1.3.wbm >/dev/null";
+ &run_cmd($str);
+
+ print "Setting Permissions ..... ";
+ $str="cd $root_directory/stta; chmod -R 555 *.cgi *.sh *.pl ";
+ &run_cmd($str);
+ print "¡¡ Done !!! ";
+}
+
+sub step_fixstampdata
+{
+ print "No Branding and Stamp need ";
+}
+
+sub concat_dataconf
+{
+ local $line=$config{apps_list};
+ local @dataline=split(/\//,$line, -1);
+ $line=~ s/\/$dataline[$#dataline]//g;
+ $str="sh $DirInstall/tmp/concatfiles.sh $current_lang $DirInstall/tmp/dataconf $config_directory/stta/dataconf $line";
+ &run_cmd($str);
+}
+1;
diff --git a/stta/devtools/tcls/ttaDumpDs.tcl b/stta/devtools/tcls/ttaDumpDs.tcl
new file mode 100755
index 0000000..9df1bbe
--- /dev/null
+++ b/stta/devtools/tcls/ttaDumpDs.tcl
@@ -0,0 +1,113 @@
+#!/opt/tarantella/bin/bin/ttatcl
+# STTA Rev. 1.3 Copyright (c) 2001-2003 Jesús Pérez Lorenzo --- license GNU GPL
+
+set ouBase [lindex $argv 0]
+
+if { ![info exists env(TTA_OBJSCRIPT_CMD)] } {
+ echo "TTA_OBJSCRIPT_CMD not set in environment !!!"
+ exit 2
+}
+set ttaCmd $env(TTA_OBJSCRIPT_CMD)
+if { [info exists env(STTA_WKDIR)] } {
+ set wkDir $env(STTA_WKDIR)
+} else {
+ set wkDir "/tmp"
+}
+set scrOuFile $wkDir
+set scrAttFile $wkDir
+set scrFile $wkDir
+set scrOutFile $wkDir
+append scrOuFile "/tta.scriptou"
+append scrAttFile "/tta.scriptAtt"
+append scrFile "/tta.script"
+append scrOutFile "/tta.script.out"
+echo " $ttaCmd ..."
+echo " $scrOuFile ..."
+echo " $scrFile ..."
+echo " $scrOutFile ..."
+exit
+
+set ouList {}
+set cnList {}
+
+
+proc getDS {ou} {
+ global ouList cnList ttaCmd scrFile scrOutFile scrOuFile fptta scrAttFile
+
+ # Condition to stop recursive prozessing during developing
+ #if {[llength $ouList] > 20 } { return }
+
+ echo "get ouList=[llength $ouList] cnList=[llength $cnList]"
+ echo "Scanning $ou ... "
+
+ system "echo 'list_contents --name \"$ou\"\n' >$scrOuFile"
+
+ set ouSub {}
+ set ou {}
+ catch { eval "exec cat $scrOuFile | $ttaCmd" } ttaResult
+ foreach el [split $ttaResult \n] {
+ # Contents of .../_ens/o=organization:
+ if [regexp {Contents of .*_ens/(.*):} $el all ou] { }
+ if [regexp {^ou=} $el] {
+ lappend ouList "$ou/$el"
+ lappend ouSub "$ou/$el"
+ puts $fptta "list_attributes --name \"$ou/$el\""
+ getDS "$ou/$el"
+ }
+ if [regexp {^cn=} $el] {
+ set newScript "list_attributes --name \"$ou/$el\"\n"
+ set object ""
+ system "echo 'list_attributes --name \"$ou/$el\"\n' >$scrAttFile"
+ system "cat $scrAttFile | $ttaCmd >$scrOutFile"
+ for_file line $scrOutFile {
+ regsub -all {""} $line {"} line
+ if [regexp -nocase {objectclass: (.*)} $line all class ] {
+ # if split is need for some reason ...
+ # set class0 [lindex [split $class ,] 0]
+ # set class1 [lindex [split $class ,] 1]
+ # set class2 [lindex [split $class ,] 2]
+ # set class3 [lindex [split $class ,] 3]
+ # echo "$class ( $class0 - $class1 - $class2 -- $class3 )"
+ switch $class {
+ organizationalunit,top { set object new_orgunit }
+ container,top { set object new_container }
+ inetorgperson,scottaauxperson,organizationalperson,person,top { set object new_person}
+ scottahtmldocument,top { set object new_doc}
+ scottaxapplication,scottaapplication,top { set object new_xapp}
+ scottagroupofnames,top { set object new_group}
+ scottacharacterapplication,scottaapplication,top { set object new_charapp}
+ scottawindowsapplication,scottaapplication,top { set object new_windowsapp }
+ scottawindowsapplication,scottaxapplication,scottaapplication,top { set object new_windowsapp }
+ device,scottaauxhost,top { set object new_host }
+ default { set object undef ; echo UNDEF \"$class\" in $line; exit}
+ }
+ }
+ }
+ puts $fptta "list_attributes --name \"$ou/$el\""
+ if [cequal $object new_container] {
+ lappend ouSub "$ou/$el"
+ getDS "$ou/$el"
+ } else {
+ echo $el
+ lappend cnList "$ou/$el"
+ }
+ }
+ }
+# if [llength $ouSub] {getDS $ouSub}
+}
+
+system "> $scrFile"
+set fptta [open $scrFile w]
+
+getDS $ouBase
+
+close $fptta
+echo --oOo--
+echo "get ouList=[llength $ouList] cnList=[llength $cnList]"
+
+set ttaDataStore [lindex $argv 1]
+system "cat $scrFile | $ttaCmd > $ttaDataStore "
+# let us put endfile newline
+system "echo >> $ttaDataStore "
+system "rm -f $scrFile $scrOuFile $scrOutFile $scrAttFile"
+
diff --git a/stta/devtools/tcls/ttaRestoreDS.tcl b/stta/devtools/tcls/ttaRestoreDS.tcl
new file mode 100755
index 0000000..8405aca
--- /dev/null
+++ b/stta/devtools/tcls/ttaRestoreDS.tcl
@@ -0,0 +1,131 @@
+#!/opt/tarantella/bin/bin/ttatcl
+# STTA Rev. 1.3 Copyright (c) 2001-2003 Jesús Pérez Lorenzo --- license GNU GPL
+
+set file $argv
+
+set attribute ""
+set tfn ""
+set object ""
+
+set ouFile tta.orgUnits
+set cnFile tta.containers
+set personFile tta.persons
+set serverFile tta.server
+set applFile tta.applications
+set groupFile tta.group
+set linkFile tta.link
+
+
+# We are opening all neccessery files
+
+set ouFileFp [open $ouFile w]
+set cnFileFp [open $cnFile w]
+set personFileFp [open $personFile w]
+set serverFileFp [open $serverFile w]
+set appFileFp [open $applFile w]
+set groupFileFp [open $groupFile w]
+set linkFileFp [open $linkFile w]
+
+for_file line $file {
+
+ regsub -all {""} $line {"} line
+
+ if [regexp {Attributes for .*/_ens/(.*):} $line all newtfn ] {
+
+ if [clength $tfn] {
+ set fp $appFileFp
+ if [cequal $object new_group] { set fp $groupFileFp }
+ if [cequal $object new_host] { set fp $serverFileFp }
+ if [cequal $object new_orgunit] { set fp $ouFileFp }
+ if [cequal $object new_person] { set fp $personFileFp }
+
+ if [cequal $object new_container] {
+ set fp $cnFileFp
+ puts $fp "$object --name \"$tfn\" "
+ } else {
+ puts $fp "$object --name \"$tfn\" $attribute"
+ }
+ }
+ set tfn $newtfn
+ set attribute ""
+ continue
+
+ }
+
+
+ if [regexp {scottaWebtopContents: (.*)} $line all linkList ] {
+ # add_links
+ regsub -all {,} $linkList { } linkList
+ puts $linkFileFp "add_link --name \"$tfn\" --link $linkList"
+ continue
+ }
+ if [regexp {links: (.*)} $line all linkList ] {
+ # add_links
+ regsub -all {,} $linkList { } linkList
+ puts $linkFileFp "add_link --name \"$tfn\" --link $linkList"
+ continue
+ }
+ if [regexp -nocase {objectclass: (.*)} $line all class ] {
+ # if split is need for some reason ...
+ # set class0 [lindex [split $class ,] 0]
+ # set class1 [lindex [split $class ,] 1]
+ # set class2 [lindex [split $class ,] 2]
+ # set class3 [lindex [split $class ,] 3]
+ # echo "$class ( $class0 - $class1 - $class2 -- $class3 )"dd
+ switch $class {
+ organizationalunit,scottaauxorganizationalunit,top { set object new_orgunit }
+ container,top { set object new_container }
+ inetorgperson,scottaauxperson,organizationalperson,person,top { set object new_person}
+ scottahtmldocument,top { set object new_doc}
+ scottaxapplication,scottaapplication,top { set object new_xapp}
+ scottagroupofnames,top { set object new_group}
+ scottacharacterapplication,scottaapplication,top { set object new_charapp}
+ scottawindowsapplication,scottaapplication,top { set object new_windowsapp }
+ scottawindowsapplication,scottaxapplication,scottaapplication,top { set object new_windowsapp }
+ device,scottaauxhost,top { set object new_host }
+ default { set object undef ; echo UNDEF \"$class\" in $line; exit}
+ }
+
+
+ continue
+ }
+ if [regexp {(.*): (.*)} $line all attr value ] {
+ # Ignore
+ if [regexp {^windowclose$} $attr ] { continue }
+ if [regexp {^share$} $attr ] { continue }
+ if [regexp {^passtype$} $attr ] { continue }
+ if [regexp {^Organizational Unit$} $attr ] { continue }
+
+ # Modify
+
+ if [regexp {^member$} $attr ] { regsub -all {,} $value { } value }
+ if [regexp {^appserv$} $attr ] { regsub -all {,} $value { } value }
+ if [regexp {^Name$} $attr ] { set attr description }
+ if [regexp {^scottaInheritWebtop$} $attr ] { set attr inherit }
+
+ append attribute "--$attr $value "
+ }
+
+
+}
+if [clength $tfn] {
+ set fp $appFileFp
+ if [cequal $object new_group] { set fp $groupFileFp }
+ if [cequal $object new_host] { set fp $serverFileFp }
+ if [cequal $object new_orgunit] { set fp $ouFileFp }
+ if [cequal $object new_person] { set fp $personFileFp }
+
+ if [cequal $object new_container] {
+ set fp $cnFileFp
+ puts $fp "$object --name \"$tfn\" "
+ } else {
+ puts $fp "$object --name \"$tfn\" $attribute"
+ }
+}
+close $ouFileFp
+close $cnFileFp
+close $personFileFp
+close $serverFileFp
+close $appFileFp
+close $groupFileFp
+close $linkFileFp
diff --git a/stta/devtools/tmp/p.pl b/stta/devtools/tmp/p.pl
new file mode 100755
index 0000000..d30cb39
--- /dev/null
+++ b/stta/devtools/tmp/p.pl
@@ -0,0 +1,7 @@
+
+
+print " HOLA !!!!!!!!!!!!!!!!!!!!";
+print " $task $DirInstall $ENV{'FOREIGN_ROOT_DIRECTORY'} $ostr $hostname ";
+print " $text{index_title} -- ".`pwd`." ";
+
+1;
diff --git a/stta/devtools/tmp/patch.pl b/stta/devtools/tmp/patch.pl
new file mode 100755
index 0000000..283fcc3
--- /dev/null
+++ b/stta/devtools/tmp/patch.pl
@@ -0,0 +1,16 @@
+$itaca="ITACA"
+
+sub do_patch
+{
+print " HOLA $itaca !!!!!!!!!!!!!!!!!!!!";
+print " $task $DirInstall $ENV{'FOREIGN_ROOT_DIRECTORY'} $ostr $hostname ";
+print " $text{index_title} -- ".`pwd`." ";
+
+ @line=split(/\//, $ENV{'FOREIGN_ROOT_DIRECTORY'}, -1);
+ $nomf=$line[$#line];
+ print " -- $nomf ---";
+ $str="sh $DirInstall/tmp/$task.sh";
+ &run_cmd($str);
+}
+
+1;
diff --git a/stta/devtools/tmp/patch.sh b/stta/devtools/tmp/patch.sh
new file mode 100755
index 0000000..8b98981
--- /dev/null
+++ b/stta/devtools/tmp/patch.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+ echo "ESOTY en `pwd` "
+
+ set
+
+
diff --git a/stta/devtools/tta-debug-tips_1_3.html b/stta/devtools/tta-debug-tips_1_3.html
new file mode 100755
index 0000000..1617364
--- /dev/null
+++ b/stta/devtools/tta-debug-tips_1_3.html
@@ -0,0 +1,196 @@
+
+
+Tarantella Debug Tips (TTAPT/01/DebugTips.html 1.3)
+
+
+
+
+
+
+
+
+
+
+ Tarantella Development
+Tarantella Debug Tips
+
+
+
+
+
+ Document control:
+ TTAPT/01/DebugTips.html 1.3
+
+
+ Author:
+ steveme
+
+
+ Last modified:
+ 2003/03/20 10:57:37
+
+
+ Review team:
+
+
+
+ Circulation list:
+ tta_test
+
+
+ Amendments:
+ See CVS
+ log
+
+
+Contents
+
+ Jserver Log Filters
+ C++ Log Filters
+ Java Client Debug
+ 3rd Tier Debug
+ Server Debug
+ Monitor Tools
+
+
+ 1. Jserver log filters
+Second tier debug information of the server components is available through
+Jserver log filters, which are configured through the 'Array Properties' in the
+'Array Manager' and follow this
+format: component/subcomponent/detail:name%%PID%%.log Specifying
+.jsl instead of .log generates output for automated
+parsing and searching, which is required by the 'tarantella query'
+command, but is not very human friendly. The available detail levels
+are: info moreinfo error fatalerror Wildcards
+are supported, e.g. *info The available components are:admin/auth admin/gui admin/jndi admin/misc admin/status admin/webtopsession audit/license audit/session common/config metrics/glue server/billing server/common server/config server/deviceservice server/diskds server/glue server/install server/launch server/loadbalancing server/logging server/login server/mupp server/netlet server/printing server/replication server/securid server/security server/server server/services server/session server/tfn server/tier3loadbalancing server/webtop session/metrics Again,
+wildcards are supported, e.g. audit/* The log filters create
+large amounts of data - try to select a more specific filter if possible and
+remember to remove the log filters after use.
+
Examples
+Login
+debugging: server/login/*info:login%%PID%%.log Server
+side print
+debugging:server/printing/*info:print%%PID%%.log To
+produce a JVM thread dump on JVM
+exit:*/*/*error:com.sco.tta.server.log.ThreadDumpSink
+
2. C++ Log Filters
+Second tier debug for the emulation components is configured through C++ log
+filters,which follow a similar format to Jserver log filters but can only be set
+using config edit commands. The available detail levels
+are: * *info *error The available components
+are:proxy/circuit proxy/server proxy/mapping
+ pem/circuit pem/message pem/server pem/pem pem/session pem/launch pem/launchdetails pem/protocol
+ execpe/internal execpe/launch execpe/launchdetails execpe/process execpe/script execpe/launchhelper execpe/authenticate
+ xpe/xpe xpe/cdm xpe/memory xpe/cache xpe/link tpe/* to
+enable log filtering on a specific C++ component, start with the following
+config edit commands:--tarantella-config-xpeconfig-logfilter
+"xpe/*/*" "pem/*/*" --tarantella-config-tpeconfig-logfilter "tpe/*/*"
+"pem/*/*" --tarantella-config-execpeconfig-logfilter
+"execpe/*/*" --tarantella-config-auxserver-logfilter "proxy/*/*"
+"pem/*/*" Changes to the PE log filters take effect when a new
+PE is started. Auxserver log filters require a server restart. The log
+filters create large amounts of data - try to select a more specific filter if
+possible and remember to remove the log filters after use.
+
Examples
+Server side CDM debug: --tarantella-config-xpeconfig-logfilter
+"xpe/cdm/*"Full X app debugging (very
+verbose): --tarantella-config-xpeconfig-logfilter "xpe/*/*"
+"pem/*/*"Launch
+debugging: --tarantella-config-execpeconfig-logfilter
+"execpe/*/*" To include expect script tracing uncomment
+'startdebug' in unix.exp
+
3. Java Client Debug
+Additional Java Console debug can be enabled by editing the webtop HTML and
+adding in a debug parameter.
+
Print Applet
+Edit 'print.html' for the webtop theme you are using, and
+add:<param name="DebugMask" value="255"> to
+the list of applet parameters
+
CDM applet
+Edit 'opt.html' for the webtop theme you are using, and
+add:<param name="DebugMask" value="255"> to
+the list of applet parameters Applet debugging will slow down the
+client - remember to remove the log parameters after use.
+
4. 3rd Tier Debug
+CDM
+Inside a windows session, run: C:\Program Files\Tarantella\Enhancement
+Module\ttatdm.exe and set the required level of detail from the 'debug'
+menu.
+
Load Balancing
+The 3rd tier load balancing data can be viewed by using a web browser to
+view:http://<server>:3579?get&ttalbinfo
+
5. Server Debug
+Asad browser
+Start tarantella with: ./tarantella start --debug-httpd=2
+(0 = off, 1=running, login required, 2=running, login
+disabled)Which allows you to browse various server
+properties by using a web browser to
+view:http://<server>:5427 . It can also be
+started and stopped on a running server with a config edit
+command:--tarantella-config-server-debug-httpd 0|1 (running
+without login not supported with this command)
+
Memory and thread monitor
+Before starting tarantella
+set:TTA_USER_CMD="com.sco.cid.common.Run
+com.sco.cid.common.swing.MemoryMonitor --" Which displays a graph
+of memory and thread usage.
+
Verbose Mode
+To see all Jserver activity in a terminal, start Tarantella
+with:./tarantella start --verbose
+
Asad packet tracing
+Start tarantella with:./tarantella start
+--pvc-gui Which starts an application to monitor Asad packets
+
6. Monitor tools
+The tools.test CVS module (usually available on NFS export
+korma:/tools.test) contains a utility to log Tarantella array
+statistics over an extended period to evaluate server load and provide
+historical data when investigating problems. The files
+are:/tools.test/utils/ttamonitor.sh /tools.test/utils/summary.sh
+
+
ttamonitor.sh
+Usage: ttamonitor.sh [-i | -r] -i - Install script and cron
+entries -r - Remove cron entries Running 'ttamonitor.sh
+-i' causes the script to install itself into the Tarantella directory
+structure and create the necessary cron entries to log and archive
+data. Once installed, the monitor script periodically logs server
+statistics useful in diagnosing faults and assessing server loading. The
+logged data is stored in date stamped files in:
+<ttadir>/var/monitor The following data is gathered
+every 20 minutes: * server uptime * total process count * TCP bytes
+transmitted and received * file descriptor usage (Linux only) * disk
+space * 'ps' output filtered for Tarantella processes * Tarantella status
+by server for the primary Additionally, 'vmstat' information is gathered
+at 1 minute intervals. Every 24 hours the previous days logs are archived
+and compressed along with the licence usage history.
+
summary.sh
+Usage: summary.sh <monitor log archive> Running
+'summary.sh <monitor log archive>' processes the logged data into CSV
+files suitable for graphing in a spreadsheet application. The following
+data is generated: * Webtop and emulator sessions per server for each
+node of the array * TCP bytes transmitted and received * jserver process
+size * vmstat output * print queue activity The script also reports
+a summary of the data: * maximum webtop and emulator sessions per
+server * maximum jserver process size * minimum free memory * minimum
+CPU idle time * total number of print jobs * peak license usage The
+CSV files are generated in the current directory when the script is started.
+
+
+TTAPT/01/DebugTips.html 1.3 ends...
diff --git a/stta/devtools/ttaup.sh b/stta/devtools/ttaup.sh
new file mode 100755
index 0000000..561f832
--- /dev/null
+++ b/stta/devtools/ttaup.sh
@@ -0,0 +1,3 @@
+TTA_USER_CMD='com.sco.cid.common.Run com.sco.cid.common.swing.MemoryMonitor --';
+export TTA_USER_CMD
+/opt/tarantella/bin/tarantella start
diff --git a/stta/devtools/usecfgvars b/stta/devtools/usecfgvars
new file mode 100755
index 0000000..ca3d658
--- /dev/null
+++ b/stta/devtools/usecfgvars
@@ -0,0 +1,51 @@
+#!/bin/sh
+# Shell to scan used config values at $STTA *.cgi *.pl and *.sh
+# Info is dumped in same structure as "dataconf" same file name
+# NOTUSED file is created with
+
+orderlistfile=`echo $STTA/dataconf/ordercfgs`
+dataconfdir=`echo $STTA/dataconf`
+webmindataconf=/etc/webmin/stta/dataconf
+notusedfile=NOTUSED
+
+echo "WorkingDir will be `pwd`: "
+read wkdir
+[ $wkdir ] && [ ! -d $wkdir ] && mkdir $wkdir
+[ $wkdir ] && [ -d $wkdir ] && cd $wkdir
+[ $wkdir ] && echo "WorkingDir will be $wkdir "
+read tec
+
+pathdir=`pwd`
+if [ "$pathdir" = "$dataconfdir" -o "$pathdir" = "$webmindataconf" ] ; then
+ echo "ERROR $patdir should not be used or will be overwrited !!! "
+ exit 2
+fi
+
+nowTime=`date +%H:%M:%S`
+nowDate=`date +%d-%m-%y`
+echo "Scann at $nowDate - $nowTime ">$notusedfile
+echo "">>$notusedfile
+for linvar in ` cat $dataconfdir/ordercfgs | awk -F"=" '{ print $1 }'`
+do
+ file=`echo $linvar | sed "s/ //g" `
+ [ -n $file ] && {
+ echo "Scann at $nowDate - $nowTime ">$file
+ echo "">>$file
+ for lin in `cat $dataconfdir/$file | awk -F"=" '{ print $1 }' 2>/dev/null`
+ do
+ nomvar=`echo $lin | sed "s/ //g" `
+ [ $nomvar ] && {
+ fgrep -l $nomvar $STTA/*.cgi >l.cgi
+ fgrep -l $nomvar $STTA/*.pl >l.pl
+ fgrep -l $nomvar $STTA/*.sh >l.sh
+ cgi=`cat l.cgi | wc -l | sed "s/ //g" 2>/dev/null`
+ pl=`cat l.pl | wc -l | sed "s/ //g" 2>/dev/null`
+ sh=`cat l.sh | wc -l | sed "s/ //g" 2>/dev/null`
+ echo "$nomvar: cgi($cgi) - pl($pl) - sh($sh) " >>$file
+ }
+ done
+ fgrep "cgi(0) - pl(0) - sh(0)" $file >>$notusedfile
+ echo "$file done !!"
+ }
+done
+rm l.cgi l.pl l.sh
diff --git a/stta/devtools/web-lib.php b/stta/devtools/web-lib.php
new file mode 100755
index 0000000..49a8776
--- /dev/null
+++ b/stta/devtools/web-lib.php
@@ -0,0 +1,564 @@
+0)
+ Header("Content-type: text/html; Charset=$charset\n\n");
+ else Header("Content-type: text/html\n\n");
+}
+
+/*--LIB_header($title,$image,$help,$config,$nomodule,$nowebmin,$rightside,$header,$body)-----
+Output a page header with some title and image. The header may also include a link to help,
+and a link to the config page.
+The header will also have a link to the webmin index, and a link to the module menu
+if there is no config link.
+--------------------------------------------------------------------------------------------*/
+function LIB_header($title=undef,$image=undef,$help=undef,$config=undef,$nomodule=undef,
+ $nowebmin=undef,$rightside=undef,$header=undef,$body=undef){
+ global $gconfig;
+ global $text;
+ global $tconfig;
+ global $remote_user;
+ global $module_name;
+ global $module_info;
+
+ $num_args=func_num_args(); //number of arguments passed to the function
+
+/* foreach $l (&list_languages()) {
+ $lang = $l if ($l->{'lang'} eq $current_lang);
+ }*/
+
+ $charset=$force_charset ? $force_charset : "iso-8859-1";
+ LIB_PrintHeader($charset);
+ echo"\n";
+ echo"\n";
+ if($charset){
+ echo" \n";
+ }
+
+ $os_type = $gconfig[real_os_type] ? $gconfig[real_os_type]
+ : $gconfig[os_type];
+ $os_version = $gconfig[real_os_version] ? $gconfig[real_os_version]
+ : $gconfig[os_version];
+ $hostname=LIB_get_system_hostname();
+ $webmin_version=LIB_get_webmin_version();
+//echo"os_type:$os_type,os_version:$os_version,hostname:$hostname,webmin_version:$webmin_version";
+ echo"\n";
+ if($num_args > 0){
+//echo"gconfig[sysinfo]:$gconfig[sysinfo] ";
+ if ($gconfig[sysinfo] == 1)
+ echo"$title: $remote_user on $hostname ($os_type $os_version) \n";
+ else echo"$title \n";
+//echo"remote_user:$remote_user ";
+ if ($gconfig[sysinfo] == 0 && $remote_user) {
+ $ssl_user=getenv("SSL_USER");
+ $local_user=getenv("LOCAL_USER");
+ if($ssl_user) $_user="(SSL certified)";
+ elseif($local_user) $_user="(Local user)";
+ else $_user="";
+ echo"\n";
+ }
+ }
+//echo"tconfig[headhtml]:$tconfig[headhtml] ";
+ if ($tconfig[headhtml]) echo"$tconfig[headhtml]\n";
+//echo"tconfig[headinclude]:$tconfig[headinclude] ";
+ if ($tconfig[headinclude]) {
+ $file=$module_name ? "../$gconfig[theme]/$tconfig[headinclude]"
+ : "$gconfig[theme]/$tconfig[headinclude]";
+ $INC=fopen($file,"r");
+ while(!feof($INC)){
+ $current_line=fgetss($INC,255);
+ echo"$current_line";
+ }
+ fclose($INC);
+ /*EN perl
+ open(INC, $module_name ? "../$gconfig[theme]/$tconfig[headinclude]"
+ : "$gconfig[theme]/$tconfig[headinclude]");
+ while() {
+ print;
+ }
+ close(INC);*/
+ }
+ echo"\n";
+ if($tconfig[cs_page]) $bgcolor=$tconfig[cs_page];
+ elseif($gconfig[cs_page]) $bgcolor=$gconfig[cs_page];
+ else $bgcolor="ffffff";
+ if($tconfig[cs_link]) $link=$tconfig[cs_link];
+ elseif($gconfig[cs_link]) $link=$gconfig[cs_link];
+ else $link="0000ee";
+ if($tconfig[cs_text]) $_text=$tconfig[cs_text];
+ elseif($gconfig[cs_text]) $_text=$gconfig[cs_text];
+ else $_text="000000";
+ if($tconfig[bgimage]) $bgimage="background=$tconfig[bgimage]";
+ else $bgimage="";
+ echo"\n";
+
+ $hostname = LIB_get_system_hostname();
+ $version = LIB_get_webmin_version();
+ $prebody = $tconfig[prebody];
+//echo"prebody:$prebody ";
+/* if ($prebody) {
+ $prebody =~ s/%HOSTNAME%/$hostname/g;
+ $prebody =~ s/%VERSION%/$version/g;
+ $prebody =~ s/%USER%/$remote_user/g;
+ $prebody =~ s/%OS%/$os_type $os_version/g;
+ print "$prebody\n";
+ }*/
+//echo"tconfig[prebodyinclude]:$tconfig[prebodyinclude] ";
+ if ($tconfig[prebodyinclude]) {
+ $file= $module_name ? "../$gconfig[theme]/$tconfig[prebodyinclude]"
+ : "$gconfig[theme]/$tconfig[prebodyinclude]";
+ $INC=fopen($file,"r");
+ while(!feof($INC)){
+ $current_line=fgetss($INC,255);
+ echo"$current_line";
+ }
+ fclose($INC);
+ }
+ if ($num_args > 1) {
+ echo"\n";
+ if ($gconfig[sysinfo] == 2 && $remote_user) {
+ $ssl_user=getenv("SSL_USER");
+ $local_user=getenv("LOCAL_USER");
+ if($ssl_user) $_user="(SSL certified)";
+ elseif($local_user) $_user="(Local user)";
+ else $_user="";
+ echo"\n";
+ echo"$remote_user $_user logged into Webmin $version on \"$hostname \" ($os_type $os_version) \n";
+ echo" \n";
+ }
+ echo"";
+ $http_webmin_server=getenv("HTTP_WEBMIN_SERVERS");
+//echo"http_webmin_server:$http_webmin_server ";
+ if ($http_webmin_server) {
+ echo"",
+ "$text[header_servers] \n";
+ }
+/* if (!nowebmin && !$tconfig[noindex]) {
+ local %acl;
+ &read_acl(undef, \%acl);
+ local $mc = @{$acl{$base_remote_user}} == 1;
+ if ($gconfig{'gotoone'} && $main::session_id && $mc == 1) {
+ print "",
+ "$text{'main_logout'} ";
+ }
+ elsif ($gconfig{'gotoone'} && $mc == 1) {
+ print "",
+ "$text{'main_switch'} ";
+ }
+ else {
+ print "",
+ "$text{'header_webmin'} \n";
+ }
+ }
+*/
+ if ($nowebmin!=undef){
+ echo"$text[header_webmin] \n";
+ }
+ if ($nomodule!=undef) {
+ echo"$text[header_module] \n";
+ }
+ if (is_array($help)) {
+ echo LIB_hlink($text[header_help], $help[0], $help[1])," \n";
+ }
+ elseif ($help!=undef) {
+ echo LIB_hlink($text[header_help], $help)," \n";
+ }
+ if ($config!=undef) {
+ $access = LIB_get_module_acl();
+ $mod_name = LIB_get_module_name();
+ if (!$access[noconfig]) {
+ echo"",
+ $text[header_config]," \n";
+ }
+ }
+ echo" \n";
+ ereg("s/ä/ä/g",$title); // $title =~ s/ä/ä/g;
+ ereg("s/ö/ö/g",$title); //$title =~ s/ö/ö/g;
+ ereg("s/ü/ü/g",$title); //$title =~ s/ü/ü/g;
+ ereg("s/ / /g",$title); //$title =~ s/ / /g;
+
+ if ($image!=undef) {
+ echo"",
+ " \n";
+ }
+/* elsif ($lang->{'titles'} && !$gconfig{'texttitles'} &&
+ !$tconfig{'texttitles'}) {
+ print "";
+ foreach $l (split(//, $title)) {
+ $ll = ord($l);
+ if ($ll > 127 && $lang->{'charset'}) {
+ print " {'charset'}.gif alt=\"$l\" align=bottom>";
+ }
+ elsif ($l eq " ") {
+ print " ";
+ }
+ else {
+ print " ";
+ }
+ }
+ print " \n";
+ }
+*/ else {
+ echo"$title \n";
+ }
+ echo"";
+ //echo $rightside;
+ echo"
\n";
+ }
+}
+
+/*------------------------------------LIB_hlink($text,$page,$module)-------------------------
+Returns HTML for alink to help page. The first parameter is the test of the link and the second
+the name of the help page.
+--------------------------------------------------------------------------------------------*/
+function LIB_hlink($text,$page,$module=undef){
+ $mod_name=LIB_get_module_name();
+ $mod=($module!=undef) ? $module : $mod_name;
+ return "$text ";
+}
+
+/*------------------------------------LIB_get_system_hostname()---------------------------------
+Returns the hostname of this system
+--------------------------------------------------------------------------------------------*/
+function LIB_get_system_hostname(){
+ $hostname=`hostname`; //run a shell command
+ return $hostname ;
+}
+
+/*------------------------------------LIB_get_webmin_version()---------------------------------
+Returns the version of Webmin currently being run
+--------------------------------------------------------------------------------------------*/
+function LIB_get_webmin_version(){
+ //$VERSION=fopen("../version","r") || VERSION=fopen("../version","r");
+
+ //flose($VERSION);
+ return 0.91;
+}
+
+/*------------------------------------LIB_get_module_acl($user,$module)---------------------------------
+Return an array containing acces control options for the given user
+--------------------------------------------------------------------------------------------*/
+function LIB_get_module_acl($user=undef,$module=undef){
+ global $base_remote_user;
+ global $remote_user;
+ global $module_name;
+ global $config_directory;
+ global $gconfig; //associative array
+
+// $u=($user!=undef) ? $user : $base_remote_user;
+// $u=($user!=undef) ? $user : $remote_user;
+ $u=($user!=undef) ? $user : "admin"; //admin par defaut
+//echo"user:$u ";
+//echo"base_remote_user:$base_remote_user ";
+$mod_name=LIB_get_module_name();
+ $m=($module!=undef) ? $module : $mod_name;
+//echo"module:$m:$module ";
+ $rv=LIB_read_file($module_name ? "../$m/"."defaultacl" : ".$m"."defaultacl");
+ if($gconfig["risk_$u"] && $m){
+ $rf=$gconfig["risk_u"].'.risk';
+ $rv=LIB_read_file($module_name ? "../$m/$rf" : "./$m/$rf");
+ $sf=$gconfig["skill_u"].'.skill';
+ $rv=LIB_read_file($module_name ? "../$m/$sf" : "./$m/$sf");
+ }
+ else $rv=LIB_read_file("$config_directory/$m/$u.acl");
+
+ return $rv;
+}
+/*------------------------------------LIB_get_module_name()---------------------------------
+Returns the name of the current module.This fonction is useful in php because if the script
+exemple.cgi is run module_name=/module_name/example.cgi.
+
+--------------------------------------------------------------------------------------------*/
+function LIB_get_module_name(){
+ global $module_name;
+ list($nul,$mod_name,$_nul)=split("/",$module_name);
+ return $mod_name;
+}
+
+/*------------------------------------LIB_footer($page,$name)---------------------------------
+Output a footer for returning to some page
+--------------------------------------------------------------------------------------------*/
+function LIB_footer($page,$name){
+ //Global variables used in this function
+ global $text; //$text is an associative array initialised in init_config
+ global $module_info; //associative array
+ global $module_name;
+
+ $url=$page;
+ if($url == "/"){
+ $url="/?cat=$module_info[category]";
+ }
+ elseif($url == "" && $module_name){
+ $url=" ";//return to the last page
+ }
+ elseif( ereg("?",$url) || ereg($module_name,$url) ){
+ $url="/$module_name/$url";
+ }
+
+ $link=LIB_text($text[main_return],$name);
+ //$link=LIB_text($text[main_version],"32","33","34");
+ echo " \n";
+ echo "$link \n";
+}
+
+
+/*--------------------------------------LIB_read_file($file)----------------------------------
+Fill an associative array with name=value pairs from a file
+--------------------------------------------------------------------------------------------*/
+function LIB_read_file($file){
+ $delimiter="=";
+ if(!$fp=fopen($file,"r"))
+ return -1;
+ while(!feof($fp)){
+ $current_line=fgetss($fp,255);
+ $current_line=trim($current_line);
+ //trim delete all space in the string, try chop() and ltrim()
+ list($option,$value)=split($delimiter,$current_line);
+ $assoc_array[$option]=$value;
+ }
+ fclose($fp);
+ return $assoc_array;
+}
+/*-------------------------------------LIB_init_config()------------------------------------
+set the following variables:
+ $gconfig : Global configuration
+ $config : module configuration
+ $module_info
+ $tconfig
+------------------------------------------------------------------------------------------*/
+function LIB_init_config(){
+ //Global variables used in this function
+ global $config_directory;
+ global $module_name;
+ global $webmin_path;
+
+ //Read the webmin global config file and fill the associative array $gconfig
+ $GLOBALS["gconfig"]=LIB_read_file($config_directory."/config");
+ //Set PATH and LD_LIBRARY_PATH
+ //if($gconfig[path]) putenv(PATH=$gconfig[path]);
+ //if($gconfig[ld_env]) putenv($gconfig[ld_env]=gconfig[ld_path]);
+
+ list($nul,$m,$_nul)=split("/",$module_name);
+ $GLOBALS["config"]=LIB_read_file($config_directory."/".$m."/config");
+ $GLOBALS["module_info"]=LIB_read_file($webmin_path."/".$m."/module.info");
+ //Load language string into associative array named $text
+ $GLOBALS["text"]=LIB_load_language();
+
+ $theme=LIB_check_key_array($GLOBALS["gconfig"],theme);
+ if($theme){
+ $GLOBALS["tconfig"]=LIB_read_file($module_name ? "../$theme/config"
+ :"$theme/config");
+ }
+// $key=LIB_array_to_keystring($GLOBALS["text"]);
+// $val=LIB_array_to_valstring($GLOBALS["text"]);
+// echo" $key $val ";
+
+// echo"sans arg ";
+// LIB_ReadParse();
+// echo"avec gconfig ";
+// LIB_ReadParse($GLOBALS["gconfig"]);
+//test_display_array($GLOBALS["gconfig"]);
+}
+
+/*----------------------LIB_check_key_array($assoc_array,$key)-----------------------------
+check if the key passed to the function exist,return the corresponding value else return 0
+if(LIB_check_key_array($GLOBALS["gconfig"],theme)){
+ echo"existing key ";
+ }
+ else echo"this key is not in this array ";
+}
+------------------------------------------------------------------------------------------*/
+function LIB_check_key_array($assoc_array,$key){
+ //test_display_array($assoc_array);
+ if($assoc_array[$key]) $rv=$assoc_array[$key];
+ else $rv=0;
+ return $rv;
+}
+
+/*---------------------------LIB_ReadParse($assoc_array,$method)----------------------------
+fills the given associative array with cgi paramaters, or uses the globals $in
+if none is given.
+------------------------------------------------------------------------------------------*/
+function LIB_ReadParse($assoc_array=undef,$method=undef){
+
+ if($assoc_array!=undef) $a=$assoc_array;
+ else $a=$in;
+ if($method!=undef) $meth=$methode;
+ else $meth=getenv("REQUEST_METHOD");
+test_display_array($a);
+echo" meth:$meth ";
+$z=getenv("CONTENT_LENGTH");
+echo"CONTENT_LENGTH:$z ";
+
+ if($meth=='POST') read(STDIN, $in, getenv("CONTENT_LENGTH"));
+ test_display_array($a);
+/* if(getenv("QUERY_STRING")){
+ if($in)
+ }*/
+}
+/*sub ReadParse
+{
+local $a = $_[0] ? $_[0] : \%in;
+local $i;
+local $meth = $_[1] ? $_[1] : $ENV{'REQUEST_METHOD'};
+undef($in);
+if ($meth eq 'POST') {
+ read(STDIN, $in, $ENV{'CONTENT_LENGTH'});
+ }
+if ($ENV{'QUERY_STRING'}) {
+ if ($in) { $in .= "&".$ENV{'QUERY_STRING'}; }
+ else { $in = $ENV{'QUERY_STRING'}; }
+ }
+@in = split(/\&/, $in);
+foreach $i (@in) {
+ local ($k, $v) = split(/=/, $i, 2);
+ $k =~ s/\+/ /g; $k =~ s/%(..)/pack("c",hex($1))/ge;
+ $v =~ s/\+/ /g; $v =~ s/%(..)/pack("c",hex($1))/ge;
+ $a->{$k} = defined($a->{$k}) ? $a->{$k}."\0".$v : $v;
+ }
+}*/
+/*---------------------------LIB_redirect($url)----------------------------
+Output headers to redirect the browser to some page
+------------------------------------------------------------------------------------------*/
+function LIB_redirect($url){
+ global $module_info;
+ $server_port=getenv("SERVER_PORT");
+ $https=getenv("HTTPS");
+ $server_name=getenv("SERVER_NAME");
+ $script_name=getenv("SCRIPT_NAME ");
+
+ if( ($server_port==443) && ($https=="ON")) $port="";
+ elseif( ($server_port==80) && ($https!="ON")) $port="";
+ else $port=$server_port;
+ if($https=="ON") $prot="https";
+ else $prot="http";
+
+ if(ereg("http",$url) | ereg("https",$url) | ereg("ftp",$url) | ereg("gopher",$url)){
+ Header("Location: $url");
+ }
+ elseif(ereg("/^\//",$url)){
+ Header("Location: $prot://$server_name:$port$url");
+ }
+ elseif(ereg("/^(.*)\/[^\/]*$/",$sript_name)){
+ Header("Location: $prot://$server_name:$port$1/$url");
+ }
+ elseif($url==""){//return to the current module category
+ Header("Location: $prot://$server_name:$port/$url/?cat=$module_info[category]");
+ }
+ else Header("Location: $prot://$server_name:$port/$url");
+}
+
+/*---------------------------LIB_get_module_info($module)----------------------------
+
+------------------------------------------------------------------------------------------*/
+function LIB_get_module_info($module){
+
+}
+
+/*---------------------------LIB_load_language()----------------------------
+Returns a hashtable mapping text codes to strings in the appropriate language
+------------------------------------------------------------------------------------------*/
+function LIB_load_language(){
+ //Global variables used in this module
+ global $webmin_path;
+ global $gconfig;
+ global $module_name;
+
+ //$a=$webmin_path.$module_name."lang/".$gconfig[lang];
+ //echo"$a ";
+ //fill the associative array $text with the correct language
+ //firsty with general text codes: /path/to/webmin-0.91/lang/current_language
+ $text=LIB_read_file($webmin_path."/lang/".$gconfig[lang]);
+ //secondly with module text codes: /path/to/webmin-0.91/current_module/lang/current_language
+ if($module_name){
+ $text_mod=LIB_read_file("lang/".$gconfig[lang]);
+ //fill $text with the content of $text_mod
+ while(list($key,$value)=each($text_mod)){
+ $text[$key]=$value;
+ }
+ }
+// test_display_array($text);
+ return $text;
+}
+
+/*------------------------LIB_text($message,$substitute,$sub2,$sub3)--------------------------
+Looks up the given message in the appropriate language translation file, replaces the text
+$1, $2 and so on with the rest of the parameters, and returns the result.
+I suppose there is only 3 substituted arguments passed to the function($1,$2,$3).
+If an other substituted argument is added, you should add one for this function.
+To check the number of substituted arguments open read this file: /path/to/webmin-0.91/lang/en
+---------------------------------------------------------------------------------------------*/
+function LIB_text($message,$substitute,$sub2=nul,$sub3=nul){
+ global $text; //$text is an associative array
+
+ $rv=$message;
+ $num_args=func_num_args(); //number of arguments passed to the function
+ $args_list=func_get_args(); //$args_list is an associative array
+
+ for($i=1;$i<$num_args;$i++){
+ $replace=func_get_arg($i);
+ $rv=str_replace("\$$i",$replace,$rv);
+ }
+ return $rv;
+}
+
+/*-------------------------LIB_array_to_keystring($assoc_array)--------------------------------
+Push all key of an array into a string
+Instead of passing an array from a script to an other one(it's not possible with php???),
+we could passed a string.So this function built a string with all key of this array
+---------------------------------------------------------------------------------------------*/
+function LIB_array_to_keystring($assoc_array){
+ $separator=" |#| ";
+ while(list($key,$value)=each($assoc_array)){
+ if($key!="") $key_string=$key_string.$key.$separator;
+ }
+ return $key_string;
+}
+/*---------------------------LIB_array_to_valstring($assoc_array)--------------------------------
+this function built a string with all value of an array
+---------------------------------------------------------------------------------------------*/
+function LIB_array_to_valstring($assoc_array){
+ $val_string=implode(" |#| ",$assoc_array);
+ return $val_string;
+}
+/*---------------------------LIB_convert_str_to_array($keystr,$valstr)--------------------------------
+This function built an associative array from 2 strings.
+I didn't used explose because keys become numbers.
+---------------------------------------------------------------------------------------------*/
+function LIB_convert_str_to_array($keystr,$valstr){
+ while(list($key,$value)=each($assoc_array)){
+
+ }
+}
+
+function test_display_array($a){
+ while(list($k,$v)=each($a)){
+ echo"$k:$v ";
+ }
+}
+?>
\ No newline at end of file
diff --git a/stta/devtools/writesttadefs.pl b/stta/devtools/writesttadefs.pl
new file mode 100755
index 0000000..b00bd7f
--- /dev/null
+++ b/stta/devtools/writesttadefs.pl
@@ -0,0 +1,87 @@
+#!/usr/bin/perl
+
+ $fileName="tta.server";
+ $cfg_file="hosts_list";
+# $fileName="tta.applications";
+# $cfg_file="app_list";
+
+ $ens_root="o=SINPLEX";
+ $maxsess="9999";
+ $portalive="139";
+ @data=();
+ open(FILENAME, $fileName);
+ $nlins=1;
+ while() {
+ @line=split(/--/, $_,-1);
+ $i=1;
+ while ( $i< $#line+1 ) {
+ @attLine=split(/ /, $line[$i],-1);
+# print "$attLine[0] = $attLine[1] \n";
+ $attrName=$attLine[0];
+ $attrValue=$line[$i];
+ $attrValue=~s/$attrName //;
+ $attrValue=~s/\r|\n//g;
+ $data[$nlins]{$attrName}=$attrValue;
+ $i++;
+ }
+ $nlins++;
+ }
+ close (FILENAME);
+ open(STTAFILE, ">>$cfg_file");
+ $lin=1;
+ while ( $lin < $nlins ) {
+ $line_stta="";
+ $alias=$data[$lin]{'description'};
+ $alias=~s/ $//g;
+ $alias=~s/"//g;
+ $descrip=$alias;
+ $alias=~s/ /_/g;
+ $alias=~ tr/A-Z/a-z/;
+ $ens=$data[$lin]{'name'};
+ $ens=~s/$ens_root\///g;
+ $ens=~s/" //g;
+ $ens=~s/"//g;
+ if ( $fileName =~ /server/ ) {
+ @line=split(/\//, $ens,-1);
+ $dn="";
+ for ( $i=$#line ; $i >= 0 ; $i-- ) {
+ if ( $i < $#line ) {
+ $dn .= ",";
+ $dn .= $line[$i];
+ } else {
+ $dn .= $line[$i];
+ }
+ }
+ $dn =~ s/cn=/ou=/g;
+ $grp_alias="servidores";
+ $ipaddress=$data[$lin]{'address'};
+ @line=split(/\./, $ipaddress,-1);
+ $objname=$line[0];
+ $lin_stta=$alias."::".$objname."::".$grp_alias."::"."$dn"."::"."$ens"."::".$ipaddress."::".$maxsess."::".$portalive."::".$descrip."::";
+ } elsif ( $fileName =~ /application/ ) {
+ @line=split(/\//, $ens,-1);
+ $dn="";
+ for ( $i=$#line ; $i >= 0 ; $i-- ) {
+ if ( $i < $#line ) {
+ $dn .= ",";
+ $dn .= $line[$i];
+ } else {
+ $objname=$line[$#line];
+ $objname=~s/cn=/ou=/g;
+ $dn=$objname;
+ $objname=~s/ou=//g;
+ }
+ }
+ $grp_alias="apps";
+ $lin_stta=$alias."::".$objname."::".$grp_alias."::".$dn."::".$ens."::".$maxsess."::".$descrip."::";
+ }
+# foreach $item ( keys (%{$data[$lin]})) {
+# print "$lin: ".$item." = ".$data[$lin]{$item}."\n";
+# }
+# print "--- $data[$lin]{'name'} \n";
+ print STTAFILE "$lin_stta\n";
+# print "$lin --- > $lin_stta\n";
+ $lin++;
+ }
+ close (STTAFILE);
+
diff --git a/stta/dir_save.cgi b/stta/dir_save.cgi
new file mode 100755
index 0000000..146ce33
--- /dev/null
+++ b/stta/dir_save.cgi
@@ -0,0 +1,12 @@
+#!/usr/bin/perl
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+# dir_save.cgi
+# Save DIr lists File Manage for Services with Tarantella
+
+require './stta-lib.pl';
+if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
+&redirect( "file_manager.cgi?wkdir=$config{'stta_savedir'}&perm=write&postform=dirsave");
+exit;
+
+
diff --git a/stta/dirdef_stta.cgi b/stta/dirdef_stta.cgi
new file mode 100755
index 0000000..4695abc
--- /dev/null
+++ b/stta/dirdef_stta.cgi
@@ -0,0 +1,12 @@
+#!/usr/bin/perl
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+# dirdef_stta.cgi
+# Dir Def lists File Manage for Services with Tarantella
+
+require './stta-lib.pl';
+if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
+&redirect( "file_manager.cgi?wkdir=$config{'stta_defslist'}&perm=write&postform=dirdefstta");
+exit;
+
+
diff --git a/stta/dirlogs_cache.cgi b/stta/dirlogs_cache.cgi
new file mode 100755
index 0000000..5e21cf8
--- /dev/null
+++ b/stta/dirlogs_cache.cgi
@@ -0,0 +1,12 @@
+#!/usr/bin/perl
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+# dirlogs_cache.cgi
+# CACHE DIR LOGS lists File Manage for Services with Tarantella
+
+require './stta-lib.pl';
+if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
+&redirect( "file_manager.cgi?wkdir=$config{'cache_debuglog_dir'}&perm=clean&postform=dirlogscache");
+exit;
+
+
diff --git a/stta/dirlogs_tta.cgi b/stta/dirlogs_tta.cgi
new file mode 100755
index 0000000..3a0a82d
--- /dev/null
+++ b/stta/dirlogs_tta.cgi
@@ -0,0 +1,12 @@
+#!/usr/bin/perl
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+# dirlogs_tta.cgi
+# TTA LOGS lists File Manage for Services with Tarantella
+
+require './stta-lib.pl';
+if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
+&redirect( "file_manager.cgi?wkdir=$config{'ttalog_path'}&perm=clean&postform=dirlogstta");
+exit;
+
+
diff --git a/stta/envprofile b/stta/envprofile
new file mode 100755
index 0000000..5fb053f
--- /dev/null
+++ b/stta/envprofile
@@ -0,0 +1,106 @@
+#!/bin/sh
+
+LIST_STTACMDS="ldapreplicate scanttacache monitor ttasess stta ensrecreate ensrestore ensload ttatcl setenv_vars openldap oldapadm"
+LIST_TTACMDS="tta ttabackup"
+LIST_TCLS="ensdump ensrestore"
+LIST_lib="ldap-lib.pl lists-lib.pl base-lib.pl ttacache-lib.pl global-lib.pl "
+LIST_tcls="ttaDumpDs.tcl ttaRestoreDs.tcl"
+LIST_DIRS="tcls lib"
+LIST_LNKCMDS="tta"
+brandInfoFile=.brandinfofile.deploy
+SttaBrandInfoFile=.brandinfofile.stta
+STTA_SHELLS=shells
+TOOLSDIR=tools
+
+
+keep_ext=".cgi .pl .sh .js .txt .tcl"
+keep_prefix="config default module envprofile"
+keep_dir="config_dir images lang help info index cgitools update upgrade patch ldaptools gpl dataconf loadfiles shells"
+f_toremove="dataconf/*.gz test.cgi test-list.cgi .brandinfofile.deploy "
+d_toremove="devtools ldap save tmp tmpf tools-dev images/.xvpics images/.pics images/old images/thumbs old home-tta tools.old info/info-files updates old-cgis perl-ldap-0.26 old-code sp install/tmp tta copia config_dir patch/tmp update/tmp upgrade/tmp loadfiles/tmp help/save help/tmp help/es/templ help/empty_files install/info/es/templ lang/tmp tools"
+to_copyhere="/etc/webmin/stta/admin.acl /etc/webmin/stta/dataconf"
+
+name="Tarantella"
+desc_es="Servicios con Tarantella"
+desc_en="Services with Tarantella"
+depends="1.0"
+version="1.3"
+
+# Others
+dn=/dev/null
+WKDIR=/usr/tmp/pack.$$
+PAGER=more
+CINTADIR=/home2/cinta
+
+# Webmin locations
+WEBMIN=`cat /etc/webmin/miniserv.conf 2>/dev/null | egrep "^root=" | sed 's/root=//g'`
+
+origen=`pwd`
+cd $WEBMIN 2>$dn
+WEBMINDIR=`pwd`
+cd $origen
+[ ! "$WEBMINDIR" ] && echo "NO WEBMIN DIR " && exit 1
+MODULE=stta
+
+# To pack & Save
+DESTPACK=/home2/packs/stta
+SAVEFILE=stta-1.3.wbm
+SAVEDIR=/opt/save
+SAVEDIR2=/windows/C/save
+BACKUPDIR=/home2/packs/backup
+TRASHDIR=$WEBMINDIR/$MODULE/tmp/trash
+PACKMAKER=makepack
+
+# TTA
+TTAHOME=/opt/tarantella
+STTATOOLS=$TTAHOME/tools
+
+# Dev STTA
+DEVTOOLS=$WEBMINDIR/$MODULE/devtools
+
+# tools STTA
+MKTOOLS=$WEBMINDIR/$MODULE/mktools.sh
+
+# To run STTA
+CP_command=backupnow
+SAVE_command=save
+CLEANUP_command=cleanup
+TOOLSDIR=tools
+
+# To clean
+TOREMOVE=$WEBMINDIR/$MODULE/toremove
+
+# For TCLS
+tclShell=/opt/tarantella/tools/tcls/ttatcl.sh
+dirTools=/opt/tarantella/tools/tcls
+dumpCMD=ttaDumpDs.tcl
+restoreCMD=ttaRestoreDS.tcl
+
+
+# Just to start
+origen=`pwd`
+ahora=`date +%Y_%m_%d_%H%M%S`
+
+case "$trace" in
+x) set -x
+esac
+
+show_file () {
+ [ "$1" ] && {
+ [ -r "$1.$LANG" ] && $PAGER "$1.$LANG" && return
+ [ -r "$1" ] && $PAGER "$1" && return
+ }
+}
+show_help () {
+ [ "$1" ] && {
+ fname=`basename $0 2>$dn`
+ show_file $1/$fname
+ }
+}
+
+make_dir () {
+ mkdir $DESTDIR 2>$dn
+ [ ! -d $DESTDIR ] && exit 2
+ chown root:bin $DESTDIR
+ chmod 755 $DESTDIR
+}
diff --git a/stta/envprofile.deploy b/stta/envprofile.deploy
new file mode 100755
index 0000000..dc5c1d1
--- /dev/null
+++ b/stta/envprofile.deploy
@@ -0,0 +1,86 @@
+#!/bin/sh
+
+LIST_STTACMDS="ldapreplicate scanttacache monitor ttasess stta ensrecreate ensrestore ensload ttatcl setenv_vars openldap oldapadm"
+LIST_TTACMDS="tta ttabackup"
+LIST_TCLS="ensdump ensrestore"
+LIST_lib="ldap-lib.pl lists-lib.pl base-lib.pl ttacache-lib.pl global-lib.pl "
+LIST_tcls="ttaDumpDs.tcl ttaRestoreDs.tcl"
+LIST_DIRS="tcls lib"
+LIST_LNKCMDS="tta stta"
+brandInfoFile=.brandinfofile
+SttaBrandInfoFile=.brandinfofile.stta
+STTA_SHELLS=shells
+TOOLSDIR=tools
+
+keep_ext=".cgi .pl .sh .js .txt .tcl"
+keep_prefix="config default module"
+to_copyhere="/etc/webmin/stta/admin.acl /etc/webmin/stta/dataconf"
+
+name="Tarantella"
+desc_es="Servicios con Tarantella"
+desc_en="Services with Tarantella"
+depends="1.0"
+version="1.3"
+
+# Others
+dn=/dev/null
+PAGER=more
+
+# Webmin locations
+WEBMIN=`cat /etc/webmin/miniserv.conf 2>/dev/null | egrep "^root=" | sed 's/root=//g'`
+
+origen=`pwd`
+cd $WEBMIN 2>$dn
+WEBMINDIR=`pwd`
+cd $origen
+[ ! "$WEBMINDIR" ] && echo "NO WEBMIN DIR " && exit 1
+MODULE=stta
+
+# To pack & Save
+SAVEFILE=stta-1.3.wbm
+
+# TTA
+TTAHOME=/opt/tarantella
+STTATOOLS=$TTAHOME/tools
+
+# tools STTA
+SETUPDIR=$WEBMINDIR/$MODULE/tools
+MKTOOLS=$WEBMINDIR/$MODULE/mktools.sh
+
+# To run STTA
+TOOLSDIR=tools
+
+# For TCLS
+tclShell=/opt/tarantella/tools/tcls/ttatcl.sh
+dirTools=/opt/tarantella/tools/tcls
+dumpCMD=ttaDumpDs.tcl
+restoreCMD=ttaRestoreDS.tcl
+
+
+# Just to start
+origen=`pwd`
+ahora=`date +%Y_%m_%d_%H%M%S`
+
+case "$trace" in
+x) set -x
+esac
+
+show_file () {
+ [ "$1" ] && {
+ [ -r "$1.$LANG" ] && $PAGER "$1.$LANG" && return
+ [ -r "$1" ] && $PAGER "$1" && return
+ }
+}
+show_help () {
+ [ "$1" ] && {
+ fname=`basename $0 2>$dn`
+ show_file $1/$fname
+ }
+}
+
+make_dir () {
+ mkdir $DESTDIR 2>$dn
+ [ ! -d $DESTDIR ] && exit 2
+ chown root:bin $DESTDIR
+ chmod 755 $DESTDIR
+}
diff --git a/stta/etc-rcs/iplanetldap b/stta/etc-rcs/iplanetldap
new file mode 100755
index 0000000..db2681f
--- /dev/null
+++ b/stta/etc-rcs/iplanetldap
@@ -0,0 +1,60 @@
+#! /bin/sh
+# Copyright (c) 1995-2001 SuSE GmbH Nuernberg, Germany
+#
+# init.d/wpmd
+#
+### BEGIN INIT INFO
+# Provides: wpmd
+# Required-Start: $network $remote_fs apache squid
+# Required-Stop:
+# Default-Start: 3 5
+# Default-Stop:
+# Description: Starts the wpm-daemon
+### END INIT INFO
+
+. /etc/rc.config
+base=${0##*/}
+link=${base#*[SK][0-9][0-9]}
+
+. /etc/rc.status
+rc_reset
+ServerNames="ttaldap ttacache ttaldap2 ttacache2"
+ServerNames="ttaldap ttacache "
+
+case "$1" in
+ start)
+ echo -n "Activando Servidores LDAP Iplanet:"
+ for nom in `echo $ServerNames`
+ do
+ /opt/netscape/ldap/slapd-$nom/start-slapd
+ [ $? -eq 0 ] && echo -n " $nom "
+ done
+ rc_status -v
+ ;;
+ stop)
+ echo -n "Shutting down Iplanet LDAP: "
+ for nom in `echo $ServerNames`
+ do
+ /opt/netscape/ldap/slapd-$nom/stop-slapd
+ [ $? -eq 0 ] && echo -n " $nom "
+ #[ $? -ne 0 ] && echo -n "- Warning: error al desconectar ($nom)! "
+ done
+ rc_status -v
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ rc_status
+ ;;
+ status)
+ echo -n "Checking Netscape LDAP "
+ ps -ef | fgrep slapd
+# rc_status -v
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|restart}"
+ exit 1
+ ;;
+esac
+rc_exit
+
diff --git a/stta/etc-rcs/openldap b/stta/etc-rcs/openldap
new file mode 100755
index 0000000..202b14a
--- /dev/null
+++ b/stta/etc-rcs/openldap
@@ -0,0 +1,171 @@
+#! /bin/sh
+# Copyright (c) 1997-2000 SuSE GmbH Nuernberg, Germany.
+# Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany.
+#
+# Author: Carsten Hoeger , 1997-2001
+# Ralf Haferkamp , 2002
+#
+# /etc/init.d/ldap
+#
+### BEGIN INIT INFO
+# Provides: ldap
+# Required-Start: $remote_fs
+# Required-Stop:
+# Default-Start: 3 5
+# Default-Stop:
+# Description: start the OpenLDAP2 Server
+### END INIT INFO
+
+HOSTNAME=`hostname`
+
+ServerNames="ttaldap2 ttacache2"
+#ServerNames="ttacache2"
+#ServerNames="ttaldap ttaldap2 ttacache ttacache2"
+#debug_args="-d 256";
+ttaldap_args=" -h ldap://$HOSTNAME:389/ -f /etc/openldap/ttaldap.conf $debug_args "
+ttaldap2_args=" -h ldap://$HOSTNAME:16634/ -f /etc/openldap/ttaldap2.conf $debug_args "
+ttacache_args=" -h ldap://$HOSTNAME:802/ -f /etc/openldap/ttacache.conf $debug_args "
+ttacache2_args=" -h ldap://$HOSTNAME:6889/ -f /etc/openldap/ttacache2.conf $debug_args "
+
+DEBUG_LDAP="-d 256 -s error -s debug -s info"
+#DEBUG_LDAP=" -d 1024 -s error -s debug -s info"
+#test -z "$LDAPNAME" && LDAPNAME="LDAP-389"
+#test "$LDAP_ARGS" = "" && LDAP_ARGS=" -f /etc/openldap/slapd.conf "
+
+
+SLAPD_BIN="/usr/lib/openldap/slapd"
+test -x $SLAPD_BIN || exit 5
+
+# Shell functions sourced from /etc/rc.status:
+# rc_check check and set local and overall rc status
+# rc_status check and set local and overall rc status
+# rc_status -v ditto but be verbose in local rc status
+# rc_status -v -r ditto and clear the local rc status
+# rc_failed set local and overall rc status to failed
+# rc_failed set local and overall rc status to
+# rc_reset clear local rc status (overall remains)
+# rc_exit exit appropriate to overall rc status
+. /etc/rc.status
+
+# First reset status of this service
+rc_reset
+
+# Return values acc. to LSB for all commands but status:
+# 0 - success
+# 1 - generic or unspecified error
+# 2 - invalid or excess argument(s)
+# 3 - unimplemented feature (e.g. "reload")
+# 4 - insufficient privilege
+# 5 - program is not installed
+# 6 - program is not configured
+# 7 - program is not running
+#
+# Note that starting an already running service, stopping
+# or restarting a not-running service as well as the restart
+# with force-reload (in case signalling is not supported) are
+# considered a success.
+
+case "$1" in
+ start)
+ echo -n "Starting-up Open LDAP servers:"
+ for nom in `echo $ServerNames`
+ do
+ eval LDAP_ARGS=\$$nom"_args"
+ SLAPD_CMD=$SLAPD_BIN" "$LDAP_ARGS
+# /sbin/startproc $SLAPD_CMD
+ $SLAPD_CMD &
+ [ $? -eq 0 ] && echo -n " $nom "
+ done
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ stop)
+ echo -n "Shutting down ALL Open LDAP server: "
+ for nom in `echo $ServerNames`
+ do
+ eval ldap_args=\$$nom"_args"
+ LDAP_ARGS=`echo $ldap_args | cut -f1-2 -d"-" 2>/dev/null`
+ SLAPD_CMD=$SLAPD_BIN" "$LDAP_ARGS
+ pids=$(ps -ax | grep "$SLAPD_CMD" | \
+ grep -v grep | cut -c 1-6)
+ if [ -n "$pids" ] ; then
+ kill -TERM $pids
+ else
+ rc_failed 1
+ fi
+ [ $? -eq 0 ] && echo -n " $nom "
+# #[ $? -ne 0 ] && echo -n "- Warning: error al desconectar ($nom)! "
+ done
+ # Remember status and be verbose
+ rc_status -v
+
+ ;;
+ try-restart)
+ ## Stop the service and if this succeeds (i.e. the
+ ## service was running before), start it again.
+ ## Note: try-restart is not (yet) part of LSB (as of 0.7.5)
+ $0 status >/dev/null && $0 restart
+
+ # Remember status and be quiet
+ rc_status
+ ;;
+ restart)
+ ## Stop the service and regardless of whether it was
+ ## running or not, start it again.
+ $0 stop
+ # sometimes slapd needs some time to stop
+ sleep 3
+ $0 start
+
+ # Remember status and be quiet
+ rc_status
+ ;;
+ force-reload)
+ ## Signal the daemon to reload its config. Most daemons
+ ## do this on signal 1 (SIGHUP).
+ ## If it does not support it, restart.
+
+ #echo -n "Reload ldap server"
+ # if it supports it:
+ #killproc -HUP $SLAPD_BIN
+ #touch /var/run/FOO.pid
+ #rc_status -v
+
+ ## Otherwise:
+ $0 stop; sleep 3; $0 start
+ rc_status
+ ;;
+ reload)
+ echo -n "Reload ldap $LDAPNAME server"
+
+ # If it supports signalling:
+ #killproc -HUP $SLAPD_BIN
+ #touch /var/run/FOO.pid
+ #rc_status -v
+
+ ## Otherwise if it does not support reload:
+ rc_failed 3
+ rc_status -v
+ ;;
+ status)
+ echo -n "Checking for service ldap: "
+ ## Check status with checkproc(8), if process is running
+ ## checkproc will return with exit status 0.
+
+ # Status has a slightly different for the status command:
+ # 0 - service running
+ # 1 - service dead, but /var/run/ pid file exists
+ # 2 - service dead, but /var/lock/ lock file exists
+ # 3 - service not running
+
+ # NOTE: checkproc returns LSB compliant status values.
+
+ checkproc $SLAPD_BIN
+ rc_status -v
+
+ ;;
+ *)
+ echo "Usage $LDAPNAME: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
+ exit 1
+esac
+rc_exit
diff --git a/stta/etc-rcs/openldap-old b/stta/etc-rcs/openldap-old
new file mode 100755
index 0000000..449c53f
--- /dev/null
+++ b/stta/etc-rcs/openldap-old
@@ -0,0 +1,39 @@
+#!/bin/sh
+# Jesús Pérez Lorenzo
+# Wrap arround to star-up LDAP servers ...
+
+USAGE="open-ldap [ LDAPNAME ] [ start | stop | etc ... ] "
+
+ldapName="ALL";
+case "$1" in
+ start|stop|status|try-restart|restart|force-reload|reload) ;;
+ *) ldapName=$1; shift ;;
+esac
+CMD_ARGS="$*";
+
+# debug level
+DEBUG_LDAP=" -d 256 -s error -s debug -s info"
+#DEBUG_LDAP=" -d 1024 -s error -s debug -s info"
+
+HOSTNAME=`hostname`
+
+function main() {
+ #cmd_forldap ttaldap "$HOSTNAME:389"
+ cmd_forldap ttaldap2 "$HOSTNAME:16634"
+
+ #cmd_forldap ttacache "$HOSTNAME:802"
+ cmd_forldap ttacache2 "$HOSTNAME:6889"
+}
+
+function cmd_forldap() {
+ # getting $1 for LDAPNAME and $2 for hostname:port
+ if [ "$ldapName" != "ALL" -a "$ldapName" != "$1" ] ; then
+ return
+ fi
+ LDAPNAME="$1 $2"
+ LDAP_ARGS=" -f /etc/openldap/$1.conf -h ldap://$2/ $DEBUG_LDAP"
+ export LDAPNAME LDAP_ARGS
+ /etc/init.d/open-ldap $CMD_ARGS
+}
+
+main;
diff --git a/stta/etc-rcs/rc.config b/stta/etc-rcs/rc.config
new file mode 100755
index 0000000..a86241f
--- /dev/null
+++ b/stta/etc-rcs/rc.config
@@ -0,0 +1,45 @@
+#
+# /etc/rc.config
+#
+# Copyright (c) 1996-2002 SuSE Linux AG Nuernberg, Germany.
+# All rights reserved.
+#
+# Author: Werner Fink , 1996
+# Burchard Steinbild , 1996
+#
+# Configuration database for shell scripts in /etc/init.d, /sbin/SuSEconfig
+# and /etc/cron.daily/aaa_base*
+#
+# Please edit this file and execute /sbin/SuSEconfig to configure everything.
+#
+
+
+
+#
+# Attention! This variable PATH is NOT setting the PATH for user or root
+# shells. It is only used internally for /etc/init.d/*, SuSEconfig and
+# cron.daily. Please do NOT change PATH here.
+#
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+
+##
+## Formatting the boot script messages, see /etc/rc.status.
+## Source /etc/rc.status if rc_done isn't defined
+##
+test "$rc_done"= = = -a -e /etc/rc.status && . /etc/rc.status
+#
+# choose sound chip on DVB card, "ti" or "crystal"
+#
+DVB_SOUND_CHIP="ti"
+#
+# The SECCHK_USER variable determines to which e-mail address the reports
+# from the security check scripts are sent to. Default is root.
+#
+SECCHCK_USER="root"
+
+#
+# The START_SECCHK variable controls whether the security check scripts
+# should be run automatically every night, week, month.
+# Set to "no" to disable.
+#
+START_SECCHK="yes"
diff --git a/stta/etc-rcs/rc.status b/stta/etc-rcs/rc.status
new file mode 100755
index 0000000..67ffc2a
--- /dev/null
+++ b/stta/etc-rcs/rc.status
@@ -0,0 +1,226 @@
+# /etc/rc.status
+# Definition of boot script return messages
+#
+# The bootscripts should use the variables rc_done and rc_failed to
+# report whether they failed or succeeded. See /etc/init.d/skeleton for
+# an example how the shell functions rc_status and rc_reset are used.
+#
+# These functions make use of the variables rc_done and rc_failed;
+# rc_done_up and rc_failed_up are the same as rc_done and rc_failed
+# but contain a terminal code to move up one line before the output
+# of the actual string. (This is particularly useful when the script
+# starts a daemon which produces user output with a newline character)
+#
+# The variable rc_reset is used by the master resource control script
+# /etc/init.d/rc to turn off all attributes and switch to the standard
+# character set.
+#
+# \033 ascii ESCape
+# \033[G move to column (linux console, xterm, not vt100)
+# \033[C move columns forward but only upto last column
+# \033[D move columns backward but only upto first column
+# \033[A move rows up
+# \033[B move rows down
+# \033[1m switch on bold
+# \033[31m switch on red
+# \033[32m switch on green
+# \033[33m switch on yellow
+# \033[m switch on color/bold
+# \017 exit alternate mode (xterm, vt100, linux console)
+# \033[10m exit alternate mode (linux console)
+# \015 carriage return (without newline)
+#
+
+# check whether splash screen animations are installed.
+_rc_splash=0
+test -x /bin/splash && _rc_splash=1
+
+if test -z "$LINES" -o -z "$COLUMNS" ; then
+ eval `stty size 2>/dev/null | (read L C; \
+ echo LINES=${L:-24} COLUMNS=${C:-80})`
+fi
+test $LINES -eq 0 && LINES=24
+test $COLUMNS -eq 0 && COLUMNS=80
+export LINES COLUMNS
+
+if test -t 1 -a "$TERM" != "raw" -a "$TERM" != "dumb" && stty size > /dev/null 2>&1 ; then
+ esc=`echo -en "\033"`
+ extd="${esc}[1m"
+ warn="${esc}[1;31m"
+ done="${esc}[1;32m"
+ attn="${esc}[1;33m"
+ norm=`echo -en "${esc}[m\017"`
+ stat=`echo -en "\015${esc}[${COLUMNS}C${esc}[10D"`
+
+ rc_done="${stat}${done}done${norm}"
+ rc_running="${stat}${done}running${norm}"
+ rc_failed="${stat}${warn}failed${norm}"
+ rc_missed="${stat}${warn}missing${norm}"
+ rc_skipped="${stat}${attn}skipped${norm}"
+ rc_dead="${stat}${warn}dead${norm}"
+ rc_unused="${stat}${extd}unused${norm}"
+ rc_unknown="${stat}${attn}unknown${norm}"
+ rc_done_up="${esc}[1A${rc_done}"
+rc_failed_up="${esc}[1A${rc_failed}"
+ rc_reset="${norm}"
+ rc_save="${esc}7"
+ rc_restore="${esc}8"
+ function rc_cuu () { echo -en "\033[${1}A"; }
+else
+ esc=""
+ extd=""
+ warn=""
+ done=""
+ attn=""
+ norm=""
+ stat=""
+
+ rc_done="..done"
+ rc_running="..running"
+ rc_failed="..failed"
+ rc_missed="..missing"
+ rc_skipped="..skipped"
+ rc_dead="..dead"
+ rc_unused="..unused"
+ rc_unknown="..unknown"
+ rc_done_up="${rc_done}"
+rc_failed_up="${rc_failed}"
+ rc_reset=""
+ rc_save=""
+ rc_restore=""
+ function rc_cuu () { return; }
+fi
+
+_rc_status=0
+_rc_status_all=0
+_rc_todo=$1
+function rc_check ()
+{
+ _rc_check_ret=$?
+ test $_rc_check_ret -eq 0 || _rc_status=$_rc_check_ret
+ test $_rc_status -eq 0 || _rc_status_all=$_rc_status
+ return $_rc_check_ret
+}
+function rc_reset ()
+{
+ _rc_status=0
+ _rc_status_all=0
+ rc_check
+ return 0
+}
+
+if test "$_rc_todo" = "status" ; then
+function rc_status ()
+{
+ rc_check
+ for i ; do
+ case "$i" in
+ -v|-v[1-9]|-v[1-9][0-9])
+ echo -en "$rc_save"
+ test -n "${i#-v}" && rc_cuu ${i#-v}
+ case "$_rc_status" in
+ 0) echo -en "$rc_running" ;; # service running
+ 1) echo -en "$rc_dead" 1>&2 ;; # service dead (but has pid file)
+ 2) echo -en "$rc_dead" 1>&2 ;; # service dead (but has lock file)
+ 3) echo -en "$rc_unused" ;; # service not running
+ 4) echo -en "$rc_unknown" ;; # status is unknown
+ esac
+ echo -en "$rc_restore"
+ test -z "${i#-v}" && echo ;;
+ -r) rc_reset ;;
+ -s) echo -e "$rc_skipped" ; rc_failed 3 ;;
+ -u) echo -e "$rc_unused" ; rc_failed 3 ;;
+ *) echo "rc_status: Usage: [-v[] [-r]|-s|-u]" 1>&2 ; return 0 ;;
+ esac
+ done
+ return $_rc_status
+}
+elif test -n "$_rc_todo" ; then
+function rc_status ()
+{
+ rc_check
+ test "$_rc_status" -gt 7 && rc_failed 1
+ case "$_rc_todo" in
+ stop)
+ # program is not running which
+ # is success if we stop service
+ test "$_rc_status" -eq 7 && rc_failed 0 ;;
+ esac
+ for i ; do
+ case "$i" in
+ -v|-v[1-9]|-v[1-9][0-9])
+ echo -en "$rc_save"
+ test -n "${i#-v}" && rc_cuu ${i#-v}
+ case "$_rc_status" in
+ 0) echo -en "$rc_done" ;; # success
+ 1) echo -en "$rc_failed" 1>&2 ;; # generic or unspecified error
+ 2) echo -en "$rc_failed" 1>&2 ;; # invalid or excess args
+ 3) echo -en "$rc_missed" 1>&2 ;; # unimplemented feature
+ 4) echo -en "$rc_failed" 1>&2 ;; # insufficient privilege
+ 5) echo -en "$rc_skipped" 1>&2 ;; # program is not installed
+ 6) echo -en "$rc_unused" 1>&2 ;; # program is not configured
+ 7) echo -en "$rc_failed" 1>&2 ;; # program is not running
+ *) echo -en "$rc_failed" 1>&2 ;; # unknown (maybe used in future)
+ esac
+ echo -en "$rc_restore"
+ test -z "${i#-v}" && echo ;;
+ -r) rc_reset ;;
+ -s) echo -e "$rc_skipped" 1>&2 ; rc_failed 5 ;;
+ -u) echo -e "$rc_unused" 1>&2 ; rc_failed 6 ;;
+ *) echo "rc_status: Usage: [-v[] [-r]|-s|-u]" 1>&2 ; return 0 ;;
+ esac
+ done
+ return $_rc_status
+}
+else
+function rc_status ()
+{
+ rc_check
+ for i ; do
+ case "$i" in
+ -v|-v[1-9]|-v[1-9][0-9])
+ echo -en "$rc_save"
+ test -n "${i#-v}" && rc_cuu ${i#-v}
+ test $_rc_status -gt 0 && echo -en "$rc_failed" || echo -en "$rc_done"
+ echo -en "$rc_restore"
+ test -z "${i#-v}" && echo ;;
+ -r) rc_reset ;;
+ -s) echo -e "$rc_skipped" ; return 0 ;;
+ -u) echo -e "$rc_unused" ; return 0 ;;
+ *) echo "rc_status: Usage: [-v[] [-r]|-s|-u]" 1>&2 ; return 0 ;;
+ esac
+ done
+ return $_rc_status
+}
+fi
+
+function rc_failed ()
+{
+ rc_reset
+ case "$1" in
+ [0-7]) _rc_status=$1 ;;
+ "") _rc_status=1
+ esac
+ rc_check
+ return $_rc_status
+}
+
+function rc_exit ()
+{
+ exit $_rc_status_all
+}
+
+function rc_splash()
+{
+ test "$BOOT_SPLASH" != "no" && test "$_rc_splash" -eq 1 && /bin/splash "$1"
+}
+
+function rc_active ()
+{
+ for x in /etc/init.d/*.d/S[0-9][0-9]${1} ; do
+ test -e $x || break
+ return 0
+ done
+ return 1
+}
+
diff --git a/stta/feedback.cgi b/stta/feedback.cgi
new file mode 100755
index 0000000..6bb8289
--- /dev/null
+++ b/stta/feedback.cgi
@@ -0,0 +1,495 @@
+#!/usr/bin/perl
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+# Send the webmin feedback form
+
+require './stta-lib.pl';
+do "config_info.pl";
+do "ldap-lib.pl";
+
+&init_config();
+&load_dataconf();
+&ReadParseMime();
+&error_setup($text{'feedback_err'});
+$access{'feedback'} || &error($text{'feedback_ecannot'});
+&load_more_text('feedback');
+&foreign_require("proc", "proc-lib.pl");
+@procs = &foreign_call("proc", "list_processes");
+
+$findOps="-maxdepth 1 -type f"; # this for find no to scan or report subdirs
+# Construct the email body
+$in{'text'} =~ s/\r//g;
+$date = localtime(time());
+$ver = &get_webmin_version();
+&get_miniserv_config(\%miniserv);
+if ($in{'name'} && $in{'email'}) {
+ $from = "$in{'name'} <$in{'email'}>";
+ $email = $in{'email'};
+ }
+elsif ($in{'email'}) {
+ $email = $from = $in{'email'};
+ }
+else {
+ $email = $from = "feedback\@".&get_system_hostname();
+ }
+local $m = $in{'module'};
+local $m="stta";
+$m || !$in{'config'} || &error($text{'feedback_emodule'});
+&check_os_support($m) && $m !~ /\.\./ || &error($text{'feedback_emodule2'});
+
+ &headerstta($text{'feedback_title'}, "", "feedback" ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+
+%minfo = &get_module_info($m);
+if ($gconfig{'nofeedbackcc'}) {
+ @tolist = ( $config{'feedback_to'} ? $config{'feedback_to'} : "");
+ }
+else {
+ @tolist = split(/\s+/, $in{'to'});
+ }
+@tolist || &error($text{'feedback_enoto'});
+foreach $t (@tolist) {
+ $headers .= "To: $t\n";
+ }
+$headers .= "From: $from\n";
+$headers .= "Subject: $text{'feedback_title'}\n";
+%minfo=&load_minfo();
+
+$alnum=0;
+$nameAttach[$alnum] = "mail-text"; $alnum++;
+if ( ! $in{dirname} ) {
+ $attach[0] = </dev/null)";
+ &run_cmd();
+ push(@files, "$temp_d/stta_etc.tar.gz");
+ $str="(cd $root_directory/stta; ./brandmgr.pl > $temp_d/brandinfo.html )";
+ &run_cmd();
+ push(@files, "$temp_d/brandinfo.html");
+ $str="(cd $root_directory/stta; tar cf $temp_d/brandinfo.tar .brandinfofile* ; $config{ziptool} $temp_d/brandinfo.tar 2>/dev/null)";
+ &run_cmd();
+ push(@files, "$temp_d/brandinfo.tar.gz");
+ }
+ if ($in{'backups'} && !$gconfig{'nofeedbackconfig'}) {
+ $config{output_cgis}=0;
+ system("mkdir $temp_d/backups");
+ system("mkdir $temp_d/backups/tta");
+ system("chmod -R 777 $temp_d"); # ldif I-planet need it
+ $str=$config{'tta_backup'}." $temp_d/backups/tta -nodocroot"; # avoid docroot
+ &run_cmd();
+ system("mkdir $temp_d/backups/ldap");
+ system("chmod -R 777 $temp_d/backups/ldap"); # ldif I-planet need it
+ $str=$config{'ldap_backup'}." $temp_d/backups/ldap";
+ &run_cmd();
+ if ( $config{'is_ldapcache'} eq "true" ) {
+ system("mkdir $temp_d/backups/ldapcache");
+ system("chmod -R 777 $temp_d/backups/ldapcache"); # ldif I-planet need it
+ $str=$config{'ldapcache_backup'}." $temp_d/backups/ldapcache";
+ &run_cmd();
+ }
+ $str="(cd $temp_d; tar cf backups.tar backups; $config{ziptool} backups.tar)";
+ &run_cmd();
+ push(@files, "$temp_d/backups.tar.gz");
+ }
+ if ($in{'dbs'} && !$gconfig{'nofeedbackconfig'}) {
+ $config{output_cgis}=0;
+ system("mkdir $temp_d/dbs");
+ system("chmod -R 777 $temp_d"); # ldif I-planet need it
+ $str=$config{'tta_backup'}." $temp_d/dbs ens ";
+ &run_cmd();
+ $str=$config{'ldap_ldif'}." $temp_d/dbs/ldap.ldif";
+ &run_cmd();
+ if ( $config{'is_ldapcache'} eq "true" ) {
+ $str=$config{'ldapcache_ldif'}." $temp_d/dbs/ldapcache.ldif";
+ &run_cmd();
+ }
+ $str="(cd $temp_d; tar cf dbs.tar dbs; $config{ziptool} dbs.tar)";
+ &run_cmd();
+ push(@files, "$temp_d/dbs.tar.gz");
+ }
+ if ($in{'logs'} && !$gconfig{'nofeedbackconfig'}) {
+ $config{output_cgis}=0;
+ $n=$in{tailn}+0;
+ system("mkdir $temp_d/logs");
+ $str="tail -n $n $webmin_logfile >$temp_d/logs/webmin.log";
+ &run_cmd();
+ $fpath=$config{stta_logdir};
+ if ( -d $fpath && $fpath ne "" ) {
+ system("mkdir $temp_d/logs/stta");
+ opendir(DIR, $fpath);
+ foreach $f (readdir(DIR)) {
+ next if ( -d $f );
+ $str="tail -n $n $fpath/$f >$temp_d/logs/stta/$f";
+ &run_cmd();
+ }
+ closedir(DIR);
+ }
+ system (" date>$temp_d/test");
+ local @st = stat("$temp_d/test");
+ if (@st) {
+ @tm = localtime(@st[9]-$in{timelog}*60);
+ $ftest= sprintf "%s%2.2d%2.2d%2.2d",
+ $tm[4]+1,$tm[3],$tm[2],$tm[1];
+ system ("touch -m $ftest $temp_d/test");
+ }
+ # getting webmin diff files
+ $fpath="$var_directory/diffs";
+ if ( -d $fpath && $fpath ne "" ) {
+ system("mkdir $temp_d/logs/diffs");
+ $str="cd $fpath | find . -newer $temp_d/test $findOps | cpio -pdum $temp_d/logs/diffs ";
+ &run_cmd();
+ }
+ # getting tmp webmin logs files
+ $fpath="/tmp/.webmin";
+ if ( -d $fpath && $fpath ne "" ) {
+ system("mkdir $temp_d/logs/webmin-tmp");
+ $str="cd $fpath; find . -newer $temp_d/test $findOps | cpio -pdum $temp_d/logs/webmin-tmp";
+ &run_cmd();
+ }
+ # getting tta logs
+ $fpath=$config{ttalog_path};
+ if ( -d $fpath && $fpath ne "" ) {
+ system("mkdir $temp_d/logs/tta");
+ $str="cd $fpath ; find . -newer $temp_d/test $findOps | cpio -pdum $temp_d/logs/tta";
+ &run_cmd();
+ }
+ # getting scancache logs
+ $fpath=$config{cache_debuglog_dir};
+ if ( -d $fpath && $fpath ne "" ) {
+ system("mkdir $temp_d/logs/cache");
+ $str="cd $fpath; find . -newer $temp_d/test $findOps | cpio -pdum $temp_d/logs/cache ";
+ &run_cmd();
+ }
+ # getting stta_sess logs
+ system("mkdir $temp_d/logs/sttasess");
+ system(" cp $config{'countsessout_file'} $config{'totalsessout_file'} $config{'osdataout_file'} $config{'tta_sessout_file'} $temp_d/logs/sttasess ");
+ #
+ $str="(cd $temp_d; tar cf logs.tar logs; $config{ziptool} logs.tar)";
+ &run_cmd();
+ push(@files, "$temp_d/logs.tar.gz");
+ }
+ if ($in{'config'} && !$gconfig{'nofeedbackconfig'}) {
+ # opendir(DIR, "$config_directory/$m/dataconf");
+ # next if ( $f =~ /^./ );
+ # foreach $f (readdir(DIR)) {
+ # push(@files, "$config_directory/$m/dataconf/$f");
+ # }
+ # closedir(DIR);
+ $str="(cd $config_directory/stta; tar cf $temp_d/stta_etc.tar . ; $config{ziptool} $temp_d/stta_etc.tar 2>/dev/null)";
+ &run_cmd();
+ push(@files, "$root_directory/$m/.brandinfofile");
+ push(@files, "$temp_d/stta_etc.tar.gz");
+ $ReportOut=$temp_d."/stta_report.html";
+ open (REPORTOUT,">$ReportOut");
+ if ( $ReportOut ) { select(REPORTOUT)}
+ print "\n";
+ print "\n";
+ print " $text{'titidx_sttareport'} ";
+ print " \n";
+ print "Webmin $ver - $hostname - $ostr";
+ print " \n";
+ print "\n";
+ &make_STTA_Report();
+ if ( $ReportOut ) { select(REPORTOUT)}
+ print "\n";
+ print "
\n";
+ if ( $ReportOut ) { $| =1; select(STDOUT);}
+ push(@files, "$ReportOut");
+ }
+
+ @files = &unique(@files);
+
+ # Attach those config files that are plain text (less than 5%
+ # non-ascii characters). Also skip logfiles.
+ foreach $f (@files) {
+ next if (!$f || -d $f);
+ next if ($f =~ /\/var\/log\//);
+ local $/ = undef;
+ open(FILE, $f) || next;
+ local $data = ;
+ close(FILE);
+# local $count = ($data =~ tr/[\000-\176]/[\000-\176]/);
+# if (!length($data) || 100*$count / length($data) > 95) {
+ # File is text
+ local $a;
+ local $sf = &short_name($f);
+ if ( ! $in{dirname} ) {
+ $a .= "Content-Type: text/plain; name=\"$sf\"\n";
+ $a .= "Content-Transfer-Encoding: 7bit\n";
+ $a .= "\n";
+ }
+ $a .= $data;
+ $nameAttach[$alnum] = "$sf"; $alnum++;
+ push(@attach, $a);
+# }
+ }
+
+# Include uploaded attached files
+foreach $u ('attach0', 'attach1') {
+ if ($in{$u} ne '') {
+ local $a;
+ local $name = &short_name($in{"${u}_filename"});
+ local $type = $in{"${u}_content_type"};
+ $type = &guess_type($name) if (!$type);
+ if ( ! $in{dirname} ) {
+ $a .= "Content-type: $type; name=\"$name\"\n";
+ $a .= "Content-Transfer-Encoding: base64\n";
+ $a .= "\n\n";
+ $a .= &encode_base64($in{$u});
+ } else { system("cp $in{u} $in{dirname}/$name 2>/dev/null"); }
+ $nameAttach[$alnum] = "$name"; $alnum++;
+ push(@attach, $a);
+ }
+ }
+
+
+if ( $in{'dirname'} ) {
+ # pack in dirname
+ $i=0;
+ foreach $a (@attach) {
+ open (FILEMAIL, ">$in{dirname}/$nameAttach[$i]");
+ print FILEMAIL $a;
+ close (FILEMAIL);
+ $i++;
+ }
+ $sent=4;
+} else {
+ # Build the MIME email
+ $bound = "bound".time();
+ $mail = $headers;
+ $mail .= "Content-Type: multipart/mixed; boundary=\"$bound\"\n";
+ $mail .= "MIME-Version: 1.0\n";
+ $mail .= "\n";
+ $mail .= "This is a multi-part message in MIME format.\n";
+ foreach $a (@attach) {
+ $mail .= "\n--".$bound."\n";
+ $mail .= $a;
+ }
+ $mail .= "\n--".$bound."--\n";
+}
+if (!$in{'mailserver_def'} && !$in{'dirname'}) {
+ $ok = &send_via_smtp($in{'mailserver'});
+ $sent = 3 if ($ok);
+ }
+
+if (!$sent) {
+ # Try to send the email by calling sendmail -t
+ %sconfig = &foreign_config("sendmail");
+ $sendmail = $sconfig{'sendmail_path'} ? $sconfig{'sendmail_path'}
+ : &has_command("sendmail");
+ if (-x $sendmail && open(MAIL, "| $sendmail -t")) {
+ print MAIL $mail;
+ if (close(MAIL)) {
+ $sent = 2;
+ }
+ }
+ }
+
+if (!$sent) {
+ # Try to connect to a local SMTP server
+ $ok = &send_via_smtp("localhost");
+ $sent = 1 if ($ok);
+ }
+
+if ($sent) {
+ # Tell the user that it was sent OK
+print " \n";
+ print "\n";
+ print " $text{'feedback_header'} \n";
+ print " \n";
+ $debug=4;
+ if ( -d $temp_d && $debug lt 4 ) { system("rm -r $temp_d}") }
+ print "\n";
+ if ($sent == 3) {
+ print &text('feedback_via', join(",", @tolist),
+ "$in{'mailserver'} "),"\n";
+ } elsif ($sent == 2) {
+ print &text('feedback_prog', join(",", @tolist),
+ "$sendmail "),"\n";
+ } elsif ($sent == 4) {
+ if ( $in{'packcmd'} ne "" ) {
+ $packCmd=$in{'packcmd'};
+ if ( $packCmd =~ /\$HOSTTIME/ ) {
+ @host_name = split(/\./,&get_system_hostname());
+ $host_time=$host_name[0]."_".&out_now_filename();
+ $packCmd =~ s/\$HOSTTIME/$host_time/g;
+ }
+ $str="(cd $in{'dirname'}; ".$packCmd.")";
+ &run_cmd();
+ }
+ print &text('feedback_dirname', $in{'dirname'})," ( $host_time ) \n";
+ } else {
+ print &text('feedback_via', join(",", @tolist),
+ "localhost "),"\n";
+ }
+ print "
\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+
+
+ # Save settings in config
+ $feedback{'feedback_name'} = $in{'name'};
+ $feedback{'feedback_email'} = $in{'email'};
+ $feedback{'feedback_dirname'} = $in{'dirname'};
+ $feedback{'feedback_packcmd'} = $in{'packcmd'};
+ $feedback{'feedback_mailserver'} =
+ $in{'mailserver_def'} ? undef : $in{'mailserver'};
+ &write_file("$config_directory/$m/dataconf/feedback", \%feedback);
+ }
+else {
+ # Give up! Tell the user ..
+ &error($text{'feedback_esend'});
+ }
+
+sub send_via_smtp
+{
+local $error;
+&open_socket($_[0], 25, MAIL, \$error);
+return 0 if ($error);
+&smtp_command(MAIL) || return 0;
+&smtp_command(MAIL, "helo ".&get_system_hostname()."\n") || return 0;
+&smtp_command(MAIL, "mail from: $email\n") || return 0;
+foreach $t (@tolist) {
+ &smtp_command(MAIL, "rcpt to: $t\n") || return 0;
+ }
+&smtp_command(MAIL, "data\n");
+print MAIL $mail;
+&smtp_command(MAIL, ".\n");
+&smtp_command(MAIL, "quit\n");
+close(MAIL);
+return 1;
+}
+
+# smtp_command(handle, command)
+sub smtp_command
+{
+local ($m, $c) = @_;
+print $m $c;
+local $r = <$m>;
+return $r =~ /^[23]\d+/;
+}
+
+sub guess_type
+{
+local $e;
+if (!%mime_types) {
+ open(MIME, "$root_directory/mime.types");
+ while() {
+ s/\r|\n//g;
+ s/#.*$//g;
+ local @s = split(/\s+/);
+ foreach $e (@s[1..$#s]) {
+ $mime_types{$e} = $s[0];
+ }
+ }
+ close(MIME);
+ }
+if ($_[0] =~ /\.([A-z0-9]+)$/ && $mime_types{$1}) {
+ return $mime_types{$1};
+ }
+return "application/octet-stream";
+}
+
+sub short_name
+{
+$_[0] =~ /([^\\\/]+)$/;
+return $1;
+}
+
diff --git a/stta/feedback_form.cgi b/stta/feedback_form.cgi
new file mode 100755
index 0000000..39c5606
--- /dev/null
+++ b/stta/feedback_form.cgi
@@ -0,0 +1,113 @@
+#!/usr/bin/perl
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+# feedback_form.cgi
+# Display a form so that the user can send in a webmin bug report
+
+require './stta-lib.pl';
+&init_config();
+&load_dataconf();
+&ReadParse();
+&error_setup($text{'feedback_err'});
+$access{'feedback'} || &error($text{'feedback_ecannot'});
+
+&load_more_text('feedback');
+
+&headerstta($text{'feedback_title'}, "", "feedback" ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print " \n";
+
+$fb = $config{'feedback_to'} ? $config{'feedback_to'}
+ : '';
+print &text('feedback_desc', "$fb "),"\n";
+print "$text{'feedback_desc2'}
\n" if (!$config{'feedback_to'});
+
+print "
\n";
+print "\n";
+print " $text{'feedback_header'} \n";
+print "
\n";
+print " \n";
+
+print " \n";
+do "footer.pl";
+exit;
+
+
diff --git a/stta/file_clean.cgi b/stta/file_clean.cgi
new file mode 100755
index 0000000..c764106
--- /dev/null
+++ b/stta/file_clean.cgi
@@ -0,0 +1,105 @@
+#!/usr/bin/perl
+# file_clean.cgi
+# Clean files for Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
+$postform = ($in{postform}) ? $in{postform} : "cleanfile";
+$cgiPost = ($in{cgiPost}) ? $in{cgiPost} : "file";
+$cgiName = ($in{cgiName}) ? $in{cgiName} : "file_clean.cgi";
+$wkdir = ($in{wkdir}) ? $in{wkdir} : eval("\$config{'$postform"."_path'}");
+if ( ! $in{fName} ) { &redirect("index.cgi"); }
+if ( $postform eq "filemgr" ) { $postform="cleanfile"; }
+$fName=$in{fName};
+$cmd=$in{cmd};
+if ( $in{fPerm} ) {
+ if ( substr($in{fPerm},0,1) ne "-" ) {
+ @l_target = split(/,/,$text{'f_perm_value'}, -1);
+ @l_target_tit = split(/,/,$text{'f_perm_desc'}, -1);
+ $nItems=0;
+ foreach $item (@l_target) {
+ if ( $l_target_tit[$nItems] eq $in{fPerm} ) {
+ $fMode=$l_target_tit{$nItems};
+ $fPerm=substr($fMode,2,1);
+ last;
+ }
+ $nItems++;
+ }
+ } else {
+ $fMode=$in{fPerm};
+ $fPerm=substr($fMode,2,1);
+ }
+}
+$filePerm = ($in{filePerm}) ? $in{filePerm} : $fMode;
+$perm=$in{perm};
+if ( $perm ne "new" && substr($in{fPerm},1,3) eq "rwx" ) { $perm="all"; }
+
+&headerstta(eval("\$text{'index_$postform'}"), "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+if ( $perm ne "read" && $fPerm eq "w" ) {
+ print " \n";
+ print "\n";
+ print "\n";
+}
+
+print "\n";
+print " ";
+if ( $postform ne "cleanfile" ) { print $text{'clean'}; }
+print " ".eval("\$text{'titidx_$postform'}")." \n";
+print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ do "footer.pl";
+ exit;
+
+
diff --git a/stta/file_deflists.cgi b/stta/file_deflists.cgi
new file mode 100755
index 0000000..83694a8
--- /dev/null
+++ b/stta/file_deflists.cgi
@@ -0,0 +1,73 @@
+#!/usr/bin/perl
+# file_deflists.cgi
+# Select Definiton Object list
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+
+ &ReadParse();
+ $postform = ($in{form}) ? $in{form} : "showlist";
+ &headerstta($text{"index_".$postform}, "", $postform,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ print "
\n";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "
\n";
+ print " ".$text{"titidx_".$postform}." \n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
+
+
diff --git a/stta/file_del.cgi b/stta/file_del.cgi
new file mode 100755
index 0000000..c69cf08
--- /dev/null
+++ b/stta/file_del.cgi
@@ -0,0 +1,103 @@
+#!/usr/bin/perl
+# file_del.cgi
+# Delete file for Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
+$postform = ($in{postform}) ? $in{postform} : "delfile";
+$cgiPost = ($in{cgiPost}) ? $in{cgiPost} : "file";
+$cgiName = ($in{cgiName}) ? $in{cgiName} : "file_del.cgi";
+$wkdir = ($in{wkdir}) ? $in{wkdir} : eval("\$config{'$postform"."_path'}");
+if ( ! $in{fName} ) { &redirect("index.cgi"); }
+if ( $postform eq "filemgr" ) { $postform="delfile"; }
+$fName=$in{fName};
+$cmd=$in{cmd};
+if ( $in{fPerm} ) {
+ if ( substr($in{fPerm},0,1) ne "-" ) {
+ @l_target = split(/,/,$text{'f_perm_value'}, -1);
+ @l_target_tit = split(/,/,$text{'f_perm_desc'}, -1);
+ $nItems=0;
+ foreach $item (@l_target) {
+ if ( $l_target_tit[$nItems] eq $in{fPerm} ) {
+ $fMode=$l_target_tit{$nItems};
+ $fPerm=substr($fMode,2,1);
+ last;
+ }
+ $nItems++;
+ }
+ } else {
+ $fMode=$in{fPerm};
+ $fPerm=substr($fMode,2,1);
+ }
+}
+$perm=$in{perm};
+if ( $perm ne "new" && substr($in{fPerm},1,3) eq "rwx" ) { $perm="all"; }
+
+&headerstta(eval("\$text{'index_$postform'}"), "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+if ( $perm ne "read" && $fPerm eq "w" ) {
+ print "
\n";
+ print "\n";
+ print "\n";
+}
+
+print "\n";
+print " ";
+if ( $postform ne "delfile" ) { print $text{'delete'}; }
+print " ".eval("\$text{'titidx_$postform'}")." \n";
+print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ do "footer.pl";
+ exit;
+
+
diff --git a/stta/file_manager.cgi b/stta/file_manager.cgi
new file mode 100755
index 0000000..10c8fd2
--- /dev/null
+++ b/stta/file_manager.cgi
@@ -0,0 +1,219 @@
+#!/usr/bin/perl
+# file_manager.cgi
+# Select file from list files for Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
+$postform = ($in{postform}) ? $in{postform} : "filemgr";
+$cgiPost = ($in{cgiPost}) ? $in{cgiPost} : "file";
+$cgiName = ($in{cgiName}) ? $in{cgiName} : "file_manager.cgi";
+$sort_on = ($in{sort_on}) ? $in{sort_on} : "default";
+$ls_match = ($in{ls_cmd}) ? $in{ls_cmd} : " ";
+$perm = ($in{perm}) ? $in{perm} : "read";
+$wkdir = ($in{wkdir}) ? $in{wkdir} : eval("\$config{'$postform"."_path'}");
+&headerstta(eval("\$text{'index_$postform'}"), "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+ print "
\n";
+ print "\n";
+ print "\n";
+
+print "\n";
+print " ";
+if ( $postform ne "filemgr" ) { print $text{'select'}; }
+print " ".eval("\$text{'titidx_$postform'}")." \n";
+
+if ( ! -d $wkdir || $wkdir eq "" ) {
+ print "";
+ print &text('file_errdir',$wkdir);
+ print " ";
+ &footHere;
+ exit 1;
+ }
+ %h_files=&list_files($wkdir,$ls_match);
+ foreach $item (keys (%h_files)) { push (@all_filelists, $h_files{$item}); }
+ print " $wkdir -- $text{'l_orderby'} ";
+ if ($sort_on eq "name") {
+ @filelists = sort {$a->{$sort_on} cmp $b->{$sort_on}} @all_filelists;
+ print $text{f_fname} . "\n";
+ }
+ elsif ($sort_on eq "size") {
+ @filelists = sort {$a->{$sort_on} <=> $b->{$sort_on}} @all_filelists;
+ print $text{f_fsize} . "\n";
+ }
+ elsif ($sort_on eq "day") {
+ @filelists = sort {$a->{$sort_on} <=> $b->{$sort_on}} @all_filelists;
+ print $text{f_fday} . "\n";
+ }
+ elsif ($sort_on eq "month") {
+ @filelists = sort {$a->{$sort_on} cmp $b->{$sort_on}} @all_filelists;
+ print $text{f_fmonth} . "\n";
+ }
+ elsif ($sort_on eq "time") {
+ @filelists = sort {$a->{$sort_on} cmp $b->{$sort_on}} @all_filelists;
+ print $text{f_ftime} . "\n";
+ }
+ elsif ($sort_on eq "owner") {
+ @filelists = sort {$a->{$sort_on} cmp $b->{$sort_on}} @all_filelists;
+ print $text{f_fowner} . "\n";
+ }
+ elsif ($sort_on eq "group") {
+ @filelists = sort {$a->{$sort_on} cmp $b->{$sort_on}} @all_filelists;
+ print $text{f_fgroup} . "\n";
+ }
+ elsif ($sort_on eq "perm") {
+ @filelists = sort {$a->{$sort_on} cmp $b->{$sort_on}} @all_filelists;
+ print $text{f_fperm} . "\n";
+ }
+ elsif ($sort_on eq "default") {
+ @filelists = @all_filelists;
+ print $text{f_fdefault} . "\n";
+ }
+ print " \n";
+ print "\n";
+
+ print " ";
+ print " \n";
+ print "";
+ print " \n";
+ print "";
+ print " \n";
+ print "";
+ print " \n";
+ print "";
+ print " \n";
+ print "";
+ print " \n";
+ print "";
+ print " \n";
+ print "";
+ print " \n";
+
+ $lnum=0;
+ foreach $filelist (@filelists) {
+ $fName=$filelist->{name};
+ next if ( $fName eq "" || $fname eq "." || $fname eq ".." );
+ $fPerm=$filelist->{perm};
+ print "";
+ if ( $filelist->{perm} =~ /^d/) {
+ print " ";
+ print "" . $filelist->{size}." ";
+ print "" . $filelist->{day}." ";
+ print "" . $filelist->{month}." ";
+ print "" . $filelist->{time}." ";
+ print "" . $filelist->{owner}." ";
+ print "" . $filelist->{group}." ";
+ print "" . $filelist->{perm}." ";
+ print "\n";
+ $lnum++;
+ }
+ print "
\n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
+
+
+
diff --git a/stta/file_mod.cgi b/stta/file_mod.cgi
new file mode 100755
index 0000000..89aa179
--- /dev/null
+++ b/stta/file_mod.cgi
@@ -0,0 +1,225 @@
+#!/usr/bin/perl
+# file_mod.cgi
+# Select file from list files for Services with Tarantella
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
+$postform = ($in{postform}) ? $in{postform} : "modfile";
+$cgiPost = ($in{cgiPost}) ? $in{cgiPost} : "file";
+$cgiName = ($in{cgiName}) ? $in{cgiName} : "file_mod.cgi";
+$wkdir = ($in{wkdir}) ? $in{wkdir} : eval("\$config{'$postform"."_path'}");
+if ( ! $in{fName} && ! $in{kf}) { &redirect("file_manager.cgi"); }
+if ( $postform eq "filemgr" ) { $postform="modfile"; }
+$cmd=$in{cmd} || "";
+$kf=$in{kf};
+if ( $kf ) {
+ eval ("\$kfName=\$config{$kf.\"_name\"}");
+ if ( $kfName ) {
+ eval ("\$kfPerm=\$config{$kf.\"_fperm\"}");
+ eval ("\$kperm=\$config{$kf.\"_perm\"}");
+ eval ("\$ktail=\$config{$kf.\"_tail\"}");
+ }
+}
+$fName=$kfName || $in{fName};
+$fPerm=$kfPerm || $in{fPerm} || "0600";
+$perm=$kperm || $in{perm} || "read";
+$tail= $ktail || $in{tail} || $config{filemgr_tail} || 0;
+$NrowsArea=$config{filemgr_rows} || "22";
+$NcolsArea=$config{filemgr_cols} || "130";
+
+&headerstta(eval("\$text{'index_$postform'}"), "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+if ( $fPerm ) {
+ if ( substr($fPerm,0,1) ne "-" ) {
+ @l_target = split(/,/,$text{'f_perm_value'}, -1);
+ @l_target_tit = split(/,/,$text{'f_perm_desc'}, -1);
+ $nItems=0;
+ foreach $item (@l_target) {
+ if ( $item eq $fPerm ) {
+ $fMode=$l_target_tit[$nItems];
+ $fPerm=substr($fMode,2,1);
+ last;
+ }
+ print $l_target_tit{$nItems};
+ $nItems++;
+ }
+ } else {
+ $fMode=$fPerm;
+ $fPerm=substr($fMode,2,1);
+ }
+}
+if ( $perm ne "new" && substr($fPerm,1,3) eq "rwx" ) { $perm="all"; }
+#if ( $tail ne 0 ) { $perm="read"; }
+
+if ( $perm ne "read" && $fPerm eq "w" ) {
+ print "
\n";
+ print "\n";
+ print "\n";
+}
+
+print "\n";
+print " ";
+if ( $postform ne "modfile" ) { print $text{'modify'}; }
+print " ".eval("\$text{'titidx_$postform'}")." \n";
+print " \n";
+if ( $perm ne "read" && $fPerm eq "w" ) {
+ print "\n";
+ print "";
+} elsif ( $perm eq "read" || $fPerm ne "w" ) {
+ print "\n";
+}
+ $lnum = 0;
+ $f_path=$wkdir."/".$fName;
+ if ( $tail ne 0 ) {
+ $nlines=0;
+ open(FILELIST, $f_path);
+ while() { $nlines++; }
+ close(FILELIST);
+ $tailLine=$nlines-$tail-1;
+ }
+ open(FILELIST, $f_path);
+ while() {
+ s/\r|\n//g;
+ $lnum++;
+ if ( $tail eq 0 || $nlines < $tail || $lnum > $tailLine ) { print "$_\n";}
+ }
+ close(FILELIST);
+ if ( $perm eq "read" || $fPerm ne "w" ) { print " \n"; }
+ if ( $perm ne "read"|| $fPerm eq "w" ) { print "\n"; }
+ if ( $tail ne 0 ) {
+ &webmin_log("$text{tail} ($tail) ","file","$f_path $fMode");
+ } else {
+ &webmin_log("$text{view} ($perm) ","file","$f_path $fMode");
+ }
+
+ print " \n";
+ print "$wkdir /$fName \n";
+ print " \n";
+ if ( $tail ne 0 ) { print " ($text{tail} $tail ) "; }
+ print " ".&text(l_total,$lnum)." ";
+ if ( $debug gt 0 ) { print " ($fMode) ";}
+ print " \n";
+ print "
\n";
+ if ( $perm ne "read" ) {
+ print " \n";
+ print " \n";
+ print " \n";
+ print " \n";
+ print " \n";
+ print " \n";
+ print " ",&hlink("$text{'f_filelistName'} ","ffilelistName")," \n";
+ if ( $perm eq "new" ) {
+ if ( $fName eq "." ) { $fName="" ;}
+ print " \n";
+ print " \n";
+ } else {
+ print " \n";
+ print " $fName \n";
+ }
+ print " ",&hlink("$text{'f_fperm'} ","ffperm")," \n";
+ print " \n";
+ print " ",&hlink("$text{'f_perm_sel'} ","fperm_sel"),"\n";
+ @l_target = split(/,/,$text{'f_perm_value'}, -1);
+ @l_target_tit = split(/,/,$text{'f_perm_desc'}, -1);
+ $nItems=0;
+ foreach $item (@l_target) {
+ print " $l_target_tit[$nItems]\n";
+ $nItems++;
+ }
+ print " \n";
+ if ( $perm ne "new" ) {
+ if ( $perm eq "run" || $perm eq "all" ) {
+ print " \n";
+ }
+ if ( $perm eq "modify"|| $perm eq "all" || $fPerm eq "w" ) {
+ print " \n";
+ }
+ if ( $perm eq "delete" || $perm eq "all" || $fPerm eq "w" ) {
+ print " \n";
+ print " \n";
+ }
+ if ( $perm eq "clean" || $perm eq "all" || $fPerm eq "w" ) {
+ print " \n";
+ }
+ }
+ print "
\n";
+}
+
+# print " $wkdir \n";
+
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
+
diff --git a/stta/file_showlist.cgi b/stta/file_showlist.cgi
new file mode 100755
index 0000000..f133e78
--- /dev/null
+++ b/stta/file_showlist.cgi
@@ -0,0 +1,168 @@
+#!/usr/bin/perl
+# file_showlist.cgi
+# Show List files from STTA
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
+$postform = ($in{postform}) ? $in{postform} : "showlist";
+$cgiPost = ($in{cgiPost}) ? $in{cgiPost} : "file";
+$cgiName = ($in{cgiName}) ? $in{cgiName} : "file_showlist.cgi";
+$wkdir = ($in{wkdir}) ? $in{wkdir} : eval("\$config{'stta_defslist'}");
+if ( ! $in{fName} && ! $in{fExt} ) { &redirect("index.cgi"); }
+if ( $postform eq "filemgr" ) { $postform="showlist"; }
+$fName=$in{fName};
+$fExt=$in{fExt};
+if ( ! $in{fName} ) {
+ if ( $fExt eq "ous" ) { $fName=$config{ou_list}}
+ elsif ( $fExt eq "grphosts" ) {$fName= $config{grphosts_list}}
+ elsif ( $fExt eq "hosts" ) { $fName=$config{hosts_list}}
+ elsif ( $fExt eq "hostsuser" ) { $fName=$config{hostsuser_list}}
+ elsif ( $fExt eq "profcache" ) { $fName=$config{profcache_list}}
+ elsif ( $fExt eq "apps" ) { $fName=$config{apps_list}}
+ elsif ( $fExt eq "grpapps" ) { $fName=$config{grpapps_list}}
+ elsif ( $fExt eq "domains" ) { $fName=$config{domains_list}}
+ elsif ( $fExt eq "links" ) { $fName=$config{links_list}}
+ elsif ( $fExt eq "actions" ) { $fName=$config{acts_list}}
+ elsif ( $fExt eq "webtops" ) { $fName=$config{tta_webtops}}
+}
+if ( ! $in{fExt} ) {
+ if ( $config{ou_list} =~ /$fName$/ ) { $fExt="ous" }
+ elsif ( $config{grphosts_list} =~ /$fName$/ ) { $fExt="grphosts" }
+ elsif ( $config{hosts_list} =~ /$fName$/) { $fExt="hosts" }
+ elsif ( $config{hostsuser_list} =~ /$fName$/) { $fExt="hostsuser" }
+ elsif ( $config{profcache_list} =~ /$fName$/) { $fExt="profcache" }
+ elsif ( $config{apps_list} =~ /$fName$/) { $fExt="apps" }
+ elsif ( $config{grpapps_list} =~ /$fName$/) { $fExt="grpapps" }
+ elsif ( $config{domains_list} =~ /$fName$/) { $fExt="domains" }
+ elsif ( $config{links_list} =~ /$fName$/) { $fExt="links" }
+ elsif ( $config{acts_list} =~ /$fName$/) { $fExt="actions" }
+ elsif ( $config{tta_webtops} =~ /$fName$/) { $fExt="webtops" }
+}
+$fExtName=$text{"index_".$fExt};
+$cmd=$in{cmd};
+if ( $in{fPerm} ) {
+ if ( substr($in{fPerm},0,1) ne "-" ) {
+ @l_target = split(/,/,$text{'f_perm_value'}, -1);
+ @l_target_tit = split(/,/,$text{'f_perm_desc'}, -1);
+ $nItems=0;
+ foreach $item (@l_target) {
+ if ( $l_target_tit[$nItems] eq $in{fPerm} ) {
+ $fMode=$l_target_tit{$nItems};
+ $fPerm=substr($fMode,2,1);
+ last;
+ }
+ $nItems++;
+ }
+ } else {
+ $fMode=$in{fPerm};
+ $fPerm=substr($fMode,2,1);
+ }
+}
+$filePerm = ($in{filePerm}) ? $in{filePerm} : $fMode;
+$perm=$in{perm};
+if ( $perm ne "new" && substr($in{fPerm},1,3) eq "rwx" ) { $perm="all"; }
+
+&headerstta(eval("\$text{'index_$postform'}"), "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+if ( $perm ne "read" && $fPerm eq "w" ) {
+ print "
\n";
+ print "\n";
+ print "\n";
+}
+
+print "\n";
+print " ";
+if ( $postform ne "showlist" ) { print $text{'showlist'}; }
+print " ".eval("\$text{'titidx_$postform'}")." \"$fExtName\" \n";
+print " \n";
+} else {
+ print " $fExt:" . $text{msg_1} . "\n";
+ }
+ print " ",&hlink("$text{'f_filelistName'} ","ffilelistName")," \n";
+ print " \n";
+ print " $fName \n";
+if ( $in{fName} ) {
+ print " ",&hlink("$text{'f_fperm'} ","ffperm")," \n";
+ @l_target = split(/,/,$text{'f_perm_value'}, -1);
+ @l_target_tit = split(/,/,$text{'f_perm_desc'}, -1);
+ $nItems=0;
+ foreach $item (@l_target) {
+ if ( $fMode eq $l_target_tit[$nItems] ) {
+ print " \n";
+ print "$l_target_tit[$nItems] \n";
+ last;
+ }
+ $nItems++;
+ }
+ print " \n";
+}
+# print " \n";
+# print " \n";
+# print " \n";
+ print " \n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ do "footer.pl";
+ exit;
+
+
diff --git a/stta/fixhosts.cgi b/stta/fixhosts.cgi
new file mode 100755
index 0000000..f6a4bf0
--- /dev/null
+++ b/stta/fixhosts.cgi
@@ -0,0 +1,55 @@
+#!/usr/bin/perl
+# fixhosts.cgi
+# ... Services with Tarantella.
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&headerstta("$text{'index_fixlists'}->host", "", "modhosts",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "
\n";
+
+ print "
\n";
+ print " $text{'titidx_modhosts'} \n";
+ print " \n";
+ print "\n";
+
+ %h_hosts=&list_hosts();
+ %h_grphosts=&list_grphosts();
+ foreach $item (keys (%h_hosts)) { push (@listhosts, $h_hosts{$item}); }
+ @list__hosts = sort {$a->{'name'} cmp $b->{'name'}} @listhosts;
+ &lock_file($config{'hosts_list'});
+ open(FILEHOSTS, ">$config{'hosts_list'}");
+ foreach $hosts (@list__hosts) {
+ $ensObj=$host->{'ens'};
+ $dnObj=$host->{'obj'};
+ $grpObj=$hosts->{'grpalias'};
+ $portAlive=$hosts->{'portalive'};
+ if ( $ensObj eq "" ) {
+ $ensObj=$h_grphosts{$grpObj}->{'ens'}."/cn=".$hosts->{'name'};
+ }
+ if ( $dnObj eq "" ) {
+ $dnObj="ou=".$hosts->{'name'}.",".$h_grphosts{$grpObj}->{'obj'};
+ }
+# if ( $portAlive eq "" ) {
+ $portAlive="21";
+# }
+ if ( $hosts->{'descrip'} eq "" ) {
+ $hosts->{'descrip'} = $hosts->{'name'};
+ }
+ $lin_hosts=$hosts->{'alias'}."::".$hosts->{'name'}."::".
+ $hosts->{'grpalias'}."::".$dnObj."::".
+ $ensObj."::".$hosts->{'ipname'}."::".
+ $hosts->{'maxsess'}."::".$portAlive."::".
+ $hosts->{'descrip'}."::\n";
+ print FILEHOSTS "$lin_hosts";
+ }
+ close (FILEHOSTS);
+ &unlock_file($config{'hosts_list'});
+ print "".$text{'user_update'}."
\n";
+ print " \n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
diff --git a/stta/fixobjs.cgi b/stta/fixobjs.cgi
new file mode 100755
index 0000000..58ce3f0
--- /dev/null
+++ b/stta/fixobjs.cgi
@@ -0,0 +1,104 @@
+#!/usr/bin/perl
+# fixobjs.cgi
+# ... Services with Tarantella.
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+require './stta-lib.pl';
+&ReadParse();
+$objtype=$in{obj} || "";
+if ( $objtype eq "" ) { &redirect("fixobjs.cgi"); }
+&headerstta("$text{'index_fixlists'}->$obj", "", "mod-$obj",undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
+print "
\n";
+
+ $listObjs=$objtype."_list";
+
+ print "
\n";
+ print " Fix $listObjs \n";
+ print " \n";
+ print "\n";
+
+ if ( $objtype eq "ou" || $objectype eq "users" ) {
+ %h_objs=&list_ous();
+ } else { %h_objs=eval("\&list_$objtype()"); }
+ foreach $item (keys (%h_objs)) { push (@listobjs, $h_objs{$item}); }
+ @list__objs = sort {$a->{'name'} cmp $b->{'name'}} @listobjs;
+ &lock_file($config{$listObjs});
+ open(FILEOBJS, ">$config{$listObjs}");
+ foreach $item (@list__objs) {
+ if ( $item->{'descrip'} eq "" ) {
+ $item->{'descrip'} = $item->{'name'};
+ }
+ if ( $objtype eq "ou" ) {
+ $linitem=$item->{'alias'}."::".$item->{'name'}."::".
+ $item->{'obj'}."::".$item->{'ens'}."::".
+ $item->{'maxsess'}."::".$item->{'descrip'}."::";
+ }
+ if ( $objtype eq "apps" ) {
+ $linitem=$item->{'alias'}."::".$item->{'name'}."::".
+ $item->{'grpalias'}."::".$item->{'obj'}."::".
+ $item->{'ens'}."::".$item->{'maxsess'}."::".
+ $item->{'apptype'}."::".
+ $item->{'descrip'}."::";
+ }
+ if ( $objtype eq "grpapps" ) {
+ $linitem=$item->{'alias'}."::".$item->{'name'}."::".
+ $item->{'obj'}."::".$item->{'ens'}."::".
+ $item->{'maxsess'}."::".$item->{'descrip'}."::";
+ }
+ if ( $objtype eq "hosts" ) {
+ $linitem=$item->{'alias'}."::".$item->{'name'}."::".
+ $item->{'grpalias'}."::".$item->{'obj'}."::".
+ $item->{'ens'}."::".$item->{'ipname'}."::".
+ $item->{'maxsess'}."::".$item->{'portalive'}."::".
+ $item->{'descrip'}."::";
+ }
+ if ( $objtype eq "grphosts" ) {
+ $linitem=$item->{'alias'}."::".$item->{'name'}."::".
+ $item->{'obj'}."::".$item->{'ens'}."::".
+ $item->{'maxsess'}."::".$item->{'descrip'}."::";
+ }
+ if ( $objtype eq "domains" ) {
+ $linitem=$item->{'alias'}."::".$item->{'name'}."::".
+ $item->{'obj'}."::".$item->{'ens'}."::".
+ $item->{'maxsess'}."::".$item->{'descrip'}."::";
+ }
+ if ( $objtype eq "links" ) {
+ $linitem=$item->{'alias'}."::".$item->{'name'}."::".
+ $item->{'obj'}."::".$item->{'ens'}."::".
+ $item->{'maxsess'}."::".$item->{'descrip'}."::";
+ }
+ if ( $objtype eq "sysusers" ) {
+ $linitem=$item->{'name'}."::".$item->{'grpalias'}."::".
+ $item->{'ens'}."::".$item->{'maxsess'}."::".
+ $item->{'email'}."::".$item->{'where'}."::";
+ }
+ if ( $objtype eq "acts" ) {
+ $linitem=$item->{'alias'}."::".$item->{'name'}."::".
+ $item->{'target'}."::".$item->{'object'}."::".
+ $item->{'condition'}."::".$item->{'conditionValue'}."::".
+ $item->{'action'}."::".$item->{'script'}."::".
+ $item->{'when'}."::".$item->{'how'}."::";
+ }
+ if ( $objtype eq "profcache" ) {
+ $linitem=$item->{'alias'}."::".$item->{'name'}."::".
+ $item->{'hostusername'}."::".$item->{'hostname'}."::".
+ $item->{'usergrphosts'}."::".$item->{'username'}."::".
+ $item->{'userou'}."::";
+ }
+ if ( $objtype eq "hostsuser" ) {
+ $linitem=$item->{'username'}."::".$item->{'passwd'}."::".
+ $item->{'name'}."::";
+ }
+ print FILEOBJS "$linitem\n";
+ }
+ close (FILEOBJS);
+ &unlock_file($config{$listObjs});
+ print "".$text{'user_update'}." $listObjs
\n";
+ print " \n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+ print "
\n";
+ do "footer.pl";
+ exit;
+
diff --git a/stta/footer.pl b/stta/footer.pl
new file mode 100755
index 0000000..95e2c23
--- /dev/null
+++ b/stta/footer.pl
@@ -0,0 +1,33 @@
+# footer.pl
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+print <
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$text{'cpr_line1'} Jesús Pérez
+$text{'cpr_line2'} GNU GPL www.gnu.org
+
+
+
+
+FOOTER
+;
+print "\n";
+&out_tabserv_chk();
+print "
\n";
+if ( $debug gt 0 ) { close(DebugLog); }
+print "\n";
diff --git a/stta/global-lib.pl b/stta/global-lib.pl
new file mode 100755
index 0000000..2af09ef
--- /dev/null
+++ b/stta/global-lib.pl
@@ -0,0 +1,1540 @@
+# Global Lib ...
+#
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+
+# Read Config File -
+# since 1.3 serveral files at /etc/webmin/stta/dataconf/*.cfg
+# this is more easy to manage and to split vars for each theme
+# ... it needs more cpu as it has to open several files ...
+sub load_dataconf() {
+ local %listfcfgs=();
+ local @orderfcfgs=();
+ local $d="";
+ local ($listfcfgs) = $_[0] || "ordercfgs";
+
+ if (! (-d "$config_directory/$module_name/dataconf" )) { $config{tta_dir}="" };
+ &read_file("$root_directory/$module_name/dataconf/$listfcfgs", \%listfcfgs, \@orderfcfgs);
+ foreach $d (@orderfcfgs) {
+ &read_file("$config_directory/$module_name/dataconf/$d", \%config);
+ }
+ &set_interface_colors();
+ &read_file("$root_directory/$module_name/dataconf/form_vars", \%text);
+ $config{check_brand}=`cat $root_directory/$module_name/install/.brandchk 2>/dev/null`;
+ $config{check_brand}=~ s/\r|\n//g;
+}
+
+sub set_interface_colors
+{
+ if (!defined($ENV{'WEBMIN_CONFIG'})) { return }; # not running under Webmin Server
+ if ( defined($config{'cs_header'}) && $config{'cs_header'} ne "" ) {
+ $tb="bgcolor=#$config{'cs_header'}";
+ $tconfig{'cs_header'}=$config{'cs_header'};
+ }
+ if ( defined($config{'cs_table'}) && $config{'cs_table'} ne "" ) {
+ $cb="bgcolor=#$config{'cs_table'}";
+ }
+ if ( defined($config{'cs_page'}) && $config{'cs_page'} ne "" ) {
+ $bgcolor="$config{'cs_page'}";
+ $tconfig{'cs_page'}=$config{'cs_page'};
+ }
+ if ( defined($config{'cs_link'}) && $config{'cs_link'} ne "" ) {
+ $link="$config{'cs_link'}";
+ $tconfig{'cs_link'}=$config{'cs_link'};
+ }
+ if ( defined($config{'cs_text'}) && $config{'cs_text'} ne "" ) {
+ $text="$config{'cs_text'}";
+ $tconfig{'cs_text'}=$config{'cs_text'};
+ }
+ if ( defined($config{'cs_revtext'}) && $config{'cs_revtext'} ne "" ) {
+ $revtext="#$config{'cs_revtext'}";
+ } else { $revtext="#ffffff"; }
+ if ( defined($config{'bgimage'}) && $config{'bgimage'} ne "" ) {
+ $bgimage="background=\"$config{'bgimage'}\"";
+ $tconfig{'bgimage'}=$config{'bgimage'};
+ }
+}
+sub load_minfo
+{
+ local $pathModInfo = $_[0] || '';
+ $pathModInfo .= "module.info";
+
+ local %minfo;
+ &read_file( "$pathModInfo",\%minfo) ;
+ return %minfo;
+}
+
+sub set_datetime_str
+{
+ local ($wkstr) = $_[0];
+ local ($outStr) = "";
+ local ($fday, $fmon, $fyea, $fhou, $fmin, $fsec, $fwday);
+
+ # format should be: `date "+%d-%m-%Y %H:%M:%S %w"`;
+
+ $fday=substr($wkstr,0,2);
+ $fmon=substr($wkstr,3,2);
+ $fyea=substr($wkstr,6,4);
+ $fhou=substr($wkstr,11,2);
+ $fmin=substr($wkstr,14,2);
+ $fsec=substr($wkstr,17,2);
+ $fwday=substr($wkstr,20,1);
+
+ # format for order criteria
+
+ $outStr=$fyea.$fmon.$fday.$fhou.$fmin.$fsec.$wday ;
+ return $outStr;
+}
+
+sub get_datetime_str
+{
+ local ($wkstr) = $_[0];
+ local ($outStr) = "";
+ local ($fday, $fmon, $fyea, $fhou, $fmin, $fsec, $fwday);
+
+ # format should be: `date "+%d-%m-%Y %H:%M:%S $w"`;
+
+ $fday=substr($wkstr,6,2);
+ $fmon=substr($wkstr,4,2);
+ $fyea=substr($wkstr,0,4);
+ $fhou=substr($wkstr,8,2);
+ $fmin=substr($wkstr,10,2);
+ $fsec=substr($wkstr,12,2);
+ $fsec=substr($wkstr,14,1);
+
+ # format for order criteria
+
+ $outStr=$fday."-".$fmon."-".$fyea." ".$fhou.":".$fmin.":".$fsec." ".$fwday ;
+
+ return $outStr;
+}
+sub set_now
+{
+ local ($now);
+ if ( !$_[0] ) {
+ $now = time();
+ } else {
+ $now=$_[0];
+ }
+ local @tm = localtime($now);
+ local ($t_day, $t_mon, $t_yea, $t_hou, $t_min, $t_sec, $t_wday);
+
+ # format should be: `date "+%d-%m-%Y %H:%M:%S $w"`;
+ $t_sec=$tm[0];
+ if ($t_sec < 10 ) { $t_sec="0".$t_sec;}
+ $t_min=$tm[1];
+ if ($t_min < 10 ) { $t_min="0".$t_min;}
+ $t_hou=$tm[2];
+ if ($t_hou < 10 ) { $t_hou="0".$t_hou;}
+ $t_day=$tm[3];
+ if ($t_day < 10 ) { $t_day="0".$t_day;}
+ $t_mon=($tm[4]+1);
+ if ($t_mon < 10 ) { $t_mon="0".$t_mon;}
+ $t_yea=($tm[5]+1900);
+ $t_wday=($tm[6]);
+ $t_yead=$tm[7];
+ if ($t_yead < 100 ) { $t_yead="0".$t_yead;}
+ if ($t_yead < 10 ) { $t_yead="0".$t_yead;}
+ $t_isdst=$tm[8];
+
+
+ return "$t_day-$t_mon-$t_yea $t_hou:$t_min:$t_sec $t_wday $t_yead";
+
+}
+
+# cipher( text, length(text), key, length(key),result)
+sub cipher
+{
+ local $i,$pos;
+ local @buffer;
+ local @string_arr;
+
+ &seed_random();
+ for ( $pos = 0; $pos < $_[3]; $pos++ ) {
+ $i=int(rand($_[3]));
+ $string_arr[$pos]=${$_[2]}[$i];
+ }
+ if (($_[1] + 2) >= $_[3]) {
+ $pos = 1;
+ } else {
+ $pos = int(rand($_[3] - ($_[1] + 2)));
+ }
+ if ( $pos < 1 ) { $pos=1; }
+ $string_arr[$pos - 1] = '\\';
+ for ( $i=0 ; $i < ($_[1]+1) ; $i++ ) {
+ $string_arr[$pos+$i]=${$_[0]}[$i];
+ }
+ $string_arr[$pos + $_[1]+1] = '\\';
+
+ for ( $i = 0; $i < $_[3]; $i++) {
+ $buffer[$i]= $string_arr[$i] ^ ${$_[2]}[$i];
+ ${$_[4]}.=$buffer[$i];
+ }
+ return;
+}
+
+# decipher( text, key, length(key),result)
+sub decipher
+{
+ local $i,$tobuff;
+ local @buffer;
+
+ for ( $i = 0; $i < $_[2]; $i++) {
+ $buffer[$i] = ${$_[0]}[$i] ^ ${$_[1]}[$i];
+ }
+
+ $tobuff="0";
+ for ( $i = 0; $i < $_[2]; $i++) {
+ if ($buffer[$i] eq '\\' ) {
+ if ( $tobuff eq "1" ) {
+ $tobuff="0";
+ } elsif ( $tobuff eq "0" ) {
+ $tobuff="1";
+ next;
+ }
+ }
+ if ( $tobuff eq "1" ) { ${$_[3]}.=$buffer[$i]; }
+ }
+ return;
+}
+
+# cipher_text ( $task (code|decode), $text, &vartoreturn)
+sub cipher_text
+{
+ local $longclave=12;
+ local @clave=("0","1","2","3","4","5","6","7","0","1","2","3","4","5","6","7","0","1","2","3","4");
+ local @texto =();
+ local $lon=length($_[1]);
+ local $i;
+
+ if ( $_[0] eq "code" ) {
+ for ( $i = 0; $i < $lon;$i++) { $texto[$i]=substr($_[1],$i,1); }
+ &cipher(\@texto, $#texto, \@clave, $longclave,\${$_[2]});
+ } elsif ( $_[0] eq "decode" ) {
+ $lon=length($_[1]);
+ for ( $i = 0; $i < $lon;$i++) { $texto[$i]=substr($_[1],$i,1); }
+ &decipher(\@texto, \@clave, $lon,\${$_[2]});
+ }
+ if ( $debug eq "4" ) { &webmin_log("cipher_text",$_[0], "$_[1] -- ${$_[2]}"); }
+}
+
+
+# show_hash( %has-to-scan,$father-brach-if-hash-tree, $separator, $dev-to-output,&vartoout
+sub show_hash
+{
+ local ($item,$v,$r);
+ if ( $_[3] ) { select($_[3]);}
+ return if (!%{$_[0]});
+ local %h_lst=%{$_[0]};
+ local @data;
+ local @hlst=(), @hLst=();
+ local $lnum=0;
+ local $lchar=62;
+ local $sep;
+
+ if ( "$_[1]" eq "" && !$_[4] ) {
+ print "___________________________________________________________\n";
+ }
+
+ foreach $item (keys (%h_lst)) {
+# if ( ! $h_lst{$item} ) { next ;}
+ local $v=$h_lst{$item};
+ $r=ref($v);
+ if ( $r eq 'HASH') {
+ if ( $_[4] ) {
+# ${$_[4]}.=$item."\n";
+ &show_hash(\%{$h_lst{$item}},$item,$_[2],$_[3],\${$_[4]});
+ } else {
+# print "$item\n";
+ &show_hash(\%{$h_lst{$item}},$item,$_[2],$_[3]);
+ }
+ } elsif ( $r eq 'ARRAY') {
+ local @data=@{$v};
+ for($i=1; $i <= $#data; $i++) {
+ if ( $_[4] ) {
+ ${$_[4]}.=$data[$i]."\n";
+ } else {
+ print $data[$i]."\n";
+ }
+ }
+ } else {
+ push (@hlst,{'name' => $item, 'value' => $v } );
+ }
+ $lnum++;
+ }
+ @hLst = sort {$a->{name} cmp $b->{name}} @hlst;
+ foreach $hitem (@hLst) {
+ $item=$hitem->{'name'};
+ $v=$hitem->{'value'};
+ if ( $_[2] ) {
+ if ( $_[4] ) {
+ ${$_[4]}.="$item$_[2]=$_[2]$v\n" ;
+ } else {
+ print $item.$_[2]."=".$_[2].$v."\n" ;
+ }
+ } else {
+ if ( $_[4] ) {
+ ${$_[4]}.=$item."=".$v."\n" ;
+ } else {
+ print $item."=".$v."\n" ;
+ }
+ }
+ }
+ if ( "$_[1]" ne "" ) {
+ $item="_($lnum)_$_[1]________________________________________________________";
+ if ( $_[4] ) {
+ ${$_[4]}.="_($lnum)__$_[1]_____\n";
+ } else {
+ print substr($item,0,$lchar)."\n";
+ }
+ }
+ if ( $_[3] ) { $| =1; select(STDOUT);}
+# if ( $_[4] ) { print "4** $_[4]";}
+
+}
+
+# lookup in hash %{$_[0]} for key $_[1] and return value
+sub search_in_hash
+{
+ local ($k,$v,$,);
+ return if (!%{$_[0]});
+ local %h_lst=%{$_[0]};
+ local $lnum=1;
+ local $key_value;
+
+ foreach $item (keys (%h_lst)) {
+ local $v=$h_lst{$item};
+ $r=ref($v);
+ if ( $r eq 'HASH') {
+ local %h_cp=%{$v};
+ $key_value=&search_in_hash(\%h_cp,$_[1]);
+ if ( $key_value.length gt 0 ) { return $key_value; }
+ } else {
+ if ($item eq $_[1] ) { return $h_lst{$item}; }
+ }
+ $lnum++;
+ }
+}
+
+# To show each item from Rec in a list (hash-list: key + hash )
+sub showrec_list
+{
+ &show_hash(\%{$_[0]},"","\t");
+}
+
+# check_socket(host, port, handle, [&error])
+sub check_socket
+{
+local($addr, $h); $h = $_[2];
+ if (!socket($h, PF_INET, SOCK_STREAM, getprotobyname("tcp"))) {
+ if ($_[3]) { ${$_[3]} = &text(sckerr_no, $!); return false; }
+ else { &error("&text(sckerr_no, $!)"); }
+ }
+ if (!($addr = inet_aton($_[0]))) {
+ if ($_[3]) { ${$_[3]} = &text(sckerr_noip, $_[0]); return false; }
+ else { &error("&text(sckerr_noip, $_[0])"); }
+ }
+ if (!connect($h, sockaddr_in($_[1], $addr))) {
+ if ($_[3]) { ${$_[3]} = &text(sckerr_noconn, $_[0],$_[1],$!); return false; }
+ else { &error("&text(sckerr_noconn, $_[0],$_[1],$!)"); }
+ }
+ # select($h); $| =1; select(STDOUT);
+ shutdown($h,2);
+ if ($_[3]) { ${$_[3]} = &text('responding_on',$_[1]); }
+ return true;
+}
+
+# Loading Hash with file and properties %ttaprops (with @data in) and @ttahosts
+# get_ttaprops(has_toset,$dir_path,$extension,$names_toexclude)
+sub get_ttaprops
+{
+ local @list_names=glob($_[0]."*".$_[1]);
+ local $list_exclude=$_[2];
+ local $nhost=0;
+ local $target=0;
+ local $k,$kname,$v;
+ local $ttaproperties=$text{tta_properties};
+
+ foreach $f_name (@list_names) {
+ $FileName=$f_name;
+ $FileName=~s/$dir_path//g;
+ if ( $FileName ) { $FileName=~s/$_[1]//g; }
+ if ( $list_exclude =~ /$FileName/ ) { next; }
+ local %configtta=();
+ &read_file($f_name, \%configtta);
+ $target="array";
+ if ( $configtta{'tarantella.config.name'} =~ /host/ ) {
+# if ( $ttaproperties =~ /$FileName/ ) {
+# $target="array";
+# } else {
+ $target="host";
+ $ttahosts[$nhost] = { 'name' => $FileName };
+# }
+ }
+ $ttaprops{$FileName} = {
+ 'name' => $FileName,
+ 'target' => $target,
+ 'path' => $f_name,
+ 'config' => \%configtta
+ };
+ if ( $target eq "host" ) { $nhost++; }
+ }
+}
+
+
+sub load_ttaprops
+{
+ local $dir_path=$config{tta_dir}.$text{tta_global_dir};
+ if ( $_[0] ) { $dir_path=$_[0] };
+ local @data;
+ local %configtta;
+ local %h_cp;
+ local ($array_port, $array_extport, $array_secureport, $cdm_enabled);
+ local ($cdm_extlnbport, $billingservice, $searchldapLA, $ldap_url, $host_master, $h_license);
+ local $lnum=0,$masthost;
+ local ($h_secure, $h_dns_ext, $h_dns_peer, $h_acceptconn,$item);
+
+ &get_ttaprops($dir_path,$text{tta_ext_cfgfiles},"");
+
+ $array_port =
+ &search_in_hash(\%{$ttaprops{bootstrap}{config}},"tarantella.config.array.port");
+ $array_extport=
+ &search_in_hash(\%{$ttaprops{bootstrap}{config}},"tarantella.config.array.externalport");
+ $array_secureport=
+ &search_in_hash(\%{$ttaprops{bootstrap}{config}},"tarantella.config.array.secureport");
+ $cdm_enabled=
+ &search_in_hash(\%{$ttaprops{cdm}{config}},"tarantella.config.cdm.enabled");
+ $cdm_extlnbport=
+ &search_in_hash(\%{$ttaprops{cdm}{config}},"tarantella.config.cdm.externalnbtport");
+ $billingservice=
+ &search_in_hash(\%{$ttaprops{components}{config}},"tarantella.config.components.billingservice");
+ $searchldapLA=
+ &search_in_hash(\%{$ttaprops{components}{config}},"tarantella.config.components.searchldaploginauthority");
+ $ldap_url=
+ &search_in_hash(\%{$ttaprops{ldap}{config}},"tarantella.config.ldap.url");
+ $host_master=
+ &search_in_hash(\%ttaprops,"tarantella.config.host.master");
+
+ $dir_path=$config{tta_dir}.$text{tta_local_dir}.$text{tta_bootstrap};
+ &read_file($dir_path,\%configtta);
+
+ $lnum=0;
+ @data=@ttahosts;
+ foreach $item (@data) {
+ %h_cp=%{$ttaprops{$item->{name}}};
+ $h_license= &search_in_hash(\%h_cp,"tarantella.config.host.license.keys");
+ $h_secure= &search_in_hash(\%h_cp,"tarantella.config.host.security.active");
+ $h_dns_ext= &search_in_hash(\%h_cp,"tarantella.config.host.dns.external");
+ $h_dns_peer= &search_in_hash(\%h_cp,"tarantella.config.host.dns.peer");
+ $h_acceptconn= &search_in_hash(\%h_cp,"tarantella.config.host.acceptnewconnections");
+ $ttahosts[$lnum]={'name' => $item->{name},
+ 'secure' => $h_secure,
+ 'dns_ext' => $h_dns_ext,
+ 'dns_peer' => $h_dns_peer,
+ 'acceptconn' => $h_acceptconn,
+ 'license' => $h_license,
+ 'ttaarray_status' => '',
+ 'ttastd_status' => '',
+ 'ttassl_status' => '',
+ 'ttacdm_status' => '',
+ 'http_status' => '',
+ 'https_status' => '',
+ 'ipalive' => "" };
+ if ( "$item->{name}" eq "$configtta{'tarantella.config.server.dns.peer'}" ){
+ $masthost=$lnum;
+ }
+ $lnum++;
+ }
+
+ $sttaparams{'tta'}= { 'ttalocal_dns_ext' =>
+ $configtta{'tarantella.config.server.dns.external'},
+ 'ttalocal_dns_peer' =>
+ $configtta{'tarantella.config.server.dns.peer'},
+ 'nhost' => $lnum,
+ 'masthost' => $masthost,
+ 'array_port' => $array_port,
+ 'array_extport' => $array_extport,
+ 'array_secureport' => $array_secureport,
+ 'cdm_enabled' => $cdm_enabled,
+ 'cdm_extlnbport' => $cdm_extlnbport,
+ 'billingservice' => $billingservice,
+ 'searchldapLA' => $searchldapLA,
+ 'ldap_url' => $ldap_url,
+ 'host_master' => $host_master };
+ $sttaparams{'ldap'}= { 'ldap_status' => "",
+ 'ldap2_status' => "",
+ 'ldapcache_status' => "",
+ 'ldapcache2_status' => "" };
+}
+
+# Args can be "local" (localhost and array services) or "remote" ( no local services)
+# any other even nothing will be the whole array services !
+sub scanSTTA_services
+{
+ local $title="";
+ local $host,$port,$masthost;
+ local $rv = { 'fh' => time().$$ };
+ local %h_prop;
+ local @data;
+ local $is_ttamaster=false;
+ local %h_hosts=&list_hosts(5);
+
+ local $thishost_name;
+ $masthost=$sttaparams{'tta'}{'masthost'};
+
+ # to look-up for master ...
+ # if ( $sttaparams{tta}{host_master} eq $sttaparams{tta}{ttalocal_dns_peer}){
+ # Can be equal in Primary Array Server
+ # if ( $sttaparams{'tta'}{'host_master'} eq $ttahosts[$masthost]->{'dns_peer'}){
+ $lnum=0;
+ foreach $item (@ttahosts) {
+ $thishost_name="";
+ %h_prop=%{$ttaprops{$item->{name}}};
+ if ( $sttaparams{'tta'}{'host_master'} eq $item->{'dns_peer'} ) {
+ $is_ttamaster=true;
+ $thishost_name="TTA MASTER->";
+ }
+ next if ( $_[0] eq "local" &&
+ $item->{'dns_peer'} ne $sttaparams{tta}{ttalocal_dns_peer} &&
+ $is_ttamaster ne true );
+ next if ( $_[0] eq "remote" &&
+ $item->{'dns_peer'} eq $sttaparams{tta}{ttalocal_dns_peer} );
+
+ # Is TTA Alive on this host ??
+ $host=$item->{'dns_peer'};
+ $thishost_name.=$item->{'name'};
+
+ if ( $item->{'name'} ne $host ) { $thishost_name.=$item->{'name'}." ($host)"; }
+
+ # Try Array 5427
+ $title="$text{srvTTA_Array} $thishost_name:";
+ $port=$sttaparams{tta}{array_port};
+ if ( $port) {
+ &check_socket($host, $port, $rv->{'fh'}, \$item->{'ttaarray_status'});
+ if ( $debug eq 4 ) {
+ &additional_log('tta array socket', "socket", "$title $port");
+ &webmin_log("tta array socket","socket",$item->{'ttaarray_status'});
+ }
+ }
+ # Try STD
+ $title="$text{srvTTA_STD} $thishost_name:";
+ $port=$sttaparams{tta}{array_extport};
+ if ( $port && $item->{acceptconn} eq "enabled" ) {
+ &check_socket($host, $port, $rv->{'fh'}, \$item->{'ttastd_status'});
+ if ( $debug eq 4 ) {
+ &additional_log('ttaSTD socket', "socket", "$title $port");
+ &webmin_log("ttaSTD socket","socket",$item->{'ttastd_status'});
+ }
+ };
+ # Try SSL
+ $title="$text{srvTTA_SSL} $thishost_name:";
+ $port=$sttaparams{tta}{array_secureport};
+ if ( $port && $ttahosts[$masthost]->{acceptconn} eq "enabled" &&
+ $item->{secure} =~ /ssl/ ) {
+ &check_socket($host, $port, $rv->{'fh'}, \$item->{'ttassl_status'});
+ if ( $debug eq 4 ) {
+ &additional_log('ttaSSL socket', "socket", "$title $port");
+ &webmin_log("ttaSSL socket","socket",$item->{'ttassl_status'});
+ }
+ };
+ # Test CDM
+ if ( $sttaparams{tta}{cdm_enabled} eq "1" &&
+ $item->{acceptconn} eq "enabled" ) {
+ $title="$text{srvTTA_CDM} $thishost_name:";
+ $port=$sttaparams{tta}{cdm_extlnbport};
+ &check_socket($host, $port, $rv->{'fh'}, \$item->{'ttacdm_status'});
+ if ( $debug eq 4 ) {
+ &additional_log('ttaCDM socket', "socket", "$title $port");
+ &webmin_log("ttaCDM socket","socket",$item->{'ttacdm_status'});
+ }
+ };
+ # Assuming same ports in all the array ....
+ # IS HTTP
+ $port=$config{http_port};
+ if ( $port ) {
+ $title="$text{srvHTTP} $thishost_name:";
+ &check_socket($host, $port, $rv->{'fh'}, \$item->{'http_status'});
+ if ( $debug eq 4 ) {
+ &additional_log('http socket', "socket", "$title $port");
+ &webmin_log("http socket","socket",$item->{'http_status'});
+ }
+ };
+ # IS HTTPS
+ $port=$config{https_port};
+# if ( $port && $ttahosts[$masthost]->{secure} eq "1" ) {
+ if ( $port ) {
+ $title="$text{srvHTTPS} $thishost_name:";
+ &check_socket($host, $port, $rv->{'fh'}, \$item->{'https_status'});
+ if ( $debug eq 4 ) {
+ &additional_log('https socket', "socket", "$title $port");
+ &webmin_log("https socket","socket",$item->{'https_status'});
+ }
+ };
+ # Alive Port
+ $port="";
+ if ( $h_hosts{$host}->{'ipname'} eq $host ) {
+ $port=$h_hosts{$host}->{'portalive'};
+ $thishost_name=$h_hosts{$host}->{'name'};
+ $host=$h_hosts{$host}->{'ipname'};
+ }
+ $title="$text{f_portalive} $thishost_name:";
+ if ( $port ) {
+ &check_socket($host, $port, $rv->{'fh'}, \$item->{'ipalive'});
+ if ( $debug eq 4 ) {
+ &additional_log('ipalive socket', "socket", "$title $port");
+ &webmin_log("ipalive socket","socket",$item->{'ipalive'});
+ }
+ }
+ $lnum++;
+ }
+ # IS LDAP up
+ $host=$config{ldap_server};
+ if ( $host ) {
+ $port=$config {ldap_port};
+ $thishost_name="$config{ldap_servertitle} $host";
+ $title="$text{srvLDAP} $thishost_name:";
+ &check_socket($host, $port, $rv->{'fh'}, \$sttaparams{'ldap'}{'ldap_status'});
+ if ( $debug eq 4 ) {
+ &additional_log('ldap socket', "socket", "$title $port");
+ &webmin_log("ldap socket","socket",$sttaparams{'ldap'}{'ldap_status'});
+ }
+ };
+
+ # IS LDAP2 up
+ $host=$config{ldap2_server};
+ if ( $host ) {
+ $port=$config {ldap2_port};
+ $thishost_name="$config{ldap2_servertitle} $host";
+ $title="$text{srvLDAP} $thishost_name:";
+ &check_socket($host, $port, $rv->{'fh'},\$sttaparams{'ldap'}{'ldap2_status'});
+ if ( $debug eq 4 ) {
+ &additional_log('ldap2 socket', "socket", "$title $port");
+ &webmin_log("ldap2 socket","socket",$sttaparams{'ldap'}{'ldap2_status'});
+ }
+ };
+
+ if ( $config{'is_ldapcache'} eq "true" ) {
+ # IS LDAP CACHE up
+ $host=$config{ldapcache_server};
+ if ( $host ) {
+ $port=$config {ldapcache_port};
+ $thishost_name="$config{ldapcache_servertitle} $host";
+ $title="$text{srvLDAPCACHE} $thishost_name:";
+ &check_socket($host, $port, $rv->{'fh'}, \$sttaparams{'ldap'}{'ldapcache_status'});
+ if ( $debug eq 4 ) {
+ &additional_log('ldapcache socket', "socket", "$title $port");
+ &webmin_log("ldapcache socket","socket",$sttaparams{'ldap'}{'ldapcache_status'});
+ }
+ };
+
+ # IS LDAP2 CACHE up
+ $host=$config{ldapcache2_server};
+ if ( $host ) {
+ $port=$config {ldapcache2_port};
+ $thishost_name="$config{ldapcache2_servertitle} $host";
+ $title="$text{srvLDAPCACHE} $thishost_name:";
+ &check_socket($host, $port, $rv->{'fh'}, \$sttaparams{'ldap'}{'ldapcache2_status'});
+ if ( $debug eq 4 ) {
+ &additional_log('ldapcache2 socket', "socket", "$title $port");
+ &webmin_log("ldapcache2 socket","socket",$sttaparams{'ldap'}{'ldapcache2_status'});
+ }
+ };
+ }
+ $ldap_ok=true;
+ $ldapcache_ok=true;
+ $tta_ok=true;
+ if ( $config{is_ldapcache} eq "true" && $sttaparams{'ldap'}{'ldapcache_status'} ne &text('responding_on',$config{ldapcache_port}) ) {
+ $ldapcache_ok=false;
+ }
+ if ( $config{has_ldapusers} eq "true" && $sttaparams{'ldap'}{'ldap_status'} ne &text('responding_on',$config{ldap_port})) {
+ $ldap_ok=false;
+ }
+# if ($ttahosts[$mhost]->{ttaarray_status} ne &text('responding_on',$sttaparams{tta}{array_port})) {
+# $tta_ok=false;
+# }
+ foreach $item (@ttahosts) {
+ if ( $item->{'ttaarray_status'} ne &text('responding_on',$sttaparams{tta}{array_port})) {
+ $tta_ok=false;
+ }
+ }
+}
+
+# checkSTTA_services($which,$how_handle,&var_out)
+# $which can be "local" (localhost and array services) or "remote" ( no local services)
+# any other even nothing will be the whole array services !
+# $how_handle means $config{iferror_services} options: stop, warn, browse
+# ${$_[2]} is var to keep
+sub checkSTTA_services
+{
+ local $title="";
+ local $lnum=0;
+ local %h_prop;
+ local %h_hosts=&list_hosts(5);
+ foreach $item (@ttahosts) {
+ next if ( $_[0] eq "local" &&
+ $item->{'dns_peer'} ne $sttaparams{tta}{ttalocal_dns_peer} &&
+ $is_ttamaster ne true );
+ next if ( $_[0] eq "remote" &&
+ $item->{'dns_peer'} eq $sttaparams{tta}{ttalocal_dns_peer} );
+ $thishost_name="";
+ %h_prop=%{$ttaprops{$item->{name}}};
+ if ( $sttaparams{'tta'}{'host_master'} eq $item->{'dns_peer'} ) {
+ $is_ttamaster=true;
+ $thishost_name="TTA MASTER->";
+ }
+ # Is TTA Alive on this host ??
+ $host=$item->{'dns_peer'};
+ $thishost_name.=$item->{'name'};
+
+ if ( $item->{'name'} ne $host ) { $thishost_name.=$item-{'name'}." ($host)"; }
+
+ # Try Array 5427
+ $port=$sttaparams{tta}{array_port};
+ $title="$text{srvTTA_Array} $thishost_name";
+ if ( $port) {
+ &chkout_service($_[1],$title,$item->{'ttaarray_status'},\${$_[2]});
+ } else {
+ &chkout_service($_[1],$title,"unknown",\${$_[2]});
+ }
+ # Try STD
+ $port=$sttaparams{tta}{array_extport};
+ $title="$text{srvTTA_STD} $thishost_name:";
+ if ( $port && $item->{acceptconn} eq "enabled" ) {
+ &chkout_service($_[1],$title,$item->{'ttastd_status'},\${$_[2]});
+ } else {
+ &chkout_service($_[1],$title,"unknown",\${$_[2]});
+ };
+ # Try SSL
+ $port=$sttaparams{tta}{array_secureport};
+ $title="$text{srvTTA_SSL} $thishost_name:";
+ if ( $port && $ttahosts[$masthost]->{acceptconn} eq "enabled" &&
+ $item->{secure} =~ /ssl/ ) {
+ &chkout_service($_[0],$title,$item->{'ttassl_status'},\${$_[2]});
+ } else {
+ &chkout_service($_[1],$title,"unknown",\${$_[2]});
+ };
+ # Test CDM
+ $title="$text{srvTTA_CDM} $thishost_name:";
+ if ( $sttaparams{tta}{cdm_enabled} eq "1" &&
+ $item->{acceptconn} eq "enabled" ) {
+ $port=$sttaparams{tta}{cdm_extlnbport};
+ &chkout_service($_[1],$title,$item->{'ttacdm_status'},\${$_[2]});
+ } else {
+ &chkout_service($_[1],$title,"unknown",\${$_[2]});
+ };
+ # Assuming same ports in all the array ....
+ # IS HTTP
+ $port=$config {http_port};
+ $title="$text{srvHTTP} $thishost_name:";
+ if ( $port ) {
+ &chkout_service($_[1],$title,$item->{'http_status'},\${$_[2]});
+ } else {
+ &chkout_service($_[1],$title,"unknown",\${$_[2]});
+ };
+ # IS HTTPS
+ $port=$config {https_port};
+ $title="$text{srvHTTPS} $thishost_name:";
+# if ( $port && $ttahosts[$masthost]->{secure} eq "1" ) {
+ if ( $port ) {
+ &chkout_service($_[1],$title,$item->{'https_status'},\${$_[2]});
+ } else {
+ &chkout_service($_[1],$title,"unknown",\${$_[2]});
+ }
+ # Alive Port
+ $host=$item->{'dns_peer'};
+ $port="";
+ if ( $h_hosts{$host}->{'ipname'} eq $host ) {
+ $port=$h_hosts{$host}->{'portalive'};
+ $thishost_name=$h_hosts{$host}->{'name'};
+ $host=$h_hosts{$host}->{'ipname'};
+ }
+ $title="$text{f_portalive} $thishost_name:";
+ if ( $port ) {
+ &chkout_service($_[1],$title,$item->{'ipalive'},\${$_[2]});
+ } else {
+ &chkout_service($_[1],$title,"unknown",\${$_[2]});
+ }
+ $lnum++;
+ }
+
+ # IS LDAP up
+ $host=$config{ldap_server};
+ $thishost_name=$config{ldap_servertitle};
+ $title="$text{srvLDAP} $thishost_name:";
+ if ( $host ) {
+ $port=$config {ldap_port};
+ &chkout_service($_[1],$title,$sttaparams{'ldap'}{'ldap_status'},\${$_[2]});
+ } else {
+ &chkout_service($_[1],$title,"unknown",\${$_[2]});
+ };
+
+ # IS LDAP2 up
+ $host=$config{ldap2_server};
+ $thishost_name=$config{ldap2_servertitle};
+ $title="$text{srvLDAP} $thishost_name:";
+ if ( $host ) {
+ $port=$config {ldap2_port};
+ &chkout_service($_[1],$title,$sttaparams{'ldap'}{'ldap2_status'},\${$_[2]});
+ } else {
+ &chkout_service($_[1],$title,"unknown",\${$_[2]});
+ };
+
+ if ( $config{'is_ldapcache'} eq "true" ) {
+ # IS LDAP CACHE up
+ $host=$config{ldapcache_server};
+ $thishost_name=$config{ldapcache_servertitle};
+ $title="$text{srvLDAPCACHE} $thishost_name:";
+ if ( $host ) {
+ $port=$config {ldapcache_port};
+ &chkout_service($_[1],$title,$sttaparams{'ldap'}{'ldapcache_status'},\${$_[2]});
+ } else {
+ &chkout_service($_[1],$title,"unknown",\${$_[2]});
+ };
+
+ # IS LDAP2 CACHE up
+ $host=$config{ldapcache2_server};
+ $thishost_name=$config{ldapcache2_servertitle};
+ $title="$text{srvLDAPCACHE} $thishost_name:";
+ if ( $host ) {
+ $port=$config {ldapcache2_port};
+ &chkout_service($_[1],$title,$sttaparams{'ldap'}{'ldapcache2_status'},\${$_[2]});
+ } else {
+ &chkout_service($_[1],$title,"unknown",\${$_[2]});
+ };
+ }
+}
+
+sub printSTTA_config
+{
+ local $item;
+
+ local @datacfg = ( 'is_masterHost', 'masterHost', 'masterHostURL',
+ 'ldap_type',
+ 'is_ldapcache', 'ldapcache_type',
+ 'cache_chkdefaults', 'cache_chkttalogin',
+ 'cache_scandebug', 'cache_domain',
+ 'check_maxsess', 'default_maxsess', 'check_ticket',
+ 'default_cat', 'order_cat', 'interface',
+ 'has_monitor',
+ 'has_cronsess',
+ 'sessout_timeout',
+ 'output_cgis',
+ 'debug_code',
+ 'check_services',
+ 'iferror_services',
+ );
+ foreach $item (@datacfg) {
+ $str_val=$config{$item};
+ if ( $config{$item} eq "true" ) { $str_val=$text{yes}; }
+ if ( $config{$item} eq "false" ) { $str_val=$text{no}; }
+ if ( $config{$item} eq "none" ) { $str_val=$text{none}; }
+ if ( $item eq "sessout_timeout") {
+ if ( $config{$item} eq "8" ) { $str_val="1 $text{edit_hours}"; }
+ if ( $config{$item} eq "12" ) { $str_val="1 $text{edit_minutes}"; }
+ if ( $config{$item} eq "11" ) { $str_val="10 $text{edit_minutes}"; }
+ if ( $config{$item} eq "13" ) { $str_val="10 $text{edit_seconds}"; }
+ if ( $config{$item} eq "14" ) { $str_val="1 $text{edit_seconds}"; }
+ }
+ if ( $_[0] ) {
+ if ( $_[1] ) {
+ ${$_[0]}.= "STTA: ".$text{'cfg_'.$item}."=".$_[1].$str_val."\n";
+ } else {
+ ${$_[0]}.= "STTA: ".$text{'cfg_'.$item}."=".$str_val."\n";
+ }
+ } else {
+ if ( $_[1] ) {
+ print "STTA: ".$text{'cfg_'.$item}.$_[1]."=".$_[1].$str_val."\n";
+ } else {
+ print "STTA: ".$text{'cfg_'.$item}."=".$str_val."\n";
+ }
+ }
+ }
+}
+
+# chkout_service($how_handle, $title, $message,&varout,$sep)
+# $how_handle means $config{iferror_services} options: stop, warn, browse, status
+# ${$_[3]} is var to keep
+sub chkout_service
+{
+ local $respo=$text{responding_on};
+ $respo=~ s/\$1//;
+
+ if ( "$_[0]" eq "stop" ) {
+ if ( "$_[2]" =~ /$respo/ || "$_[2]" eq "unknown"){
+ return;
+ } else {
+ $err_msg="$_[1] $_[2]";
+ # &SrvError();
+ &additional_log("STTA $_[0]", "services", "$_[2]");
+ &webmin_log("STTA $text{$_[0]}","services","$_[1]",@_[2]);
+ error("STTA $text{$_[0]}: $_[1] \n\t\"$_[2]\" \n");
+ }
+ } elsif ( "$_[0]" eq "warn" ) {
+ if ( "$_[2]" ne "unknown" ) {
+ &webmin_log("STTA $text{$_[0]}","services","$_[1] - $_[2]");
+ } else {
+ &webmin_log("STTA $text{$_[0]}","services","$_[1] - $text{unknown}");
+ }
+ } elsif ( "$_[0]" eq "browse" ) {
+ if ( $config{iferror_services} eq "stop" ) {
+ if ( "$_[2]" =~ /$respo/ || "$_[2]" eq "unknown"){
+ #
+ } else {
+ $err_msg="$_[1] $_[2]";
+ &additional_log("STTA $_[0]", "services", "$_[2]");
+ &webmin_log("STTA $text{$_[0]}","services","$_[1]");
+ &SrvError();
+ }
+ }
+ if ( "$_[2]" ne "unknown" ) {
+ &webmin_log("STTA $text{$_[0]}","services","$_[1] - $_[2]");
+ } else {
+ &webmin_log("STTA $text{$_[0]}","services","$_[1] - $text{unknown}");
+ }
+ } elsif ( "$_[0]" eq "status" && $_[3] ) {
+ if ( $config{iferror_services} eq "stop" ) {
+ if ( "$_[2]" =~ /$respo/ || "$_[2]" eq "unknown"){
+ #
+ } else {
+ $err_msg="$_[1] $_[2]";
+ &additional_log("STTA $_[0]", "services", "$_[2]");
+ &webmin_log("STTA $text{$_[0]}","services","$_[1]");
+ &SrvError();
+ }
+ }
+ if ( "$_[2]" ne "unknown" ) {
+ ${$_[3]}.= "STTA: $_[1] == $_[2] \n";
+ } else {
+ ${$_[3]}.= "STTA: $_[1] == $text{unknown} \n";
+ }
+ } else {
+ if ( "$_[2]" =~ /$respo/ || "$_[2]" eq "unknown"){
+ print "STTA: $_[1] $text{OK} \n";
+ } else {
+ if ( "$_[2]" ne "unknown" ) {
+ &webmin_log("STTA $text{$_[0]}","services","$_[1] - $_[2]");
+ } else {
+ &webmin_log("STTA $text{$_[0]}","services","$_[1] - $text{unknown}");
+ }
+ }
+ }
+}
+
+# wsplit(string)
+# Splits a string like foo "foo \"bar\"" bazzz into an array of words
+sub wsplit
+{
+local($s, @rv); $s = $_[0];
+$s =~ s/\\\"/\0/g;
+while($s =~ /^"([^"]*)"\s*(.*)$/ || $s =~ /^(\S+)\s*(.*)$/) {
+ $w = $1; $s = $2;
+ $w =~ s/\0/"/g; push(@rv, $w);
+ }
+return \@rv;
+}
+
+# wjoin(word, word, ...)
+sub wjoin
+{
+local(@rv, $w);
+foreach $w (@_) {
+ if ($w =~ /^\S+$/) { push(@rv, $w); }
+ else { push(@rv, "\"$w\""); }
+ }
+return join(' ', @rv);
+}
+
+# dir_name(struct)
+sub dir_name
+{
+local($dfm, $mat);
+$_[0]->{'name'} =~ /^(Directory|Files|Location)(Match)?$/;
+$dfm = $1; $mat = $2;
+if ($mat) { return "$dfm regexp $_[0]->{'words'}->[0] "; }
+elsif ($_[0]->{'words'}->[0] eq "~")
+ { return "$dfm regexp $_[0]->{'words'}->[1] "; }
+else { return "$dfm $_[0]->{'words'}->[0] "; }
+}
+
+# To check if host is alive in a defined port ....
+# $_[0] is the host alias
+# $_[1] if is true print title
+sub check_host {
+
+ local $aliasHost=$_[0];
+ local $grpalias;
+ local $grpname;
+ local $title;
+ local $port;
+ local $hosts_status;
+
+ if ( !%h_hosts ) { %h_hosts=&list_hosts(); };
+ if (defined($h_hosts{$_[0]}) ) {
+ if ( !%h_grphosts ) { %h_grphosts=&list_grphosts(); };
+ } else {
+ return "";
+ }
+ $grpalias=$h_hosts{$_[0]}->{'grpalias'};
+ $grpname=$h_grphosts{$grpalias}->{'name'};
+ $title="$h_hosts{$_[0]}->{name} [$grpname] ($h_hosts{$_[0]}->{ipname})";
+ if ( $_[1] eq "true" ) { print "
$title \n"; }
+ if ( $DebugFile ) { print DebugLog "$title \n"; }
+ $hosts_status=&text('responding_on',$h_hosts{$_[0]}->{portalive});
+ &check_socket($h_hosts{$_[0]}->{ipname}, $h_hosts{$_[0]}->{portalive}, $rv->{'fh'}, \$hosts_status);
+ &webmin_log("$h_hosts{$_[0]}->{ipname} socket","ipalive","title=>$title||status=>$hosts_status||port=>$h_hosts{$_[0]}->{portalive}",$h_hosts{$_[0]});
+ if ( $DebugFile ) { print DebugLog "$hosts_status \n"; }
+ return "$hosts_status";
+}
+
+sub test_minfo
+{
+ local $task=$_[0];
+ local $where=$_[1];
+ local $outFormat=$_[2];
+
+}
+
+sub show_numbermoment
+{
+ my ($now);
+ if ( !$_[0] ) {
+ $now = time();
+ } else {
+ $now=$_[0];
+ }
+ local @tm = localtime($now);
+
+return sprintf "[%2.2d/%s/%4.4d %2.2d:%2.2d:%2.2d]",
+ $tm[3], $tm[4]+1, $tm[5]+1900, $tm[2], $tm[1], $tm[0];
+}
+
+sub out_now_filename
+{
+ my ($now);
+ if ( !$_[0] ) {
+ $now = time();
+ } else {
+ $now=$_[0];
+ }
+ local @tm = localtime($now);
+
+ return sprintf "%4.4d_%2.2d_%2.2d_%2.2d%2.2d%2.2d",
+ $tm[5]+1900, $tm[4]+1, $tm[3], $tm[2], $tm[1], $tm[0];
+}
+
+# run_cmd([str])
+# Display an error message and exit. The variable $whatfailed must be set
+# to the name of the operation that failed.
+# OUTPUT is going to FILEOUT so can be send it to Webmin Log and Screen if $no_out=false
+sub run_cmd
+{
+ local ($t_str);
+ local ($line);
+ local ($line_tempf);
+ $exec_str = ($exec_str) ? $exec_str : "exec";
+ $cmd_str = ($cmd_str) ? $cmd_str : "command";
+
+ $err_msg="";
+ $err="";
+
+# return false when no output
+# return true printing output does not mean error it depends on command output
+# no_out by default is 0 it means to print to screen, otherwise it will go only to LOG
+# $config{output_cgis} eq 1
+
+ $t_str=$str;
+ $t_str=~s/ //g;
+ if ( !$str || $t_str eq "" ) { return "" };
+
+ if ( $config{output_cgis} eq 1 ) { print $text{msg_processing}." "; }
+
+ $| = 1;
+
+ local $temp = &tempname();
+ local $outfile = &tempname();
+ local $line ="$str\n";
+
+ open(FILEOUT, ">$outfile");
+ open(TEMP, ">$temp");
+ print TEMP "#!/bin/sh\n";
+ print TEMP $env;
+ print TEMP "export $export\n" if ($export);
+ print TEMP "$str\n";
+ close(TEMP);
+ chmod(0777, $temp);
+ $got = &foreign_call("proc", "safe_process_exec",
+ "su root -c $temp", 0, 0,
+ *FILEOUT, undef, 1,1);
+ if ( $config{output_cgis} eq 1 && $got ) { print "\n"; }
+ if ( $debug eq 0 ) {
+ system("rm -f $temp 2>/dev/null");
+ unlink($temp);
+ }
+ close(FILEOUT);
+ open(FILEOUT, $outfile);
+ while() {
+ s/\r|\n//g;
+ if ( $config{output_cgis} eq 1 ) { print "$_ \n"; }
+ $line .= "$_\n";
+ }
+ close(FILEOUT);
+ if ( $debug eq 0 ) {
+ system("rm -f $outfile 2>/dev/null");
+ unlink($outfile);
+ }
+ if ( $temp_f) {
+ $line .= "\nfile: $temp_f :::::::::::::::::::::::\n";
+ open(TEMPF, $temp_f);
+ while() {
+ s/\r|\n//g;
+ $line .= "$_\n";
+ $line_timef .= "$_\n";
+ }
+ close(TEMPF);
+ }
+ if ( $ens_obj ) {
+ &additional_log($str, $ens_obj, $line);
+ } else {
+ &additional_log($str, undef, $line);
+ }
+ $line_timef=~s/"/'/g;
+ $line_timef=~s/\n/\\/g;
+ &webmin_log($exec_str, "$cmd_str", "$got||user=>".$config{run_exec_user}."||str=>$str||cmd=>$line_timef",undef);
+# if (!$got) { if ( $config{output_cgis} eq 1 ) { print "$text{'run_noout'} \n"; } }
+ if ( $config{output_cgis} eq 1 && $got ) { print "\n"; }
+ if (!$got) { return false;}
+ return true;
+}
+
+# run_tta_cmd([type_cmd,ens_obj,temp_f])
+# Display an error message and exit. The variable $whatfailed must be set
+# to the name of the operation that failed.
+sub run_tta_cmd
+{
+ $exec_str = "tta";
+ $cmd_str = $type_cmd;
+ local $tta=$config{'tta_aliascmd'};
+
+ if ( "$type_cmd" =~ /^no_run / ) { # Fake call to avoid running comand not breaking code
+ &webmin_log("tta $type_cmd", "$ens_obj", "$temp_f",undef);
+ return true;
+ }
+ if ( $tta_ok ne true ) { return -1 };
+ if ( "$type_cmd" eq "emulatorsession" ) {
+ $temp_f = &tempname();
+ $str=" $tta emulatorsession list >$temp_f";
+ }
+ if ( "$type_cmd" eq "list" ) {
+ $temp_f = &tempname();
+ $tempf = &tempname();
+ open(TEMPF, ">$tempf");
+ print TEMPF "--name $ens_obj\n";
+ close(TEMPF);
+ $str=" $tta object list_contents --file $tempf >$temp_f";
+ }
+ if ( "$type_cmd" eq "attributes" ) {
+ $temp_f = &tempname();
+ $tempf = &tempname();
+ open(TEMPF, ">$tempf");
+ print TEMPF "--name $ens_obj\n";
+ close(TEMPF);
+ $str=" $tta object list_attributes --file $tempf >$temp_f";
+ }
+ if ( "$type_cmd" eq "delete" ) {
+ $temp_f = &tempname();
+ open(TEMPF, ">$temp_f");
+ print TEMPF "$ens_obj\n";
+ close(TEMPF);
+ $str=" $tta object delete --file $temp_f";
+ }
+ if ( "$type_cmd" eq "new_person" ) { $str=" $tta object new_person --file $temp_f"; }
+ if ( "$type_cmd" eq "new_host" ) { $str=" $tta object new_host --file $temp_f"; }
+ if ( "$type_cmd" eq "new_group" ) { $str=" $tta object new_group --file $temp_f"; }
+ if ( "$type_cmd" eq "new_container") { $str=" $tta object new_container --file $temp_f"; }
+ if ( "$type_cmd" eq "new_charapp" ){ $str=" $tta object new_charapp --file $temp_f"; }
+ if ( "$type_cmd" eq "new_xapp" ) { $str=" $tta object new_xapp --file $temp_f"; }
+ if ( "$type_cmd" eq "new_webapp" ) { $str=" $tta object new_webapp --file $temp_f"; }
+ if ( "$type_cmd" eq "new_windowsapp" ) { $str=" $tta object new_windowsapp --file $temp_f"; }
+ if ( "$type_cmd" eq "edit" ) { $str=" $tta object edit --file $temp_f"; }
+ if ( "$type_cmd" eq "new_orgunit") { $str=" $tta object new_orgunit --file $temp_f"; }
+ if ( "$type_cmd" eq "passcache") { $str=" $tta passcache edit --file $temp_f"; }
+ if ( "$type_cmd" eq "new_group" ) { $str=" $tta object new_group --file $temp_f"; }
+ if ( "$type_cmd" eq "del_link" ) { $str=" $tta object remove_link --file $temp_f"; }
+ if ( "$type_cmd" eq "add_link" ) { $str=" $tta object add_link --file $temp_f"; }
+ if ( "$type_cmd" eq "rename" ) { $str=" $tta object rename --file $temp_f"; }
+ if ($str) {
+ # For TTA no errors in output commands means OK ... so change true/false !!!
+ local $tta_status_cmd=&run_cmd($str);
+ if ( $debug eq 0 ) {
+ if ( "$type_cmd" ne "attributes" &&
+ "$type_cmd" ne "emulatorsession" &&
+ "$type_cmd" ne "list" ) {
+ system("rm -f $temp_f 2>/dev/null");
+ unlink($temp_f);
+ }
+ if ( "$type_cmd" eq "attributes" || "$type_cmd" eq "list" ) {
+ system("rm -f $tempf 2>/dev/null");
+ unlink($tempf);
+ }
+ }
+ if ( $tta_status_cmd eq true ) {
+ return "";
+ } else {
+ return true;
+ }
+ }
+ return -1;
+}
+
+# Several calls are acepted
+# To get brand info from module.info call ("stta")
+# To check brand info for one file returns true or false
+# if is wrong size, brand or stamp return false aunless "fix"
+# call ("fileName","fix" | "",1 [debugOn])
+#
+# To check brand info for all file returns true or false
+# if one is wrong stop unless "fix"
+# call ("","fix" | "",1 [debugOn])
+sub check_brand_data
+{
+ local @brandInfo=();
+ local $brandData="";
+ local %minfo=&load_minfo();
+ local $status_chk=true;
+
+ if ( $_[0] eq $module_name ) {
+ return "$minfo{brand}";
+ } elsif ( "$_[0]" ne "" && -r "$root_directory/$_[0]" ) {
+ %h_brandInfo=&load_brandinfo();
+ @brandInfo=&getfile_branddata($_[0]);
+ local @st = stat("$root_directory/$_[0]");
+ my $id=$brandInfo{$_[0]}[0];
+ my $fidtime=$brandInfo{$_[0]}[1];
+ if ( $h_brandInfo{$_[0]}->{'size'} ne $st[7] ||
+ $h_brandInfo{$_[0]}->{'brand'} ne $id ||
+ $h_brandInfo{$_[0]}->{'descrip'} ne $fidtime ) {
+ &webmin_log("brand_check", "$_[0]", "error||size=>$st[7]||id=>$minfo{version}$id||desc=>$fidtime",$h_brandInfo{$_[0]});
+ if ( $_[1] eq "fix" ) {
+ &dump_brandinfo("",$_[0],$_[2])
+ } else {
+ $status_chk=false;
+ }
+ }
+ } elsif ( "$_[0]" eq "" ) {
+ $status_chk = &check_brand_dir($module_name,$_[1],$_[2]);
+ if ( $status_chk eq "false" && $_[1] ne "fix" ) { return $status_chk, }
+ $status_chk = &check_brand_dir("$module_name/index",$_[1],$_[2]);
+ if ( $status_chk eq "false" && $_[1] ne "fix" ) { return $status_chk, }
+ $status_chk = &check_brand_dir("$module_name/shells",$_[1],$_[2]);
+ if ( $status_chk eq "false" && $_[1] ne "fix" ) { return $status_chk, }
+ $status_chk = &check_brand_dir("$module_name/tools",$_[1],$_[2]);
+ }
+ return $status_chk;
+}
+
+sub check_brand_dir
+{
+ local @brandInfo=();
+ local $brandData="";
+ %h_brandInfo=&load_brandinfo();
+ local %minfo=&load_minfo();
+ local $status=true;
+
+ opendir(DIR, "$root_directory/$_[0]");
+ foreach $f (readdir(DIR)) {
+ next if ( -d $f );
+ if ( -r "$root_directory/$_[0]/$f" && $f =~ /\.(cgi|pl|sh|js|tcl)$/) {
+ $fpath="$_[0]/$f";
+ @brandInfo=&getfile_branddata($fpath);
+ my @st = stat("$root_directory/$fpath");
+ my $id=$brandInfo{$fpath}[0];
+ my $fidtime=$brandInfo{$fpath}[1];
+ if ( $h_brandInfo{$fpath}->{'size'} ne $st[7] ||
+ $h_brandInfo{$fpath}->{'brand'} ne $id ||
+ $h_brandInfo{$fpath}->{'descrip'} ne $fidtime ) {
+ &webmin_log("brand_check", "$fpath", "error||size=>$st[7]||id=>$minfo{version}$id||desc=>$fidtime",$h_brandInfo{$fpath});
+ if ( $_[1] eq "fix" ) {
+ &dump_brandinfo("",$fpath,$_[2])
+ } else {
+ $status_chk=false;
+ last;
+ }
+ }
+ }
+ }
+ closedir(DIR);
+ return $status_chk;
+}
+
+sub getfile_branddata
+{
+ local @brandInfo=();
+ local $brandData="";
+ local $lineStamp="# stta: (@#) ";
+ local $revLine="# STTA Rev. ";
+ local $check_next=false;
+
+ if ( -r "$root_directory/$_[0]" && $_[0] =~ /\.(cgi|pl|sh|js|tcl)$/) {
+ $check_next=false;
+ open(FILEDATA,"$root_directory/$_[0]");
+ while() {
+ if ( $check_next eq true ) {
+ if ( $_ !=~ /^$lineStamp/ ) {
+ $brandData=$_;
+ $brandData=~s/^# stta: \(\@\#\) //;
+ $brandInfo{$_[0]} = &wsplit($brandData);
+ }
+ last;
+ }
+ if ( $_ =~ /^# STTA Rev. / ) { $check_next=true; }
+ }
+ close FILEDATA;
+ }
+ return \@brandInfo;
+}
+
+# If the key is $_[0] || make a new one
+sub dump_brandinfo
+{
+ local ($id) = $_[0] || "";
+ $brandDataFile="$root_directory/$module_name/.brandinfofile";
+ local %minfo=&load_minfo();
+
+ if ( ! $id || $id eq "" ) {
+ # first make a new key !!!
+ local $now = time();
+ local @tm = localtime($now);
+ local $line_tm = sprintf "[%2.2d/%s/%4.4d %2.2d:%2.2d:%2.2d]",
+ $tm[3], $tm[4]+1, $tm[5]+1900,
+ $tm[2], $tm[1], $tm[0];
+ local %minfo=&load_minfo();
+ $id = sprintf "%s-%s", $minfo{version}.$now;
+ } else {
+ local $now=$id;
+ $now =~ s/^$minfo{version}//g;
+ }
+ local $fnow=&out_now_filename($now);
+ if ( $_[1] ne "" && -r "$root_directory/$_[1]" ) {
+ &setfile_branddata($_[1],$id." [$fnow]");
+ local @st = stat("$root_directory/$_[1]");
+ if ( $h_brandInfo{$fpath}->{fname} eq $_[1] ) {
+ open(BRANDFILE, "$brandDataFile");
+ @ary = ;
+ close BRANDFILE;
+ open(OUTFILE, ">$brandDataFile");
+ foreach $line (@ary) {
+ @dataline=split(/::/,$line, -1);
+ if ( $_[1] eq $dataline[0] ) {
+ print OUTFILE $_[1]."::".$id."::".$st[7]."::[".$fnow."]::\n";
+ } else {
+ print OUTFILE $line;
+ }
+ }
+ close (OUTFILE);
+ } else {
+ open(OUTFILE, ">>$brandDataFile");
+ print OUTFILE $_[1]."::".$id."::".$st[7]."::[".$fnow."]::\n";
+ close (OUTFILE);
+ }
+ if ( $_[2] eq 1 && $debug gt 2) { print "$text{brandedwith} $id $fnow\n"; }
+ } elsif ( "$_[1]" eq "" ) {
+ &webmin_log($config{'brand_list'}, "code", "brand",$brandInfo);
+ &lock_file($brandDataFile);
+ &dump_brandinfo_dir($id,$fnow,"$module_name",$_[2]);
+ &dump_brandinfo_dir($id,$fnow,"$module_name/index",$_[2]);
+ &dump_brandinfo_dir($id,$fnow,"$module_name/shells",$_[2]);
+ &dump_brandinfo_dir($id,$fnow,"$module_name/tools",$_[2]);
+
+ &unlock_file($brandDataFile);
+ $str=$text{'user_made'}." ".$ext{brand_title},"\n";
+ &additional_log('branding', "brand", $str);
+ local %minfo=&load_minfo("$root_directory/$module_name/");
+ $minfo{brand}=$id;
+ $minfo{stamp}=$fnow;
+ &write_file("$root_directory/$module_name/module.info", \%minfo);
+ }
+}
+
+
+sub dump_brandinfo_dir
+{
+ local ($id) = $_[0] || "";
+ local ($fnow) = $_[1] || "";
+ $brandDataFile="$root_directory/$module_name/.brandinfofile";
+ local %h_allbrandInfo=();
+ local @list__brandfs, @listaf;
+
+ opendir(DIR, "$root_directory/$_[2]");
+ if ( $_[3] eq 1 && $debug gt 2) { print "$text{brandedwith} $id $fnow\n"; }
+ foreach $f (readdir(DIR)) {
+ next if ( -d $f );
+ if ( -r "$root_directory/$_[2]/$f" && $f =~ /\.(cgi|pl|sh|js|tcl)$/) {
+ &setfile_branddata("$_[2]/$f",$id." [$fnow]");
+ local @st = stat("$root_directory/$_[2]/$f");
+ $h_allbrandInfo{$f} = {
+ 'fname' => "$_[2]/$f",
+ 'brand' => $id,
+ 'size' => $st[7],
+ 'descrip' => $fnow
+ };
+ }
+ }
+ closedir(DIR);
+ foreach $item (keys (%h_allbrandInfo)) {push (@listaf,$h_allbrandInfo{$item});}
+ @list__brandfs = sort {$a->{'fname'} cmp $b->{'fname'}} @listaf;
+ open(BRANDFILE, ">$brandDataFile");
+ foreach $brandf (@list__brandfs) {
+ $linbrandf=$brandf->{'fname'}."::".$brandf->{'brand'}."::".
+ $brandf->{'size'}."::[".$brandf->{'descrip'}."]::\n";
+ print BRANDFILE $linbrandf;
+ }
+ close BRANDFILE;
+}
+
+# Branding one file $_[0] with $_[1] key
+sub setfile_branddata
+{
+ local $brandData="";
+ local $lineStamp="# stta: (@#) ".$_[1];
+ local $revLine="# STTA Rev. ";
+ local $check_next=false;
+
+ $check_next=false;
+ my $fileNameW=&tempname();
+ $fileName="$_[0]";
+ $check_next=false;
+ open(OUTFILE, ">$fileNameW");
+ open(FILEIN, "$root_directory/$fileName") || return -1 ;
+ while() {
+ if ( $check_next eq true ) {
+ if ( $_ =~ /^# stta: \(@#\) / ) {
+ print OUTFILE $lineStamp."\n";
+ } else {
+ print OUTFILE $lineStamp." \n";
+ print OUTFILE $_;
+ }
+ $check_next=false;
+ } else {
+ print OUTFILE "$_";
+ }
+ if ( $_ =~ /^# STTA Rev. / ) { $check_next=true; }
+ }
+ close(FILEOUT);
+ close(INFILE);
+ system("mv $fileNameW $root_directory/$fileName");
+ system("chmod 755 $root_directory/$fileName");
+ if ( $_[0] && $debug gt 2) { print "$fileName\n"; }
+ return 0;
+}
+
+sub load_more_text
+{
+ local $module_dir="$root_directory/stta";
+ foreach $l (@lang_order_list) {
+ &read_file("$module_dir/lang/$_[0]/$l", \%text);
+ }
+ foreach $k (keys %text) {
+ $text{$k} =~ s/\$([A-Za-z0-9\.\-\_]+)/text_subs($1,\%text)/ge;
+ }
+}
+
+sub make_dir_ifnot
+{
+ return if ( ! $_[0] || $_[0] eq "" );
+ local @dataline=split(/\//,$_[0], -1);
+ local $dirname=$_[0];
+
+ if ( $#dataline > 0 ) { $dirname =~ s/$daltaline[$#dataline]//; }
+ if ( ! -d $dirname ) { system("mkdir -p $dirname") }
+}
+
+#list_servers()
+# Returns a list of all servers from the webmin servers module that can be
+# managed, plus this server
+sub list_servers
+{
+ local %rv=();
+ local $i=0;
+ local $srvCfgPath="$config_directory/servers";
+
+ opendir(DIR, "$srvCfgPath");
+ foreach $f (readdir(DIR)) {
+ # read the help file
+ next if ( -d "$srvCfgPath/$f" );
+ %srvcfg=();
+ if ( $f =~ /\.serv$/ ) { &read_file("$srvCfgPath/$f", \%srvcfg); }
+ next if ( !$srvcfg{id} || $srvcfg{id} eq "" );
+ next if ( $config{stta_hosts} =~ /$servcfg{host}/ );
+ $rv{$srvcfg{'host'}} = { 'id' => $srvcfg{'id'},
+ 'host' => $srvcfg{'host'},
+ 'desc' => $srvcfg{'desc'},
+ 'port' => $srvcfg{'port'},
+ 'ssl' => $srvcfg{'ssl'},
+ 'user' => $srvcfg{'user'},
+ 'pass' => $srvcfg{'pass'},
+ 'type' => $srvcfg{'type'} };
+ $i++;
+ }
+ closedir(DIR);
+ return %rv
+}
+
+sub get_ttaversion
+{
+ open(TTAVERSFILE, "$config{tta_dir}/bin/version");
+ local @ttavers = ;
+ close TTAVERSFILE;
+ local $ttaversLine="";
+ foreach $line (@ttavers) {
+ $line =~ s/\r|\n//g;
+ if ( $ttaversLine ne "" ) { $ttaversLine .= " - "; }
+ $ttaversLine .= $line;
+ }
+ return $ttaversLine;
+}
+
+# stringClip $string,[full,lead,last]
+sub stringClip
+{
+ local $i=0, $strLong=length($_[0]), $lastPos=$strLong;
+
+ if ( $_[1] ne "lead" ) { while ( substr($_[0],$lastPos--) =~ / / ) { } }
+ if ( $_[1] eq "last" ) { return substr($_[0],0,$lastPos-1); }
+ while ( substr($_[0],$i++) =~ /^ / ) { }
+ if ( $_[1] eq "lead" ) { return substr($_[0],$i-1,$strLong-$i+1) }
+ # print "$i - $lastPos\n";
+ if ( $_[1] eq "full" ) { return substr($_[0],$i-1,$lastPos-$i) }
+}
+
+sub check_brand_cgi
+{
+ my $cginame=$0 =~ /([^\/]+)$/ ? $1 : '-';
+ my $cgi_obj=$cginame;
+ my $cgiPath=$module_name."/".$cginame;
+ if ( $cgi_obj =~ /stta_warn/ ) { return } ;
+ my %h_brandInfo=&load_brandinfo();
+ $cgi_obj=~ s/.cgi//;
+ my @st = stat("$root_directory/".$h_brandInfo{$cgiPath}->{fname});
+ if ( $st[7] ne $h_brandInfo{$cgiPath}->{'size'} ) {
+ my $msg=&text("msgerr_brandfilesize",$cginame,$st[7],$h_brandInfo{$cgiPath}->{'size'});
+ &redirect("stta_warn.cgi?cgi=$cginame&msg=$msg");
+ }
+ if ( &check_brand_data($h_brandInfo{$cgiPath}->{fname}) eq "false" ) {
+ my $msg=&text("msgerr_brandfile",$cginame);
+ &redirect("stta_warn.cgi?cgi=$cginame&msg=$msg");
+ }
+ foreach $item (keys (%h_brandInfo)) {
+ if ( $item =~ /.pl/ ) {
+ @st = stat("$root_directory/".$h_brandInfo{$item}->{fname});
+ if ( $st[7] ne $h_brandInfo{$item}->{'size'} ) {
+ my $msg=&text("msgerr_brandfilesize",$item,$st[7],$h_brandInfo{$item}->{'size'});
+ &redirect("stta_warn.cgi?cgi=$cginame&msg=$msg");
+ }
+ if ( &check_brand_data($h_brandInfo{$item}->{fname}) eq "false" ) {
+ my $msg=&text("msgerr_brandfile",$item);
+ &redirect("stta_warn.cgi?cgi=$cginame&msg=$msg");
+ }
+ }
+ }
+}
+1; # Return true
diff --git a/stta/global.js b/stta/global.js
new file mode 100755
index 0000000..ee2726f
--- /dev/null
+++ b/stta/global.js
@@ -0,0 +1,171 @@
+/* ======================================================================
+DESC: Funciones Globales JavaScript
+PLATFORMS: Alls
+Author: Jesus Perez Lorenzo
+Date Created: 8/7/2001
+Version: 1.1
+# STTA Rev. 1.3 Copyright (c) 2001-2002 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+USAGE NOTES:
+====================================================================== */
+
+/* Strings for locales */
+var debugMode=false;
+var msg1=" el valor no es correcto ";
+/******************************************************************
+ debug(str)
+ To trace functions when debugMode is true
+*******************************************************************/
+function debug(str) {
+ if ( debugMode == true ) {
+ alert(str);
+ }
+}
+/******************************************************************
+ setStatusBar(str)
+ Assign str to Status Bar in the Window
+*******************************************************************/
+function setStatusBar(str) {
+ window.status=str;
+ return true;
+}
+
+/******************************************************************
+ emptyField(textObj)
+ Check to see if text field is empty
+*******************************************************************/
+function emptyField(textObj) {
+ if (textObj.value.length == 0) return true;
+ for (var i=0; i= 0) ? ("" + opts[k].value) : null;
+// return elem.options[elem.selectedIndex].value;
+ } else if(type == "radio"){
+ // return the "value" of a radio group
+ j = elem.length;
+ k = -1;
+ for(i = 0; i < j; i++){
+ if(elem[i].checked){ k=i ; break; }
+ }
+ return (k >= 0) ? elem[k].value : null;
+ } else {
+ return null;
+ }
+}
+/******************************************************************
+ StringClip(full,i_cadena)
+ To eliminate trailing spaces, full will eliminate begining spaces
+ if string "i_cadena" is "null" the return value will be " "
+*******************************************************************/
+function StringClip(full,i_cadena) {
+ var ipos=0;
+ var lpos=0;
+ var cadena=i_cadena+"";
+ if (!cadena || cadena == " " )
+ return " "
+ lpos=cadena.length;
+ if (lpos <= 1 )
+ return cadena;
+ if (cadena == "null")
+ return " ";
+// debug("->"+cadena+"<- "+lpos);
+ for (var i=lpos-1; i > 1 ; i--) {
+// debug("-->"+i+"<--")
+ if (cadena.substring(i,i+1) != " " ) break;
+ }
+// debug("--"+ipos+"--"+i+"--"+lpos+"--")
+ if ( i > 0 )
+ lpos=i+1;
+
+ if ( full == true ) {
+ for (var j=1 ; j 0 )
+ ipos=j-1;
+ }
+// debug("Cadena: "+cadena.substring(ipos,lpos)+"<-->"+i+"logg="+cadena.length);
+ return cadena.substring(ipos,lpos)
+}
+/******************************************************************
+ isNroThis(obj)
+*******************************************************************/
+function isNroThis(obj) {
+ nro=parseInt(obj.value)
+ if ( nro+1 > 0 )
+ return true
+ else {
+ alert(msg1);
+ obj.focus();
+ return false
+ }
+}
+/******************************************************************
+setCookie(name,value)
+******************************************************************/
+function setCookie (name, value, expires, path, domain, secure) {
+ document.cookie = name + "=" + escape(value) +
+ ((expires) ? "; expires=" + expires : "") +
+ ((path) ? "; path=" + path : "") +
+ ((domain) ? "; domain=" + domain : "") +
+ ((secure) ? "; secure" : "");
+ }
+/******************************************************************
+getCookie(name)
+******************************************************************/
+function getCookie(name) {
+ var cookie = " " + document.cookie;
+ var search = " " + name + "=";
+ var setStr = null;
+ var offset = 0;
+ var end = 0;
+ if (cookie.length > 0) {
+ offset = cookie.indexOf(search);
+ if (offset != -1) {
+ offset += search.length;
+ end = cookie.indexOf(";", offset)
+ if (end == -1) {
+ end = cookie.length;
+ }
+ setStr = unescape(cookie.substring(offset, end));
+ }
+ }
+ return(setStr);
+ }
+/******************************************************************
+ CheckCookie(obj)\n";
+*******************************************************************/
+function CheckCookie(obj) {
+ if ( emptyField(obj) == true ) {
+ val=getCookie(obj.name);
+ if ( val ) { obj.value=getCookie(obj.name)} ;
+ }
+}
diff --git a/stta/gpl/gpl.txt b/stta/gpl/gpl.txt
new file mode 100755
index 0000000..84c2682
--- /dev/null
+++ b/stta/gpl/gpl.txt
@@ -0,0 +1,281 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
diff --git a/stta/gpl/license-es.html b/stta/gpl/license-es.html
new file mode 100755
index 0000000..edf1f66
--- /dev/null
+++ b/stta/gpl/license-es.html
@@ -0,0 +1,138 @@
+
+
+
+
+
+GNU General Public License
+Licencia Pública General
+
+Versión 2, Junio de 1991
+Traducción al Español : Diciembre de 2001 por
+José María Saráchaga Fischer jsarachaga@garaitia.com
+
+
+ > preámbulo
+ > términos y condiciones
+
+
+
+This is an unofficial translation of the GNU General Public License into spanish. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL--only the original English text of the GNU GPL does that. However, we hope that this translation will help spanish speakers understand the GNU GPL better.
+
+Esta es una traducción NO oficial de la "GNU General Public License" al español. No fué publicada por la "FSF Free Software Foundation", y no respalda legalmente los términos de distribución del software que utiliza la "GNU GPL", sólo el texto original en inglés lo hace. Sin embargo esperamos que esta traducción ayude a las personas de habla hispana a entender menor la "GPL".
+
+
+
+
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+Toda persona tiene permiso de copiar y distribuir copias fieles de este documento de licencia, pero no se permite hacer modificaciones.
+
+
+
+PREAMBULO
+
+Los contratos de licencia de la mayor parte del software están diseñados para quitarle su libertad de compartir y modificar dicho software. En contraste, la "GNU General Public License" pretende garantizar su libertad de compartir y modificar el software "libre", esto es para asegurar que el software es libre para todos sus usuarios. Esta licencia pública general se aplica a la mayoría del software de la "FSF Free Software Foundation" (Fundación para el Software Libre) y a cualquier otro programa de software cuyos autores así lo establecen. Algunos otros programas de software de la Free Software Foundation están cubiertos por la "LGPL Library General Public License" (Licencia Pública General para Librerías), la cual puede aplicar a sus programas también.
+
+Cuando hablamos de software libre, nos referimos a libertad, no precio. Nuestras licencias "General Public Licenses" están diseñadas para asegurar que:
+
+ usted tiene la libertad de distribuir copias del software libre (y cobrar por ese sencillo servicio si así lo desea)
+ recibir el código fuente (o tener la posibilidad de obtenerlo si así lo desea)
+ que usted puede modificar el software o utilizar partes de el en nuevos programas de software libre
+ que usted esté enterado de que tiene la posibilidad de hacer todas estas cosas.
+
+Para proteger sus derechos, necesitamos hacer restricciones que prohiban a cualquiera denegarle estos derechos o a pedirle que renuncie a ellos. Estas restricciones se traducen en algunas responsabilidades para usted si distribuye copias del software, o si lo modifica.
+
+Por ejemplo, si usted distribuye copias de un programa, ya sea gratuitamente o por algun importe, usted debe dar al que recibe el software todos los derechos que usted tiene sobre el mismo. Debe asegurarse también que reciban el código fuente o bién que puedan obtenerlo si lo desean. Y por último debe mostrarle a esa persona estos términos para que conozca los derechos de que goza.
+
+Nosotros protegemos sus derechos en 2 pasos: (1) protegiendo los derechos de autor del software y (2) ofreciendole este contrato de licencia que le otorga permiso legal para copiar, distribuir y modificar el software.
+
+Además, para la protección de los autores de software y la nuestra, queremos asegurarnos de que toda persona entienda que no existe ninguna garantía del software libre. Si el software es modificado por alguien y lo distribuye, queremos que quienes lo reciban sepan que la copia que obtuvieron no es la original, por lo que cualquier problema provocado por quien realizó la modificación no afectará la reputación del autor original.
+
+Finalmente, cualquier programa de software libre es constantemente amenazado por las patentes de software. Deseamos evadir el peligro de que los re-distribuidores de un programa de software libre obtenga individualmente los derechos de patente con el fin de volver dicho programa propietario. Para prevenir esto, hemos dejado en claro que cualquier patente deberá ser licenciada para el uso libre de toda persona o que no esté licenciada del todo.
+
+A continuación se describen con precisión los términos y condiciones para copiar, distribuir y modificar el software.
+
+
+
+
+TERMINOS Y CONDICIONES PARA COPIA, MODIFICACION Y DISTRIBUCION
+
+
+0. Esta licencia aplica a cualquier programa o trabajo que contenga una nota puesta por el propietario de los derechos del trabajo estableciendo que su trabajo puede ser distribuido bajo los términos de esta "GPL General Public License". El "Programa", utilizado en lo subsecuente, se refiere a cualquier programa o trabajo original, y el "trabajo basado en el Programa" significa ya sea el Programa o cualquier trabajo derivado del mismo bajo la ley de derechos de autor: es decir, un trabajo que contenga el Programa o alguna porción de el, ya sea íntegra o con modificaciones y/o traducciones a otros idiomas. De aquí en adelante "traducción" estará incluida (pero no limitada a) en el término "modificación", y la persona a la que se aplique esta licencia será llamado "usted".
+
+Otras actividades que no sean copia, distribución o modificación no están cubiertas en esta licencia y están fuera de su alcance. El acto de ejecutar el programa no está restringido, y la salida de información del programa está cubierta sólo si su contenido constituye un trabajo basado en el Programa (es independiente de si fue resultado de ejecutar el programa). Si esto es cierto o no depende de la función del programa.
+
+1. Usted puede copiar y distribuir copias fieles del código fuente del programa tal como lo recibió, en cualquier medio, siempre que proporcione de manera conciente y apropiada una nota de derechos de autor y una declaración de no garantía, además de mantener intactas todas las notas que se refieran a esta licencia y a la ausencia de garantía, y que le proporcione a las demás personas que reciban el programa una copia de esta licencia junto con el Programa.
+
+Usted puede aplicar un cargo por el acto físico de transferir una copia, y ofrecer protección de garantía por una cuota, lo cual no compromete a que el autor original del Programa responda por tal efecto.
+
+2. Usted puede modificar su copia del Programa o de cualquier parte de el, formando así un trabajo basado en el Programa, y copiar y distribuir tales modificaciones o bién trabajar bajo los términos de la sección 1 arriba descrita, siempre que cumpla con las siguientes condiciones:
+
+
+ Usted debe incluir en los archivos modificados notas declarando que modificó dichos archivos y la fecha en de cambio.
+
+ Usted debe notificar que ese trabajo que distribuye contiene totalmente o en partes al Programa, y que debe ser licenciado como un conjunto sin cargo alguno a cualquier otra persona que reciba sus modificaciones bajo los términos de esta Licencia.
+
+ Si el programa modificado lee normalmente comandos interactivamente cuando es ejecutado, usted debe presentar un aviso, cuando el programa inicie su ejecución en ese modo interactivo de la forma más ordinaria, que contenga una noticia de derechos de autor y un aviso de que no existe garantía alguna (o que sí existe si es que usted la proporciona) y que los usuarios pueden redistribuir el programa bajo esas condiciones, e informando al usuario como puede ver una copia de esta Licencia. (Excepción: si el programa en sí es interactivo pero normalmente no muestra notas, su trabajo basado en el Programa no tiene la obligación de mostrar tales notas)
+
+
+Estos requerimientos aplican al trabajo modificado como un todo. Si existen secciones identificables de tal trabajo que no son derivadas del Programa original, y pueden ser razonablemente consideradas trabajos separados e independientes como tal, entonces esta Licencia y sus términos no aplican a dichas secciones cuando usted las distribuye como trabajos separados. Pero cuando usted distribuye las mismas secciones como parte de un todo que es un trabajo basado en el Programa, la distribución del conjunto debe ser bajo los términos de esta Licencia, cuyos permisos para otras personas que obtengas el software se extienden para todo el software, así como para cada parte de el, independientemente de quién lo escribió.
+
+No es la intención de esta sección de reclamar derechos o pelear sus derechos sobre trabajos hechos enteramente por usted, en lugar de eso, la intención es ejercer el derecho de controlar la distribución de los trabajos derivados o colectivos basados en el Programa.
+
+Adicionalmente, el simple agregado de otro trabajo NO basado en el Programa al Programa en cuestión (o a un trabajo basado en el Programa) en algún medio de almacenamiento no pone el otro trabajo bajo el alcance de esta Licencia.
+
+3. Usted puede copiar y distribuir el Programa (o un trabajo basado en él, bajo la Sección 2) en código objeto o en forma de ejecutable najo los términos de las secciones 1 y 2 arriba descritas siempre que cumpla los siguientes requisitos:
+
+ Acompañarlo con el correspondiente código fuente legible por la máquina, que debe ser distribuído bajo los términos de las secciones 1 y 2 y en un medio comunmente utilizado para el intercambio de software, o
+
+ Acompañarlo con una oferta escrita, válida por al menos 3 años y para cualquier persona, por un cargo no mayor al costo que conlleve la distribución física del código fuente correspondiente en un medio comunmente utilizado para el intercambio de software, o
+
+ Acompañarlo con la información que usted recibió sobre la oferta de distribución del código fuente correspondiente. (Esta alternativa está permitida sólo para distribución no-comercial y sólo si usted recibió el Programa en código objeto o en forma de ejecutable con tal oferta de acuerdo a la subsección b anterior)
+
+
+El código fuente de un trabajo significa la forma preferida de hacer modificaciones al mismo. Para un trabajo ejecutable, un código fuente completo significa todo el código fuente de todos los módulos que contiene, mas cualquier archivo de definición de interfases, mas los programas utilizados para controlas la compilación y la instalación del ejecutable.
+
+Si la distribución del ejecutable o del código objeto se hace ofreciendo acceso a copiar desde un lugar designado, entonces el ofrecer acceso equivalente para copiar el código fuente desde el mismo lugar se considera distribución del código fuente, aunque las demás personas no copien el código fuente junto con el código objeto.
+
+4. Usted no puede copiar, modificar, sub-licenciar ni distribuir el Programa a menos que sea expresamente bajo esta Licencia, de otra forma cualquier intento de copiar, modificar, sub-licenciar o distribuir el programa es nulo, y automáticamente causará la pérdida de sus derechos bajo esta Licencia. Sin embargo, cualquier persona que haya recibido copias o derechos de usted bajo esta Licencia no verán terminadas sus Licencias ni sus derechos perdidos mientras ellas continúen cumpliendo los términos de esta Licencia.
+
+5. Usted no está obligado a aceptar esta Licencia, dado que no la ha firmado. Sin embargo, nada le otorga el permiso de modificar o distribuir el Programa ni sus trabajos derivados. Estas acciones están prohibidas por la ley si usted no acepta esta Licencia. Sin embargo, modificando o distribuyendo el Programa (o cualquier trabajo basado en el Programa) indica su aceptación de esta Licencia y de todos sus términos y condiciones para copiar, distribuir o modificar el Programa y/o trabajos basados en el.
+
+6. Cada vez que usted redistribuye el Programa (o cualquier trabajo basado en el Programa), la persona que lo recibe automáticamente recibe una licencia del autor original para copiar, distribuir o modificar el Programa sujeto a estos términos y condiciones. Usted no puede imponer ninguna restricción adicional a las personas que reciban el Programa sobre los derechos que en esta Licencia se les otorga. Usted no es responsable de forzar a terceras personas en el cumplimiento de esta Licencia.
+
+7. Si como consecuencia de un veredicto de un juzgado o por el alegato de infringir una patente o por cualquier otra razón (no limitado solo a cuestiones de patentes) se imponen condiciones sobre usted que contradigan los términos y condiciones de esta Licencia, éstas no le excusan de los términos y condiciones aquí descritos. Si usted no puede distribuir el producto cumpliendo totalmente con las obligaciones concernientes a la resolución oficial y al mismo tiempo con las obligaciones que se describen en este contrato de Licencia, entonces no podrá distribuir más este producto. Por ejemplo, si una licencia de patente no permitirá la distribución del Programa de forma libre de regalías (sin pago de regalías) por parte de quienes lo reciban directa o indirectamente, entonces la única forma de cumplir con ambas obligaciones es renunciar a la distribución del mismo.
+
+Si cualquier parte de esta sección resulta inválida, inaplicable o no obligatoria bajo cualquier circunstancia en particular, la tendencia de esta es a aplicarse, y la sección completa se aplicará bajo otras circunstancias.
+
+La intención de esta sección no es la de inducirlo a infringir ninguna ley de patentes, ni tampoco infringir algún reclamo de derechos, ni discutir la validez de tales reclamos; esta sección tiene el único propósito de proteger la integridad del sistema de distribución del software libre, que está implementado por prácticas de licencia pública. Mucha gente ha hecho generosas contribuciones a la amplia gama de software distribuido bajo este sistema favoreciendo así la constante aplicación de este sistema de distribución; es decisión del autor/donador si su Programa será distribuído utilizando este u otro sistema de distribución, y la persona que recibe el software no puede obligarlo a hacer ninguna elección en particular.
+
+Esta sección pretende dejar muy en claro lo que se cree que será una consecuencia del resto de esta Licencia.
+
+8. Si la distribución y/o el uso del Programa se restringe a algunos países ya sea por patentes, interfases protegidas por derechos de autor, el propietario original de los derechos de autor que ubica su Programa bajo esta Licencia puede agregar una restricción geográfica de distribución explícita excluyendo los países que aplique, dando como resultado que su distribución sólo se permita en los países no excluídos. En tal caso, esta Licencia incorpora la limitación como si hubiera sido escrita en el cuerpo de esta misma Licencia.
+
+9. La "FSF Free Software Foundation" puede publicar versiones nuevas o revisadas de la "GPL General Public License" de uno a otro momento. Estas nuevas versiones mantendrán el espíritu de la presente versión, pero pueden diferir en la inclusión de nuevos problemas o en la manera de tocar los problemas o aspectos ya presentes.
+
+Cada versión tendrá un número de versión que la distinga. Si el Programa especifica un número de versión para esta Licencia que aplique a él y "cualquier versión subsecuente", usted tiene la opción de seguir los términos y condiciones de dicha versión o de cualquiera de las posteriores versiones publicadas por la "FSF". Si el programa no especifica una versión en especial de esta Licencia, usted puede elegir entre cualquiera de las versiones que han sido publicadas por la "FSF".
+
+10. Si usted desea incorporar partes del Programa en otros Programas de software libre cuyas condiciones de distribución sean distintas, deberá escribir al autor solicitando su autorización. Para programas de software protegidas por la "FSF Free Software Foundation", deberá escribir a la "FSF" solicitando autorización, en ocasiones hacemos excepciones. Nuestra decisión será guiada por dos metas principales:
+
+ mantener el estado de libertad de todos los derivados de nuestro software libre
+ promover el uso comunitario y compartido del software en general
+
+
+
+
+NO EXISTE GARANTIA ALGUNA
+
+
+11. DEBIDO A QUE EL PROGRAMA SE OTORGA LIBRE DE CARGOS Y REGALIAS, NO EXISTE NINGUNA GARANTIA PARA EL MISMO HASTA DONDE LO PERMITA LA LEY APLICABLE. A EXCEPCION DE QUE SE INDIQUE OTRA COSA, LOS PROPIETARIOS DE LOS DERECHOS DE AUTOR PROPORCIONAN EL PROGRAMA "COMO ES" SIN NINGUNA GARANTIA DE NINGUN TIPO, YA SEA EXPLICITA O IMPLICITA, INCLUYENDO, PERO NO LIMITADA A, LAS GARANTIAS QUE IMPLICA EL MERCADEO Y EJERCICIO DE UN PROPOSITO EN PARTICULAR. CUALQUIER RIESGO DEBIDO A LA CALIDAD Y DESEMPEÑO DEL PROGRAMA ES TOMADO COMPLETAMENTE POR USTED. SI EL SOFTWARE MUESTRA ALGUN DEFECTO, USTED CUBRIRA LOS COSTOS DE CUALQUIER SERVICIO, REPARACION O CORRECCION DE SUS EQUIPOS Y/O SOFTWARE QUE REQUIERA.
+
+12. EN NINGUN CASO NI BAJO NINGUNA CIRCUNSTANCIA EXCEPTO BAJO SOLICITUD DE LA LEY O DE COMUN ACUERDO POR ESCRITO, NINGUN PROPIETARIO DE LOS DERECHOS DE AUTOR NI TERCERAS PERSONAS QUE PUDIERAN MODIFICAR Y/O REDISTRIBUIR EL PROGRAMA COMO SE PERMITE ARRIBA, SERAN RESPONSABLES DE LOS DAÑOS CORRESPONDIENTES AL USO O IMPOSIBILIDAD DE USAR EL PROGRAMA, SIN IMPORTAR SI SON DAÑOS GENERALES, ESPECIALES, INCIDENTALES O CONSEQUENTES CORRESPONDIENTES AL USO O IMPOSIBILIDAD DE USAR EL PROGRAMA (INCLUYENDO PERO NO LIMITADO A LA PERDIDA DE INFORMACION O DETERIORO DE LA MISMA AFECTANDOLO A USTED, A TERCERAS PERSONAS QUE SEA POR FALLAS EN LA OPERACION DEL PROGRAMA O SU INTERACCION CON OTROS PROGRAMAS) INCLUSIVE SI TAL PROPIETARIO U OTRAS PERSONAS HAYAN SIDO NOTIFICADAS DE TALES FALLAS Y DE LA POSIBILIDAD DE TALES DAÑOS.
+
+
+FIN DE TERMINOS Y CONDICIONES
+
+
diff --git a/stta/gpl/license-es.txt b/stta/gpl/license-es.txt
new file mode 100755
index 0000000..a29fc80
--- /dev/null
+++ b/stta/gpl/license-es.txt
@@ -0,0 +1,29 @@
+ STTA Rev. 1.3 Copyright (c) Jesús Pérez Lorenzo --- license GNU GPL
+
+ Este programa es Software Libre; usted puede redistribuirlo
+ y/o modificarlo bajo los términos de la "GNU General Public License"
+ como lo publica la "FSF Free Software Foundation",
+ o (a su elección) de cualquier versión posterior.
+
+ Este programa es distribuído con la esperanza de que le sea
+ útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía
+ implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO
+ en particular. Vea la "GNU General Public License" para más detalles.
+
+ Jesús Pérez Lorenzo como autor no está obligado a NINGUNA GARANTIA,
+ para más detalles ver los términos de la Licencia.
+ Este es Software Libre, y a usted le está permitido redistribuirlo
+ bajo ciertas condiciones que se detallan en la Licencia.
+
+
+ Jesús Pérez Lorenzo, 15 de Octubre de 2002
+ Consultor de Sistemas Informáticos.
+
+ e-mail: jesus.perez@eagora.info
+ URL: http://www.eagora.info/stta
+
+ Rincón de la Victoria
+ MALAGA
+ ESPAÑA
+
+
diff --git a/stta/gpl/license.html b/stta/gpl/license.html
new file mode 100755
index 0000000..8b97a17
--- /dev/null
+++ b/stta/gpl/license.html
@@ -0,0 +1,435 @@
+
+
+
+GNU General Public License - GNU Project - Free Software Foundation (FSF)
+
+
+
+GNU General Public License
+
+
+
+
+
+
+
+
Table of Contents
+
+
+
+
+
+
+
+
+
+
+
+
+Version 2, June 1991
+
+
+
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+
+
+
+
+
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+
+
+
+
+
+
+
+
+0.
+ This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+
+
+1.
+ You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+
+2.
+ You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+
+
+
+a)
+ You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+
+
b)
+ You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+
+
c)
+ If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+
+
+3.
+ You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+
+
+
+
+
+a)
+ Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+
+
b)
+ Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+
+
c)
+ Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+
+4.
+ You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+
+
+5.
+ You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+
+
+6.
+ Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+
+
+7.
+ If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+
+
+8.
+ If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+
+
+9.
+ The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+
+
+
+10.
+ If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+
+
+
NO WARRANTY
+
+
+
+11.
+ BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+
+
+12.
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+
+
+
+
END OF TERMS AND CONDITIONS
+
+
+Return to GNU's home page .
+
+FSF & GNU inquiries & questions to
+gnu@gnu.org .
+Other ways to contact the FSF.
+
+Comments on these web pages to
+webmasters@www.gnu.org ,
+send other questions to
+gnu@gnu.org .
+
+Copyright notice above.
+Free Software Foundation, Inc.,
+59 Temple Place - Suite 330, Boston, MA 02111, USA
+
+Updated:
+
+Last modified: Sun Jul 15 13:13:30 CEST 2001
+
+
+
+
diff --git a/stta/gpl/license.txt b/stta/gpl/license.txt
new file mode 100755
index 0000000..fa69c65
--- /dev/null
+++ b/stta/gpl/license.txt
@@ -0,0 +1,24 @@
+ STTA Rev. 1.3 Copyright (c) Jesús Pérez Lorenzo --- license GNU GPL
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+
+ Jesús Pérez Lorenzo, 15 October 2002
+ Coumputer Systems Consultant
+
+ e-mail: jesus.perez@eagora.info
+ URL: http://www.eagora.info/stta
+
+ Rincón de la Victoria
+ MALAGA
+ SPAIN
+
+
diff --git a/stta/help-lib.pl b/stta/help-lib.pl
new file mode 100755
index 0000000..98000f0
--- /dev/null
+++ b/stta/help-lib.pl
@@ -0,0 +1,693 @@
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+# help-lib.pl
+# changes to manage webminlog sid
+
+sub write_helpfile
+{
+ local $dir = $module ? "../$_[0]/help" : "$_[0]/help";
+ if ( $debug lt 4 ) {
+ &helperror(&text('help_efile', "$dir/$_[1]"));
+ return;
+ }
+ local $path = "$dir/$_[1].$current_lang.html";
+ open (FILE, ">$path");
+ print FILE "\n";
+ print FILE "\n";
+ print FILE "\n";
+ close (FILE);
+}
+
+sub open_help_file
+{
+ # read the help file
+ if ($file =~ /\.html$/) { # it is a full path
+ $path = "$root_directory/$module/$file";
+ } else {
+ $path = &help_file($module, $file);
+ }
+ @st = stat($path);
+ # open(HELP, $path) || &write_helpfile($module,$file);
+ open(HELP, $path) || &helperror(&text('help_efile', $path));
+ read(HELP, $help, $st[7]);
+ close(HELP);
+}
+
+sub make_help_html
+{
+ %infoCfg=();
+ # Use config.info to create config inputs
+ &read_file("$root_directory/stta/config.info", \%infoCfg);
+ foreach $o (@lang_order_list) {
+ &read_file("$root_directory/stta/config.info.$o", \%infoCfg);
+ }
+ &load_more_text('help'); # to make easy translations let us put a lang file
+ &load_more_text('cfg'); # load cfg helps
+ &load_more_text('feedback'); # load cfg helps
+ &read_file("$root_directory/$module/dataconf/form_vars", \%text); # Forms values
+ $headImg="";
+ $isBook=false; # this is to make a book, will avoid footlinks
+ $isSection=false; # this is to ouput other links in includes when in sections
+ $isHeadImg=false; # this is to close table if head image is in use
+ $sectionName=""; # this is to keep section name, in some cases change output
+ $isTocBody=false; # this is to know if index has to be made and adjust foot
+ $tableWidth="width=100%"; # this is the basic with that has tobe changes for STTA book
+
+ local $noHeaderTable=false; # this is to not have too many headers in recursive includes
+
+ if ( $WebHelpOut ) {
+ &set_interface_colors(); # just to be sure !!!
+ }
+ if ($help =~ //) { $isBook=true; $tableWidth="width=90%" }
+ if ($help =~ /]*)>/) { $isSection=true; $sectionName=$1 }
+ if ($help =~ //) { $isTocBody=true; }
+ $help =~ s///g;
+
+ $help =~ s/]*)">/makeRulerTask($1)/ge;
+ $help =~ s/]*)"\s+item="([^>]*)">/setRulerLink($1,$2)/ge;
+ $help =~ s/]*)">/makeTargets($1)/ge;
+
+ # find and replace directives
+ $help =~ s/]*)>/exechelp($1)/ge;
+ # find and replace %LANG% for lang directory
+ $help =~ s/%LANG%/$current_lang/g;
+
+ if ( $help =~ //) {
+ $help =~ s///g;
+ $noHeaderTable=true;
+ }
+
+ $help =~ s/([^<]+)<\/headimg>/headimg($1)/ge;
+
+ # find and replace the section
+ if ($help =~ /([^<]+)<\/header>/) {
+ $headTitle=$1;
+ if ( $headTitle =~ /\$infoCfg/ ) {
+ $headTitle=~ s/\$infoCfg{(\S+)}/infoCfg($1,'noFont')/ge;
+ }
+ &header($headTitle);
+ if ( $help =~ //) {
+ $help =~ s/([^<]+)<\/header>/headtableHelp($1)/ge;
+ $help =~ s/(.*)<\/headertitle>/headtitleHelp($1)/eos;
+ } else {
+ $help =~ s/([^<]+)<\/header>/headtableHelp($1,1)/ge;
+ }
+ } else {
+ &helperror($text{'help_eheader'});
+ }
+
+ if ($help =~ //) {
+ local $book=&inchelp($noHeaderTable,$1);
+ $book =~ s/]*)">([^>]*)<\/a><\/li>/setBookLine($1,$2)/ge;
+ $help =~ s//$book/g;
+ }
+
+ # find and replace directives
+ $help =~ s/]*)>([\000-\177]*?)([\000-\177]*?)<\/if>/ifhelp($1, $2, $3)/ge;
+ # find and replace directives
+ $help =~ s/]*)>([\000-\177]*?)<\/if>/ifhelp($1, $2)/ge;
+
+ # find and replace directives
+ $help =~ s//lihelpinc($1,$2)/ge;
+ $help =~ s//inchelp($noHeaderTable,$1)/ge;
+ $help =~ s/%PREFIX%/ /g;
+
+ $help =~ s/(.*)<\/footlinks>/footlinksHelp($1)/eos;
+ $help =~ s/<\$out_table{(\S+)}>/infoTable($1)/ge;
+ $help =~ s/\$infoCfg{(\S+)}/infoCfg($1)/ge;
+
+ $help =~ s/%H%/ /g;
+ $help =~ s/%W%/ /g;
+ $help =~ s/%I%/ /g;
+ $help =~ s/%N%/ /g;
+ $help =~ s/%S%/ /g;
+ $help =~ s/%U%/ /g;
+ $help =~ s/%P%/ /g;
+ $help =~ s/%AR%/ /g;
+ $help =~ s/%OK%/ /g;
+ $help =~ s/%INFO%/ /g;
+
+ if ( $WebHelpOut ) {
+ $help =~ s/="bookstta.pdf"/="$text{bookpdf_url}"/g;
+ $help =~ s/href="(\S+)"/hrefchange($1)/ge;
+ $help =~ s/HREF="(\S+)"/hrefchange($1)/ge;
+ $help =~ s/src="(\S+)"/imgsrcchange($1)/ge;
+ $help =~ s/window\.open\("(\S+)"/winOpenUrl($1)/ge;
+ $help =~ s/background="(\S+)"/imgbkgchange($1)/ge;
+ $help =~ s/href="\/stta\/sttaconfig.cgi"/href="$URLBase\/sttaconfig.html"/g;
+ $help =~ s/\/stta\/images\//\/stta\/help\/images\//g;
+ } else {
+ if ( -r "$root_directory/$module/help/$current_lang/bookstta.pdf" ) {
+ $help =~ s/="bookstta.pdf"/="\/$module\/help\/$current_lang\/bookstta.pdf"/g;
+ } else { $help =~ s/="bookstta.pdf"/="$text{bookpdf_url}"/g; }
+ }
+ $help =~ s/href="(\S+)"/hrefplusquery($1)/ge;
+ $help =~ s/%HRTABLE%/hr_table()/ge;
+
+ # output the HTML
+ #print $help;
+ # &footer();
+}
+#makeRulerTask(task)
+sub makeRulerTask
+{
+ my $taskOps="";
+ my %rules=();
+
+ if ( ! -r "$root_directory/stta/install/rules" ) { return "" }
+ &read_file("$root_directory/stta/install/rules", \%rules);
+ &read_file("$root_directory/stta/$_[0]/rules", \%rules);
+ my @ruleline = split(/,/,$rules{$_[0]},-1);
+ foreach $r (@ruleline) {
+ if ( $isBook eq true ) {
+ $taskOps .= " ";
+ } else {
+ $taskOps .=" ";
+ }
+ }
+ $taskOps .=" ";
+ return $taskOps;
+}
+#setRulerLink(task,item_file)
+sub setRulerLink
+{
+ if ( -r "$root_directory/stta/$_[0]/info/$_[1].html" ) {
+ return "";
+ } elsif ( -r "$root_directory/stta/install/info/$_[1].html" ) {
+ return "";
+ } else {
+ return "";
+ }
+}
+#makeTargets (targetList)
+sub makeTargets
+{
+ my @targetList=split(/,/,$_[0], -1);
+ my $targetStr="";
+ my $itemTit="";
+ foreach $r (@targetList) {
+ $itemTit="index_".$r;
+ if ( $isBook eq true ) {
+ $targetStr .= " ";
+ } else {
+ $targetStr .= " ".&hlink($text{$itemTit},$r)." ";
+ }
+ }
+ $targetStr .=" ";
+ return $targetStr;
+}
+# inchelp(noHeaderTable,path)
+sub inchelp
+{
+ local $ipath = "";
+ local $baseInc = $_[2] || ""; # base help module dir path
+
+ if ($_[1] =~ /^\/(\S+)/) {
+ # including something from another module..
+ $baseInc="/".$_[1]; # inside modules path are relative so STTA change to absolutes
+ my @lin=split(/\//,$_[1], -1);
+ $baseInc=~ s/$lin[$#lin]//; # last arg should be the file to load
+ if ( $baseInc =~ /\/info\// ) {
+ $ipath = "$root_directory"."$baseInc".$lin[$#lin].".html";
+ } else {
+ $ipath = &help_file($lin[0], $lin[$#lin]); # first arg should be the module
+ }
+ } else {
+ if ( $baseInc ne "" ) { # including from another module
+ $baseInc=~ s/\/\///g;
+ my @lin=split(/\//,$baseInc, -1); # arg 1 should be the module
+ $ipath = &help_file($lin[1], $_[1]); # file to load should be $_[1]
+ } else {
+ # including file to load $_[1] plus module from help.cgi ( $module = $1 )
+ $ipath = &help_file($module, $_[1]);
+ }
+ }
+ my $inc="";
+ if ( ! -r $ipath ) { $ipath =~ s/.html$//g; }
+ local $noHeaderTable=$_[0]; # this is to avoid another header output ... too many headers
+ @st = stat($ipath);
+ open(INC, $ipath) ||
+ return "".&text('help_einclude', "(".$ipath.")--".$_[1]."--".$baseInc)." \n";
+ read(INC, $inc, $st[7]);
+ close(INC);
+ # find and replace directives
+ $inc =~ s/]*)>([\000-\177]*?)([\000-\177]*?)<\/if>/ifhelp($1, $2, $3)/ge;
+ # find and replace directives
+ $inc =~ s/]*)>([\000-\177]*?)<\/if>/ifhelp($1, $2)/ge;
+ $inc =~ s/]*)">/makeRulerTask($1)/ge;
+ $inc =~ s/]*)"\s+item="([^>]*)">/setRulerLink($1,$2)/ge;
+ $inc =~ s/]*)">/makeTargets($1)/ge;
+
+ $inc =~ s/]*)>/exechelp($1)/ge;
+ $inc =~ s/%LANG%/$current_lang/g;
+ $inc =~ s/\$infoCfg{(\S+)}/infoCfg($1)/ge;
+ $inc =~ s/<\$out_table{(\S+)}>/infoTable($1)/ge;
+ if ($inc =~ /]*)>/) { $isSection=true; $sectionName=$1 }
+ if ( $noHeaderTable eq true ) {
+ $inc =~ s/([^<]+)<\/headimg>//g;
+ $inc =~ s/([^<]+)<\/header>/outItemText($1)/ge;
+ $inc =~ s/(.*)<\/headertitle>//os;
+ } else {
+ $inc =~ s/([^<]+)<\/headimg>/headimg($1)/ge;
+ if ( $inc =~ //) {
+ $inc =~ s/([^<]+)<\/header>/headtableHelp($1)/ge;
+ $inc =~ s/(.*)<\/headertitle>/headtitleHelp($1)/eos;
+ } else {
+ $inc =~ s/([^<]+)<\/header>/headtableHelp($1,1)/ge;
+ }
+ }
+ if ( $isSection ne "true" && $isTocBody ne "true" ) {
+ $inc =~ s/(.*)<\/footlinks>/footlinksHelp($1)/eos;
+ } else {
+ $inc =~ s/(.*)<\/footlinks>//os;
+ }
+ $inc =~ s///g;
+ $inc =~ s///g;
+ $inc =~ s///g;
+ # Recursive find and replace directives
+ # this is to avoid another header output ... too many headers
+ $inc =~ s//inchelp(true,$1,$baseInc)/ge;
+ if ( $baseInc ne "" ) {
+ $inc =~ s/ href=([^>]*)>/chgBaseRef($baseInc,$1)/ge;
+ }
+ $inc =~ s//lihelpinc($1,$2)/ge;
+ return $inc;
+}
+
+# lihelpinc(nroli,npath)
+sub lihelpinc
+{
+ my $inc=&inchelp(true,$_[1]);
+ $inc =~ s/%PREFIX%/$_[0] /g;
+ return $inc;
+}
+
+# ifhelp(perl, text, [elsetext])
+sub ifhelp
+{
+local $rv = eval $_[0];
+if ($@) { return "".&text('help_eif', $_[0], $@)." \n"; }
+elsif ($rv) { return $_[1]; }
+else { return $_[2]; }
+}
+
+# exechelp(perl)
+sub exechelp
+{
+ my $rv = eval $_[0];
+ $rv =~ s/:$//;
+ $rv =~ s/^\*//;
+ $rv =~ s/:<\/a>$/<\/a>/;
+ $rv =~ s/>\*/>/;
+ if ($@) { return "".&text('help_eexec', $_[0], $@)." \n"; }
+ else { return $rv; }
+}
+
+sub helperror
+{
+if ( $WebHelpOut ) { return }
+ #print "$text{'error'} \n";
+ #print "\n";
+ &header($text{'index_warn'},,,undef,1,0,,,undef,,);
+ print "
\n";
+ print " ";
+ print " $text{'error'} \n";
+ print " \n";
+ print " \n";
+ print " $text{'error'} ... ";
+ print "";
+ #print "
";
+ print "
";
+ print " ",@_," \n";
+ print "
\n";
+ &footer($config{'back_return'},$text{'index'});
+exit;
+}
+
+sub outItemText
+{
+ $item_text=&getItemText($_[0]);
+ if ( $isSection eq true && $sectionName ne "" && $noHeaderTable eq true ) {
+ return "";
+ } else { return "" };
+}
+
+sub getItemText
+{
+ my $item=$_[0];
+ my $item_text="";
+ if ( $item =~/^f/ ) { # It is a field ?
+ $item=~ s/^f/f_/g;
+ $item_text=$text{$item};
+ if ( $item_text eq "" ) {
+ $item = $_[0];
+ } else { $item_text =~ s/:$//g; }
+ }
+ if ( $item eq $_[0] ) { # It is title
+ $item="index_".$item;
+ $item_text=$text{$item};
+ if ( $item_text eq "" ) { $item = $_[0] }
+ }
+ if ( $item eq $_[0] ) { # It something as itself ?
+ $item_text=$text{$item} || $_[0];
+ }
+ $item_text =~ s/^\*//;
+ return "$item_text";
+}
+
+sub headtableHelp
+{
+ $isHeadImg=false;
+ $item_text=&getItemText($_[0]);
+ if ( $_[1] ne 1 ) {
+ $isHeadImg=true;
+ return "".
+ " $headImg *".
+ " $item_text * ";
+ } else {
+ return "".
+ " $headImg * ".
+ "$item_text * ".
+ "
";
+ }
+}
+sub headtitleHelp
+{
+ local $text=$_[0];
+ if ( $isHeadImg eq true ) {
+ $isHeadImg=false;
+ return " $text
";
+ } else {
+ return " $text
";
+ }
+ if ( $text =~ /^OPEN / ) {
+ $text=~ s/^OPEN //g;
+ return " $text ";
+ };
+ return " $_[0]
";
+}
+sub footlinksHelp
+{
+ local $htmltext;
+ if ( $sectionName =~ /toc_/ ) { return ""; }
+ if ( $isBook eq true ) { return ""; }
+ local @linelinks=split(/::/,$_[0], -1);
+ if ( $#linelinks lt 1 ) { return ""; }
+ $htmltext="";
+
+ foreach $l (@linelinks) {
+ $l =~ s/\r|\n//g;
+ if ( $l =~ /".$item_text." ";
+ }
+ }
+ $htmltext .="
$text{see_also} ".
+ "
";
+ return $htmltext;
+}
+
+sub print_table_cfg
+{
+ local %h_cfgsec=(), @cfgsec=();
+ local $item, $d;
+ local $htmltext="";
+ local $i=0;
+ local $inum="";
+
+ &read_file("$root_directory/$module/dataconf/base/$_[0]", \%h_cfgsec, \@cfgsec);
+ $htmltext .="\n";
+ $htmltext .="\n";
+ foreach $item (@cfgsec) {
+ $i++;
+ $htmltext .=" - ".&infoCfg($item)." \n";
+ }
+ $htmltext .=" \n";
+ $htmltext .="
\n";
+ return $htmltext;
+}
+
+sub include_cfgvalues
+{
+ local %h_cfgsec=(), @cfgsec=();
+ local $item;
+ local $htmltext="";
+ local $i=0;
+ local $inum=$_[1];
+
+ &read_file("$root_directory/$module/dataconf/base/$_[0]", \%h_cfgsec, \@cfgsec);
+ $htmltext .="\n";
+ foreach $item (@cfgsec) {
+ $i++;
+ $htmltext .=" ".&infoCfg($item)." (".$item.") \n";
+ $htmltext .=" \n";
+ }
+ $htmltext .=" \n";
+ return $htmltext;
+}
+
+sub print_table_ordercfgs
+{
+ local %listfcfgs=(), @orderfcfgs=();
+ local $item_title, $item_help, $d;
+ local $htmltext="";
+ local $i=0;
+
+ &read_file("$root_directory/$module/dataconf/ordercfgs", \%listfcfgs, \@orderfcfgs);
+ push (@orderfcfgs,'others');
+ $listfcfgs{'others'}='sttaconfig#others';
+ if ( $_[0] ne "include" && $isBook ne true && $_[2] ne "ul" ) { $htmltext .="\n"; }
+ if ( $_[2] ne "ul" ) { $htmltext .=" \n"; }
+ pop (@orderfcfgs);
+ }
+ $i=0;
+ foreach $d (@orderfcfgs) {
+ $i++;
+ $inum=$i;
+ $inum=$_[1].".".$inum;
+ $item_title=$d."_title";
+ $item_help=$listfcfgs{$d};
+ if ( $i < 10 ) { $inum=$_[1].".0".$i; }
+ if ( $_[0] ne "all" ) {
+ if ( $_[0] eq "include" || $isBook eq true ) {
+ if ( $_[2] ne "ul" ) {
+ $htmltext .="$inum.- $text{$item_title} - ( $d )
\n";
+ } else {
+ $htmltext .="$inum.- $text{$item_title} - ( $d ) \n";
+ }
+ if ( $d =~ /others/ ) {
+ $htmltext .= "".&inchelp(false,"config_others")."
";
+ } else {
+ $htmltext .= "".&inchelp(false,$item_help)."
";
+ }
+ } else {
+ if ( $_[2] ne "ul" ) {
+ $htmltext .=" $inum.- - $d \n";
+ } else {
+ $htmltext .=" $inum.- - $d \n";
+ }
+ }
+ } else {
+ $htmltext .=' ';
+ $htmltext .= '';
+ $htmltext .=&print_table_cfg($d,$inum,$_[2]);
+ if ( $_[2] ne "ul" ) { $htmltext .='
'; }
+ }
+ }
+ if ( $_[0] ne "include" && $isBook ne true && $_[2] ne "ul" ) { $htmltext .="
\n"; }
+ return $htmltext;
+}
+
+sub hrefplusquery
+{
+ local $href_str=$_[0];
+ if ( $querySTR ne "" && $_[0] =~ /\/stta\/help.cgi\/stta/ ) {
+ if ( $href_str =~ /\?$querySTR/ ) { return "class='menu1' href=\"$href_str\""; }
+ return "class='menu1' href=\"$href_str?$querySTR\"";
+ } else {
+ return "class='menu1' href=\"$href_str\"";
+ }
+}
+
+sub chgBaseRef
+{
+ my $href_base=$_[0];
+ my $href_page=$_[1];
+ $href_base=~ s/\/\///g;
+ $href_base=~ s/\/help//g;
+ if ( $href_page eq "" ) {
+ return "";
+ } elsif ( $href_page =~ /"/ ) {
+ return " class='menu1' href=".$href_page.">";
+ } else {
+ return " class='menu1' HREF=/stta/help.cgi".$href_base.$href_page.">";
+ return " class='menu1' href=\"".$href_page.">";
+ }
+}
+
+sub hrefchange
+{
+ local $href_str=$_[0];
+ if ( $_[0] =~ /javascript:self.close/ ) {
+ $href_str=~ s/javascript:self.close\(\)/$URLBase\//g;
+ return "href=\"$href_str\"";
+ } elsif ( $_[0] =~ /\/stta\/help.cgi\/stta/ ) {
+ $href_str=~ s/\/stta\/help.cgi\/stta/$URLBase/g;
+ return "href=\"$href_str.html\"";
+ } elsif ( $_[0] =~ /\/webmin\// ) {
+ return "";
+ } else {
+ return "href=\"$href_str\"";
+ }
+}
+sub imgsrcchange
+{
+ local $imgsrc_str=$_[0];
+ $imgsrc_str=~ s/\/stta\//$IMGBase\//g;
+ return "src=\"$imgsrc_str\"";
+}
+sub imgbkgchange
+{
+ local $imgbkg_str=$_[0];
+ $imgbkg_str=~ s/\/stta\//$IMGBase\//g;
+ return "background=\"$imgbkg_str\"";
+}
+sub headimg
+{
+ if ( $_[0] ne "flower.gif" ) {
+ local @lineimg=split(/ /,$_[0], -1);
+ $headImg="";
+ if ( $sectionName ne "sttatables_def" ) {
+ $outstr.=&hlink(" ","tableformat");
+ }
+ $outstr .="* ".
+ " ".&text("f_tabledef",$textInfo)." * ";
+ $outstr .="\n";
+ local @listobjs=();
+ foreach $item (keys (%h_objs)) { push (@listobjs,$h_objs{$item}); }
+ @listobjs = sort {$a->{'pos'} cmp $b->{'pos'}} @listobjs;
+ if ( $#listobjs > 0 ) {
+ $outstr.="";
+ $outstr.="$text{f_pos} ";
+ $outstr.="$text{f_alias} ";
+ $outstr.="$text{f_namehelp} ";
+ $outstr.="$text{f_descrip} ";
+ $outstr.="$text{f_range} ";
+ $outstr.="$text{f_target} ";
+ $outstr.="$text{f_madatory} ";
+ $outstr.="$text{f_comments} ";
+ $outstr.=" ";
+ }
+ foreach $item (@listobjs) {
+ next if ( $item->{alias} eq "" ) ;
+ $outstr.="";
+ $outstr.="".$item->{pos}." ";
+ $outstr.="".$item->{alias}." ";
+ $descrip=$text{$item->{name}};
+ $descrip =~ s/:$//;
+ $outstr.="".&hlink("$descrip ",$item->{help})." ";
+ $outstr.="".$item->{descrip}." ";
+ $outstr.="".$item->{range}." ";
+ $outstr.="".$item->{target}." ";
+ $outstr.="";
+ if ( $item->{mandatory} eq "1" ) { $outstr.=$text{yes}; } else { $outstr .= "-" }
+ $outstr.=" ".$item->{comments}." ";
+ $outstr.=" \n";
+ }
+ $outstr.="
\n";
+ $outstr=~ s/\$infoCfg{(\S+)}/infoCfg($1)/ge;
+ $outstr=~ s/\$(\S+){(\S+)}/text_subs($2,\%{$1})/ge;
+ return $outstr;
+}
+sub setBookLine
+{
+ local @linelink=split(/\//,$_[0], -1);
+# return "$_[1] ".&inchelp(false,$linelink[$#linelink])." ";
+ return "".&inchelp(false,$linelink[$#linelink])." ";
+}
+
+sub winOpenUrl
+{
+ local $href_str=$_[0];
+ if ( $_[0] =~ /\/stta\/help.cgi\/stta/ ) {
+ $href_str=~ s/\/stta\/help.cgi\/stta/$URLBase/g;
+ return "window.open(\"$href_str.html\"";
+ } else {
+ return "window.open(\"$href_str\"";
+ }
+}
+sub hr_table
+{
+ return " ";
+}
+1; # Return true
+
diff --git a/stta/help.cgi b/stta/help.cgi
new file mode 100755
index 0000000..7be2627
--- /dev/null
+++ b/stta/help.cgi
@@ -0,0 +1,123 @@
+#!/usr/bin/perl
+# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
+# stta: (@#) 1.31051043346- [2004_01_29_102036]
+# help.cgi
+# Displays help HTML for some module, with substitutions
+
+require '../web-lib.pl';
+do 'web-lib.pl';
+do 'html-lib.pl';
+do 'global-lib.pl';
+do 'help-lib.pl';
+do 'lists-lib.pl';
+
+&init_config();
+&load_dataconf();
+&error_setup($text{'help_err'});
+@lin=split(/\?/,$ENV{REQUEST_URI},-1);
+$querySTR=$lin[1];
+$ENV{'PATH_INFO'} !~ /[\\\&\;\`\'\"\|\*\?\~\<\>\^\(\)\[\]\{\}\$\n\r]/ ||
+ &error($text{'help_epath'});
+$ENV{'PATH_INFO'} =~ /^\/(\S+)\/(\S+)$/ || &error($text{'help_epath'});
+$module = $1; $file = $2; $sec = "";
+
+# if it ends with .gif assume it is a direct URL
+if ($file =~ /\.gif$/) {
+ &redirect("$module/$file");
+ exit;
+}
+
+if ( $module eq "stta/config" ) { # this is made to manage STTA config Items
+ $ENV{'PATH_INFO'} =~ /^\/(\S+)\/(\S+)\/(\S+)$/ || &error($text{'help_epath'});
+ $module = $1; $file = $2; $sec = $3 ;
+ $path = "$root_directory/$module/help/$current_lang/$file/$sec.html";
+} elsif ( $module =~ /\/info$/ ) { # this is made to manage STTA install info Items
+ $ENV{'PATH_INFO'} =~ /^\/(\S+)\/(\S+)\/(\S+)\/(\S+)$/ || &error($text{'help_epath'});
+ $module = $1; $file = $4;
+ $path = "$root_directory/$module/install/info/$file";
+} else {
+ # read the help file
+ if ($file =~ /\.html$/) { # it is a full path
+ $path = "$root_directory/$module/$file";
+ } else {
+ $path = &help_file($module, $file);
+ }
+ # this is to develop help code
+ open(HELP, $path) || &write_helpfile($module,$file);
+}
+# this is for deploy
+if ( ! -r $path) {
+ # Help window is open so ... close !!
+ &header($file);
+ print "\n";
+}
+@st = stat($path);
+open(HELP, $path) || &helperror(&text('help_efile', $path));
+read(HELP, $help, $st[7]);
+close(HELP);
+
+if ( $sec ne "" ) { # this is made to manage STTA config Items
+ # loading head and foot, make section link
+ $sectionCfg="";
+ if ($help =~ /]*)>/) { $sectionCfg=$1 }
+ $help =~ s///g;
+ $secLink=" ";
+ $head_path= "$root_directory/$module/help/cfg_head.html";
+ @st = stat($head_path);
+ open(HELP, $head_path) || &helperror(&text('help_efile', $head_path));
+ read(HELP, $head_help, $st[7]);
+ close(HELP);
+ $foot_path= "$root_directory/$module/help/cfg_foot.html";
+ @st = stat($foot_path);
+ open(HELP, $foot_path) || &helperror(&text('help_efile', $foot_path));
+ read(HELP, $foot_help, $st[7]);
+ close(HELP);
+ $help=$head_help.$help.$foot_help;
+ $help =~ s/%CFGSEC_LINK%/$secLink/g;
+ $help=~ s/%ITEM_CFG%/$sec/g;
+}
+# code has been change for STTA in len help-lib.pl
+&make_help_html();
+
+# output the HTML
+print $help;
+print &out_css();
+&footer();
+
+exit;
+
+sub standard_help_code
+{
+ # find and replace the section
+ if ($help =~ s/