--- a/impnotes/rawsock.html
+++ b/impnotes/rawsock.html
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>33.17. Raw Socket Access</title><link rel="stylesheet" href="impnotes.css" type="text/css" /><link rev="made" href="mailto:clisp-list@lists.sourceforge.net" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8465" /><link rel="home" href="index.html" title="Implementation Notes for GNU CLISP" /><link rel="up" href="ext-modules.html" title="Chapter 33. Extensions Implemented as Modules" /><link rel="prev" href="zlib.html" title="33.16. Interface to zlib" /><link rel="next" href="fastcgi.html" title="33.18. The FastCGI Interface" /><link rel="copyright" href="legalese.html" title="Legal Status of the CLISP Implementation Notes" /><meta name="date" content="'generated: 2009-07-28 12:48:49-04:00'" /><link rel="author" title="Authors" href="index.html#authors" /><link rel="contents" title="Table of Contents" href="index.html" /><link rel="glossary" href="glossary.html" /><link rel="help" href="faq.html#faq-help" title="How do I ask for help?" /><link rel="home" title="Home" href="http://clisp.cons.org" /><link rel="index" href="idx.html" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">33.17. Raw Socket Access</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="zlib.html">Prev</a> </td><th width="60%" align="center">Chapter 33. Extensions Implemented as Modules</th><td width="20%" align="right"> <a accesskey="n" href="fastcgi.html">Next</a></td></tr></table><hr /></div><div class="section" title="33.17. Raw Socket Access"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="rawsock"></a>33.17. Raw Socket Access</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="rawsock.html#rawsock-intro">33.17.1. Introduction</a></span></dt><dt><span class="section"><a href="rawsock.html#rawsock-func">33.17.2. Single System Call Functions</a></span></dt><dt><span class="section"><a href="rawsock.html#rawsock-args">33.17.3. Common arguments</a></span></dt><dd><dl><dt><span class="section"><a href="rawsock.html#rawsock-plat-dep-constants">33.17.3.1. Platform-dependent Keywords</a></span></dt></dl></dd><dt><span class="section"><a href="rawsock.html#rawsock-return">33.17.4. Return Values</a></span></dt><dt><span class="section"><a href="rawsock.html#rawsock-not-implemented">33.17.5. Not Implemented</a></span></dt><dt><span class="section"><a href="rawsock.html#rawsock-errors">33.17.6. Errors</a></span></dt><dt><span class="section"><a href="rawsock.html#rawsock-high-level">33.17.7. High-Level Functions</a></span></dt></dl></div><div class="section" title="33.17.1. Introduction"><div class="titlepage"><div><div><h3 class="title"><a id="rawsock-intro"></a>33.17.1. Introduction</h3></div></div></div><p>This is the raw socket interface, as described in
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>33.17. Raw Socket Access</title><link rel="stylesheet" type="text/css" href="impnotes.css" /><link rev="made" href="mailto:clisp-list@lists.sourceforge.net" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8706" /><link rel="home" href="index.html" title="Implementation Notes for GNU CLISP" /><link rel="up" href="ext-modules.html" title="Chapter 33. Extensions Implemented as Modules" /><link rel="prev" href="zlib.html" title="33.16. Interface to zlib" /><link rel="next" href="fastcgi.html" title="33.18. The FastCGI Interface" /><link rel="copyright" href="legalese.html" title="Legal Status of the CLISP Implementation Notes" /><meta name="date" content="'generated: 2010-07-07 11:48:49-04:00'" /><link rel="author" title="Authors" href="index.html#authors" /><link rel="contents" title="Table of Contents" href="index.html" /><link rel="glossary" href="glossary.html" /><link rel="help" href="faq.html#faq-help" title="How do I ask for help?" /><link rel="home" title="Home" href="http://clisp.cons.org" /><link rel="index" href="idx.html" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">33.17. Raw Socket Access</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="zlib.html">Prev</a> </td><th width="60%" align="center">Chapter 33. Extensions Implemented as Modules</th><td width="20%" align="right"> <a accesskey="n" href="fastcgi.html">Next</a></td></tr></table><hr /></div><div class="section" title="33.17. Raw Socket Access"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="rawsock"></a>33.17. Raw Socket Access</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="rawsock.html#rawsock-intro">33.17.1. Introduction</a></span></dt><dt><span class="section"><a href="rawsock.html#rawsock-func">33.17.2. Single System Call Functions</a></span></dt><dt><span class="section"><a href="rawsock.html#rawsock-args">33.17.3. Common arguments</a></span></dt><dd><dl><dt><span class="section"><a href="rawsock.html#rawsock-plat-dep-constants">33.17.3.1. Platform-dependent Keywords</a></span></dt></dl></dd><dt><span class="section"><a href="rawsock.html#rawsock-return">33.17.4. Return Values</a></span></dt><dt><span class="section"><a href="rawsock.html#rawsock-not-implemented">33.17.5. Not Implemented</a></span></dt><dt><span class="section"><a href="rawsock.html#rawsock-errors">33.17.6. Errors</a></span></dt><dt><span class="section"><a href="rawsock.html#rawsock-high-level">33.17.7. High-Level Functions</a></span></dt></dl></div><div class="section" title="33.17.1. Introduction"><div class="titlepage"><div><div><h3 class="title"><a id="rawsock-intro"></a>33.17.1. Introduction</h3></div></div></div><p>This is the raw socket interface, as described in
  <a class="unix" href="http://www.opengroup.org/susv3/basedefs/sys/socket.h.html">&lt;<code class="filename">sys/socket.h</code>&gt;</a>.
 Sockets are represented by their <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/typ_fixnum.html" target="_top"><code class="classname">FIXNUM</code></a> <a class="unix" href="http://www.opengroup.org/susv3/basedefs/xbd_chap03.html#tag_03_165">file descriptor</a>s.</p><p>When this module is present, <a href="features.html" class="olink"><code class="varname">*FEATURES*</code></a> contains the
  symbol <code class="constant">:RAWSOCK</code>.</p><div class="warning" title="Try SOCKET:SOCKET-STREAM first!" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a id="rawsock-use-sockets"></a>Try <code class="classname">SOCKET:SOCKET-STREAM</code> first!</h3><p>For most uses of sockets, the facilities described in
