summaryrefslogtreecommitdiffstats
path: root/ipfs-api
diff options
context:
space:
mode:
Diffstat (limited to 'ipfs-api')
-rw-r--r--ipfs-api/src/client.rs20
-rw-r--r--ipfs-api/src/request/mod.rs2
-rw-r--r--ipfs-api/src/request/shutdown.rs17
-rw-r--r--ipfs-api/src/response/mod.rs2
-rw-r--r--ipfs-api/src/response/shutdown.rs9
5 files changed, 49 insertions, 1 deletions
diff --git a/ipfs-api/src/client.rs b/ipfs-api/src/client.rs
index dd64680..564415f 100644
--- a/ipfs-api/src/client.rs
+++ b/ipfs-api/src/client.rs
@@ -2000,7 +2000,25 @@ impl IpfsClient {
// TODO /resolve
- // TODO /shutdown
+ /// Shutdown the Ipfs daemon.
+ ///
+ /// ```no_run
+ /// # extern crate ipfs_api;
+ /// # extern crate tokio_core;
+ /// #
+ /// use ipfs_api::IpfsClient;
+ /// use tokio_core::reactor::Core;
+ ///
+ /// # fn main() {
+ /// let mut core = Core::new().unwrap();
+ /// let client = IpfsClient::default(&core.handle());
+ /// let req = client.shutdown();
+ /// # }
+ /// ```
+ ///
+ pub fn shutdown(&self) -> AsyncResponse<response::ShutdownResponse> {
+ self.request_empty(&request::Shutdown, None)
+ }
/// Returns bitswap stats.
///
diff --git a/ipfs-api/src/request/mod.rs b/ipfs-api/src/request/mod.rs
index defd0ca..03e2801 100644
--- a/ipfs-api/src/request/mod.rs
+++ b/ipfs-api/src/request/mod.rs
@@ -31,6 +31,7 @@ pub use self::pin::*;
pub use self::ping::*;
pub use self::pubsub::*;
pub use self::refs::*;
+pub use self::shutdown::*;
pub use self::stats::*;
pub use self::swarm::*;
pub use self::tar::*;
@@ -93,6 +94,7 @@ mod pin;
mod ping;
mod pubsub;
mod refs;
+mod shutdown;
mod stats;
mod swarm;
mod tar;
diff --git a/ipfs-api/src/request/shutdown.rs b/ipfs-api/src/request/shutdown.rs
new file mode 100644
index 0000000..a6535a2
--- /dev/null
+++ b/ipfs-api/src/request/shutdown.rs
@@ -0,0 +1,17 @@
+// Copyright 2017 rust-ipfs-api Developers
+//
+// Licensed under the Apache License, Version 2.0, <LICENSE-APACHE or
+// http://apache.org/licenses/LICENSE-2.0> or the MIT license <LICENSE-MIT or
+// http://opensource.org/licenses/MIT>, at your option. This file may not be
+// copied, modified, or distributed except according to those terms.
+//
+
+use request::ApiRequest;
+
+pub struct Shutdown;
+
+impl_skip_serialize!(Shutdown);
+
+impl ApiRequest for Shutdown {
+ const PATH: &'static str = "/shutdown";
+}
diff --git a/ipfs-api/src/response/mod.rs b/ipfs-api/src/response/mod.rs
index f08b6dc..2f70c28 100644
--- a/ipfs-api/src/response/mod.rs
+++ b/ipfs-api/src/response/mod.rs
@@ -35,6 +35,7 @@ pub use self::pubsub::*;
pub use self::refs::*;
pub use self::repo::*;
pub use self::resolve::*;
+pub use self::shutdown::*;
pub use self::stats::*;
pub use self::swarm::*;
pub use self::tar::*;
@@ -85,6 +86,7 @@ mod refs;
mod repo;
mod resolve;
mod serde;
+mod shutdown;
mod stats;
mod swarm;
mod tar;
diff --git a/ipfs-api/src/response/shutdown.rs b/ipfs-api/src/response/shutdown.rs
new file mode 100644
index 0000000..3dd3213
--- /dev/null
+++ b/ipfs-api/src/response/shutdown.rs
@@ -0,0 +1,9 @@
+// Copyright 2017 rust-ipfs-api Developers
+//
+// Licensed under the Apache License, Version 2.0, <LICENSE-APACHE or
+// http://apache.org/licenses/LICENSE-2.0> or the MIT license <LICENSE-MIT or
+// http://opensource.org/licenses/MIT>, at your option. This file may not be
+// copied, modified, or distributed except according to those terms.
+//
+
+pub type ShutdownResponse = ();