patches/system-tools-backends-06-shares.diff
author rohinis
Tue, 29 Nov 2011 17:32:55 +0000
branchs11express-2010-11
changeset 22234 c23e64da3e06
parent 12154 ddb2e7301d2d
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:
7860
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
     1
diff -ru /var/tmp/clean/system-tools-backends-1.4.2/shares-conf.in system-tools-backends-1.4.2/shares-conf.in
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
     2
--- /usr/tmp/clean/system-tools-backends-1.4.2/shares-conf.in	2005-11-21 01:19:47.000000000 +0000
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
     3
+++ system-tools-backends-1.4.2/shares-conf.in	2006-04-21 14:50:42.916517000 +0100
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
     4
@@ -68,6 +68,7 @@
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
               "blackpanther-4.0",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
     7
               "debian-2.2", "debian-3.0", "debian-sarge",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
     8
+	          "nexenta-1.0", "solaris-2.11",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
     9
               "suse-7.0", "suse-9.0",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    10
               "turbolinux-7.0", "fedora-1", "fedora-2", "fedora-3",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    11
               "pld-1.0", "pld-1.1", "pld-1.99",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    12
@@ -389,7 +390,7 @@
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    13
   &gst_xml_print_line ("<export type='nfs'>");
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    14
   &gst_xml_enter ();
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    15
 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    16
-  &gst_xml_print_pcdata ("name", "unknown");
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    17
+  &gst_xml_print_pcdata ("name", &gst_share_nfs_info_get_name ($info));
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    18
   &gst_xml_print_pcdata ("path", &gst_share_nfs_info_get_point ($info));
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    19
 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    20
   for $client (@$client_table)
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    21
@@ -537,6 +538,8 @@
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    22
      "debian-2.2"   => "debian-2.2",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    23
      "debian-3.0"   => "debian-2.2",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    24
      "debian-sarge" => "debian-2.2",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    25
