[BACK]Return to fetch_asir_key.sm1 CVS log [TXT][DIR] Up to [local] / OpenXM / rc

File: [local] / OpenXM / rc / fetch_asir_key.sm1 (download)

Revision 1.3, Fri Mar 10 01:25:04 2000 UTC (24 years ago) by takayama
Branch: MAIN
CVS Tags: maekawa-ipv6, R_1_3_1-2, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, RELEASE_1_1_3, RELEASE_1_1_2, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9
Changes since 1.2: +4 -1 lines

What is the value of $USER when you "su"?

% $OpenXM: OpenXM/rc/fetch_asir_key.sm1,v 1.3 2000/03/10 01:25:04 takayama Exp $
%% Usages:
% ../bin/sm1 -f fetch_asir_key.sm1         
%    Set the asir key automatically.
%
% ../bin/sm1 -f fetch_asir_key.sm1 -s "/func (mail) def"
% ../bin/sm1 -f fetch_asir_key.sm1 -s "/func (set) def"
%   Step 1.  Only send a mail to get a key.
%   Step 2.  Wait for a reply and set the keys to asir_key

/fetchSeed {
  [/in-fetchSeed /size] pushVariables
  [
   (/bin/rm -rf work) system
   (mkdir work) system
   (echo "quit;" >work/asir_key.in) system
   (../bin/asir <work/asir_key.in 2> work/asir_key.out0 ) system
   (grep ASIR work/asir_key.out0 >work/asir_key.out) system
   [(stat) (work/asir_key.out)] extension 1 get 0 get /size set
   /arg1 size def
  ] pop
  popVariables
  arg1
} def

/sendMail {
  /MAILADDRESS ( risa@sec.flab.fujitsu.co.jp )def
  [(Sending a mail to ) MAILADDRESS ] cat message
  [(mail ) MAILADDRESS ( < ) (work/asir_key.out)] cat system
} def

/waitReply {
  % Note that when you "su", $USER is not set to root, but set to your
  % original login name.  The "From" field of your mail also seems to use
  % $USER
  /MAIL [(/var/mail/) [(getenv) (USER)] extension ] cat def
  (/bin/rm -rf work/reply) system
  {
    [(Waiting a reply in ) MAIL] cat message
    [(    Type in   ctrl-Z   and   kill ) 37 (string) dc 37 (string) dc
     (   to stop this script.) ] cat message
    [(grep risa@sec.flab.fujitsu.co.jp ) MAIL (>work/reply)] cat system
    [(stat) (work/reply)] extension 1 get 0 get 0 eq not {
      exit
    }{  } ifelse
    (sleep 5) system
  } loop
  (Got a key) message    
} def

/setAsirKey {
  /MAIL [(/var/mail/) [(getenv) (USER)] extension ] cat def
  (/bin/rm -rf work/key) system
  [ (egrep '[0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z] [0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z] [0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z]' ) MAIL ( >work/key) ]
  cat system
  cat work/key >>../lib/asir/asir_key
} def

/fetch_check {
  [(This script sets OpenXM/lib/asir/asir_key for your machine,)
   (if your system can receive a mail at /var/mail on this machine.)
  ] { message } map
  (  ) message 
  (  ) message 
  (Cheching if you have a correct asir_key.) message
  (   ) message
  (   ) message
  fetchSeed 0 eq {
    (  ) message
    (  ) message
    (You already have a correct asir_key.) message
    (  ) message
    quit
  }{ } ifelse
} def

/fetch {
   fetch_check
   sendMail
   waitReply
   setAsirKey
} def

/func load tag 0 eq {
  fetch
  quit
} { } ifelse

func (mail) eq {
  ( ) message
  (Send a mail only) message
  fetch_check
  sendMail
  quit
} { } ifelse

func (set) eq {
  ( ) message
  (Wait a reply and set the keys) message
  waitReply
  setAsirKey
  quit
} { } ifelse

quit