Add a new bad-format message to avoid overloading not-supported.

This commit is contained in:
Josh Elsasser 2007-06-10 20:29:31 +00:00
parent fc912cbf98
commit 7fa08b8f3c
1 changed files with 43 additions and 33 deletions

View File

@ -85,8 +85,8 @@ server receives a tagged message it must send exactly one message back
with the same tag. The client is allowed to use the same tag for with the same tag. The client is allowed to use the same tag for
multiple messages, even if a response to the first is not received multiple messages, even if a response to the first is not received
before the second it sent. If a tagged message does not normally before the second it sent. If a tagged message does not normally
require a response then a "succeeded", "failed" or "not-supported" require a response then a "succeeded", "failed", "not-supported" or
message will be sent back. "bad-format" message will be sent back.
An example tagged message and response: An example tagged message and response:
@ -120,7 +120,7 @@ the minimum protocol version that the key may be used with.
Key: "addfiles" Key: "addfiles"
Version: 1 Version: 1
Format: list of strings Format: list of strings
Replies: "succeeded", "failed", "not-supported", "info" Replies: "succeeded", "failed", "not-supported", "bad-format", "info"
Example: 8:addfilesl21:/torrents/foo.torrent20:/home/me/bar.torrente Example: 8:addfilesl21:/torrents/foo.torrent20:/home/me/bar.torrente
"addfiles", ("/torrents/foo.torrent", /home/me/bar.torrent") "addfiles", ("/torrents/foo.torrent", /home/me/bar.torrent")
Details: Each string is the absolute path to a torrent metainfo file Details: Each string is the absolute path to a torrent metainfo file
@ -132,7 +132,7 @@ Details: Each string is the absolute path to a torrent metainfo file
Key: "addfile-detailed" Key: "addfile-detailed"
Version: 2 Version: 2
Format: dict Format: dict
Replies: "succeeded", "failed", "not-supported", "info" Replies: "succeeded", "failed", "not-supported", "bad-format", "info"
Example: 16:addfile-detailedd4:file19:/tor/wooble.torrente Example: 16:addfile-detailedd4:file19:/tor/wooble.torrente
"addfile-detailed", {"file": "/tor/wooble.torrent"} "addfile-detailed", {"file": "/tor/wooble.torrent"}
Details: Dictionary containing information about a torrent for the Details: Dictionary containing information about a torrent for the
@ -146,7 +146,7 @@ Details: Dictionary containing information about a torrent for the
Key: "automap" Key: "automap"
Version: 2 Version: 2
Format: boolean Format: boolean
Replies: "succeeded", "failed", "not-supported" Replies: "succeeded", "failed", "not-supported", "bad-format"
Example: 7:automapi1e Example: 7:automapi1e
"automap", 1 "automap", 1
Details: Enable (1) or disable (0) automatic port mapping on the server. Details: Enable (1) or disable (0) automatic port mapping on the server.
@ -154,16 +154,26 @@ Details: Enable (1) or disable (0) automatic port mapping on the server.
Key: "autostart" Key: "autostart"
Version: 2 Version: 2
Format: boolean Format: boolean
Replies: "succeeded", "failed", "not-supported" Replies: "succeeded", "failed", "not-supported", "bad-format"
Example: 9:autostarti0e Example: 9:autostarti0e
"autostart", 0 "autostart", 0
Details: Enable (1) or disable (0) automatic starting of new torrents Details: Enable (1) or disable (0) automatic starting of new torrents
added via "addfiles" or "addfiles-detailed" messages. added via "addfiles" or "addfiles-detailed" messages.
Key: "bad-format"
Version: 2
Format: value is ignored
Replies: N/A
Example: 10:bad-format0:
"bad-format", ""
Details: Sent in response to a tagged message which was structured
incorrectly. For example, an "autostart" message with a
string value might cause this message to be returned.
Key: "directory" Key: "directory"
Version: 2 Version: 2
Format: string Format: string
Replies: "succeeded", "failed", "not-supported" Replies: "succeeded", "failed", "not-supported", "bad-format"
Example: 9:directory21:/home/roger/downloads Example: 9:directory21:/home/roger/downloads
"directory", "/home/roger/downloads" "directory", "/home/roger/downloads"
Details: Set the default directory used for any torrents added in the future. Details: Set the default directory used for any torrents added in the future.
@ -171,7 +181,7 @@ Details: Set the default directory used for any torrents added in the future.
Key: "downlimit" Key: "downlimit"
Version: 2 Version: 2
Format: int Format: int
Replies: "succeeded", "failed", "not-supported" Replies: "succeeded", "failed", "not-supported", "bad-format"
Example: 9:downlimiti100e Example: 9:downlimiti100e
"downlimit", 100 "downlimit", 100
Details: Set the server's download limit in kilobytes per second. Details: Set the server's download limit in kilobytes per second.
@ -182,13 +192,13 @@ Version: 2
Format: string Format: string
Replies: N/A Replies: N/A
Example: 6:failed17:permission denied Example: 6:failed17:permission denied
"failed", "permission denied "failed", "permission denied"
Details: Sent in response to a tagged message to indicate failure. Details: Sent in response to a tagged message to indicate failure.
Key: "get-automap" Key: "get-automap"
Version: 2 Version: 2
Format: value is ignored Format: value is ignored
Replies: "failed", "not-supported", "automap" Replies: "failed", "not-supported", "bad-format", "automap"
Example: 11:get-automap0: Example: 11:get-automap0:
"get-automap", "" "get-automap", ""
Details: Requests that an "automap" message be sent back. Details: Requests that an "automap" message be sent back.
@ -196,7 +206,7 @@ Details: Requests that an "automap" message be sent back.
Key: "get-autostart" Key: "get-autostart"
Version: 2 Version: 2
Format: value is ignored Format: value is ignored
Replies: "failed", "not-supported", "autostart" Replies: "failed", "not-supported", "bad-format", "autostart"
Example: 13:get-autostart0: Example: 13:get-autostart0:
"get-autostart", "" "get-autostart", ""
Details: Requests that an "autostart" message be sent back. Details: Requests that an "autostart" message be sent back.
@ -204,7 +214,7 @@ Details: Requests that an "autostart" message be sent back.
Key: "get-directory" Key: "get-directory"
Version: 2 Version: 2
Format: value is ignored Format: value is ignored
Replies: "failed", "not-supported", "directory" Replies: "failed", "not-supported", "bad-format", "directory"
Example: 13:get-directory0: Example: 13:get-directory0:
"get-directory", "" "get-directory", ""
Details: Requests that an "directory" message be sent back. Details: Requests that an "directory" message be sent back.
@ -212,7 +222,7 @@ Details: Requests that an "directory" message be sent back.
Key: "get-downlimit" Key: "get-downlimit"
Version: 2 Version: 2
Format: value is ignored Format: value is ignored
Replies: "failed", "not-supported", "downlimit" Replies: "failed", "not-supported", "bad-format", "downlimit"
Example: 13:get-downlimit0: Example: 13:get-downlimit0:
"get-downlimit", "" "get-downlimit", ""
Details: Requests that a "downlimit" message be sent back. Details: Requests that a "downlimit" message be sent back.
@ -220,7 +230,7 @@ Details: Requests that a "downlimit" message be sent back.
Key: "get-info" Key: "get-info"
Version: 2 Version: 2
Format: dict with keys "id" and "type" for lists of ints and strings Format: dict with keys "id" and "type" for lists of ints and strings
Replies: "failed", "not-supported", "info" Replies: "failed", "not-supported", "bad-format", "info"
Example: 8:get-infod2:idli4ei7ei2ee4:typel4:hash4:nameee Example: 8:get-infod2:idli4ei7ei2ee4:typel4:hash4:nameee
"get-info", {"id": (4, 7, 2), "type": ("hash", "name")} "get-info", {"id": (4, 7, 2), "type": ("hash", "name")}
Details: Requests that the server send back an "info" message with Details: Requests that the server send back an "info" message with
@ -234,7 +244,7 @@ Details: Requests that the server send back an "info" message with
Key: "get-info-all" Key: "get-info-all"
Version: 2 Version: 2
Format: list of strings Format: list of strings
Replies: "failed", "not-supported", "info" Replies: "failed", "not-supported", "bad-format", "info"
Example: 12:get-info-alll4:hash4:namee Example: 12:get-info-alll4:hash4:namee
"get-info-all", ("hash", "name") "get-info-all", ("hash", "name")
Details: Same as "getinfo" message with all torrent IDs specified. Details: Same as "getinfo" message with all torrent IDs specified.
@ -242,7 +252,7 @@ Details: Same as "getinfo" message with all torrent IDs specified.
Key: "get-pex" Key: "get-pex"
Version: 2 Version: 2
Format: value is ignored Format: value is ignored
Replies: "failed", "not-supported", "pex" Replies: "failed", "not-supported", "bad-format", "pex"
Example: 7:get-pex0: Example: 7:get-pex0:
"get-pex", "" "get-pex", ""
Details: Requests that a "pex" message be sent back. Details: Requests that a "pex" message be sent back.
@ -250,7 +260,7 @@ Details: Requests that a "pex" message be sent back.
Key: "get-port" Key: "get-port"
Version: 2 Version: 2
Format: value is ignored Format: value is ignored
Replies: "failed", "not-supported", "port" Replies: "failed", "not-supported", "bad-format", "port"
Example: 8:get-port0: Example: 8:get-port0:
"get-port", "" "get-port", ""
Details: Requests that a "port" message be sent back. Details: Requests that a "port" message be sent back.
@ -258,7 +268,7 @@ Details: Requests that a "port" message be sent back.
Key: "get-status" Key: "get-status"
Version: 2 Version: 2
Format: dict with keys "id" and "type" for lists of ints and strings Format: dict with keys "id" and "type" for lists of ints and strings
Replies: "failed", "not-supported", "status" Replies: "failed", "not-supported", "bad-format", "status"
Example: 10:get-statusd2:idli4ei7ei2ee4:typel5:state9:completedee Example: 10:get-statusd2:idli4ei7ei2ee4:typel5:state9:completedee
"get-status", {"id": (4, 7, 4), "type": ("state", "completed")} "get-status", {"id": (4, 7, 4), "type": ("state", "completed")}
Details: Same as "get-info" message except status type strings are used Details: Same as "get-info" message except status type strings are used
@ -267,7 +277,7 @@ Details: Same as "get-info" message except status type strings are used
Key: "get-status-all" Key: "get-status-all"
Version: 2 Version: 2
Format: list of strings Format: list of strings
Replies: "failed", "not-supported", "status" Replies: "failed", "not-supported", "bad-format", "status"
Example: 14:get-status-alll5:state9:completede Example: 14:get-status-alll5:state9:completede
"get-status-all", ("state", "completed") "get-status-all", ("state", "completed")
Details: Same as "get-status" message with all torrent IDs specified. Details: Same as "get-status" message with all torrent IDs specified.
@ -275,7 +285,7 @@ Details: Same as "get-status" message with all torrent IDs specified.
Key: "get-supported" Key: "get-supported"
Version: 2 Version: 2
Format: list of strings Format: list of strings
Replies: "failed", "not-supported", "supported" Replies: "failed", "not-supported", "bad-format", "supported"
Example: 13:get-supportedl6:lookup8:get-port16:addfile-detailede Example: 13:get-supportedl6:lookup8:get-port16:addfile-detailede
"get-supported", ("lookup", "get-port", "addfile-detailed") "get-supported", ("lookup", "get-port", "addfile-detailed")
Details: Request that a "supported" message be returned with whichever Details: Request that a "supported" message be returned with whichever
@ -284,7 +294,7 @@ Details: Request that a "supported" message be returned with whichever
Key: "get-uplimit" Key: "get-uplimit"
Version: 2 Version: 2
Format: value is ignored Format: value is ignored
Replies: "failed", "not-supported", "uplimit" Replies: "failed", "not-supported", "bad-format", "uplimit"
Example: 11:get-uplimit0: Example: 11:get-uplimit0:
"get-uplimit", "" "get-uplimit", ""
Details: Requests that an "uplimit" message be sent back. Details: Requests that an "uplimit" message be sent back.
@ -292,7 +302,7 @@ Details: Requests that an "uplimit" message be sent back.
Key: "lookup" Key: "lookup"
Version: 2 Version: 2
Format: list of strings Format: list of strings
Replies: "failed", "not-supported", "info" Replies: "failed", "not-supported", "bad-format", "info"
Example: 6:lookupl40:0f16ea6965ee5133ea4dbb1e7f516e9fcf3d899ee Example: 6:lookupl40:0f16ea6965ee5133ea4dbb1e7f516e9fcf3d899ee
"lookup", ("0f16ea6965ee5133ea4dbb1e7f516e9fcf3d899e") "lookup", ("0f16ea6965ee5133ea4dbb1e7f516e9fcf3d899e")
Details: Request that the server send back an "info" message with "id" Details: Request that the server send back an "info" message with "id"
@ -312,7 +322,7 @@ Details: A list containing information for several torrents. The
Key: "noop" Key: "noop"
Version: 2 Version: 2
Format: value is ignored Format: value is ignored
Replies: "succeeded", "failed", "not-supported" Replies: "succeeded", "failed", "not-supported", "bad-format"
Example: 4:noop0: Example: 4:noop0:
"noop", "" "noop", ""
Details: This does nothing but keep the connection alive. With a tag Details: This does nothing but keep the connection alive. With a tag
@ -330,7 +340,7 @@ Details: Sent in response to a tagged message to indicated that the
Key: "pex" Key: "pex"
Version: 2 Version: 2
Format: boolean Format: boolean
Replies: "succeeded", "failed", "not-supported" Replies: "succeeded", "failed", "not-supported", "bad-format"
Example: 3:pexi0e Example: 3:pexi0e
"pex", 0 "pex", 0
Details: Enables or disables peer exchange. Details: Enables or disables peer exchange.
@ -338,7 +348,7 @@ Details: Enables or disables peer exchange.
Key: "port" Key: "port"
Version: 2 Version: 2
Format: int between 0 and 65535 Format: int between 0 and 65535
Replies: "succeeded", "failed", "not-supported" Replies: "succeeded", "failed", "not-supported", "bad-format"
Example: 4:porti9090e Example: 4:porti9090e
"port", 9090 "port", 9090
Details: Change the port the server uses to listen for incoming peer Details: Change the port the server uses to listen for incoming peer
@ -347,7 +357,7 @@ Details: Change the port the server uses to listen for incoming peer
Key: "quit" Key: "quit"
Version: 1 Version: 1
Format: value is ignored Format: value is ignored
Replies: "succeeded", "failed", "not-supported" Replies: "succeeded", "failed", "not-supported", "bad-format"
Example: 4:quit0: Example: 4:quit0:
"quit", "" "quit", ""
Details: Cause the server to quit. Note that the connection might be Details: Cause the server to quit. Note that the connection might be
@ -356,7 +366,7 @@ Details: Cause the server to quit. Note that the connection might be
Key: "remove" Key: "remove"
Version: 2 Version: 2
Format: list of torrent ID ints Format: list of torrent ID ints
Replies: "succeeded", "failed", "not-supported" Replies: "succeeded", "failed", "not-supported", "bad-format"
Example: 5:removeli3ei8ei6ee Example: 5:removeli3ei8ei6ee
"remove", (3, 8, 6) "remove", (3, 8, 6)
Details: Stop and remove the specified torrents. Note that whether or Details: Stop and remove the specified torrents. Note that whether or
@ -368,7 +378,7 @@ Details: Stop and remove the specified torrents. Note that whether or
Key: "remove-all" Key: "remove-all"
Version: 2 Version: 2
Format: value is ignored Format: value is ignored
Replies: "succeeded", "failed", "not-supported" Replies: "succeeded", "failed", "not-supported", "bad-format"
Example: 10:remove-all0: Example: 10:remove-all0:
"remove-all", "" "remove-all", ""
Details: Like "remove" with all torrent IDs specified. Details: Like "remove" with all torrent IDs specified.
@ -376,7 +386,7 @@ Details: Like "remove" with all torrent IDs specified.
Key: "start" Key: "start"
Version: 2 Version: 2
Format: list of torrent ID ints Format: list of torrent ID ints
Replies: "succeeded", "failed", "not-supported" Replies: "succeeded", "failed", "not-supported", "bad-format"
Example: 5:startli3ei8ei6ee Example: 5:startli3ei8ei6ee
"start", (3, 8, 6) "start", (3, 8, 6)
Details: List of torrent IDs to start. Details: List of torrent IDs to start.
@ -384,7 +394,7 @@ Details: List of torrent IDs to start.
Key: "start-all" Key: "start-all"
Version: 2 Version: 2
Format: value is ignored Format: value is ignored
Replies: "succeeded", "failed", "not-supported" Replies: "succeeded", "failed", "not-supported", "bad-format"
Example: 9:start-all0: Example: 9:start-all0:
"start-all", "" "start-all", ""
Details: Start all torrents. Details: Start all torrents.
@ -400,7 +410,7 @@ Details: Same as "info" message except status type keys are used.
Key: "stop" Key: "stop"
Version: 2 Version: 2
Format: list of torrent ID ints Format: list of torrent ID ints
Replies: "succeeded", "failed", "not-supported" Replies: "succeeded", "failed", "not-supported", "bad-format"
Example: 4:stopli3ei8ei6ee Example: 4:stopli3ei8ei6ee
"stop", (3, 8, 6) "stop", (3, 8, 6)
Details: List of torrent IDs to stop. Details: List of torrent IDs to stop.
@ -408,7 +418,7 @@ Details: List of torrent IDs to stop.
Key: "stop-all" Key: "stop-all"
Version: 2 Version: 2
Format: value is ignored Format: value is ignored
Replies: "succeeded", "failed", "not-supported" Replies: "succeeded", "failed", "not-supported", "bad-format"
Example: 8:stop-all0: Example: 8:stop-all0:
"stop-all", "" "stop-all", ""
Details: Stop all torrents. Details: Stop all torrents.
@ -434,7 +444,7 @@ Details: Sent in response to a "get-supported" message, indicates that
Key: "uplimit" Key: "uplimit"
Version: 2 Version: 2
Format: int Format: int
Replies: "succeeded", "failed", "not-supported" Replies: "succeeded", "failed", "not-supported", "bad-format"
Example: 7:uplimiti20e Example: 7:uplimiti20e
"uplimit", 20 "uplimit", 20
Details: Set the server's upload limit in kilobytes per second. Details: Set the server's upload limit in kilobytes per second.