Patch title: Release 92 bulk changes
Abstract:
File: /util/network/ping.pli
Key:
    Removed line
    Added line
   
# Copyright  Hubert Tonneau  hubert.tonneau@pliant.cx
#
# This program is free software; you can redistribute it and
# modify it under the terms of the GNU General Public Licens
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be us
# but WITHOUT ANY WARRANTY; without even the implied warrant
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See 
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public 
# version 2 along with this program; if not, write to the Fr
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 


function net_ping hostname message timeout -> status
  arg Str hostname ; arg Str message ; arg Float timeout ; a
  var Str ip := dns_query_prototype hostname dns_query_funct
  if (ip parse (var Int i1) "." (var Int i2) "." (var Int i3
    var uInt ipaddress := (cast i1 uInt)*256^3 + (cast i2 uI
  else
    return failure:"Failed to parse IP address"
  var Int s := os_socket os_AF_INET os_SOCK_RAW 1
  if s<0
    # not 'root' under Unix, try TCP connection to HTTP port
# Copyright  Hubert Tonneau  hubert.tonneau@pliant.cx
#
# This program is free software; you can redistribute it and
# modify it under the terms of the GNU General Public Licens
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be us
# but WITHOUT ANY WARRANTY; without even the implied warrant
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See 
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public 
# version 2 along with this program; if not, write to the Fr
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 


function net_ping hostname message timeout -> status
  arg Str hostname ; arg Str message ; arg Float timeout ; a
  var Str ip := dns_query_prototype hostname dns_query_funct
  if (ip parse (var Int i1) "." (var Int i2) "." (var Int i3
    var uInt ipaddress := (cast i1 uInt)*256^3 + (cast i2 uI
  else
    return failure:"Failed to parse IP address"
  var Int s := os_socket os_AF_INET os_SOCK_RAW 1
  if s<0
    # not 'root' under Unix, try TCP connection to HTTP port
    (var Stream tcp) open "tcp://"+ip+"/client/80" in+out+sa
    (var Stream tcp) open "tcp://"+ip+"/client/80" "timeout "+string:timeout in+out+safe
    return (shunt tcp=success success failure:"Failed to ope
  
  var Int reserved := 512+message:len
  var Address buf := memory_allocate reserved null
  var Int size := os_icmphdr:size+message:len
  memory_copy message:characters (buf translate os_icmphdr 1


export net_ping
    return (shunt tcp=success success failure:"Failed to ope
  
  var Int reserved := 512+message:len
  var Address buf := memory_allocate reserved null
  var Int size := os_icmphdr:size+message:len
  memory_copy message:characters (buf translate os_icmphdr 1


export net_ping