+     "nexenta-1.0" => "nexenta",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    26
+     "solaris-2.11" => "solaris",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    27
      "suse-7.0"     => "redhat-6.2",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    28
      "suse-9.0"     => "suse-9.0",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    29
      "suse-9.1"     => "suse-9.0",
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    30
@@ -608,6 +611,22 @@
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    31
          [ "smbinstalled",  \&gst_service_installed,       "samba" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    32
          # FIXME: How's the nfs stuff in FreeBSD?
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    33
        ]},
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    34
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    35
+     "nexenta" => {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    36
+       table => [
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    37
+         [ "smbuse",        \&gst_service_sysv_get_status_any, "smbd", "nmbd" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    38
+         [ "smbinstalled",  \&gst_service_sysv_installed,      "samba" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    39
+         [ "nfsuse",        \&gst_service_installed,           "nfs/client" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    40
+         [ "nfsinstalled",  \&gst_service_installed,           "nfs/server" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    41
+       ]},
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    42
+
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    43
+     "solaris" => {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    44
+       table => [
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    45
+         [ "smbuse",        \&gst_service_sysv_get_status_any, "smbd", "nmbd" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    46
+         [ "smbinstalled",  \&gst_service_installed,           "samba" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    47
+         [ "nfsuse",        \&gst_service_installed,           "nfs/client" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    48
+         [ "nfsinstalled",  \&gst_service_installed,           "nfs/server" ],
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    49
+       ]},
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    50
     );
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    51
 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    52
   my $dist = $dist_map{$gst_dist};
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    53
@@ -647,8 +666,11 @@
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    54
   %dist_attrib = &gst_network_get_parse_table ();
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    55
   $smb_conf    = $dist_attrib{"fn"}{"SMB_CONF"};
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    56
 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    57
-  # This is pretty standard
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    58
-  $exports     = "/etc/exports";
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    59
+  if ($$tool{"system"} eq "SunOS") {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    60
+    $exports     = "/etc/dfs/dfstab";
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    61
+  } else {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    62
+    $exports     = "/etc/exports";
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    63
+  }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    64
 
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    65
   return ($smb_conf, $exports);
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    66
 }
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    67
@@ -771,7 +793,7 @@
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    68
   foreach $i (keys %$ifaces)
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    69
   {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    70
     if (($$ifaces{$i}{"enabled"} == 1)
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    71
-        && ($$ifaces{$i}{"dev"} ne "lo"))
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    72
+        && !($$ifaces{$i}{"dev"} =~ /^lo[0-9]?/))
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    73
     {
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    74
       $$ifaces{$i}{"network"} = &gst_network_ipv4_calc_subnet ($$ifaces{$i}{"addr"},
25fd327818d6 Unbump system-tools-backends.
dc144907
parents:
diff changeset
    75
                                                                $$ifaces{$i}{"mask"});
8027
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    76
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    77
diff -ru /usr/tmp/clean/system-tools-backends-1.4.2/share.pl.in system-tools-backends-1.4.2/share.pl.in
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    78
--- /usr/tmp/clean/system-tools-backends-1.4.2/share.pl.in	2005-02-25 14:15:34.000000000 +0000
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    79
+++ system-tools-backends-1.4.2/share.pl.in	2006-04-24 13:34:21.048581000 +0100
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    80
@@ -202,6 +202,16 @@
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    81
   }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    82
 }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    83
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    84
+sub gst_share_nfs_info_get_name
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    85
+{
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    86
+  return $_[0]->{'name'};
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    87
+}
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    88
+
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    89
+sub gst_share_nfs_info_set_name
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    90
+{
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    91
+  &gst_share_nfs_info_set ($_[0], 'name', $_[1]);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    92
+}
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    93
+
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    94
 sub gst_share_nfs_info_get_point
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    95
 {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    96
   return $_[0]->{'point'};
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    97
@@ -397,6 +407,52 @@
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    98
   return $table;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
    99
 }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   100
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   101
+sub gst_share_dfstab_list
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   102
+{
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   103
+  my ($file) = @_;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   104
+  my $lnum = 0;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   105
+  my @rv;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   106
+
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   107
+  # dfstab example:
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   108
+  #
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   109
+  #       share [-F fstype] [-o fs_options ] [-d description] [pathname [resourcename]]
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   110
+  #       .e.g,
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   111
+  #       share  -F nfs  -o rw=engineering  -d "home dirs"  /export/home2
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   112
+  my $fd = &gst_file_open_read_from_names ($file);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   113
+  return @rv if !$fd;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   114
+
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   115
+  while (<$fd>) {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   116
+    s/\r|\n//g; s/#.*$//;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   117
+    if (/^\s*\S*share\s+(.*)/) {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   118
+      # Found a share line
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   119
+      my $share = { 'line' => $lnum,
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   120
+                    'index' => scalar(@rv) };
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   121
+      my $line = $1;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   122
+      while($line =~ /\\$/) {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   123
+        $_ = <$fd>;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   124
+        s/\r|\n//g; s/#.*$//;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   125
+        $line =~ s/\\$//;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   126
+        $line .= $_;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   127
+        $lnum++;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   128
+      }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   129
+      $share->{'eline'} = $lnum;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   130
+      if ($line =~ /\s+(\/\S+)/ || $line =~ /\s+(\/)/ || $line eq "/") { $share->{'dir'} = $1; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   131
+      if ($line =~ /-d\s+"([^"]+)"/) { $share->{'desc'} = $1; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   132
+      elsif ($line =~ /-d\s+(\S+)/) { $share->{'desc'} = $1; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   133
+      if ($line =~ /-o\s+"([^"]+)"/) { $share->{'opts'} = $1; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   134
+      elsif ($line =~ /-o\s+(\S+)/) { $share->{'opts'} = $1; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   135
+      if ($line =~ /\s-F\s+(\S+)/) { $share->{'type'} = $1; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   136
+      else { $share->{'type'} = "nfs"; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   137
+      $share->{'desc'} =~ s/"//g; $share->{'desc'} =~ s/'//g;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   138
+      push(@rv, $share);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   139
+    }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   140
+    $lnum++;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   141
+  }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   142
+  &gst_file_close ($fd);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   143
+
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   144
+  return @rv;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   145
+}
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   146
+
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   147
 sub gst_share_parse_nfs_exports
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   148
 {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   149
   my ($nfs_exports_name) = @_;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   150
@@ -405,43 +461,87 @@
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   151
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   152
   $table = &gst_share_nfs_table_new ();
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   153
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   154
-  $entries = &gst_parse_split_hash_with_continuation ($nfs_exports_name, "[ \t]+", "[ \t]+");
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   155
+  if ($$tool{"system"} eq "SunOS") {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   156
+    foreach $share (&gst_share_dfstab_list($nfs_exports_name)) {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   157
+      if ($share->{'type'} eq "nfs") {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   158
+        my $info = &gst_share_nfs_info_new ();
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   159
+        my $client_table = &gst_share_nfs_client_table_new ();
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   160
+
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   161
+        &gst_share_nfs_info_set_point ($info, $share->{'dir'});
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   162
+        &gst_share_nfs_info_set_name ($info, $share->{'desc'});
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   163
+
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   164
+        # Parse a mount options string like rw=foo,nosuid,...
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   165
+        # Parts with no value are given an empty string as the value
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   166
+        foreach my $opt (split(/,/, $share->{'opts'})) {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   167
+          if ($opt =~ /^([^=]+)=(.*)$/) {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   168
+            my $pattern;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   169
+            my $access = $1;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   170
+            my $client = $2;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   171
+
12154
ddb2e7301d2d 2008-04-18 Jim Li <[email protected]>
jim
parents: 8027
diff changeset
   172
+            $client =~ /^([a-zA-Z0-9.\-:_*?@\/]+)/;
8027
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   173
+            $pattern = $1;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   174
+            $pattern = "0.0.0.0/0" if $pattern eq "";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   175
+            foreach my $host (split(/:/, $pattern)) {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   176
+              my $cinfo = &gst_share_nfs_client_info_new ();
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   177
+              &gst_share_nfs_client_info_set_pattern ($cinfo, $host);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   178
+
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   179
+              if ($access eq "rw") {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   180
+                &gst_share_nfs_client_info_set_write ($cinfo, 1);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   181
+              }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   182
+
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   183
+              # ignore settings other than rw or ro, e.g. root
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   184
+              if ($access eq "rw" || $access eq "ro") {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   185
+                &gst_share_nfs_client_table_add ($client_table, $cinfo);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   186
+              }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   187
+            }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   188
+          } else {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   189
+            $clients{$opt} = "";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   190
+          }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   191
+        }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   192
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   193
-  foreach $point (keys %$entries)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   194
-  {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   195
-    my $clients = $$entries{$point};
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   196
-    my $info = &gst_share_nfs_info_new ();
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   197
-    my $client_table = &gst_share_nfs_client_table_new ();
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   198
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   199
-    &gst_share_nfs_info_set_point ($info, $point);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   200
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   201
-    foreach $client (@$clients)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   202
+        &gst_share_nfs_info_set_client_table ($info, $client_table);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   203
+        &gst_share_nfs_table_add ($table, $info);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   204
+      }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   205
+    }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   206
+  } else {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   207
+    $entries = &gst_parse_split_hash_with_continuation ($nfs_exports_name, "[ \t]+", "[ \t]+");
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   208
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   209
+    foreach $point (keys %$entries)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   210
     {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   211
-      my $cinfo = &gst_share_nfs_client_info_new ();
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   212
-      my $pattern;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   213
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   214
-      $client =~ /^([a-zA-Z0-9.-_*?@\/]+)/;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   215
-      $pattern = $1;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   216
-      $pattern = "0.0.0.0/0" if $pattern eq "";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   217
-      &gst_share_nfs_client_info_set_pattern ($cinfo, $pattern);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   218
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   219
-      my $option_str = "";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   220
-      my @options;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   221
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   222
-      if ($client =~ /\((.+)\)/) { $option_str = $1; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   223
-      @options = ($option_str =~ /([a-zA-Z0-9_=-]+),?/mg);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   224
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   225
-      for $option (@options)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   226
+      my $clients = $$entries{$point};
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   227
+      my $info = &gst_share_nfs_info_new ();
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   228
+      my $client_table = &gst_share_nfs_client_table_new ();
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   229
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   230
+      &gst_share_nfs_info_set_point ($info, $point);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   231
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   232
+      foreach $client (@$clients)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   233
       {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   234
-        if ($option eq "rw") { &gst_share_nfs_client_info_set_write ($cinfo, 1); }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   235
-        # Add supported NFS export options here. Some might have to be split on '='.
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   236
+        my $cinfo = &gst_share_nfs_client_info_new ();
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   237
+        my $pattern;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   238
+  
12154
ddb2e7301d2d 2008-04-18 Jim Li <[email protected]>
jim
parents: 8027
diff changeset
   239
+        $client =~ /^([a-zA-Z0-9.\-:_*?@\/]+)/;
8027
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   240
+        $pattern = $1;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   241
+        $pattern = "0.0.0.0/0" if $pattern eq "";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   242
+        &gst_share_nfs_client_info_set_pattern ($cinfo, $pattern);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   243
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   244
+        my $option_str = "";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   245
+        my @options;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   246
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   247
+        if ($client =~ /\((.+)\)/) { $option_str = $1; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   248
+        @options = ($option_str =~ /([a-zA-Z0-9_=-]+),?/mg);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   249
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   250
+        for $option (@options)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   251
+        {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   252
+          if ($option eq "rw") { &gst_share_nfs_client_info_set_write ($cinfo, 1); }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   253
+          # Add supported NFS export options here. Some might have to be split on '='.
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   254
+        }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   255
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   256
+        &gst_share_nfs_client_table_add ($client_table, $cinfo);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   257
       }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   258
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   259
-      &gst_share_nfs_client_table_add ($client_table, $cinfo);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   260
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   261
+      &gst_share_nfs_info_set_client_table ($info, $client_table);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   262
+      &gst_share_nfs_table_add ($table, $info);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   263
     }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   264
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   265
-    &gst_share_nfs_info_set_client_table ($info, $client_table);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   266
-    &gst_share_nfs_table_add ($table, $info);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   267
   }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   268
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   269
   return $table;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   270
@@ -495,11 +595,27 @@
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   271
   {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   272
     # Each line is in the following format:
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   273
     # <point> <clients>
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   274
-    my @line = split /[ \t]+/, $_;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   275
-    if ($line[0] eq "") { shift @line; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   276
-    if (@line < 1 || &gst_ignore_line (@line)) { print $outfd $_; next; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   277
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   278
-    return $_;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   279
+    if ($$tool{"system"} eq "SunOS") {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   280
+      if (&gst_ignore_line($_)) { print $outfd $_; next; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   281
+      if (/^\s*\S*share\s+(.*)/) {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   282
+	my $point, $type;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   283
+        my $line = $1;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   284
+        while($line =~ /\\$/) {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   285
+          $_ = <$infd>;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   286
+          s/\r|\n//g; s/#.*$//;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   287
+          $line =~ s/\\$//;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   288
+          $line .= $_;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   289
+        }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   290
+        if ($line =~ /\s-F\s+(\S+)/) { $type = $1; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   291
+        else { $type = "nfs"; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   292
+	return "share $line\n" if ($type eq "nfs");
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   293
+      }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   294
+    } else {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   295
+      my @line = split /[ \t]+/, $_;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   296
+      if ($line[0] eq "") { shift @line; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   297
+      if (@line < 1 || &gst_ignore_line (@line)) { print $outfd $_; next; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   298
+      return $_;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   299
+    }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   300
   }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   301
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   302
   return undef;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   303
@@ -526,11 +642,43 @@
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   304
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   305
   $clients = &gst_share_nfs_info_get_client_table ($info);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   306
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   307
-  for $client (@$clients)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   308
-  {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   309
-    $line .= &gst_share_nfs_client_info_get_pattern ($client);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   310
-    $line .= "(rw)" if (&gst_share_nfs_client_info_get_write ($client));
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   311
-    $line .= " ";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   312
+  if ($$tool{"system"} eq "SunOS") {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   313
+    my $nowrite = 1;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   314
+    my $noread = 1;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   315
+    for $client (@$clients)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   316
+    {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   317
+      if (&gst_share_nfs_client_info_get_write ($client)) { 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   318
+        if ($nowrite eq 1) {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   319
+          $line .= "rw="; 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   320
+          $nowrite = 0;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   321
+        } else {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   322
+          $line .= ":"; 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   323
+        }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   324
+        $line .= &gst_share_nfs_client_info_get_pattern ($client);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   325
+      }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   326
+    }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   327
+    for $client (@$clients)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   328
+    {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   329
+      if (!&gst_share_nfs_client_info_get_write ($client)) { 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   330
+        if ($noread eq 1) {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   331
+          if ($nowrite eq 0) {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   332
+            $line .= ","; 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   333
+          }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   334
+          $line .= "ro="; 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   335
+          $noread = 0;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   336
+        } else {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   337
+          $line .= ":"; 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   338
+        }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   339
+        $line .= &gst_share_nfs_client_info_get_pattern ($client);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   340
+      }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   341
+    }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   342
+  } else {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   343
+    for $client (@$clients)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   344
+    {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   345
+      $line .= &gst_share_nfs_client_info_get_pattern ($client);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   346
+      $line .= "(rw)" if (&gst_share_nfs_client_info_get_write ($client));
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   347
+      $line .= " ";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   348
+    }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   349
   }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   350
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   351
   return $line;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   352
@@ -541,13 +689,19 @@
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   353
   my ($info) = @_;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   354
   my $line;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   355
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   356
-  # <point>
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   357
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   358
-  $line = sprintf ("%-15s ", &gst_share_nfs_info_get_point ($info));
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   359
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   360
-  # <clients>
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   361
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   362
-  $line .= &gst_share_nfs_info_print_clients ($info);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   363
+  if ($$tool{"system"} eq "SunOS") {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   364
+    $line = "share -F nfs ";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   365
+    $line .= sprintf ("-o %s ", &gst_share_nfs_info_print_clients ($info))
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   366
+            if (&gst_share_nfs_info_print_clients ($info));
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   367
+    $line .= sprintf ("-d %s ", &gst_share_nfs_info_get_name ($info))
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   368
+	    if (&gst_share_nfs_info_get_name ($info));
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   369
+    $line .= sprintf ("%-15s ", &gst_share_nfs_info_get_point ($info));
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   370
+  } else {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   371
+    # <point>
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   372
+    $line = sprintf ("%-15s ", &gst_share_nfs_info_get_point ($info));
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   373
+    # <clients>
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   374
+    $line .= &gst_share_nfs_info_print_clients ($info);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   375
+  }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   376
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   377
   return $line;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   378
 }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   379
@@ -583,66 +737,75 @@
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   380
   my $outline;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   381
   my $ctable = &gst_share_nfs_info_get_client_table ($info);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   382
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   383
-  # <point>
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   384
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   385
-  $outline = sprintf ("%-15s", &gst_share_nfs_info_get_point ($info));
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   386
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   387
-  # <clients>
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   388
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   389
-  chomp $line;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   390
-  my @clients = split /[ \t]+/, $line;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   391
-  shift @clients;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   392
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   393
-  # Make client hash based on line.
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   394
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   395
-  my $chash = { };
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   396
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   397
-  for $client (@clients)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   398
-  {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   399
-    my $opthash = { };
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   400
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   401
-    $client =~ /^([a-zA-Z0-9.-_*?@\/]+)/;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   402
-    my $pattern = $1;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   403
-    $$chash{$pattern} = $opthash;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   404
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   405
-    my $option_str = "";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   406
-    if ($client =~ /\((.+)\)/) { $option_str = $1; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   407
-    @options = ($option_str =~ /([a-zA-Z0-9_=-]+),?/mg);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   408
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   409
-    for $option (@options)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   410
-    {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   411
-      my ($key, $value) = split /[=]/, $option;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   412
-      next if ($key eq "");
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   413
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   414
-      if ($value eq "" && $option =~ /=/) { $value = " "; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   415
-      $$opthash{$key} = $value;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   416
-    }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   417
-  }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   418
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   419
-  # @clients contains client(options) entries.
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   420
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   421
-  for $cinfo (@$ctable)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   422
-  {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   423
-    my $pattern = &gst_share_nfs_client_info_get_pattern ($cinfo);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   424
-    my $opthash = $$chash{$pattern};
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   425
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   426
-    if (&gst_share_nfs_client_info_get_write ($cinfo))
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   427
-    {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   428
-      $$opthash{'rw'} = "";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   429
-    }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   430
-    else
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   431
+  if ($$tool{"system"} eq "SunOS") {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   432
+    my $desc = "unknown";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   433
+    if ($line =~ /-d\s+"([^"]+)"/) { $desc = $1; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   434
+    elsif ($line =~ /-d\s+(\S+)/) { $desc = $1; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   435
+    $desc =~ s/"//g; $desc =~ s/'//g;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   436
+    &gst_share_nfs_info_set_name ($info, $desc);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   437
+    $outline = &gst_share_nfs_info_print_entry ($info);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   438
+  } else {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   439
+    # <point>
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   440
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   441
+    $outline = sprintf ("%-15s", &gst_share_nfs_info_get_point ($info));
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   442
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   443
+    # <clients>
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   444
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   445
+    chomp $line;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   446
+    my @clients = split /[ \t]+/, $line;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   447
+    shift @clients;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   448
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   449
+    # Make client hash based on line.
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   450
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   451
+    my $chash = { };
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   452
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   453
+    for $client (@clients)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   454
     {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   455
-      delete $$opthash{'rw'};
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   456
+      my $opthash = { };
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   457
+  
12154
ddb2e7301d2d 2008-04-18 Jim Li <[email protected]>
jim
parents: 8027
diff changeset
   458
+      $client =~ /^([a-zA-Z0-9.\-:_*?@\/]+)/;
8027
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   459
+      my $pattern = $1;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   460
+      $$chash{$pattern} = $opthash;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   461
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   462
+      my $option_str = "";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   463
+      if ($client =~ /\((.+)\)/) { $option_str = $1; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   464
+      @options = ($option_str =~ /([a-zA-Z0-9_=-]+),?/mg);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   465
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   466
+      for $option (@options)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   467
+      {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   468
+        my ($key, $value) = split /[=]/, $option;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   469
+        next if ($key eq "");
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   470
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   471
+        if ($value eq "" && $option =~ /=/) { $value = " "; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   472
+        $$opthash{$key} = $value;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   473
+      }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   474
     }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   475
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   476
-    $outline .= " " . &gst_share_nfs_client_info_get_pattern ($cinfo);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   477
-    my $client_string = &gst_share_nfs_client_print_option_hash ($opthash);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   478
-    if ($client_string ne "")
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   479
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   480
+    # @clients contains client(options) entries.
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   481
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   482
+    for $cinfo (@$ctable)
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   483
     {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   484
-      $outline .= "(" . $client_string . ")";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   485
+      my $pattern = &gst_share_nfs_client_info_get_pattern ($cinfo);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   486
+      my $opthash = $$chash{$pattern};
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   487
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   488
+      if (&gst_share_nfs_client_info_get_write ($cinfo))
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   489
+      {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   490
+        $$opthash{'rw'} = "";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   491
+      }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   492
+      else
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   493
+      {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   494
+        delete $$opthash{'rw'};
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   495
+      }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   496
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   497
+      $outline .= " " . &gst_share_nfs_client_info_get_pattern ($cinfo);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   498
+      my $client_string = &gst_share_nfs_client_print_option_hash ($opthash);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   499
+      if ($client_string ne "")
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   500
+      {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   501
+        $outline .= "(" . $client_string . ")";
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   502
+      }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   503
     }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   504
   }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   505
-
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   506
+  
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   507
   return $outline;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   508
 }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   509
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   510
@@ -719,7 +882,11 @@
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   511
   my ($line) = @_;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   512
   my $point;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   513
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   514
-  ($point) = split /[ \t]+/, $line;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   515
+  if ($$tool{"system"} eq "SunOS") {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   516
+    if ($line =~ /\s+(\/\S+)/ || $line =~ /\s+(\/)/ || $line eq "/") { $point = $1; }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   517
+  } else {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   518
+    ($point) = split /[ \t]+/, $line;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   519
+  }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   520
   return $point;
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   521
 }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   522
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   523
@@ -752,6 +919,12 @@
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   524
       &gst_share_nfs_exports_remove_entry ($file, $old_info);
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   525
     }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   526
   } 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   527
+
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   528
+  if ($$tool{"system"} eq "SunOS") {
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   529
+    &gst_file_run ("svcadm enable nfs/server");
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   530
+    &gst_file_run ("unshareall");
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   531
+    &gst_file_run ("/bin/sh $file");
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   532
+  }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   533
 }
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   534
 
db169c287197 2006-08-30 Darren Kenny <[email protected]>
darrenk
parents: 7860
diff changeset
   535