<?xml version="1.0" encoding="latin1" ?>
<!DOCTYPE erlref SYSTEM "erlref.dtd">

<erlref>
  <header>
    <copyright>
      <year>1996</year><year>2009</year>
      <holder>Ericsson AB. All Rights Reserved.</holder>
    </copyright>
    <legalnotice>
      The contents of this file are subject to the Erlang Public License,
      Version 1.1, (the "License"); you may not use this file except in
      compliance with the License. You should have received a copy of the
      Erlang Public License along with this software. If not, it can be
      retrieved online at http://www.erlang.org/.
    
      Software distributed under the License is distributed on an "AS IS"
      basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
      the License for the specific language governing rights and limitations
      under the License.
    
    </legalnotice>

    <title>erl_boot_server</title>
    <prepared></prepared>
    <docno></docno>
    <date></date>
    <rev></rev>
  </header>
  <module>erl_boot_server</module>
  <modulesummary>Boot Server for Other Erlang Machines</modulesummary>
  <description>
    <p>This server is used to assist diskless Erlang nodes which fetch
      all Erlang code from another machine.</p>
    <p>This server is used to fetch all code, including the start
      script, if an Erlang runtime system is started with
      the <c>-loader inet</c> command line flag. All hosts specified
      with the <c>-hosts Host</c> command line flag must have one
      instance of this server running.</p>
    <p>This server can be started with the <c>kernel</c> configuration
      parameter <c>start_boot_server</c>.</p>
    <p>The <c>erl_boot_server</c> can both read regular files as well as
      files in archives. See <seealso marker="code">code(3)</seealso>
      and <seealso marker="erts:erl_prim_loader">erl_prim_loader(3)</seealso>.</p>
    <warning><p>The support for loading of code from archive files is
     experimental. The sole purpose of releasing it before it is ready
     is to obtain early feedback. The file format, semantics,
     interfaces etc. may be changed in a future release.</p></warning>
  </description>
  <funcs>
    <func>
      <name>start(Slaves) -> {ok, Pid} | {error, What}</name>
      <fsummary>Start the boot server</fsummary>
      <type>
        <v>Slaves = [Host]</v>
        <v>Host = atom()</v>
        <v>Pid = pid()</v>
        <v>What = term()</v>
      </type>
      <desc>
        <p>Starts the boot server. <c>Slaves</c> is a list of IP
          addresses for hosts which are allowed to use this server as a
          boot server.</p>
      </desc>
    </func>
    <func>
      <name>start_link(Slaves) -> {ok, Pid} | {error, What}</name>
      <fsummary>Start the boot server and links the caller</fsummary>
      <type>
        <v>Slaves = [Host]</v>
        <v>Host = atom()</v>
        <v>Pid = pid()</v>
        <v>What = term()()</v>
      </type>
      <desc>
        <p>Starts the boot server and links to the caller. This function
          is used to start the server if it is included in a supervision
          tree.</p>
      </desc>
    </func>
    <func>
      <name>add_slave(Slave) -> ok | {error, What}</name>
      <fsummary>Add a slave to the list of allowed slaves</fsummary>
      <type>
        <v>Slave = Host</v>
        <v>Host = atom()</v>
        <v>What = term()</v>
      </type>
      <desc>
        <p>Adds a <c>Slave</c> node to the list of allowed slave hosts.</p>
      </desc>
    </func>
    <func>
      <name>delete_slave(Slave) -> ok | {error, What}</name>
      <fsummary>Delete a slave from the list of allowed slaves</fsummary>
      <type>
        <v>Slave = Host</v>
        <v>Host = atom()</v>
        <v>What = void()</v>
      </type>
      <desc>
        <p>Deletes a <c>Slave</c> node from the list of allowed slave
          hosts.</p>
      </desc>
    </func>
    <func>
      <name>which_slaves() -> Slaves</name>
      <fsummary>Return the current list of allowed slave hosts</fsummary>
      <type>
        <v>Slaves = [Host]</v>
        <v>Host = atom()</v>
      </type>
      <desc>
        <p>Returns the current list of allowed slave hosts.</p>
      </desc>
    </func>
  </funcs>

  <section>
    <title>SEE ALSO</title>
    <p><seealso marker="erts:init">init(3)</seealso>,  
      <seealso marker="erts:erl_prim_loader">erl_prim_loader(3)</seealso></p>
  </section>
</erlref>