@@ -14,8 +14,9 @@
   <a class="ulink" href="http://sourceforge.net/mailarchive/message.php?msg_id=7203955" target="_top">mailing list archives</a> for more details.
   Note that <a class="link" href="make-stream.html" title="21.9. Function EXT:MAKE-STREAM"><code class="function">EXT:MAKE-STREAM</code></a> will duplicate the <a class="unix" href="http://www.opengroup.org/susv3/basedefs/xbd_chap03.html#tag_03_165">file descriptor</a> (using <a class="unix" href="http://www.opengroup.org/susv3/functions/dup.html"><code class="function">dup</code></a>),
   so you <span class="emphasis"><em>still</em></span> have to <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_close.html" target="_top"><code class="function">CLOSE</code></a> the original raw socket.
-</p></div><p>File <a class="clisp-cvs" href="http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/modules/rawsock/test.tst"><code class="filename">modules/rawsock/test.tst</code></a>
- contains plenty of examples.</p></div><div class="section" title="33.17.2. Single System Call Functions"><div class="titlepage"><div><div><h3 class="title"><a id="rawsock-func"></a>33.17.2. Single System Call Functions</h3></div></div></div><p>We implement access to
+</p></div><p>Test file <a class="clisp-cvs" href="http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/modules/rawsock/test.tst"><code class="filename">modules/rawsock/test.tst</code></a>
+ and the demos in <a class="clisp-cvs" href="http://clisp.cvs.sourceforge.net/clisp/clisp/modules/rawsock/demos/"><code class="filename">modules/rawsock/demos/</code></a>
+ contain plenty of examples.</p></div><div class="section" title="33.17.2. Single System Call Functions"><div class="titlepage"><div><div><h3 class="title"><a id="rawsock-func"></a>33.17.2. Single System Call Functions</h3></div></div></div><p>We implement access to
  </p><table border="0" summary="Simple list" class="simplelist"><tr><td><code class="code">(<a class="unix" href="http://www.opengroup.org/susv3/functions/accept.html"><code class="function">accept</code></a>
     <em class="replaceable"><code>socket</code></em> <em class="replaceable"><code>address</code></em>)</code></td></tr><tr><td><code class="code">(<a class="unix" href="http://www.opengroup.org/susv3/functions/bind.html"><code class="function">bind</code></a>
     <em class="replaceable"><code>socket</code></em> <em class="replaceable"><code>address</code></em>)</code></td></tr><tr><td><code class="code">(<a class="unix" href="http://www.opengroup.org/susv3/functions/connect.html"><code class="function">connect</code></a>
@@ -99,8 +100,8 @@
  and <a class="unix" href="http://www.opengroup.org/susv3/functions/getnameinfo.html"><code class="function">getnameinfo</code></a> are <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_signal.html" target="_top"><code class="function">SIGNAL</code></a>ed
  as <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/contyp_condition.html" target="_top"><code class="classname">CONDITION</code></a>s of type <span class="type">RAWSOCK:EAI</span>
  using <a class="unix" href="http://www.opengroup.org/susv3/functions/gai_strerror.html"><code class="function">gai_strerror</code></a>.</p><p>Errors in other functions are reported as the usual OS errors
- (using <a class="unix" href="http://www.opengroup.org/susv3/functions/strerror.html"><code class="function">strerror</code></a>).</p></div><div class="section" title="33.17.7. High-Level Functions"><div class="titlepage"><div><div><h3 class="title"><a id="rawsock-high-level"></a>33.17.7. High-Level Functions</h3></div></div></div><div class="variablelist" title="Functions that do not correspond to a single system call"><a id="rawsock-high-level-list"></a><p class="title"><b>Functions that do not
-  correspond to a single system call</b></p><dl><dt><a id="sock-read"></a><span class="term"><code class="code">(<code class="function">RAWSOCK:SOCK-READ</code>
+ (using <a class="unix" href="http://www.opengroup.org/susv3/functions/strerror.html"><code class="function">strerror</code></a>).</p></div><div class="section" title="33.17.7. High-Level Functions"><div class="titlepage"><div><div><h3 class="title"><a id="rawsock-high-level"></a>33.17.7. High-Level Functions</h3></div></div></div><div class="variablelist" title="Functions that do not correspond to a single system call"><a id="rawsock-high-level-list"></a><p class="title">Functions that do not
+  correspond to a single system call</p><dl><dt><a id="sock-read"></a><span class="term"><code class="code">(<code class="function">RAWSOCK:SOCK-READ</code>
    <em class="replaceable"><code>socket</code></em> <em class="replaceable"><code>buffer</code></em> <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-1.html" target="_top"><code class="literal">&amp;KEY</code></a> start end)</code><br /></span><span class="term"><code class="code">(<code class="function">RAWSOCK:SOCK-WRITE</code>
    <em class="replaceable"><code>socket</code></em> <em class="replaceable"><code>buffer</code></em> <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-1.html" target="_top"><code class="literal">&amp;KEY</code></a> start end)</code></span></dt><dd><p class="simpara">Call one of <a class="unix" href="http://www.opengroup.org/susv3/functions/read.html"><code class="function">read</code></a>/<a class="unix" href="http://www.opengroup.org/susv3/functions/readv.html"><code class="function">readv</code></a>
   or <a class="unix" href="http://www.opengroup.org/susv3/functions/write.html"><code class="function">write</code></a>/<a class="unix" href="http://www.opengroup.org/susv3/functions/writev.html"><code class="function">writev</code></a>
@@ -133,9 +134,9 @@
    <a class="unix" href="http://www.opengroup.org/susv3/functions/endnetent.html"><code class="function">endnetent</code></a>.
 </dd><dt><a id="rawsock-if-name-index"></a><span class="term"><code class="code">(RAWSOCK:IF-NAME-INDEX
    <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-1.html" target="_top"><code class="literal">&amp;OPTIONAL</code></a> <em class="replaceable"><code>what</code></em>)</code></span></dt><dd>Call <a class="unix" href="http://www.opengroup.org/susv3/functions/if_nametoindex.html"><code class="function">if_nametoindex</code></a>
-   when <em class="replaceable"><code>network</code></em> is a <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/syscla_string.html" target="_top"><code class="classname">STRING</code></a> and return an <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/syscla_integer.html" target="_top"><code class="classname">INTEGER</code></a>;
+   when <em class="replaceable"><code>what</code></em> is a <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/syscla_string.html" target="_top"><code class="classname">STRING</code></a> and return an <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/syscla_integer.html" target="_top"><code class="classname">INTEGER</code></a>;
    or call <a class="unix" href="http://www.opengroup.org/susv3/functions/if_indextoname.html"><code class="function">if_indextoname</code></a> when
-   <em class="replaceable"><code>network</code></em> is an <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/syscla_integer.html" target="_top"><code class="classname">INTEGER</code></a> and return a <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/syscla_string.html" target="_top"><code class="classname">STRING</code></a>.
+   <em class="replaceable"><code>what</code></em> is an <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/syscla_integer.html" target="_top"><code class="classname">INTEGER</code></a> and return a <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/syscla_string.html" target="_top"><code class="classname">STRING</code></a>.
    When <em class="replaceable"><code>what</code></em> is <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/convar_nil.html" target="_top"><code class="constant">NIL</code></a>, return an <a class="" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/glo_a.html#association_list">association list</a> of
    pairs <span class="data"><code class="literal">(<em class="replaceable"><code>index</code></em> . <em class="replaceable"><code>name</code></em>)</code></span>
    using <a class="unix" href="http://www.opengroup.org/susv3/functions/if_nameindex.html"><code class="function">if_nameindex</code></a>.
@@ -145,7 +146,7 @@
    filtered using flags, e.g., <code class="code">(ifaddrs :flags-or '(a b)
     :flags-and '(c d))</code> will return a list of objects which have
    flags <code class="literal">c</code> <span class="strong"><strong>and</strong></span> <code class="literal">d</code> <span class="strong"><strong>and</strong></span> at
-   least one of <code class="literal">a</code> or <code class="literal">b</code> set.
+   least one of <code class="literal">a</code> <span class="strong"><strong>or</strong></span> <code class="literal">b</code> set.
 </dd><dt><a id="rawsock-sockopt"></a><span class="term"><code class="code">(RAWSOCK:SOCKET-OPTION
    <em class="replaceable"><code>socket</code></em> <em class="replaceable"><code>name</code></em> <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-1.html" target="_top"><code class="literal">&amp;KEY</code></a> :LEVEL)</code><br /></span><span class="term"><code class="code">(<a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/mac_setfcm_psetf.html" target="_top"><code class="function">SETF</code></a> (RAWSOCK:SOCKET-OPTION <em class="replaceable"><code>socket</code></em> <em class="replaceable"><code>name</code></em>
    <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-1.html" target="_top"><code class="literal">&amp;KEY</code></a> :LEVEL) <em class="replaceable"><code>value</code></em>)</code></span></dt><dd>Call <a class="unix" href="http://www.opengroup.org/susv3/functions/getsockopt.html"><code class="function">getsockopt</code></a>
@@ -153,7 +154,7 @@
    <em class="replaceable"><code>name</code></em> and <em class="replaceable"><code>level</code></em>) and multiple (when <em class="replaceable"><code>name</code></em>
    is <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/convar_nil.html" target="_top"><code class="constant">NIL</code></a> and/or <em class="replaceable"><code>level</code></em> is <code class="constant">:ALL</code>) options.
    (See also <a class="link" href="socket.html#so-opt"><code class="function">SOCKET:SOCKET-OPTIONS</code></a>.)</dd><dt><a id="rawsock-convert-address"></a><span class="term"><code class="code">(<a class="link" href="rawsock.html#rawsock-convert-address"><code class="function">RAWSOCK:CONVERT-ADDRESS</code></a>
-   <em class="replaceable"><code>family</code></em> <em class="replaceable"><code>address</code></em>)</code></span></dt><dd><p>Convert between <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/syscla_string.html" target="_top"><code class="classname">STRING</code></a> and <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/syscla_integer.html" target="_top"><code class="classname">INTEGER</code></a> IP
+   <em class="replaceable"><code>family</code></em> <em class="replaceable"><code>address</code></em>)</code></span></dt><dd><p>Convert between <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/syscla_string.html" target="_top"><code class="classname">STRING</code></a> and <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/syscla_integer.html" target="_top"><code class="classname">INTEGER</code></a> <a class="rfc" href="http://www.ietf.org/rfc/rfc791.txt"><code><span class="command"><strong>IP</strong></span></code></a>
    <em class="replaceable"><code>address</code></em> representations using</p><table border="0" summary="Simple list" class="simplelist"><tr><td><a class="unix" href="http://www.opengroup.org/susv3/functions/inet_addr.html"><code class="function">inet_addr</code></a></td><td><a class="unix" href="http://www.opengroup.org/susv3/functions/inet_ntop.html"><code class="function">inet_ntop</code></a></td></tr><tr><td><a class="unix" href="http://www.opengroup.org/susv3/functions/inet_ntoa.html"><code class="function">inet_ntoa</code></a></td><td><a class="unix" href="http://www.opengroup.org/susv3/functions/inet_pton.html"><code class="function">inet_pton</code></a></td></tr></table></dd><dt><a id="make-sockaddr"></a><span class="term"><code class="code">(RAWSOCK:MAKE-SOCKADDR
    <em class="replaceable"><code>family</code></em> <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-1.html" target="_top"><code class="literal">&amp;OPTIONAL</code></a> <em class="replaceable"><code>data</code></em>)</code></span></dt><dd>Create a <span class="type">sockaddr</span> object.
    <em class="replaceable"><code>data</code></em> should be a sequence of <span class="type"><code class="literal">(<a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/typ_unsigned-byte.html" target="_top"><code class="classname">UNSIGNED-BYTE</code></a> 8)</code></span> or an <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/syscla_integer.html" target="_top"><code class="classname">INTEGER</code></a>
@@ -173,16 +174,21 @@
    to <code class="function">RAWSOCK:OPEN-UNIX-SOCKET</code>, other <em class="replaceable"><code>options</code></em>
    to <a class="link" href="make-stream.html" title="21.9. Function EXT:MAKE-STREAM"><code class="function">EXT:MAKE-STREAM</code></a> (but see <a class="xref" href="rawsock.html#rawsock-not-streams" title="Do not use EXT:MAKE-STREAM!">Do <span class="strong"><strong>not</strong></span> use <code class="function">EXT:MAKE-STREAM</code>!</a>).
 </dd><dt><span class="term"><code class="code">(RAWSOCK:IPCSUM <em class="replaceable"><code>buffer</code></em> <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-1.html" target="_top"><code class="literal">&amp;KEY</code></a> start end)</code>
-  - <a class="rfc" href="http://rfc.net/rfc791.html"><code><span class="command"><strong>IP</strong></span></code></a><br /></span><span class="term"><code class="code">(RAWSOCK:ICMPCSUM <em class="replaceable"><code>buffer</code></em> <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-1.html" target="_top"><code class="literal">&amp;KEY</code></a> start end)</code>
-  - <a class="rfc" href="http://rfc.net/rfc792.html"><code><span class="command"><strong>ICMP</strong></span></code></a><br /></span><span class="term"><code class="code">(RAWSOCK:TCPCSUM <em class="replaceable"><code>buffer</code></em> <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-1.html" target="_top"><code class="literal">&amp;KEY</code></a> start end)</code>
-  - <a class="rfc" href="http://rfc.net/rfc793.html"><code><span class="command"><strong>TCP</strong></span></code></a><br /></span><span class="term"><code class="code">(RAWSOCK:UDPCSUM <em class="replaceable"><code>buffer</code></em> <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-1.html" target="_top"><code class="literal">&amp;KEY</code></a> start end)</code>
-  - <a class="rfc" href="http://rfc.net/rfc768.html"><code><span class="command"><strong>UDP</strong></span></code></a></span></dt><dd>Compute the appropriate protocol checksum and record
+  - <a class="rfc" href="http://www.ietf.org/rfc/rfc791.txt"><code><span class="command"><strong>IP</strong></span></code></a><br /></span><span class="term"><code class="code">(RAWSOCK:ICMPCSUM <em class="replaceable"><code>buffer</code></em> <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-1.html" target="_top"><code class="literal">&amp;KEY</code></a> start end)</code>
+  - <a class="rfc" href="http://www.ietf.org/rfc/rfc792.txt"><code><span class="command"><strong>ICMP</strong></span></code></a><br /></span><span class="term"><code class="code">(RAWSOCK:TCPCSUM <em class="replaceable"><code>buffer</code></em> <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-1.html" target="_top"><code class="literal">&amp;KEY</code></a> start end)</code>
+  - <a class="rfc" href="http://www.ietf.org/rfc/rfc793.txt"><code><span class="command"><strong>TCP</strong></span></code></a><br /></span><span class="term"><code class="code">(RAWSOCK:UDPCSUM <em class="replaceable"><code>buffer</code></em> <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-1.html" target="_top"><code class="literal">&amp;KEY</code></a> start end)</code>
+  - <a class="rfc" href="http://www.ietf.org/rfc/rfc768.txt"><code><span class="command"><strong>UDP</strong></span></code></a></span></dt><dd><p class="simpara">Compute the appropriate protocol checksum and record
    it in the appropriate location.  <em class="replaceable"><code>buffer</code></em> is assumed to be a suitable
-   packet for the protocol, with the appropriate header etc.
-   The typical packet you send is both <a class="rfc" href="http://rfc.net/rfc791.html"><code><span class="command"><strong>IP</strong></span></code></a> and <a class="rfc" href="http://rfc.net/rfc793.html"><code><span class="command"><strong>TCP</strong></span></code></a> and thus has two
-   checksums, so you would want to call <span class="emphasis"><em>two</em></span> functions.
-</dd><dt><span class="term"><code class="code">(RAWSOCK:CONFIGDEV <em class="replaceable"><code>socket</code></em> <em class="replaceable"><code>name</code></em> <em class="replaceable"><code>address</code></em>
-   <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-1.html" target="_top"><code class="literal">&amp;KEY</code></a> <em class="replaceable"><code>promisc</code></em>
-   <em class="replaceable"><code>noarp</code></em>)</code></span></dt><dd>Set some socket options and IP <em class="replaceable"><code>address</code></em>
+   ethernet frame for the protocol, with the appropriate header etc.</p><p class="simpara">Note that <em class="replaceable"><code>buffer</code></em> is an <span class="emphasis"><em>ethernet frame</em></span>,
+   starting with 6 bytes of the destination MAC address, 6 bytes of the
+   source MAC address, and 2 bytes specifying the next level protocol,
+   (e.g., <code class="literal">#x0800</code> for <a class="rfc" href="http://www.ietf.org/rfc/rfc791.txt"><code><span class="command"><strong>IP</strong></span></code></a> and <code class="literal">#x0806</code>
+   for <a class="rfc" href="http://www.ietf.org/rfc/rfc826.txt"><code><span class="command"><strong>ARP</strong></span></code></a>), i.e., the first 14 bytes of <em class="replaceable"><code>buffer</code></em> are ignored by these
+   functions.</p><p class="simpara">A typical packet you send is both <a class="rfc" href="http://www.ietf.org/rfc/rfc791.txt"><code><span class="command"><strong>IP</strong></span></code></a> and <a class="rfc" href="http://www.ietf.org/rfc/rfc793.txt"><code><span class="command"><strong>TCP</strong></span></code></a> and thus
+   has two checksums, so you would want to call <span class="emphasis"><em>two</em></span>
+   functions.</p></dd><dt><span class="term"><code class="code">(RAWSOCK:CONFIGDEV <em class="replaceable"><code>socket</code></em>
+   <em class="replaceable"><code>ifname</code></em> <em class="replaceable"><code>address</code></em> <a class="ulink" href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_3-4-1.html" target="_top"><code class="literal">&amp;KEY</code></a>
+   <em class="replaceable"><code>promisc</code></em>
+   <em class="replaceable"><code>noarp</code></em>)</code></span></dt><dd>Set some socket options and <a class="rfc" href="http://www.ietf.org/rfc/rfc791.txt"><code><span class="command"><strong>IP</strong></span></code></a> <em class="replaceable"><code>address</code></em>
    with <a class="unix" href="http://www.opengroup.org/susv3/functions/ioctl.html"><code class="function">ioctl</code></a>.
-</dd></dl></div></div></div><div class="bookinfo"><hr /><table width="100%" summary="impnotes meta info"><th><td align="left">These notes document <a class="ulink" href="http://clisp.cons.org" target="_top"><span class="command"><strong>CLISP</strong></span></a> version 2.48</td><td align="right">Last modified: 2009-07-28</td></th></table></div><div class="custom-footer"><hr /><table width="100%"><tr><td align="left"><a href="http://clisp.cons.org"><img src="clisp.png" width="48" height="48" alt="[CLISP home]" /></a></td><td align="center"><a href="https://sourceforge.net/donate/index.php?group_id=1355"><img src="http://images.sourceforge.net/images/project-support.jpg" width="88" height="32" alt="[Support CLISP]" /></a></td><td align="right"><a href="https://sourceforge.net/projects/clisp"><img width="120" height="30" alt="[SourceForge]" src="http://sflogo.sourceforge.net/sflogo.php?group_id=1355&amp;type=12&amp;page=rawsock" /></a></td></tr></table></div><hr /><form method="get" action="http://www.google.com/custom" target="_top"><table width="100%" border="0"><tr><td nowrap="nowrap" align="center"><input type="hidden" name="domains" value="clisp.cons.org;clisp.podval.org;www.lisp.org" /><label for="sbi" style="display: none">Enter your search terms</label><input type="text" name="q" size="50" maxlength="255" id="sbi" value="33.17. Raw Socket Access" /><label for="sbb" style="display: none">Submit search form</label><input type="submit" name="sa" value="Google Search" id="sbb" /></td></tr><tr><td nowrap="nowrap" align="center"><input type="radio" name="sitesearch" value="" checked="1" id="ss0" /><label for="ss0" title="Search the Web"><small>Web</small></label><input type="radio" name="sitesearch" value="clisp.cons.org" id="ss1" /><label for="ss1" title="Search clisp.cons.org"><small>clisp.cons.org</small></label><input type="radio" name="sitesearch" value="clisp.podval.org" id="ss2" /><label for="ss2" title="Search clisp.podval.org"><small>clisp.podval.org</small></label><input type="radio" name="sitesearch" value="www.lisp.org" id="ss3" /><label for="ss3" title="Search www.lisp.org"><small>www.lisp.org</small></label><input type="hidden" name="client" value="pub-4445255502750357" /><input type="hidden" name="forid" value="1" /><input type="hidden" name="ie" value="UTF-8" /><input type="hidden" name="oe" value="UTF-8" /><input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:000000;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;LH:48;LW:48;L:http://clisp.cons.org/clisp.png;S:http://clisp.cons.org;FORID:1" /><input type="hidden" name="hl" value="en" /></td></tr></table></form><hr /><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="zlib.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ext-modules.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="fastcgi.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">33.16. Interface to zlib </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 33.18. The FastCGI Interface</td></tr></table></div></body></html>
+</dd></dl></div></div></div><div class="bookinfo"><hr /><table width="100%" summary="impnotes meta info"><th><td align="left">These notes document <a class="ulink" href="http://clisp.cons.org" target="_top"><span class="command"><strong>CLISP</strong></span></a> version 2.49</td><td align="right">Last modified: 2010-07-07</td></th></table></div><div class="custom-footer"><hr /><table width="100%"><tr><td align="left"><a href="http://clisp.cons.org"><img src="clisp.png" width="48" height="48" alt="[CLISP home]" /></a></td><td align="center"><a href="https://sourceforge.net/donate/index.php?group_id=1355"><img src="http://images.sourceforge.net/images/project-support.jpg" width="88" height="32" alt="[Support CLISP]" /></a></td><td align="right"><a href="https://sourceforge.net/projects/clisp"><img width="120" height="30" alt="[SourceForge]" src="http://sflogo.sourceforge.net/sflogo.php?group_id=1355&amp;type=12&amp;page=rawsock" /></a></td></tr></table></div><hr /><form method="get" action="http://www.google.com/custom" target="_top"><table width="100%" border="0"><tr><td nowrap="nowrap" align="center"><input type="hidden" name="domains" value="clisp.cons.org;clisp.podval.org;www.lisp.org" /><label for="sbi" style="display: none">Enter your search terms</label><input type="text" name="q" size="50" maxlength="255" id="sbi" value="33.17. Raw Socket Access" /><label for="sbb" style="display: none">Submit search form</label><input type="submit" name="sa" value="Google Search" id="sbb" /></td></tr><tr><td nowrap="nowrap" align="center"><input type="radio" name="sitesearch" value="" checked="1" id="ss0" /><label for="ss0" title="Search the Web"><small>Web</small></label><input type="radio" name="sitesearch" value="clisp.cons.org" id="ss1" /><label for="ss1" title="Search clisp.cons.org"><small>clisp.cons.org</small></label><input type="radio" name="sitesearch" value="clisp.podval.org" id="ss2" /><label for="ss2" title="Search clisp.podval.org"><small>clisp.podval.org</small></label><input type="radio" name="sitesearch" value="www.lisp.org" id="ss3" /><label for="ss3" title="Search www.lisp.org"><small>www.lisp.org</small></label><input type="hidden" name="client" value="pub-4445255502750357" /><input type="hidden" name="forid" value="1" /><input type="hidden" name="ie" value="UTF-8" /><input type="hidden" name="oe" value="UTF-8" /><input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:000000;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;LH:48;LW:48;L:http://clisp.cons.org/clisp.png;S:http://clisp.cons.org;FORID:1" /><input type="hidden" name="hl" value="en" /></td></tr></table></form><hr /><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="zlib.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ext-modules.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="fastcgi.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">33.16. Interface to zlib </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 33.18. The FastCGI Interface</td></tr></table></div></body></html>