patches/system-tools-backends-07-time.diff
author rohinis
Tue, 29 Nov 2011 17:32:55 +0000
branchs11express-2010-11
changeset 22234 c23e64da3e06
parent 12148 f6e9b52b2417
permissions -rwxr-xr-x
2011-11-29 Rohini S <[email protected]> * patches/Python26-22-audio.diff: Fixes CVE-2010-1634 * specs/SUNWPython26.spec: Fixes CR 7085446
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
     1
--- system-tools-backends-1.4.2.orig/time-conf.in	2006-01-02 23:47:30.000000000 +0800
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
     2
+++ system-tools-backends-1.4.2/time-conf.in	2008-04-17 14:21:37.441179000 +0800
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
     3
@@ -67,6 +67,7 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
     4
               "mandrake-7.1", "mandrake-7.2", "mandrake-9.0", "mandrake-9.1", "mandrake-9.2",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
     5
               "mandrake-10.0", "mandrake-10.1",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
     6
               "debian-2.2", "debian-3.0", "debian-sarge",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
     7
+              "nexenta-1.0", "solaris-2.11",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
     8
               "suse-7.0", "suse-9.0", "suse-9.1", "turbolinux-7.0",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
     9
               "slackware-8.0.0", "slackware-8.1", "slackware-9.0.0", "slackware-9.1.0", "slackware-10.0.0", "slackware-10.1.0", "slackware-10.2.0",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    10
               "gentoo", "vlos-1.2", "pld-1.0", "pld-1.1", "pld-1.99", "fedora-1", "fedora-2", "fedora-3", "rpath",
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
    11
@@ -79,6 +80,7 @@
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    12
 end_of_description;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    13
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    14
 $progress_max = 365;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    15
+$profile_file =     "profiles.xml";
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    16
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    17
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    18
 # --- XML parsing --- #
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
    19
@@ -123,6 +125,8 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    20
     if    ($$tree[0] eq "local_time"){ $$hash{"local_time"} = &xml_parse_local_time ($$tree[1]); }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    21
     elsif ($$tree[0] eq "timezone") { $$hash{"timezone"} = &gst_xml_get_word ($$tree[1]); }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    22
     elsif ($$tree[0] eq "sync")     { $$hash{"sync"} = &xml_parse_sync ($$tree[1], $hash); }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    23
+    elsif ($$tree[0] eq "sync_now")     { $$hash{"sync_now"} = &xml_parse_sync ($$tree[1], $hash); }
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    24
+    elsif ($$tree[0] eq "profiledb")     { $$hash{"profiledb"} = &xml_parse_profiledb ($tree, $hash); } # zhua
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    25
 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    26
     shift @$tree;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    27
     shift @$tree;
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
    28
@@ -150,6 +154,23 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    29
   return \@sync;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    30
 }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    31
 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    32
