<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Docs on AFP Docs Mirror</title><link>https://afp.fyi/docs/</link><description>Recent content in Docs on AFP Docs Mirror</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 13 Dec 2012 00:00:00 +0000</lastBuildDate><atom:link href="https://afp.fyi/docs/index.xml" rel="self" type="application/rss+xml"/><item><title>AFP Reference</title><link>https://afp.fyi/docs/reference/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/reference/</guid><description>&lt;h1 id="afp-reference">AFP Reference&lt;a class="anchor" href="#afp-reference">#&lt;/a>&lt;/h1>
&lt;h2 id="overview">Overview&lt;a class="anchor" href="#overview">#&lt;/a>&lt;/h2>
&lt;p>This document describes the Apple Filing Protocol (AFP) commands, data
types and constants that can be used to communicate with an AFP file
server. AFP allows users of multiple computers to share files easily and
efficiently over a network.&lt;/p>
&lt;p>In this protocol reference, references to a &lt;code>string&lt;/code> type indicate a
Pascal string. The first byte of a Pascal string indicates the string
length (0-255), and is followed by up to 255 bytes of text. Pascal
strings are not null-terminated.&lt;/p></description></item><item><title>Introduction</title><link>https://afp.fyi/docs/programming_guide/introduction/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/introduction/</guid><description>&lt;h1 id="introduction">Introduction&lt;a class="anchor" href="#introduction">#&lt;/a>&lt;/h1>
&lt;p>The Apple Filing Protocol (AFP) allows users of multiple computers to
share files easily and efficiently over a network.&lt;/p>
&lt;p>This document describes the AFP wire protocol at a conceptual level. For
detailed information about the request blocks that an AFP client sends
to an AFP server and the reply blocks that an AFP server sends to an AFP
client in response to a request block, see &lt;em>Apple Filing Protocol
Reference&lt;/em>.&lt;/p></description></item><item><title>AFP Concepts</title><link>https://afp.fyi/docs/programming_guide/concepts/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/concepts/</guid><description>&lt;h1 id="afp-concepts">AFP Concepts&lt;a class="anchor" href="#afp-concepts">#&lt;/a>&lt;/h1>
&lt;h2 id="file-access-model">File Access Model&lt;a class="anchor" href="#file-access-model">#&lt;/a>&lt;/h2>
&lt;p>This section introduces the file access model used by AFP to enable file
sharing and discusses the components of AFP software.&lt;/p>
&lt;p>&lt;strong>Note:&lt;/strong> All values exchanged between an AFP client and an AFP server
are sent over the network in network byte order.&lt;/p>
&lt;p>&lt;img src="https://afp.fyi/images_concepts/afp_l_02_2x.png" alt="AFP file access model" />&lt;/p>
&lt;p>&lt;strong>Figure 1-1&lt;/strong>  AFP file access model&lt;/p>
&lt;p>A program running in a local computer requests and manipulates files by
using that computer’s native file system commands. These commands
manipulate files on disk or other memory resource that is physically
connected to the local computer. Through AFP, a program can use the same
native file system commands to manipulate files on a shared resource
that resides on a remote computer (for example, a file server).&lt;/p></description></item><item><title>AFP Character Encoding</title><link>https://afp.fyi/docs/programming_guide/character_encoding/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/character_encoding/</guid><description>&lt;h1 id="afp-character-encoding">AFP Character Encoding&lt;a class="anchor" href="#afp-character-encoding">#&lt;/a>&lt;/h1>
&lt;p>If the server and the sharepoint support UTF-8 names, the AFP server and
client send and receive decomposed UTF-8. However, characters in the
range of U2000 to U2FFF, UFE30 to UFE4F, and U2F800 to U2FA1F are not
decomposed. For complex characters, Unicode 3.2-based tables are used.
For additional information, see &lt;a href="https://web.archive.org/web/20100722031935/http://developer.apple.com/mac/library/technotes/tn/tn1150.html#UnicodeSubtleties">http://developer.apple.com/technotes/tn/tn1150.html#UnicodeSubtleties&lt;/a>
and the Unicode specifications.&lt;/p>
&lt;p>For Macintosh Roman, AFP utilizes character string entity names that can
be composed of any 8-bit character. Character representations are
exactly the same as those used by the Mac OS and are shown in
Figure 2-1.&lt;/p></description></item><item><title>AFP File Server Security</title><link>https://afp.fyi/docs/programming_guide/file_server_security/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/file_server_security/</guid><description>&lt;h1 id="afp-file-server-security">AFP File Server Security&lt;a class="anchor" href="#afp-file-server-security">#&lt;/a>&lt;/h1>
&lt;p>Information stored in a shared resource needs protection from
unauthorized users. The role of file server security is to provide
varying amounts and kinds of protection, depending on what users feel is
necessary.&lt;/p>
&lt;p>AFP provides security in three ways:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>user authentication when the user logs in to the server&lt;/p>
&lt;/li>
&lt;li>
&lt;p>an optional volume-level password when the user first attempts to gain
access to a volume&lt;/p>
&lt;/li>
&lt;li>
&lt;p>directory access controls&lt;/p></description></item><item><title>File Sharing Modes</title><link>https://afp.fyi/docs/programming_guide/file_sharing_modes/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/file_sharing_modes/</guid><description>&lt;h1 id="file-sharing-modes">File Sharing Modes&lt;a class="anchor" href="#file-sharing-modes">#&lt;/a>&lt;/h1>
&lt;p>AFP controls user access to shared files in two ways. The first,
described in &lt;a href="../file_server_security/">AFP File Server Security&lt;/a>, provides
security by controlling user access to specific directories. The second,
described in this section, preserves data integrity by controlling a
user’s access to a file while it is being used by another user.&lt;/p>
&lt;p>To control simultaneous file access, the file server must enforce
synchronization rules. These rules prevent applications from damaging
each other’s files by modifying the same version simultaneously. These
rules also prevent users from obtaining access to information while it
is being changed.&lt;/p></description></item><item><title>Using Login Commands</title><link>https://afp.fyi/docs/programming_guide/login_commands/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/login_commands/</guid><description>&lt;h1 id="using-login-commands">Using Login Commands&lt;a class="anchor" href="#using-login-commands">#&lt;/a>&lt;/h1>
&lt;p>An AFP client uses the following commands to get information about a
file server and to open and close a session with it:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;code>FPGetSrvrInfo&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPGetAuthMethods&lt;/code> (deprecated)&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPLogin&lt;/code> and &lt;code>FPLoginExt&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPLoginCont&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPGetSrvrParms&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPGetSessionToken&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPDisconnectOldSession&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPLogout&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPMapID&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPMapName&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPChangePassword&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPGetUserInfo&lt;/code>&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>The AFP client sends the &lt;code>FPGetSrvrInfo&lt;/code> command to obtain server
information. The &lt;code>FPGetSrvrInfo&lt;/code> command returns server information
including the following server parameters: server name, machine type,
AFP version strings, UAM strings, volume icon and mask, a bitmap of
flags, and optionally, a list of available Open Directory names. For
descriptions of server parameters, see &lt;code>FPGetSrvrInfo&lt;/code> in the Reference
section.&lt;/p></description></item><item><title>AFP Over TCP</title><link>https://afp.fyi/docs/programming_guide/afp_over_tcp/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/afp_over_tcp/</guid><description>&lt;h1 id="afp-over-tcp">AFP Over TCP&lt;a class="anchor" href="#afp-over-tcp">#&lt;/a>&lt;/h1>
&lt;p>This chapter describes how the Transmission Control Protocol (TCP) can
be used to transport AFP packets efficiently. With TCP as the transport
protocol, AFP services can be made available over the Internet just as
they are made over AppleTalk networks. When a user mounts a remote
volume over TCP, the type of network over which the volume is mounted is
completely transparent to the user. On local area networks, providing
AFP services over TCP/IP effectively utilizes the bandwidth of high
speed network media such as Fiber Distributed Data Interface (FDDI) and
Asynchronous Transfer Mode (ATM).&lt;/p></description></item><item><title>AFP Replay Cache</title><link>https://afp.fyi/docs/programming_guide/replay_cache/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/replay_cache/</guid><description>&lt;h1 id="afp-replay-cache">AFP Replay Cache&lt;a class="anchor" href="#afp-replay-cache">#&lt;/a>&lt;/h1>
&lt;p>If the server supports the replay cache, then in the &lt;code>DSIOpenSession&lt;/code>
reply packet from the server, there is a new option type of
&lt;code>kServerReplayCacheSize&lt;/code>. The &lt;em>Option&lt;/em> field length is 4 bytes, and the
&lt;em>Option&lt;/em> value is the maximum number of DSI requests that the AFP server
can cache in its replay cache. The client selects the smaller of its own
maximum size or the server’s maximum size.&lt;/p></description></item><item><title>AFP Client Caching</title><link>https://afp.fyi/docs/programming_guide/client_caching/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/client_caching/</guid><description>&lt;h1 id="afp-client-caching">AFP Client Caching&lt;a class="anchor" href="#afp-client-caching">#&lt;/a>&lt;/h1>
&lt;p>This chapter describes how the AFP client in OS X v.10.2 and later caches
data before sending it to an AFP server.&lt;/p>
&lt;p>First, some terms and definitions:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Universal Buffer Cache (UBC)—A page cache that includes file data
caching, memory-mapped I/O backing, and so on. The buffer cache is
said to be unified because it exists as part of the normal virtual
memory physical page pool rather than as a separately managed buffer.&lt;/p></description></item><item><title>Using Volume Commands</title><link>https://afp.fyi/docs/programming_guide/volume_commands/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/volume_commands/</guid><description>&lt;h1 id="using-volume-commands">Using Volume Commands&lt;a class="anchor" href="#using-volume-commands">#&lt;/a>&lt;/h1>
&lt;p>AFP provides the following volume-level commands:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;code>FPOpenVol&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPCloseVol&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPGetVolParms&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPSetVolParms&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPFlush&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPCatSearch&lt;/code> and &lt;code>FPCatSearchExt&lt;/code>&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>After obtaining the volume names through the &lt;code>FPGetSrvrParms&lt;/code> command,
the AFP client sends an &lt;code>FPOpenVol&lt;/code> command for each volume to which it
wants to gain access. If a volume has a password, it must be supplied at
this time. The command returns the requested volume parameters,
including the volume identifier, &lt;em>VolumeID&lt;/em>.&lt;/p>
&lt;p>The volume identifier is used in all subsequent commands to identify the
volume for which the commands apply and remains valid until the session
is terminated by calling &lt;code>FPLogout&lt;/code> or the volume is closed by calling
&lt;code>FPVolClose&lt;/code>.&lt;/p></description></item><item><title>Using Directory Commands</title><link>https://afp.fyi/docs/programming_guide/directory_commands/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/directory_commands/</guid><description>&lt;h1 id="using-directory-commands">Using Directory Commands&lt;a class="anchor" href="#using-directory-commands">#&lt;/a>&lt;/h1>
&lt;p>AFP provides these commands for working on directories:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;code>FPSetDirParms&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPOpenDir&lt;/code> (deprecated)&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPCloseDir&lt;/code> (deprecated)&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPEnumerate&lt;/code>, &lt;code>FPEnumerateExt&lt;/code>, and &lt;code>FPEnumerateExt2&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPCreateDir&lt;/code>&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>The &lt;code>FPSetDirParms&lt;/code> command allows the AFP client to modify a
directory’s parameters. To obtain a directory’s parameters from the file
server, the AFP client uses the &lt;code>FPGetFileDirParms&lt;/code> command, which is
described in the section &lt;a href="../combined_directory_and_file_commands">Using Combined Directory and File Commands&lt;/a>.&lt;/p>
&lt;p>On variable Directory ID volumes, the AFP client uses the &lt;code>FPOpenDir&lt;/code>
command to open a directory on and retrieve its Directory ID. The
Directory ID is used in subsequent commands to enumerate the directory
or to obtain access to its offspring. For variable Directory ID volumes,
the &lt;code>FPOpenDir&lt;/code> command is the only way to retrieve the Directory ID.
Calling &lt;code>FPGetFileDirParms&lt;/code>, &lt;code>FPEnumerate&lt;/code>, &lt;code>FPEnumerateExt, &lt;/code>or
&lt;code>FPEnumerateExt2&lt;/code> to retrieve the Directory ID on such volumes causes an
error to be returned.&lt;/p></description></item><item><title>Using File Commands</title><link>https://afp.fyi/docs/programming_guide/file_commands/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/file_commands/</guid><description>&lt;h1 id="using-file-commands">Using File Commands&lt;a class="anchor" href="#using-file-commands">#&lt;/a>&lt;/h1>
&lt;p>AFP provides these commands for working on files:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;code>FPSetFileDirParms&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPCreateFile&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPCopyFile&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPCreateID&lt;/code> (deprecated)&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPDeleteID&lt;/code> (deprecated)&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPResolveID&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPExchangeFiles&lt;/code>&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>The AFP client uses the &lt;code>FPSetFileParms&lt;/code> command to modify a specified
file’s parameters, the &lt;code>FPCreateFile&lt;/code> command to create a file, and the
&lt;code>FPCopyFile&lt;/code> command to copy a file that exists on a volume managed by a
server to any other volume managed by that server. To obtain a specified
file’s parameters, the AFP client uses the &lt;code>FPGetFileDirParms&lt;/code> command,
discussed in the next section.&lt;/p></description></item><item><title>Using Combined Directory and File Commands</title><link>https://afp.fyi/docs/programming_guide/combined_directory_and_file_commands/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/combined_directory_and_file_commands/</guid><description>&lt;h1 id="using-combined-directory-and-file-commands">Using Combined Directory and File Commands&lt;a class="anchor" href="#using-combined-directory-and-file-commands">#&lt;/a>&lt;/h1>
&lt;p>AFP provides five commands that operate on both files and directories:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;code>FPGetFileDirParms&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPSetFileDirParms&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPRename&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPDelete&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPMoveAndRename&lt;/code>&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>The AFP client uses the &lt;code>FPGetFileDirParms&lt;/code> command to retrieve the
parameters associated with a given file or directory. When it uses this
command, the AFP client does not need specify whether the CNode is a
file or directory; the file server indicates the CNode’s type in
response to this command.&lt;/p></description></item><item><title>Using Fork Commands</title><link>https://afp.fyi/docs/programming_guide/fork_commands/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/fork_commands/</guid><description>&lt;h1 id="using-fork-commands">Using Fork Commands&lt;a class="anchor" href="#using-fork-commands">#&lt;/a>&lt;/h1>
&lt;p>AFP provides these fork-level commands:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;code>FPGetForkParms&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPSetForkParms&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPOpenFork&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPRead&lt;/code> and &lt;code>FPReadExt&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPWrite&lt;/code> and &lt;code>FPWriteExt&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPFlushFork&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPByteRangeLock&lt;/code> and &lt;code>FPByteRangeLockExt&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPCloseFork&lt;/code>&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>The AFP client uses the &lt;code>FPGetForkParms&lt;/code> command to read a fork’s
parameters.&lt;/p>
&lt;p>The &lt;code>FPSetForkParms&lt;/code> command is used to modify a fork’s parameters.&lt;/p>
&lt;p>The &lt;code>FPOpenFork&lt;/code> command is used to open either fork of an existing
file. This command returns an open fork reference number, which is used
in subsequent commands for this open fork.&lt;/p></description></item><item><title>Using Desktop Database Commands</title><link>https://afp.fyi/docs/programming_guide/desktop_database_commands/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/desktop_database_commands/</guid><description>&lt;h1 id="using-desktop-database-commands">Using Desktop Database Commands&lt;a class="anchor" href="#using-desktop-database-commands">#&lt;/a>&lt;/h1>
&lt;p>&lt;strong>Note:&lt;/strong> The Desktop database is no longer supported beginning in OS X
v.10.6.&lt;/p>
&lt;p>An AFP client uses the following commands to read and write information
stored in the server’s Desktop database:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;code>FPOpenDT&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPCloseDT&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPAddIcon&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPGetIcon&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPGetIconInfo&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPAddAPPL&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPRemoveAPPL&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPGetAPPL&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPAddComment&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPRemoveComment&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>FPGetComment&lt;/code>&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>Before any other Desktop database commands can be sent, the AFP client
must send an &lt;code>FPOpenDT&lt;/code> command. This command returns a reference number
to be used in all subsequent commands on the Desktop database.&lt;/p></description></item><item><title>AFP Version Differences</title><link>https://afp.fyi/docs/programming_guide/version_differences/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/version_differences/</guid><description>&lt;h1 id="afp-version-differences">AFP Version Differences&lt;a class="anchor" href="#afp-version-differences">#&lt;/a>&lt;/h1>
&lt;p>This document as a whole describes the current version of the Apple
Filing Protocol. This section provides a list of what commands were
added in each AFP version.&lt;/p>
&lt;p>For a complete description of the commands themselves, see &lt;em>Apple Filing
Protocol Reference&lt;/em>.&lt;/p>
&lt;h2 id="missing-afp-command-codes">Missing AFP Command Codes&lt;a class="anchor" href="#missing-afp-command-codes">#&lt;/a>&lt;/h2>
&lt;p>12 and 13 were missing from Inside AppleTalk and have never been
allocated.&lt;/p>
&lt;p>38-43 were missing from Inside AppleTalk but were added in AFP 2.1;
presumably they were preallocated for System 7.0.&lt;/p></description></item><item><title>Document Revision History</title><link>https://afp.fyi/docs/programming_guide/revision_history/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0000</pubDate><guid>https://afp.fyi/docs/programming_guide/revision_history/</guid><description>&lt;h1 id="document-revision-history">Document Revision History&lt;a class="anchor" href="#document-revision-history">#&lt;/a>&lt;/h1>
&lt;p>This table describes the changes to &lt;em>Apple Filing Protocol Programming Guide&lt;/em>.&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Date&lt;/th>
 &lt;th>Notes&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>2012-12-13&lt;/td>
 &lt;td>Added information about AFP 3.4.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>2011-04-18&lt;/td>
 &lt;td>Clarified explanation of UTF-8 path lengths.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>2010-11-15&lt;/td>
 &lt;td>Corrected errors in the Reconnect UAM explanation and the access mode/deny mode table.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>2009-08-20&lt;/td>
 &lt;td>Updated to cover the Time Machine and case sensitivity flags supported in OS X v.10.6 and AFP protocol version 3.3 and later.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>2006-04-04&lt;/td>
 &lt;td>Moved reference documentation to become a seperate document.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>2005-06-04&lt;/td>
 &lt;td>Fixed idle timer information.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>2005-05-12&lt;/td>
 &lt;td>Updated for AFP version 3.2.&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;p>Copyright © 2012 Apple Inc. All Rights Reserved. | Updated: 2012-12-13&lt;/p></description></item></channel></rss>