123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894 |
- <html><html>
- <head>
- <title>::freedb.org::</title>
- </head>
- <body bgcolor="#FFFFFF" text="#000000" link="#101070" vlink="#101070">
- <center>
- <table cellpadding=0 cellspacing=0 border=0 width="99%" align=center><tr><td align=left>
- <a href="/">
- <table border=0>
- <td bgcolor="#ffffff">
- <table border=0 width=100% cellpadding=0 cellspacing=0>
- <td bgcolor=#101070>
- <table border=0>
- <td bgcolor=#ffffff><font face="Arial,Helvetica,Lucida" color="#101070" size=8><b>freedb</b></td>
- <td bgcolor=#101070><font face="Arial,Helvetica,Lucida" color="#ffffff" size=8><b>.org</b></td>
- </table>
- </td>
- <tr>
- <td align=right><font face="Arial,Helvetica,Lucida" color="#101070" size=2><b>a free approach to cddbp
- </table>
- </td>
- </table>
- </a>
- </td><td align=right width=100%>
- <form action="search.php" method=post>
- <font face=Arial,Helvetica size=2><input type=name name=query width=20 size=20 length=20>
- </td>
- <td align=right> <input type=image src=images/menu/english/search.gif border=0 align=middle></td>
- </form>
- </td></tr></table><br>
- <table cellpadding=0 cellspacing=0 border=0 width="99%" bgcolor=101070><tr><td>
- <table cellpadding=5 cellspacing=1 border=0 width="100%" bgcolor=FFFFFF><tr><td>
- <font face=Lucida,Verdana,Arial,Helvetica size=2>freedb.org - a free approach to cddbp</td></tr></table></td></tr></table><P>
- <table width="99%" align=center cellpadding=0 cellspacing=0 border=0><tr>
- <td valign=top rowspan=5>
- <table border=0><tr><td>
- <table width="115" border="0" cellpadding="0" cellspacing="0"><tr valign="top" bgcolor="#101070">
- <td bgcolor="#FFFFFF"><img src="themes/SlashOcean/pix.gif" width="3" height="3"></td>
- <td><img src="themes/SlashOcean/cl.gif" width="7" height="10"></td>
- <td><font face="verdana,helvetica,arial" size="1" color="#ffffff"><B>Main Menu</B></font></td>
- <td align="right"><img src="themes/SlashOcean/cr.gif" width="7" height="10" alt=""></td>
- <td bgcolor="#FFFFFF" align="right"><img src="themes/SlashOcean/pix.gif" width="3" height="3"></td>
- </tr></table>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr bgcolor="#101070"><td colspan="3"><img src="themes/SlashOcean/pix.gif" width="1" height="1"></td></tr>
- <tr bgcolor="#ffffff">
- <td background="themes/SlashOcean/sl.gif"><img src="themes/SlashOcean/pix.gif" width="3" height="3" alt=""></td>
- <td width="100%">
- <table width="100%" border="0" cellpadding="5" cellspacing="0"><tr>
- <td><font face="verdana,helvetica,arial" size="1">
- <li><a href=index.php>Home</a>
- <li><a href=topics.php>News-Topics</a>
- <li><a href=sections.php?op=listarticles&secid=1>About</a>
- <li><a href=sections.php?op=listarticles&secid=2>Developers</a>
- <li><a href=sections.php?op=listarticles&secid=3>Applications</a>
- <li><a href=sections.php?op=listarticles&secid=7>Download</a>
- <li><a href=forum/index.php>Forum</a>
- <li><a href=http://freedb.music.sk/search/>Web-based Search</a>
- <li><a href=links.php>Web Links</a>
- <li><a href=user.php>Your Account</a>
- <li><a href=submit.php>Submit News</a>
- </font></td>
- </tr></table>
-
- </td><td background="themes/SlashOcean/sr.gif" align="right"><img src="themes/SlashOcean/pix.gif" width="3" height="3" alt=""></td>
- </tr>
- <tr bgcolor="#101070"><td colspan="3"><img src="themes/SlashOcean/pix.gif" width="1" height="1"></td></tr>
- </table>
- </td>
- </tr></td></table>
- <br>
- <table border=0><tr><td>
- <table width="115" border="0" cellpadding="0" cellspacing="0"><tr valign="top" bgcolor="#101070">
- <td bgcolor="#FFFFFF"><img src="themes/SlashOcean/pix.gif" width="3" height="3"></td>
- <td><img src="themes/SlashOcean/cl.gif" width="7" height="10"></td>
- <td><font face="verdana,helvetica,arial" size="1" color="#ffffff"><B>FAQ</B></font></td>
- <td align="right"><img src="themes/SlashOcean/cr.gif" width="7" height="10" alt=""></td>
- <td bgcolor="#FFFFFF" align="right"><img src="themes/SlashOcean/pix.gif" width="3" height="3"></td>
- </tr></table>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr bgcolor="#101070"><td colspan="3"><img src="themes/SlashOcean/pix.gif" width="1" height="1"></td></tr>
- <tr bgcolor="#ffffff">
- <td background="themes/SlashOcean/sl.gif"><img src="themes/SlashOcean/pix.gif" width="3" height="3" alt=""></td>
- <td width="100%">
- <table width="100%" border="0" cellpadding="5" cellspacing="0"><tr>
- <td><font face="verdana,helvetica,arial" size="1">
- Our FAQ can be found <a href="http://freedb.freedb.org/sections.php?op=viewarticle&artid=26">here</a>.<br>
- Please read the FAQ before asking questions via email. </font></td>
- </tr></table>
-
- </td><td background="themes/SlashOcean/sr.gif" align="right"><img src="themes/SlashOcean/pix.gif" width="3" height="3" alt=""></td>
- </tr>
- <tr bgcolor="#101070"><td colspan="3"><img src="themes/SlashOcean/pix.gif" width="1" height="1"></td></tr>
- </table>
- </td>
- </tr></td></table>
- <br>
- <table border=0><tr><td>
- <table width="115" border="0" cellpadding="0" cellspacing="0"><tr valign="top" bgcolor="#101070">
- <td bgcolor="#FFFFFF"><img src="themes/SlashOcean/pix.gif" width="3" height="3"></td>
- <td><img src="themes/SlashOcean/cl.gif" width="7" height="10"></td>
- <td><font face="verdana,helvetica,arial" size="1" color="#ffffff"><B>Contact</B></font></td>
- <td align="right"><img src="themes/SlashOcean/cr.gif" width="7" height="10" alt=""></td>
- <td bgcolor="#FFFFFF" align="right"><img src="themes/SlashOcean/pix.gif" width="3" height="3"></td>
- </tr></table>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr bgcolor="#101070"><td colspan="3"><img src="themes/SlashOcean/pix.gif" width="1" height="1"></td></tr>
- <tr bgcolor="#ffffff">
- <td background="themes/SlashOcean/sl.gif"><img src="themes/SlashOcean/pix.gif" width="3" height="3" alt=""></td>
- <td width="100%">
- <table width="100%" border="0" cellpadding="5" cellspacing="0"><tr>
- <td><font face="verdana,helvetica,arial" size="1">
- General questions:<br>
- <a href="mailto:info@freedb.org">info@freedb.org</a><hr>
- Databaseupdates:<br>
- <a href="mailto:updates@freedb.org">updates@freedb.org</a><br>
- (<b>NOT</b> for submission!)<hr>
- Please keep in mind that we are NOT the Nero-Support and please do not send CD-submits to the adresses above.<br>
- Submits have to go to:<br>
- <a href="mailto:freedb-submit@freedb.org">freedb-submit@freedb.org</a> </font></td>
- </tr></table>
-
- </td><td background="themes/SlashOcean/sr.gif" align="right"><img src="themes/SlashOcean/pix.gif" width="3" height="3" alt=""></td>
- </tr>
- <tr bgcolor="#101070"><td colspan="3"><img src="themes/SlashOcean/pix.gif" width="1" height="1"></td></tr>
- </table>
- </td>
- </tr></td></table>
- <br>
- <table border=0><tr><td>
- <table width="115" border="0" cellpadding="0" cellspacing="0"><tr valign="top" bgcolor="#101070">
- <td bgcolor="#FFFFFF"><img src="themes/SlashOcean/pix.gif" width="3" height="3"></td>
- <td><img src="themes/SlashOcean/cl.gif" width="7" height="10"></td>
- <td><font face="verdana,helvetica,arial" size="1" color="#ffffff"><B>Downloads</B></font></td>
- <td align="right"><img src="themes/SlashOcean/cr.gif" width="7" height="10" alt=""></td>
- <td bgcolor="#FFFFFF" align="right"><img src="themes/SlashOcean/pix.gif" width="3" height="3"></td>
- </tr></table>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr bgcolor="#101070"><td colspan="3"><img src="themes/SlashOcean/pix.gif" width="1" height="1"></td></tr>
- <tr bgcolor="#ffffff">
- <td background="themes/SlashOcean/sl.gif"><img src="themes/SlashOcean/pix.gif" width="3" height="3" alt=""></td>
- <td width="100%">
- <table width="100%" border="0" cellpadding="5" cellspacing="0"><tr>
- <td><font face="verdana,helvetica,arial" size="1">
- The link to the database downloads is <a href="/sections.php?op=viewarticle&artid=12">here</a> </font></td>
- </tr></table>
-
- </td><td background="themes/SlashOcean/sr.gif" align="right"><img src="themes/SlashOcean/pix.gif" width="3" height="3" alt=""></td>
- </tr>
- <tr bgcolor="#101070"><td colspan="3"><img src="themes/SlashOcean/pix.gif" width="1" height="1"></td></tr>
- </table>
- </td>
- </tr></td></table>
- <td> </td><td valign="top" width="100%">
- <!-- columna de inicio -->
- <center>
- <table border=0 cellpadding=1 cellspacing=0 width=100% bgcolor=000000><tr><td>
- <table border=0 cellpadding=8 cellspacing=0 width=100% bgcolor=FFFFFF>
- <tr><td align=left><font face=Arial,Helvetica size=3>
- <b>CDDB-protocol documentation</b><br>
- <font size=2>
- <br><br>
- <pre>
- CDDB Protocol
- By Steve Scherf and Ti Kan
- --------------------------
- Revision: $Id: CDDBPROTO,v 1.6 1997/05/14 07:53:52 steve Exp steve $
- Notation:
- -> : client to server
- <- : server to client
- terminating marker: `.' character in the beginning of a line
- Server response code (three digit code):
- First digit:
- 1xx Informative message
- 2xx Command OK
- 3xx Command OK so far, continue
- 4xx Command OK, but cannot be performed for some specified reasons
- 5xx Command unimplemented, incorrect, or program error
-
- Second digit:
- x0x Ready for further commands
- x1x More server-to-client output follows (until terminating marker)
- x2x More client-to-server input follows (until terminating marker)
- x3x Connection will close
- Third digit:
- xx[0-9] Command-specific code
- CDDB Protocol Level 1:
- ----------------------
- Server sign-on banner:
- ----------------------
- <- code hostname CDDBP server version ready at date
- code:
- 200 OK, read/write allowed
- 201 OK, read only
- 432 No connections allowed: permission denied
- 433 No connections allowed: X users allowed, Y currently active
- 434 No connections allowed: system load too high
- hostname:
- Server host name. Example: xyz.fubar.com
- version:
- Version number of server software. Example: v1.0PL0
- date:
- Current date and time. Example: Wed Mar 13 00:41:34 1996
- Initial client-server handshake:
- --------------------------------
- Note: This handshake must occur before other cddb commands
- are accepted by the server.
- Client command:
- -> cddb hello username hostname clientname version
- username:
- Login name of user. Example: johndoe
- hostname:
- Host name of client. Example: abc.fubar.com
- clientname:
- The name of the connecting client. Example: xmcd, cda, EasyCD,
- et cetera. Do not use the name of another client which already
- exists.
- version:
- Version number of client software. Example: v1.0PL0
- Server response:
- <- code hello and welcome username@hostname running clientname version
- code:
- 200 Handshake successful
- 431 Handshake not successful, closing connection
- 402 Already shook hands
- CDDB query:
- -----------
- Client command:
- -> cddb query discid ntrks off1 off2 ... nsecs
- discid:
- CD disc ID number. Example: f50a3b13
- ntrks:
- Total number of tracks on CD.
- off1, off2, ...:
- Frame offset of the starting location of each track.
- nsecs:
- Total playing length of CD in seconds.
- Server response:
- <- code categ discid dtitle
- or
- <- code close matches found
- <- categ discid dtitle
- <- categ discid dtitle
- <- (more matches...)
- <- .
- code:
- 200 Found exact match
- 211 Found inexact matches, list follows (until terminating marker)
- 202 No match found
- 403 Database entry is corrupt
- 409 No handshake
- categ:
- CD category. Example: rock
- discid:
- CD disc ID number of the found entry. Example: f50a3b13
- dtitle:
- The Disc Artist and Disc Title (The DTITLE line). For example:
- Pink Floyd / The Dark Side of the Moon
- CDDB read:
- ----------
- Client command:
- -> cddb read categ discid
- categ:
- CD category. Example: rock
- discid:
- CD disc ID number. Example: f50a3b13
- Server response:
- <- code categ discid
- <- # xmcd 2.0 CD database file
- <- # ...
- <- (CDDB data...)
- <- .
- or
- <- code categ discid No such CD entry in database
- code:
- 210 OK, CDDB database entry follows (until terminating marker)
- 401 Specified CDDB entry not found.
- 402 Server error.
- 403 Database entry is corrupt.
- 409 No handshake.
- categ:
- CD category. Example: rock
- discid:
- CD disc ID number. Example: f50a3b13
- CDDB search: (command not yet implemented in freedb-serversoftware!)
- ------------
- Client command:
- -> cddb srch key search_type ... search_type
- key:
- Pseudo-regular expression to match. Expressions should meet the
- following description:
- - No white space.
- - Printable characters only.
- - Case is ignored.
- search_type:
- CDDB fields to search through. Example: title
- Supported types: artist, title, extd, ext, trk
- categ:
- CD category. Example: rock
- Server response:
- <- code matches found
- <- categ discid dtitle
- <- categ discid dtitle
- <- (more matches...)
- <- .
- code:
- 210 OK, matches found, list follows (until terminating marker)
- 401 No match found.
- 409 No handshake.
- categ:
- CD category. Example: rock
- dtitle:
- The Disc Artist and Disc Title (The DTITLE line). For example:
- Pink Floyd / The Dark Side of the Moon
- CDDB write:
- -----------
- Client command:
- -> cddb write categ discid
- categ:
- CD category. Example: rock
- discid:
- CD disc ID number. Example: f50a3b13
- Server response:
- <- code categ discid
- code:
- 320 OK, input CDDB data (until terminating marker)
- 401 Permission denied.
- 402 Server file system full/file access failed.
- 409 No handshake.
- 501 Entry rejected: reason for rejection.
- categ:
- CD category. Example: rock
- discid:
- CD disc ID number. Example: f50a3b13
- Client data:
- -> # xmcd 2.0 CD database file
- -> # ...
- -> (CDDB data)
- -> .
- Server response:
- <- code message
- code:
- 200 CDDB entry accepted
- 401 CDDB entry rejected: reason why
- message:
- Message string to indicate write status:
- CDDB entry accepted, or CDDB entry rejected.
- Help information:
- -----------------
- Client command:
- -> help
- or
- -> help cmd
- cmd:
- CDDB command. Example: quit
- or
- -> help cmd subcmd
- cmd:
- CDDB command. Example: cddb
- subcmd:
- CDDB command argument. Example: query
- Server response:
- <- code Help information follows
- <- (help data ...)
- <- .
- or
- <- code no help information available
- code:
- 210 OK, help information follows (until terminating marker)
- 401 No help information available
- Log statistics:
- ---------------
- Client command:
- -> log [[-l lines] [start date [end date]] | [day [days]] | [get"]]
- lines:
- The maximum number of lines to print for each data list in the
- log statistics.
- start date:
- The date after which statistics should be calculated. Date is
- of the format: hh[mm[ss[MM[DD[[CC]YY]]]]]
- E.g.: 201200053196 for 8:12 PM on May 31, 1996.
- 20120005312096 for 8:12 PM on May 31, 2096.
- 080530 for today at at 8:15 and 30 seconds.
- If the century ("CC") is omitted, a reasonable guess is made. If
- this argument is omitted, all messages are considered.
- end date:
- The date after which statistics should not be calculated. If
- omitted, the end date is assumed to be the current date.
- day:
- The string "day". This solitary argument will cause a log search
- of messages generated within the last day.
- days:
- A positive numerical argument which modifies the number of days'
- messages to searh. If this argument is left out, the default is 1.
- get:
- The string "get". This solitary argument will cause the server
- to send the contents of the log file.
- Server response:
- <- code Log summary follows
- <- (log stats)
- <- .
- or
- <- code Log follows
- <- (log stats)
- <- .
- code:
- 210 OK, log summary follows (until terminating marker)
- 211 OK, log follows (until terminating marker)
- 401 Permission denied
- 402 No log information available
- 501 Invalid start/end date
- Message of the day:
- ------------------
- Client command:
- -> motd
- Server response:
- <- code Last modified: date MOTD follows (until terminating marker)
- <- (message text)
- <- .
- code:
- 210 Last modified: 05/31/96 06:31:14 MOTD follows (until terminating marker)
- 401 No message of the day available
- date:
- The date the text of the message of the day was modified. The date
- appears in the following format:
- 05/31/96 06:31:14
- This value may be used by client software as a message timestamp
- for purposes of determining if it has already been displayed. This
- format was chosen because it is more easily parsed than the standard
- ctime() format.
- Server protocol level:
- ----------------------
- Client command:
- -> proto [level]
- level:
- The (numerical) protocol level to set the server to.
- Server response:
- <- code CDDB protocol level: current cur_level, supported supported_level
- or
- <- code OK, protocol version now: cur_level
- code:
- 200 CDDB protocol level: current cur_level, supported supp_level
- 201 OK, protocol version now: cur_level
- 501 Illegal protocol level.
- 502 Protocol level already cur_level.
- cur_level:
- The current protocol level at which the server is running.
- supported_level:
- The maximum supported protocol level.
- Server sites:
- --------------
- Client command:
- -> sites
- Server response:
- <- code OK, site information follows (until terminating `.')
- <- (data)
- <- .
- code:
- 210 Ok, site information follows
- 401 No site information available.
- The data format is as follows:
- site port latitude longitude description
- The fields are as follows:
- site:
- The Internet address of the remote site.
- port:
- The port at which the server resides on that site.
- latitude:
- The latitude of the server site. The format is as follows:
- CDDD.MM
- Where "C" is the compass direction (N, S), "DDD" is the
- degrees, and "MM" is the minutes.
- longitude:
- The longitude of the server site. Format is as above, except
- the compass direction must be one of (E, W).
- description:
- A short description of the geographical location of the site.
- Example:
- cddb.moonsoft.com 888 N037.23 W122.01 Fremont, CA USA
- Server status:
- --------------
- Client command:
- -> stat
- Server response:
- <- code OK, status information follows (until terminating `.')
- <- (data)
- <- .
- code:
- 210 Ok, status information follows
- The possible data is as follows:
- current proto: <current_level>
- An integer representing the server's current operating protocol
- level.
- max proto: <max_level>
- The maximum supported protocol level.
- gets: <yes | no>
- Whether or not the client is allowed to get log information,
- according to the string "yes" or "no".
- updates: <yes | no>
- Whether or not the client is allowed to initiate a database
- update, according to the string "yes" or "no".
- posting: <yes | no>
- Whether or not the client is allowed to post new entries,
- according to the string "yes" or "no".
- quotes: <yes | no>
- Whether or not quoted arguments are enabled, according to
- the string "yes" or "no".
- current users: <num_users>
- The number of users currently connected to the server.
- max users: <num_max_users>
- The number of users that can concurrently connect to the server.
- strip ext: <yes | no>
- Whether or not extended data is stripped by the server before
- presented to the user.
- Database entries: <num_db_entries>
- The total number of entries in the database.
- Database entries by category:
- This field is followed by a list of catgories and the number
- of entries in that category. Each entry is of the following
- format:
- <white space>catgory: <num_db_entries>
- The list of entries is terminated by the first line that does
- not begin with white space.
- Pending file transmissions:
- This field is followed by a list of sites that are fed new
- database entries at periodic intervals, and the number of
- entries that have yet to be transmitted to that site.
- Each entry is of the following format:
- <white space>site: <num_db_entries>
- The list of entries is terminated by the first line that does
- not begin with white space.
- This list may grow as needed, so clients must expect possible
- unrecognizable data. Also, additional fields may be added to
- the currently existing lines, although no existing fields will
- be removed or change position.
-
- Server version:
- ---------------
- Client command:
- -> ver
- Server response:
- <- code servername version copyright
- or
- <- code Version information follows
- code:
- 200 Version information.
- 211 OK, version information follows (until terminating marker)
- version:
- Server version. Example: v1.0PL0
- copyright:
- Copyright string. Example: Copyright (c) 1996 Steve Scherf
- Database update:
- ----------------
- Client command:
- -> update
- Server response:
- <- code Updating the database.
- or
- <- code Permission denied.
- or
- <- code Unable to update the database.
- code:
- 200 Updating the database.
- 401 Permission denied.
- 402 Unable to update the database.
- Server users:
- -------------
- Client command:
- -> whom
- Server response:
- <- code User list follows
- code:
- 210 OK, user list follows (until terminating marker)
- 401 No user information available.
- Client sign-off:
- ----------------
- Client command:
- -> quit
- Server response:
- <- code hostname closing connection. Goodbye.
- code:
- 230 OK, goodbye.
- hostname:
- Server host name. Example: xyz.fubar.com
- General errors:
- ---------------
- Server response:
- <- code error
- code:
- 402 Server error.
- 408 CGI environment error.
- 500 Command syntax error, command unknown, command unimplemented.
- 530 Server error, server timeout.
- Reserved errors:
- ----------------
- The following error codes are reserved, and will never be returned as a
- response to a CDDB protocol command. They are intended to be used internally
- by clients that have a need for generating pseudo-responses.
- 600-699
- CDDB Protocol Level 2:
- ----------------------
- In all respects, protocol level 2 is the same as level 1, with the exceptions
- listed below.
- Arguments to commands may be surrounded by double quotes. All characters
- within the quotes, including white space, are included in the argument. All
- white space is replaced by the `_' (2Dh) character by the server. White space
- is defined as ` ' (20h) and `^I' (control-I, or 09h).
- Arguments containing quotes that should not be interpreted with the special
- meaning described above should be escaped with a preceding backslash character,
- or '' (5Ch). If an actual backslash appears in an argument, it should be
- escaped with a preceding backslash. In both cases, the preceding backslash
- will be removed from the input before being interpreted.
- CDDB Protocol Level 3:
- ----------------------
- Protocol level 3 is the same as level 2, with the exception listed below.
- The output of the "sites" command has changed to meet the folowing description:
- The data format is as follows:
- site protocol port address latitude longitude description
- The fields are as follows:
- site:
- The Internet address of the remote site.
- protocol:
- The transfer protocol used to access the site.
- port:
- The port at which the server resides on that site.
- address:
- Any additional addressing information needed to access the
- server. For example, for HTTP protocol servers, this would be
- the path to the CDDB server CGI script. This field will be
- "-" if no additional addressing information is needed.
- latitude:
- The latitude of the server site. The format is as follows:
- CDDD.MM
- Where "C" is the compass direction (N, S), "DDD" is the
- degrees, and "MM" is the minutes.
- longitude:
- The longitude of the server site. Format is as above, except
- the compass direction must be one of (E, W).
- description:
- A short description of the geographical location of the site.
- Example:
- cddb.moonsoft.com cddbp 888 - N037.23 W122.01 Fremont, CA USA
- cddb.moonsoft.com http 80 /~cddb/cddb.cgi N037.23 W122.01 Fremont,CA USA
- Note that a site may appear once for each type of protocol it supports for
- accessing the server.
- Addendum A: Proper use of CDDBP:
- --------------------------------
- There are a few guidelines that must be followed in order to make proper use
- of CDDBP:
- - When handshaking with the server via the "cddb hello" command, the client
- must specify its own name and version, not that of some other client (such
- as xmcd). Also, the "username" and "hostname" must be that of the actual
- user running the program, not some hardwired value.
- - Before performing a "cddb read", the client program MUST perform a
- "cddb query". Failure to do so may result in the client program receiving
- incorrect CDDB data from the server. Also, without performing a query, the
- client program will not benefit from close matches in the event of the
- lack of an exact match in the database.
- - For accounting purposes, it is best if client programs only perform a single
- "cddb query" for a particular disc before performing a "cddb read" for that
- disc.
- Addendum B: CDDBP under HTTP:
- -----------------------------
- Accessing a server as a CGI script is done in much the same way as through
- direct interaction. The command set is identical, though the method of
- communication is through CDDBP commands encapsulated in the HTTP protocol.
- The only limitation is that a single command may be executed per connection,
- since HTTP is not truly interactive. For the server to be accessed in this
- way, it must reside on the target host at a known URL which is accessible by
- the host HTTP server. The client program must connect to the HTTP server on
- the target host and issue an HTTP command with the appropriate CDDBP command
- encapsulated within.
- Commands may be submitted to servers in CGI mode using either the "GET" or
- "POST" HTTP commands. Both methods are supported, and there is no real
- difference between how both are to be used other than the syntactical
- difference between the two methods. The "POST" method may provide the ability
- to issue longer commands, though, depending on the architecture of the system
- on which the server resides.
- The server command must be sent as part of the "Request-URI" in the case
- of the "GET" method, and as the "Entity-Body" in the case of the "POST"
- method. In both cases, the command must be of the following form:
- cmd=server+command&hello=joe+my.host.com+clientname+version&proto=1
- Where the text following the "cmd=" represents the CDDBP command to be
- executed, the text following the "hello=" represents the arguments to
- the "cddb hello" command that is implied by this operation, and the
- text following the "proto=" represents the argument to the "proto" command
- that is implied by this operation.
- The "+" characters in the input represent spaces, and will be translated
- by the server before performing the request. Special characters may be
- represented by the sequence "%XX" where "XX" is a two-digit hex number
- corresponding to the ASCII (ISO-8859-1) sequence of that character. The
- "&" characters denote separations between the command, hello and proto
- arguments. Newlines and carriage returns must not appear anywhere in the
- string except at the end.
- All CDDBP commands are supported under HTTP, except for "cddb hello",
- "cddb write", "proto" and "quit".
- For example, should user "joe" on system "my.host.com" be running xmcd 2.1,
- a read request for his currenly playing CD might look like this:
- cmd=cddb+read+rock+12345678&hello=joe+my.host.com+xmcd+2.1&proto=1
- The server will perform the implied "proto" and "cddb hello" commands,
- and then perform the requested "cddb read" command.
- Server response to the command is encapsulated in the HTTP server response,
- and appears in the "Entity-Body" exactly as it would appear using the CDDBP
- protocol. Note that the HTTP response "Entity-Header" is not guaranteed to
- contain a "Content-Length" field, so clients should be prepared to accept
- variable length input. This is no different from operation under CDDBP. The
- header will always contain a Mime "Content-Type" field which describes the
- body of data as "text/plain".
- For more detailed information on HTTP and Mime, see RFC 1945 and RFC 1521.
- </pre>
- </tr></td>
- <tr><td align=center><font face=Arial,Helvetica>
-
- </tr></td>
- </table></tr></td></table></center></td><td> </td>
- </tr></table></td></tr></table><br><br>
- <font face=Arial,Helvetica size=1><center>
- <br>
- <br>
- <br>
- <br>
- </body>
- </html>
|