From 7fa08b8f3c467da845a697f3ac10cb2cf21b0116 Mon Sep 17 00:00:00 2001 From: Josh Elsasser Date: Sun, 10 Jun 2007 20:29:31 +0000 Subject: [PATCH] Add a new bad-format message to avoid overloading not-supported. --- misc/ipcproto.txt | 76 +++++++++++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 33 deletions(-) diff --git a/misc/ipcproto.txt b/misc/ipcproto.txt index ceb05ec4a..344fed4d3 100644 --- a/misc/ipcproto.txt +++ b/misc/ipcproto.txt @@ -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 multiple messages, even if a response to the first is not received before the second it sent. If a tagged message does not normally -require a response then a "succeeded", "failed" or "not-supported" -message will be sent back. +require a response then a "succeeded", "failed", "not-supported" or +"bad-format" message will be sent back. An example tagged message and response: @@ -120,7 +120,7 @@ the minimum protocol version that the key may be used with. Key: "addfiles" Version: 1 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 "addfiles", ("/torrents/foo.torrent", /home/me/bar.torrent") 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" Version: 2 Format: dict -Replies: "succeeded", "failed", "not-supported", "info" +Replies: "succeeded", "failed", "not-supported", "bad-format", "info" Example: 16:addfile-detailedd4:file19:/tor/wooble.torrente "addfile-detailed", {"file": "/tor/wooble.torrent"} Details: Dictionary containing information about a torrent for the @@ -146,7 +146,7 @@ Details: Dictionary containing information about a torrent for the Key: "automap" Version: 2 Format: boolean -Replies: "succeeded", "failed", "not-supported" +Replies: "succeeded", "failed", "not-supported", "bad-format" Example: 7:automapi1e "automap", 1 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" Version: 2 Format: boolean -Replies: "succeeded", "failed", "not-supported" +Replies: "succeeded", "failed", "not-supported", "bad-format" Example: 9:autostarti0e "autostart", 0 Details: Enable (1) or disable (0) automatic starting of new torrents 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" Version: 2 Format: string -Replies: "succeeded", "failed", "not-supported" +Replies: "succeeded", "failed", "not-supported", "bad-format" Example: 9:directory21:/home/roger/downloads "directory", "/home/roger/downloads" 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" Version: 2 Format: int -Replies: "succeeded", "failed", "not-supported" +Replies: "succeeded", "failed", "not-supported", "bad-format" Example: 9:downlimiti100e "downlimit", 100 Details: Set the server's download limit in kilobytes per second. @@ -182,13 +192,13 @@ Version: 2 Format: string Replies: N/A Example: 6:failed17:permission denied - "failed", "permission denied + "failed", "permission denied" Details: Sent in response to a tagged message to indicate failure. Key: "get-automap" Version: 2 Format: value is ignored -Replies: "failed", "not-supported", "automap" +Replies: "failed", "not-supported", "bad-format", "automap" Example: 11:get-automap0: "get-automap", "" 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" Version: 2 Format: value is ignored -Replies: "failed", "not-supported", "autostart" +Replies: "failed", "not-supported", "bad-format", "autostart" Example: 13:get-autostart0: "get-autostart", "" 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" Version: 2 Format: value is ignored -Replies: "failed", "not-supported", "directory" +Replies: "failed", "not-supported", "bad-format", "directory" Example: 13:get-directory0: "get-directory", "" 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" Version: 2 Format: value is ignored -Replies: "failed", "not-supported", "downlimit" +Replies: "failed", "not-supported", "bad-format", "downlimit" Example: 13:get-downlimit0: "get-downlimit", "" 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" Version: 2 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 "get-info", {"id": (4, 7, 2), "type": ("hash", "name")} 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" Version: 2 Format: list of strings -Replies: "failed", "not-supported", "info" +Replies: "failed", "not-supported", "bad-format", "info" Example: 12:get-info-alll4:hash4:namee "get-info-all", ("hash", "name") 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" Version: 2 Format: value is ignored -Replies: "failed", "not-supported", "pex" +Replies: "failed", "not-supported", "bad-format", "pex" Example: 7:get-pex0: "get-pex", "" 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" Version: 2 Format: value is ignored -Replies: "failed", "not-supported", "port" +Replies: "failed", "not-supported", "bad-format", "port" Example: 8:get-port0: "get-port", "" 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" Version: 2 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 "get-status", {"id": (4, 7, 4), "type": ("state", "completed")} 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" Version: 2 Format: list of strings -Replies: "failed", "not-supported", "status" +Replies: "failed", "not-supported", "bad-format", "status" Example: 14:get-status-alll5:state9:completede "get-status-all", ("state", "completed") 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" Version: 2 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 "get-supported", ("lookup", "get-port", "addfile-detailed") 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" Version: 2 Format: value is ignored -Replies: "failed", "not-supported", "uplimit" +Replies: "failed", "not-supported", "bad-format", "uplimit" Example: 11:get-uplimit0: "get-uplimit", "" Details: Requests that an "uplimit" message be sent back. @@ -292,7 +302,7 @@ Details: Requests that an "uplimit" message be sent back. Key: "lookup" Version: 2 Format: list of strings -Replies: "failed", "not-supported", "info" +Replies: "failed", "not-supported", "bad-format", "info" Example: 6:lookupl40:0f16ea6965ee5133ea4dbb1e7f516e9fcf3d899ee "lookup", ("0f16ea6965ee5133ea4dbb1e7f516e9fcf3d899e") 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" Version: 2 Format: value is ignored -Replies: "succeeded", "failed", "not-supported" +Replies: "succeeded", "failed", "not-supported", "bad-format" Example: 4:noop0: "noop", "" 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" Version: 2 Format: boolean -Replies: "succeeded", "failed", "not-supported" +Replies: "succeeded", "failed", "not-supported", "bad-format" Example: 3:pexi0e "pex", 0 Details: Enables or disables peer exchange. @@ -338,7 +348,7 @@ Details: Enables or disables peer exchange. Key: "port" Version: 2 Format: int between 0 and 65535 -Replies: "succeeded", "failed", "not-supported" +Replies: "succeeded", "failed", "not-supported", "bad-format" Example: 4:porti9090e "port", 9090 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" Version: 1 Format: value is ignored -Replies: "succeeded", "failed", "not-supported" +Replies: "succeeded", "failed", "not-supported", "bad-format" Example: 4:quit0: "quit", "" 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" Version: 2 Format: list of torrent ID ints -Replies: "succeeded", "failed", "not-supported" +Replies: "succeeded", "failed", "not-supported", "bad-format" Example: 5:removeli3ei8ei6ee "remove", (3, 8, 6) 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" Version: 2 Format: value is ignored -Replies: "succeeded", "failed", "not-supported" +Replies: "succeeded", "failed", "not-supported", "bad-format" Example: 10:remove-all0: "remove-all", "" Details: Like "remove" with all torrent IDs specified. @@ -376,7 +386,7 @@ Details: Like "remove" with all torrent IDs specified. Key: "start" Version: 2 Format: list of torrent ID ints -Replies: "succeeded", "failed", "not-supported" +Replies: "succeeded", "failed", "not-supported", "bad-format" Example: 5:startli3ei8ei6ee "start", (3, 8, 6) Details: List of torrent IDs to start. @@ -384,7 +394,7 @@ Details: List of torrent IDs to start. Key: "start-all" Version: 2 Format: value is ignored -Replies: "succeeded", "failed", "not-supported" +Replies: "succeeded", "failed", "not-supported", "bad-format" Example: 9:start-all0: "start-all", "" Details: Start all torrents. @@ -400,7 +410,7 @@ Details: Same as "info" message except status type keys are used. Key: "stop" Version: 2 Format: list of torrent ID ints -Replies: "succeeded", "failed", "not-supported" +Replies: "succeeded", "failed", "not-supported", "bad-format" Example: 4:stopli3ei8ei6ee "stop", (3, 8, 6) Details: List of torrent IDs to stop. @@ -408,7 +418,7 @@ Details: List of torrent IDs to stop. Key: "stop-all" Version: 2 Format: value is ignored -Replies: "succeeded", "failed", "not-supported" +Replies: "succeeded", "failed", "not-supported", "bad-format" Example: 8:stop-all0: "stop-all", "" Details: Stop all torrents. @@ -434,7 +444,7 @@ Details: Sent in response to a "get-supported" message, indicates that Key: "uplimit" Version: 2 Format: int -Replies: "succeeded", "failed", "not-supported" +Replies: "succeeded", "failed", "not-supported", "bad-format" Example: 7:uplimiti20e "uplimit", 20 Details: Set the server's upload limit in kilobytes per second.