[Ultrapossum-cvs 395] demo/haviewer/lib/haviewer 1.3, 1.4, ultrapossum.rb

Back to archive index

Masato Taruishi taru****@users*****
2004年 9月 13日 (月) 13:10:13 JST


===================================================================
RCS file: demo/haviewer/lib/haviewer/ultrapossum.rb,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- demo/haviewer/lib/haviewer/ultrapossum.rb	2004/09/13 03:16:03	1.3
+++ demo/haviewer/lib/haviewer/ultrapossum.rb	2004/09/13 04:10:13	1.4
@@ -226,19 +226,40 @@
     class EntryView < View
 
       def entry_update
-        open("|ldapmodify -x -h #{Conf["LDAPMASTER"]} -D #{Conf["ROOTDN"]} -w #{Conf["ROOTPW"]} 2>&1") { |io|
-          date=`sh -c 'LANG=C date'`
-          begin
-            io[0].puts <<EOF
+
+        pw = IO::pipe
+        pe = IO::pipe
+
+        pid = fork {
+          pw[1].close
+          STDIN.reopen(pw[0])
+          pw[0].close
+
+          pe[0].close
+          STDERR.reopen(pe[1])
+          pe[1].close
+
+          exec("ldapmodify -x -h #{Conf["LDAPMASTER"]} -D #{Conf["ROOTDN"]} -w #{Conf["ROOTPW"]}")
+        }
+
+        pw[0].close
+        pe[1].close
+
+        date=`sh -c 'LANG=C date'`
+        begin
+          pw[1].puts <<EOF
 dn: #{UltraPossumHost::monitored_entry}
 changetype: modify
 replace: description
 description: #{date}
+
 EOF
-          rescue
-          end
-          @glade["entry_update_error_label"].set_text(io.read)
-        }
+          pw[1].close
+        rescue
+        end
+        @glade["entry_update_error_label"].set_text(pe[0].gets)
+        pe[0].close
+        Process.waitpid(pid)
         if $? != 0
           @glade["entry_update_error"].show if $? != 0
         end



Ultrapossum-cvs メーリングリストの案内
Back to archive index