CLIM mail archive

[Prev][Next][Index][Thread]

Re: CLIM stream problem



>   Problem:
>    The remote print command 
>      (CP:EXECUTE-COMMAND "EXECUTE COMMAND" "icat" "lp temp.ps")
>   prompts the user for a password before executing the command.
>   However, if the command is executed from within the application
>   frame, I get the error message stated below.
>   
>   Questions:
>    1) Is there a way to suppress this prompting of the password?

Here's a macro that we wrap around various tasks that require reading files from
remote systems.  Perhaps you can use part or all of it, especially the binding
of RPC::*UNIX-AUTHENTICATION-ALLOW-DEFAULTING*.


(defmacro with-automatic-remote-login (&body body)
  "During execution of BODY, required remote logins will happen automatically."
  (let ((function (gynsym "WITH-AUTOMATIC-REMOTE-LOGIN-")))
    `(flet ((,function ()
             ,@body))
       (declare (dynamic-extent #',function))
       (with-automatic-remote-login-1 #',function))))

(defun with-automatic-remote-login-1 (continuation)
  (flet ((login-required-handler (condition)
           (sys:proceed condition :password "nobody" "password")))
    (declare (dynamic-extent #'login-required-handler))
    (scl:condition-bind ((fs:login-required #'login-required-handler))
      ;; Binding RPC::*UNIX-AUTHENTICATION-ALLOW-DEFAULTING* to T
      ;; bypasses remote password checking.
      (let ((fs:*automatically-login-to-sys-host* t)
            (rpc::*unix-authentication-allow-defaulting* t))
        (funcall continuation)))))


Good luck!


Philip L. Stubblefield                                         415/325-7165
Rockwell Palo Alto Laboratory                        phil@rpal.rockwell.com


References:

Main Index | Thread Index