
                                                          July 14, 1992


                    AS225 Developer's Disk, Version 2.1

             Requires AmigaDOS 2.04 (V37) or greater and AS225
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    Do not distribute this disk or any of its contents. 
    "socket.library" will be included in the next release of
    AS225.  If you write an application which you want to release
    before the next release of AS225, contact CATS for
    socket.library licensing information.


    References in this document to "inet.library" and "socket.library"
    refer to versions 5.0 and 4.0 respectively.  We have made every
    effort to ensure compatibility with previous versions of both but
    we make no promises.  

    ---------------------------------------------------------------
    *** Socket.library 4.0 -requires- inet.library 5.0 or later ***
    ---------------------------------------------------------------

    This is a BETA version of this software. ALL the files on this disk 
    should be considered beta and, as such, we may change them at will
    (theoretically because of the input from beta testers :))
    
    Inet.library  V5.0  (61576 bytes)
    ---------------------------------
    
    There are two main things to note about the new inet.library (v5.0) :

    1. It is now a SANA-II library in that you need SANA-II drivers to 
       talk to your hardware.  You will need the a2065.device (Ethernet) 
       and/or the a2060.device(ARCNET) to speak to the Commodore boards.
       These drivers are on this disk in a directory called 
       ":devs/networks". The proper place for these drivers is in a 
       directory called "networks" in your system's "devs:" volume.
        
        example:   "devs:networks/a2065.device"

        In addition, you need a file 'sana2_devs' which goes in the
        inet:s directory.  This is described in detail below.

    2. This new inet.library does NOT forward IP packets from board to
       board. The old inet.library did this. It shouldn't have. (See 
       RFC 1122.)  The old version (a) defaulted to ON, and (b) had 
       no way to turn it off.  The new one defaults to off and we now 
       provide you with a "inet:c/configinet" which allows you to 
       (a) set the status of  this flag and (b) query the status of 
       the flag.
       
       People using Amigas as gateways should take note.  Docs for 
       'configinet' are in the docs directory.


    Socket.library  V4.0  (18476 bytes)
    -----------------------------------

    This new socket.library has the following additions and changes :
    
    1. The addition of a standard means to launch server programs
       (ftpd, rshd, etc.) and to pass ownership of a given socket 
       from one process to another. See the functions s_inherit() 
       and s_release(). The example server 'timed' source shows how
       to do this.
    
    2. Support for those wishing to mix their compiler's stdio 
       functions with sockets.  A new function called s_dev_list() 
       that gives the ability to tell socket.library about your 
       stdio filehandle array. Example source code is provided for 
       which shows how to write replacement functions for your 
       compiler's 'read()', 'open()' and 'write()' functions.
    
    
    The Sana2_devs file
    -------------------
    
        Inet.library has received some major changes in terms of
    it's communication with networking hardware.  As of release 5.0,
    all of the hardcoded device drivers (such as hardcoded A2065,
    A2060, or SLIP drivers) have been removed from the code, and
    replaced with an interface to standardized SANA-II drivers. 
    Naturally, this causes certain changes to AS225 installations:
    
        Most importantly, there exists a new file "inet:s/sana2_devs"
    which must exist in order for inet.library to operate.  A sample
    of the file follows:
    
    #Sana II devices used by the inet.library
    #device path             Unit No IPType  ARPType (opt. hardware addr)
    #--------------------------------------------------------------------
    devs:Networks/a2065.device  0     2048    2054
    devs:Networks/a2065.device  1     2048    2054
    devs:Networks/a2060.device  0     240     241
    devs:Networks/slip.device   0     1       2
    
        Each line in the file represents an inet.library device, and
    these devices are numbered, beginning with the first entry in
    the file.  The name that inet.library will know the device by is
    simply an 's', followed by the number of the entry in the file -
    starting with zero.  In our example, the first line relates
    to 's0', the second to 's1', the third to 's2', and the last to
    's3'.
    
        Since the hardcoded drivers are no longer included in
    inet.library, any and all references users may be making to them
    (such as references to 'ae0' or 'ae1' in their inet:s/start-inet
    files) are now faulty.
    
        Each line is broken up into five fields -- the pathname of
    the SANA-II device, the unit number to configure, the ip and arp
    packet types, and an optional hardware address.
    
        The path of the SANA-II device is fairly self-explanatory. 
    Most SANA-II devices can be found in devs:Networks.
    
        The unit number is used to differentiate between multiple
    boards of the same type in a machine.  For instance, if you plug
    two A2065 boards into an Amiga, the first board is unit 0, the
    second is unit 1, and so on.
    
        The IP and ARP types are standardized "packet types".  It is
    by these numbers that inet.library is capable of determining
    which packets coming over the network are TCP/IP packets. 
    Unfortunately, even though these numbers are standardized, they
    vary between different types of hardware. For Ethernet, they are
    2048 and 2054, respectively.  Arcnet seems to have three
    seperate 'standards', but the most common usage seems to be 240
    and 241 respectively.  SLIP, as in our example above, has no
    notion of packet types, so any two different numbers will do.
    
        If you wish to use inet.library with an unusual SANA-II
    device that doesn't have an inherent hardware address, you can
    optionally specify one.  The format is a 0x, followed by any
    number of hex digits (up to the SANA-II limit of 32).  An
    example might be 0x8 for hardware address 8.



    
    Stuff
    -----
    
    Also included are the latest network includes and some example
    source code.
    
    In order for you to make use of the new libraries with the old 
    as225 we are providing BETA copies of the new inet:c/server/* 
    binaries. These are still premliminary and have to be given 
    another once over. All the inet:*/* stuff that is not in this 
    archive will be following shortly. This is released in the 
    meantime to get folks started.
    
    
    ===============================================================
        
                         

    NOTE: The functions in the socket.library use many of the 2.0
    AmigaOS calls.  This means that any and all applications that use
    this library will work ONLY under the 2.0 OS (and later versions).
    
    The examples directory contains the source to our new timed
    program (timed.c), an advanced example. 
    
    New in this release:
    
        1. An example timed server demonstrating the use of the new
           s_inherit() and s_release() functions.
        
        2. Contains source and binary for a file called 'sas_test' that
           demonstrates the use of the s_dev_list() function.
        
    The inet/c directory contains beta test versions of executables
    for those AS225 network utilities which we've ported to the
    socket.library and otherwise updated.  (Compare the sizes of the
    binaries!)
    
    The include directory contains the header files for use with the
    socket.library.  This version does not supply a copy of the Manx
    pragmas. We do provide the fd file so generating Manx
    pragmas/stubs should be easy  enough.
    
    Some header files have names which conflict with standard SAS or
    Manx headers (in particular, signal.h and sys/types.h).  You'll
    have to figure out how you want to resolve these conflicts
    depending on whether you want source compatibility with Un*x, etc.
    
    COMPILER PROBLEMS:
    
    There are a few function calls that will make an ANSI C compiler
    spit forth warning/errors.  In particular, several of the inet_XXX
    functions pass (4 byte long) structures as their arguments.  ANSI
    compilers -hate- this type of thing.  In order to fix this we
    would make these function incompatible with the way the U*IX calls
    work. Rather than do that we have opted to have you suffer some
    compiler warnings.  Just check your returns and be sure you are
    getting what you asked for.  Some odd looking casts will generally
    fix the compiler warning messages.

    CHANGES:

    The visible changes are the addition of the functions
    "s_inherit(), s_release() and s_dev_list(). The autodocs and
    includes have been changed to reflect this and a few autodoc
    entries have been clarified or corrected.  The contents of inet/c
    may have been updated to include new utilities.


    BUGS:

    Please promptly report all bugs as follows:

    Mail: 

        European developers should mail bugs to their support manager.
        U.S./others mail to: Amiga Software Engineering, ATTN: BUG REPORTS,
        CBM, 1200 Wilson Drive, West Chester, PA., 19380, USA
    European ADSP users: 

        Post 2.0 bugs to asdp.14.bugs, others to adsp.bugs

    UUCP: 
    
        to uunet!cbmvax!bugs OR rutgers!cbmvax!bugs OR bugs@commodore.COM
          (enhancement requests to cbmvax!suggestions instead of cbmvax!bugs)
    BIX: 
    
        Post bugs in the bugs topic of your closed developer conference.
        (in this case amiga.beta.inet)
    
    
        Legalese:
    
    This shared socket library (and it's documentation) are Copyright
    © 1991 Commodore-Amiga, Inc.  All Rights Reserved.  
    
    Parts of this shared socket library and the associated header
    files are derived from code which is:

    Copyright (c) 1983 Regents of the University of California.
    All rights reserved.

    Redistribution and use in source and binary forms are permitted
    provided that the above copyright notice and this paragraph are
    duplicated in all such forms and that any documentation,
    advertising materials, and other materials related to such
    distribution and use acknowledge that the software was developed
    by the University of California, Berkeley.  The name of the
    University may not be used to endorse or promote products derived
    from this software without specific prior written permission.
    THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
    IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
    WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
