Patch title: Release 90 bulk changes
Abstract:
File: /linux/network/boot.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/context.pli"
module "/pliant/fullpliant/this_computer.pli"
module "/pliant/admin/execute.pli"
module "/pliant/linux/network/net.pli"
module "/pliant/language/context.pli"
module "/pliant/fullpliant/this_computer.pli"
module "/pliant/admin/execute.pli"
module "/pliant/linux/network/net.pli"
module "/pliant/util/network/ping.pli"
module "/pliant/protocol/dns/name.pli"


function net_boot
  each d this_computer:env:"net_device"
    net_shutdown d:"device"
  if name_ip:computer_fullname<>""
    net_shutdown "eth0"
  net_shutdown "lo"
  net_configure "lo" "127.0.0.1/255.0.0.0"
module "/pliant/protocol/dns/name.pli"


function net_boot
  each d this_computer:env:"net_device"
    net_shutdown d:"device"
  if name_ip:computer_fullname<>""
    net_shutdown "eth0"
  net_shutdown "lo"
  net_configure "lo" "127.0.0.1/255.0.0.0"
  if name_ip:computer_fullname<>""
    console "Configuring the network " name_ip:computer_full
    if (net_configure "eth0" name_ip:computer_fullname+"/"+n
      console "Failed to configure the network." eol
  else
    console "This computer does not have an IP address." eol
  part try_to_connect
    var Str options := name_database:data:host:computer_fullname options
    var Int i := 0
    while { var Int pos := options option_position "ip" i -1 ; pos<>(-1) }
      if ((options pos options:len) parse word:"ip" (var Str ip) (var Str route) any)
        if (net_configure "eth0" ip)=success
          if net_ping:route=success
            net_route "0.0.0.0/0.0.0.0" route
            console "Configuring the network " ip " with defaut route " route eol
            leave try_to_connect
      i += 1
    if name_ip:computer_fullname<>""
      console "Configuring the network " name_ip:computer_fullname+"/"+name_mask:computer_fullname eol
      if (net_configure "eth0" name_ip:computer_fullname+"/"+name_mask:computer_fullname)=failure
        console "Failed to configure the network." eol
    else
      console "This computer does not have an IP address." eol
  if this_computer:env:"net_device":size>0
    console "Configuring extra network devices" eol
    each d this_computer:env:"net_device"
      if (net_configure d:"device" d:"ip"+"/"+d:"mask")=fail
        console "Failed to configure " d:"device" " ethernet
  if (constant this_computer:env:"kernel":"make":"CONFIG_ISD
    console "Configuring ISDN" eol
    execute "insmod slhc" quiet
    execute "insmod isdn" quiet
    if (exists this_computer:env:"hardware":"hisax")
      execute "insmod hisax "+this_computer:env:"hardware":"
    module "/pliant/linux/network/isdn.pli"
    isdn_reset
    each isdn this_computer:env:"isdn" sort isdn:"device"
      isdn_configure isdn:"device" isdn:"local_phone" isdn:"
  console "Setting global network parameters" eol
  var Str options := ""
  # each f this_computer:env:"net_filter"
  #   if f:"action"="nat"
  #     options := "forward"
  # each f this_computer:env:"net_route"
  #   options := "forward"
  if this_computer:env:"net_filter":size>0
    options += " forward"
  plugin network_options
  net_optimize options
  if this_computer:env:"net_filter":size>0
    console "Configuring firewall" eol
    each f this_computer:env:"net_filter"
      var Str inside := f "inside"
      var Str outside := f "outside"
      each d this_computer:env:"net_device"
        if (d:"device" parse (pattern f:"device")) or (d:"de
          inside += (shunt inside<>"" " " "")+d:"ip"+"/"+d:"
          outside += (shunt outside<>"" " " "")+d:"ip"+"/"+d
      net_filter f:"action" f:"device" inside outside
  if this_computer:env:"net_route":size>0
    console "Configuring network routing tables" eol
    each r this_computer:env:"net_route"
      var Str ip := shunt r:"ip"<>"" r:"ip" "0.0.0.0"
      var Str mask := shunt r:"mask"<>"" r:"mask" "0.0.0.0"
      var Str path := shunt r:"path"<>"" r:"path" (name_ip r
      if (net_route ip+"/"+mask path)=failure
        console "Failed to route " ip+"/"+mask " to " path e

export net_boot
  if this_computer:env:"net_device":size>0
    console "Configuring extra network devices" eol
    each d this_computer:env:"net_device"
      if (net_configure d:"device" d:"ip"+"/"+d:"mask")=fail
        console "Failed to configure " d:"device" " ethernet
  if (constant this_computer:env:"kernel":"make":"CONFIG_ISD
    console "Configuring ISDN" eol
    execute "insmod slhc" quiet
    execute "insmod isdn" quiet
    if (exists this_computer:env:"hardware":"hisax")
      execute "insmod hisax "+this_computer:env:"hardware":"
    module "/pliant/linux/network/isdn.pli"
    isdn_reset
    each isdn this_computer:env:"isdn" sort isdn:"device"
      isdn_configure isdn:"device" isdn:"local_phone" isdn:"
  console "Setting global network parameters" eol
  var Str options := ""
  # each f this_computer:env:"net_filter"
  #   if f:"action"="nat"
  #     options := "forward"
  # each f this_computer:env:"net_route"
  #   options := "forward"
  if this_computer:env:"net_filter":size>0
    options += " forward"
  plugin network_options
  net_optimize options
  if this_computer:env:"net_filter":size>0
    console "Configuring firewall" eol
    each f this_computer:env:"net_filter"
      var Str inside := f "inside"
      var Str outside := f "outside"
      each d this_computer:env:"net_device"
        if (d:"device" parse (pattern f:"device")) or (d:"de
          inside += (shunt inside<>"" " " "")+d:"ip"+"/"+d:"
          outside += (shunt outside<>"" " " "")+d:"ip"+"/"+d
      net_filter f:"action" f:"device" inside outside
  if this_computer:env:"net_route":size>0
    console "Configuring network routing tables" eol
    each r this_computer:env:"net_route"
      var Str ip := shunt r:"ip"<>"" r:"ip" "0.0.0.0"
      var Str mask := shunt r:"mask"<>"" r:"mask" "0.0.0.0"
      var Str path := shunt r:"path"<>"" r:"path" (name_ip r
      if (net_route ip+"/"+mask path)=failure
        console "Failed to route " ip+"/"+mask " to " path e

export net_boot