


send(n)                Tk Built-In Commands               send(n)


NAME
       send - Execute a command in a different application

SYNOPSIS
       send ?options? app cmd ?arg arg ...?


DESCRIPTION
       This command arranges for cmd (and args) to be executed in
       the application named by app.  It returns  the  result  or
       error from that command execution.  App may be the name of
       any application whose main window is on the  display  con-
       taining  the  sender's main window;  it need not be within
       the same process.  If no arg arguments are  present,  then
       the  command  to  be executed is contained entirely within
       the cmd argument.  If one or more args are  present,  they
       are  concatenated to form the command to be executed, just
       as for the eval command.

       If the initial arguments of the command begin  with  ``-''
       they  are  treated  as options.  The following options are
       currently defined:

       -async Requests asynchronous invocation.  In this case the
              send  command  will  complete  immediately  without
              waiting for cmd to complete in the target  applica-
              tion.   If  the  target  application is in the same
              process as the sending application then the  -async
              option is ignored.

       -displayof pathName
              Specifies that the target application's main window
              is on the display of the window given by  pathName,
              instead of the display containing the application's
              main window.

       --     Serves no purpose except to terminate the  list  of
              options.   This  option is needed only if app could
              contain a leading ``-'' character.


APPLICATION NAMES
       The name of an application is set initially from the  name
       of  the  program  or  script that created the application.
       You can query and change the name of an  application  with
       the tk appname command.


DISABLING SENDS
       If  the  send command is removed from an application (e.g.
       with the command rename send {}) then the application will
       not  respond  to incoming send requests anymore,  nor will
       it be able to issue outgoing requests.  Communication  can
       be reenabled by invoking the tk appname command.



Tk                             4.0                              1





send(n)                Tk Built-In Commands               send(n)


SECURITY
       The  send  command is potentially a serious security loop-
       hole, since any application that can  connect  to  your  X
       server  can  send  scripts  to  your  applications.  These
       incoming scripts can use Tcl to read and write your  files
       and  invoke  subprocesses  under  your  name.   Host-based
       access control such as that provided by xhost is  particu-
       larly  insecure, since it allows anyone with an account on
       particular hosts to connect to your server,  and  if  dis-
       abled it allows anyone anywhere to connect to your server.
       In order to provide at least a small amount  of  security,
       Tk  checks the access control being used by the server and
       rejects incoming sends unless (a) xhost-style access  con-
       trol  is  enabled  (i.e.  only certain hosts can establish
       connections) and (b) the list of enabled hosts  is  empty.
       This means that applications cannot connect to your server
       unless they use some other form of authorization  such  as
       that provide by xauth.


KEYWORDS
       application, name, remote execution, security, send
