##################################################################
#
# arirang v2.02
# arirang script file format
# by pilot 
#
##################################################################
# arirang script easy, flexible, available many functions
# of Ruby
#
# structure like below
# <arirang>
#   connect ------
#    |            |
#   send          |
#    |     -------| --- Ruby http://www.ruby-lang.org
#   recv          |  
#    |            |
#   print  -------
# </arirang>
#
###################################################################
# class Arirang
# two global variable ($ari_host, $ari_sport)
# three instant variables (@ari_port, @ari_recvsize, @ari_recvflag)
# two methods (baedal, asadal)
# four arirang functions (ariconnect, arisend, ariclose, ariprint)
###################################################################
#
=begin
###################################################################
# arirang script must to require at least 3 defines 
# class Arirang, methods baedal, asadal
# 
class Arirang         #define class - class name must to be Arirang

#@ari_port = 80       # tcp port
#@ari_recvsize = 1024 # socket receive buffer size
#@ari_recvflag = 3 # socket receive flags
                   # 1 MSG_OOB         process out-of-band data
                   # 2 MSG_PEEK        peek at incoming message
                   # 3 MSG_WAITALL     wait for full request or error
                   # 4 MSG_DONTWAIT    don't block


    def baedal
        #
        # arirang script information function
        #
    end

    def asadal
        #
        # main part of arirang script
        #
        # available arirang functions 
        #   ariconnect       - socket connect
        #   arisend(string)  - socket send string (string not NULL)
        #                    - string size unlimited 
        #                    - arisend return to recv buf.
        #   ariclose         - socket close
        #   ariprint(string) - print string
        # available arirang variable
        #   $ari_host - host/ip 
        #   $ari_sport - scan port
    end

end

###################################################################
=end
###################################################################
#
#
# arirang script(-R option) run with -t -X -S -h -f -s -e -P
#                               not  -w -r 
# 
# if you make arirang script, please e-mail to me.
# 
################################################################### 

class Arirang

#@ari_port = 80
#@ari_recvsize = 1024
#@ari_recvflag = 3

    def baedal
        ari_title  = "arirang script example\n"
        ari_desc   = "send arirang to http webserver\n"
        #ari_author = "\n"
        #ari_license = "\n"

        puts "title: #{ari_title}"
        puts "desc: #{ari_desc}"
        #puts "author: #{ari_author}"
        #puts "license: #{ari_license}"
    end

    def asadal
        buf = "GET /arirang HTTP/1.0\r\n\r\n"
        ariconnect
        resp = arisend(buf)
        z = "#{$ari_host} - #{$ari_sport}/tcp - arirang url request\n" 
        ariprint(z)
        ariprint(resp)
    end

end

###################################################################