title: How does Apple's "DVD or CD Sharing" protocol work?
body: <p>Macs have a <a href="http://www.macobserver.com/tmo/article/Apple_Releases_MacBook_Air_DVD_or_CD_Sharing_Setup/" rel="nofollow noreferrer">"DVD or CD Sharing"</a> service for remote access to optical drives.  (Apple also provides Windows software that implements the sharing half only, no reading.)  I want to use the service from Linux, to read an optical disk on a Mac.  But I can't find any software or even much information about the protocol.  I thought I would document what I've found here, and see what others can figure out.</p>
  
  <p>My friend enabled "DVD or CD Sharing" on his Mac.  I can see the service via zeroconf (using Avahi).  Notably:</p>
  
  <pre><code>Service Type: _odisk._tcp
  Address: &lt;hostname&gt;.local/192.168.1.115:49152
  </code></pre>
  
  <p>Searching for "_odisk._tcp", I found a mention in the "Mac Hacker's Handbook".  You can find it on pages 69 and 70.  I don't have the book, so I used <a href="https://rads.stackoverflow.com/amzn/click/com/0470395362" rel="nofollow noreferrer" rel="nofollow noreferrer">Amazon's preview</a>.  It shows some examples of an HTTP-based protocol.</p>
  
  <p>However, I can't make a successful request.  The first time I tried to "GET /" on the port given by zeroconf, I got "401 Unauthorized".  I asked my friend to turn off security.  Then, "GET /" returned "404 Not Found".  I tried the path from the first listing in the book, "GET /ods-ask-status?askID=2", and got "406 Not Acceptable".  So I know I'm on to something.  However, I can't get past the 406.  I have been entering the HTTP requests directly (with nc), and tried it exactly as in the trace in the book (only changing the host), as well as entering all sorts of Accept: and Accept-*: headers.  Since the trace in the Amazon preview is hard to read, I have tried other interpretations.  No luck.  (If someone has the book, maybe they can type the listing.)</p>
  
  <p>There is no other documentation for the protocol that I can find.  At this point, I should just get two computers using DVD or CD Sharing and sniff them, but that would be hard for me to set up right now.  So I'm offering the problem here.  Maybe you can get famous by writing the open source implementation of this protocol. ;-)</p>