+sub xml_parse_sync_now
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    33
+{
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    34
+  my $tree = $_[0];
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    35
+  my $hash = $_[1];
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    36
+  my @sync_now;
8436
2435bf67bb52 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 7860
diff changeset
    37
+
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    38
+  while (@$tree)
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    39
+  {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    40
+    if ($$tree[0] eq "server")  { push (@sync_now, &gst_xml_get_word($$tree[1])); }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    41
+    
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    42
+    shift @$tree;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    43
+    shift @$tree;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    44
+  }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    45
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    46
+  return \@sync_now;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    47
+}
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    48
+
8436
2435bf67bb52 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 7860
diff changeset
    49
 
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    50
 sub xml_parse_local_time
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    51
 {
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
    52
@@ -189,7 +210,8 @@
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    53
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    54
   &gst_xml_print_vspace ();
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    55
   &gst_xml_print_hash ($$h{"local_time"}, "local_time");
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    56
-  &gst_xml_print_vspace ();
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    57
+  
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    58
+  &xml_print_profiledb($$h{"profiledb"}); #zhua
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    59
   
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    60
   &gst_xml_print_vspace ();
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    61
   &gst_xml_print_line ("<sync active='" . &gst_print_boolean_yesno ($$h{'sync_active'}) . "'>\n");
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
    62
@@ -213,7 +235,7 @@
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    63
 # Main operations
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    64
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    65
 sub get
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    66
-{
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    67
+{ 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    68
   my $hash;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    69
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    70
   $hash = &conf_get ();
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
    71
@@ -225,8 +247,9 @@
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    72
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    73
 sub set
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    74
 {
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    75
-  my $hash;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    76
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    77
+  my $hash;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    78
+  
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    79
   $hash = &xml_parse ();
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    80
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
    81
   &conf_set ($hash);
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
    82
@@ -277,6 +300,28 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    83
   return \%h;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    84
 }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    85
 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    86
+sub time_get_sunos_zone
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    87
+{
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    88
+  my $zone;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    89
+  local *INFILE;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    90
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    91
+  *INFILE = &gst_file_open_read_from_names("/etc/default/init");
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    92
+  if (not *INFILE) { return; }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    93
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    94
+  &gst_report ("time_timezone_scan");
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    95
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    96
+  while (<INFILE>)
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    97
+  {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    98
+    if (/^TZ\s*=\s*(.*)/)
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    99
+    {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   100
+      ($d, $zone) = split /\=/, $_;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   101
+      last;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   102
+    }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   103
+  }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   104
+  close (INFILE);
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   105
+  return $zone;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   106
+}
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   107
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   108
 sub time_get_rh62_zone
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   109
 {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   110
   my ($local_time_file, $zoneinfo_dir) = @_;
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   111
@@ -318,8 +363,8 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   112
     $zone = "";
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   113
   }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   114
   
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   115
-  return $zone;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   116
   close (TZLIST);
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   117
+  return $zone;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   118
 }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   119
 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   120
 sub conf_get
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   121
@@ -342,7 +387,13 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   122
   my ($plat) = $$tool {"system"};
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   123
   my ($command);
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   124
 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   125
+  my $sunos_table = {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   126
+    "nexenta-1.0"   => "date %02d%02d%02d%02d%04d.%02d",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   127
+    "solaris-2.11"   => "date %02d%02d%02d%02d%04d.%02d"
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   128
+  };
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   129
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   130
   my $plat_table = {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   131
+    "SunOS"   => $$sunos_table {$$tool {"platform"}},
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   132
     "Linux"   => "date %02d%02d%02d%02d%04d.%02d",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   133
     "FreeBSD" => "date -f %%m%%d%%H%%M%%Y.%%S  %02d%02d%02d%02d%04d.%02d"
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   134
   };
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   135
@@ -356,6 +407,52 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   136
 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   137
   return &gst_file_run ($command);
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   138
 }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   139
+# Synchronise time now - moved to backend since it needs root privs.
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   140
+sub time_set_sync_now 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   141
+{
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   142
+  my ($sync_servers) = @_;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   143
+  my ($plat) = $$tool{"system"};
8436
2435bf67bb52 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 7860
diff changeset
   144
+
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   145
+  &gst_report_enter();
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   146
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   147
+  if ( $plat eq "SunOS" ) {
8436
2435bf67bb52 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 7860
diff changeset
   148
+    if ( $#$sync_servers >= 0 ) 
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   149
+    {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   150
+        $ntp_service_was_active = &gst_service_smf_get_status( "network/ntp" );
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   151
+        &gst_service_smf_set_status( "network/ntp", 0 ) if ($ntp_service_was_active);
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   152
+        $command = "ntpdate -s ";
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   153
+        foreach $server (@$sync_servers)
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   154
+        {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   155
+          $command .= "$server ";
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   156
+        }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   157
+        &gst_file_run( $command );
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   158
+        &gst_service_smf_set_status( "network/ntp", 1 ) if ($ntp_service_was_active);
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   159
+    }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   160
+  }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   161
+  else {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   162
+    &gst_file_run("/etc/init.d/ntpdate restart");
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   163
+  }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   164
+  &gst_report_leave();
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   165
+}
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   166
+
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   167
+sub time_set_sync_period
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   168
+{
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   169
+  my ($service, $active) = @_;
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   170
+  my ($plat) = $$tool{"system"};
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   171
+
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   172
+  &gst_report_enter();
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   173
+
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   174
+  if ( $plat eq "SunOS" ) {
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   175
+    $ntp_service_was_active = &gst_service_smf_get_status( $service );
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   176
+    if ( $active && $ntp_service_was_active )
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   177
+    {
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   178
+    	&gst_file_run( "svcadm restart $service" );
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   179
+    } else {
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   180
+	&gst_service_smf_set_status( $service, $active );
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   181
+    }  
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   182
+  }
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   183
+  &gst_report_leave();
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   184
+}
8436
2435bf67bb52 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 7860
diff changeset
   185
 
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   186
 sub time_set_local_time
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   187
 {
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   188
@@ -378,6 +475,49 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   189
   return 0;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   190
 }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   191
 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   192
+sub time_set_sunos_zone
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   193
+{
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   194
+  my ($localtime, $zonebase, $timezone) = @_;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   195
+  my ($ifh, $ofh);
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   196
+  local (*INFILE, *OUTFILE);
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   197
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   198
+  ($ifh, $ofh) = &gst_file_open_filter_write_from_names("/etc/default/init");
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   199
+  if (not $ofh) { return; }  # No point if we can't write.
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   200
+  *INFILE = $ifh; *OUTFILE = $ofh;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   201
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   202
+  &gst_report_enter ();
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   203
+  &gst_report ("time_timezone_set", $timezone);
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   204
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   205
+  &gst_file_run ("rtc -z $timezone");
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   206
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   207
+  while (<INFILE>)
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   208
+  {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   209
+    if (/^TZ\s*=\s*(.*)/) {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   210
+      print OUTFILE "TZ=$timezone\n";
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   211
+      next;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   212
+    }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   213
+    print OUTFILE $_;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   214
+  }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   215
+  close OUTFILE;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   216
+  close INFILE;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   217
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   218
+  # update /etc/localtime too, so unported GNU software will not complain
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   219
+  my $tz = "$zonebase/$timezone";
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   220
+  if (stat($tz) ne "")
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   221
+  {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   222
+    unlink $localtime;  # Important, since it might be a symlink.
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   223
+    
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   224
+    &gst_report_enter ();
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   225
+    $res = copy ($tz, $localtime);
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   226
+    &gst_report_leave ();
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   227
+    return -1 unless $res;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   228
+    return 0;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   229
+  }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   230
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   231
+  &gst_report_leave ();
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   232
+  return -1;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   233
+}
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   234
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   235
 sub time_set_archlinux_zone
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   236
 {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   237
 	my ($localtime, $zonebase, $timezone) =@_;
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   238
@@ -442,7 +582,10 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   239
 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   240
 sub time_sync_hw_from_sys
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   241
 {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   242
-  &gst_file_run ("hwclock --systohc");
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   243
+  if ( $$tool{"system"} ne "SunOS" ) 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   244
+  {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   245
+      &gst_file_run ("hwclock --systohc");
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   246
+  }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   247
   return 0;
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   248
 }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   249
 
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   250
@@ -560,6 +703,10 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   251
    "debian-3.0"      => "debian-3.0",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   252
    "debian-sarge"    => "debian-3.0",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   253
 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   254
+   "nexenta-1.0"     => "nexenta",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   255
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   256
+   "solaris-2.11"     => "solaris",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   257
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   258
    "suse-7.0"        => "suse-7.0",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   259
    "suse-9.0"        => "suse-9.0",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   260
    "suse-9.1"        => "suse-9.0",
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   261
@@ -758,7 +905,24 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   262
           [ "ntpinstalled", \&gst_service_rcng_installed, [ "ntpd", "openntpd" ]],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   263
           ]
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   264
         },
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   265
-	
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   266
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   267
+       "solaris" =>
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   268
+       {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   269
+         fn =>
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   270
+         {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   271
+           NTP_CONF     => "/etc/inet/ntp.conf"
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   272
+         },
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   273
+         table =>
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   274
+         [
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   275
+          [ "local_time",   \&time_get_local_time ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   276
+          [ "timezone",     \&time_get_sunos_zone ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   277
+          [ "sync",         \&gst_parse_split_all_array_with_pos, NTP_CONF, "server", 0, "[ \t]+", "[ \t]+" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   278
+          [ "sync_active",  \&gst_service_smf_get_status, "network/ntp" ],
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   279
+          [ "profiledb",   \&read_profiledb], #zhua
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   280
+          [ "ntpinstalled", \&gst_service_installed, "network/ntp" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   281
+          ]
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   282
+        },
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   283
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   284
        "freebsd-5" =>
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   285
        {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   286
          fn =>
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   287
@@ -813,6 +977,10 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   288
    "debian-3.0"      => "debian-3.0",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   289
    "debian-sarge"    => "debian-3.0",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   290
 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   291
+   "nexenta-1.0"     => "nexenta",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   292
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   293
+   "solaris-2.11"     => "solaris",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   294
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   295
    "suse-7.0"        => "suse-7.0",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   296
    "suse-9.0"        => "suse-9.0",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   297
    "suse-9.1"        => "suse-9.0",
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   298
@@ -859,6 +1027,7 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   299
              [
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   300
               [ "timezone",    \&time_set_rh62_zone, [LOCAL_TIME, ZONEINFO] ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   301
               [ "local_time",  \&time_set_local_time ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   302
+              [ "sync_now",     \&time_set_sync_now ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   303
               [ "sync",        \&time_replace_ntp_servers, NTP_CONF, "server", "[ \t]+" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   304
               [ "sync_active", \&gst_service_sysv_set_status, 90, "xntpd", "%sync_active%" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   305
               ]
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   306
@@ -876,6 +1045,7 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   307
              [
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   308
               [ "timezone",     \&time_set_rh62_zone, [LOCAL_TIME, ZONEINFO] ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   309
               [ "local_time",   \&time_set_local_time ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   310
+              [ "sync_now",     \&time_set_sync_now ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   311
               [ "sync",         \&time_replace_ntp_servers, NTP_CONF, "server", "[ \t]+" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   312
               [ "sync_active",  \&gst_service_sysv_set_status, 90, "ntpd", "%sync_active%" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   313
               ]
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   314
@@ -893,6 +1063,7 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   315
              [
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   316
               [ "timezone",    \&time_set_rh62_zone, [LOCAL_TIME, ZONEINFO] ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   317
               [ "local_time",  \&time_set_local_time ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   318
+              [ "sync_now",     \&time_set_sync_now ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   319
               [ "sync",        \&time_replace_ntp_servers, NTP_CONF, "server", "[ \t]+" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   320
               [ "sync_active", \&gst_service_sysv_set_status, 23, "ntp", "%sync_active%" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   321
               ]
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   322
@@ -912,6 +1083,7 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   323
               [ "timezone",    \&time_set_rh62_zone, [LOCAL_TIME, ZONEINFO] ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   324
               [ "timezone",    \&gst_replace_line_first, TIMEZONE ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   325
               [ "local_time",  \&time_set_local_time ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   326
+              [ "sync_now",     \&time_set_sync_now ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   327
               [ "sync",        \&time_replace_ntp_servers, NTP_CONF, "server", "[ \t]+" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   328
               [ "sync_active", \&gst_service_sysv_set_status, 23, "ntp-server", "%sync_active%" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   329
               ]
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   330
@@ -929,6 +1101,7 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   331
              [
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   332
               [ "timezone",     \&time_set_rh62_zone, [LOCAL_TIME, ZONEINFO] ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   333
               [ "local_time",   \&time_set_local_time ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   334
+              [ "sync_now",     \&time_set_sync_now ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   335
               [ "sync",         \&time_replace_ntp_servers, NTP_CONF, "server", "[ \t]+" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   336
               [ "sync_active",  \&gst_service_sysv_set_status, 90, "xntpd", "%sync_active%" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   337
               ]
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   338
@@ -946,6 +1119,7 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   339
          [
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   340
           [ "timezone",     \&time_set_rh62_zone, [LOCAL_TIME, ZONEINFO] ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   341
           [ "local_time",   \&time_set_local_time ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   342
+              [ "sync_now",     \&time_set_sync_now ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   343
           [ "sync",         \&time_replace_ntp_servers, NTP_CONF, "server", "[ \t]+" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   344
           [ "sync_active",  \&gst_service_suse_set_status, "xntpd" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   345
          ]
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   346
@@ -963,6 +1137,7 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   347
              [
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   348
               [ "timezone",     \&time_set_rh62_zone, [LOCAL_TIME, ZONEINFO] ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   349
               [ "local_time",   \&gst_replace_join_all, NTP_CONF, "server", "[ \t]+" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   350
+              [ "sync_now",     \&time_set_sync_now ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   351
               [ "sync_active",  \&gst_service_sysv_set_status, 90, "ntpd", "%sync_active%" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   352
               ]
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   353
         },
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   354
@@ -979,6 +1154,7 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   355
          [
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   356
           [ "timezone",     \&time_set_rh62_zone, [LOCAL_TIME, ZONEINFO] ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   357
           [ "local_time",   \&time_set_local_time ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   358
+          [ "sync_now",     \&time_set_sync_now ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   359
           [ "sync",         \&time_replace_ntp_servers, NTP_CONF, "server", "[ \t]+" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   360
           [ "sync_active",  \&gst_service_gentoo_set_status, "ntpd", 1, "%sync_active%" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   361
           ]
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   362
@@ -996,10 +1172,49 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   363
          [
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   364
           [ "timezone",     \&time_set_archlinux_zone, [LOCAL_TIME, ZONEINFO] ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   365
           [ "local_time",   \&time_set_local_time ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   366
+          [ "sync_now",     \&time_set_sync_now ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   367
           [ "sync",         \&time_replace_ntp_servers, NTP_CONF, "server", "[ \t]+" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   368
           [ "sync_active",  \&gst_service_archlinux_set_status, "ntpd", "%sync_active%" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   369
          ]
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   370
        },
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   371
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   372
+       "nexenta" =>
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   373
+       {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   374
+         fn =>
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   375
+         {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   376
+           NTP_CONF     => "/etc/inet/ntp.conf",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   377
+           ZONEINFO     => "/usr/share/lib/zoneinfo",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   378
+           LOCAL_TIME    => "/etc/localtime"
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   379
+         },
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   380
+         table =>
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   381
+         [
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   382
+          [ "timezone",     \&time_set_sunos_zone, [LOCAL_TIME, ZONEINFO] ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   383
+          [ "local_time",   \&time_set_local_time ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   384
+          [ "sync_now",     \&time_set_sync_now ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   385
+          [ "sync",         \&time_replace_ntp_servers, NTP_CONF, "server", "[ \t]+" ],
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   386
+          [ "sync_active",  \&time_set_sync_peroid, "network/ntp", "%sync_active%" ],
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   387
+          ]
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   388
+        },
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   389
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   390
+       "solaris" =>
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   391
+       {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   392
+         fn =>
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   393
+         {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   394
+           NTP_CONF     => "/etc/inet/ntp.conf",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   395
+           ZONEINFO     => "/usr/share/lib/zoneinfo",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   396
+           LOCAL_TIME    => "/etc/localtime"
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   397
+         },
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   398
+         table =>
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   399
+         [
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   400
+          [ "timezone",     \&time_set_sunos_zone, [LOCAL_TIME, ZONEINFO] ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   401
+          [ "local_time",   \&time_set_local_time ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   402
+          [ "sync_now",     \&time_set_sync_now ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   403
+          [ "sync",         \&time_replace_ntp_servers, NTP_CONF, "server", "[ \t]+" ],
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   404
+          [ "profiledb",    \&write_profiledb ], #zhua
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   405
+          [ "sync_active",  \&time_set_sync_period, "network/ntp", "%sync_active%" ],
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   406
+          ]
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   407
+        },
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   408
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   409
        
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   410
        "freebsd-5" =>
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   411
        {
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   412
@@ -1013,6 +1228,7 @@
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   413
          [
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   414
           [ "timezone",     \&time_set_rh62_zone, [LOCAL_TIME, ZONEINFO] ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   415
           [ "local_time",   \&time_set_local_time ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   416
+          [ "sync_now",     \&time_set_sync_now ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   417
           [ "sync",         \&time_replace_ntp_servers, NTP_CONF, "server", "[ \t]+" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   418
           [ "sync_active",  \&gst_service_rcng_set_status, "ntpd", "%sync_active%" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
   419
           ]
12148
f6e9b52b2417 2008-04-17 Jim Li <[email protected]>
jim
parents: 8612
diff changeset
   420
@@ -1026,3 +1242,140 @@
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   421
   return undef;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   422
 }
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   423
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   424
+# zhua 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   425
+# add profiledb for ntp server added
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   426
+sub read_profiledb
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   427
+{
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   428
+  my ($hash);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   429
+  my $path;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   430
+  my $servers;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   431
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   432
+  
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   433
+  $path = &gst_file_get_data_path () . "/" . $main::tool->{'name'} . "/" . $profile_file;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   434
+  my $tree = &gst_xml_scan ($path, $tool);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   435
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   436
+  if ($tree && scalar @$tree)
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   437
+  {
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   438
+    $servers = &xml_parse_profiledb ($tree, $hash);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   439
+  }
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   440
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   441
+  return $servers;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   442
+}
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   443
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   444
+sub xml_parse_profiledb
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   445
+{
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   446
+    my ($tree, $hash) = @_;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   447
+    my (@servers);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   448
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   449
+    if ($$tree[0] eq 'profiledb')
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   450
+    {
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   451
+      my $svrs = &xml_parse_profile ($$tree[1], $hash);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   452
+      push(@servers, @$svrs);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   453
+    }
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   454
+    else
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   455
+    {
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   456
+      &gst_report ('xml_unexp_tag', $$tree[0]);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   457
+    }
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   458
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   459
+    return \@servers ;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   460
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   461
+}
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   462
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   463
+sub xml_parse_profile
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   464
+{
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   465
+  my ($tree, $hash) = @_;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   466
+  my (@servers);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   467
+  
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   468
+  shift @$tree; # Skip attributes.
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   469
+  
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   470
+  while (@$tree)
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   471
+  {
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   472
+    my $server;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   473
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   474
+    if ($$tree[0] eq "profile") { $server =  &xml_parse_server ($$tree[1], $hash); }
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   475
+    else
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   476
+    {
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   477
+	&gst_report ("xml_unexp_tag", $$tree[0]);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   478
+    }
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   479
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   480
+    push(@servers, $server) if ( $server );
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   481
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   482
+    shift @$tree;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   483
+    shift @$tree;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   484
+  } 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   485
+  return \@servers;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   486
+}
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   487
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   488
+sub xml_parse_server
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   489
+{
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   490
+  my ($tree, $hash) = @_;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   491
+  my ($server);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   492
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   493
+  shift @$tree;  # Skip attributes.
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   494
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   495
+  while (@$tree)
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   496
+  {
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   497
+    if ($$tree[0] eq "server")
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   498
+    {
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   499
+	    $server = $$tree[1][2];
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   500
+    }
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   501
+    else  # files tag is ignored for parsing. # FIXME!
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   502
+    {
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   503
+	 &gst_report ("xml_unexp_tag", $$tree[0]);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   504
+    }
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   505
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   506
+    shift @$tree;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   507
+    shift @$tree; 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   508
+            
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   509
+   }     
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   510
+   return $server;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   511
+}    
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   512
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   513
+sub write_profiledb
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   514
+{
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   515
+  my ($profiledb) = @_;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   516
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   517
+  unless ($profiledb)
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   518
+  {
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   519
+    &gst_report ('users_write_profiledb_fail');
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   520
+    return;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   521
+  }
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   522
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   523
+  # Write our profiles.
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   524
+  my $path = &gst_file_get_data_path () . "/" . $main::tool->{'name'} . "/" . $profile_file;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   525
+  my $fh = &gst_file_open_write_from_names ($path);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   526
+  if ($fh)
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   527
+  {
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   528
+    local *STDOUT = $fh;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   529
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   530
+    &xml_print_profiledb( $profiledb );
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   531
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   532
+    close ($fh);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   533
+    &gst_report ('users_write_profiledb_success');
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   534
+  }
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   535
+  else
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   536
+  {
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   537
+    &gst_report ('users_write_profiledb_fail');
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   538
+  }
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   539
+}
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   540
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   541
+sub xml_print_profiledb
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   542
+{
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   543
+  my ($profiledb) = @_;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   544
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   545
+  return unless (scalar @$profiledb);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   546
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   547
+  &gst_xml_container_enter ('profiledb');
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   548
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   549
+  foreach my $profile (@$profiledb)
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   550
+  {
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   551
+    my $key;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   552
+    &gst_xml_container_enter ('profile');
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   553
+	&gst_xml_print_pcdata("server", $profile);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   554
+    &gst_xml_container_leave ();
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   555
+  }
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   556
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   557
+  &gst_xml_container_leave ();
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   558
+  &gst_xml_print_vspace ();
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   559
+}
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8436
diff changeset
   560
+