Giter Club home page Giter Club logo

rust-mq's People

Contributors

francozappa avatar hmvp avatar inre avatar jamesmunns avatar llogiq avatar lylescott avatar timvisee avatar tshepang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rust-mq's Issues

publish latest netopt?

HI, I see that netopt has been updated to use latest openssl. Is it possible to publish it?

Allow #nostd

Hi.
Would it be possible to allow usage of this crate in #nostd devices, possibly behind a feature gate?

I can contribute a first edition PR if you guys think it would be a nice addition to your crate?

Openssl failures on mac

HellO! When attempting to build this on Mac Sierra (10.12.6) I ran into the following issue:

$ cargo build                                                                                                                                                                                 
   Compiling openssl v0.7.14
   Compiling openssl-sys-extras v0.7.14
error: failed to run custom build command for `openssl v0.7.14`
process didn't exit successfully: `/Users/gorup/Dev/rust/toby/target/debug/build/openssl-dcf8b662fbd9cabe/build-script-build` (exit code: 101)
--- stdout
TARGET = Some("x86_64-apple-darwin")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-apple-darwin")
HOST = Some("x86_64-apple-darwin")
TARGET = Some("x86_64-apple-darwin")
TARGET = Some("x86_64-apple-darwin")
HOST = Some("x86_64-apple-darwin")
CC_x86_64-apple-darwin = None
CC_x86_64_apple_darwin = None
HOST_CC = None
CC = None
HOST = Some("x86_64-apple-darwin")
TARGET = Some("x86_64-apple-darwin")
HOST = Some("x86_64-apple-darwin")
CFLAGS_x86_64-apple-darwin = None
CFLAGS_x86_64_apple_darwin = None
HOST_CFLAGS = None
CFLAGS = None
DEBUG = Some("true")
running: "cc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-Wall" "-Wextra" "-o" "/Users/gorup/Dev/rust/toby/target/debug/build/openssl-f2716e2019382eec/out/src/c_helpers.o" "-c" "src/c_helpers.c"
cargo:warning=src/c_helpers.c:1:10: fatal error: 'openssl/ssl.h' file not found
cargo:warning=#include <openssl/ssl.h>
cargo:warning=         ^~~~~~~~~~~~~~~
cargo:warning=1 error generated.
exit code: 1

--- stderr
thread 'main' panicked at '

Internal error occurred: Command "cc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-Wall" "-Wextra" "-o" "/Users/gorup/Dev/rust/toby/target/debug/build/openssl-f2716e2019382eec/out/src/c_helpers.o" "-c" "src/c_helpers.c" with args "cc" did not execute successfully (status code exit code: 1).

', /Users/gorup/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/src/lib.rs:1670:4
note: Run with `RUST_BACKTRACE=1` for a backtrace.

warning: build failed, waiting for other jobs to finish...
error: failed to run custom build command for `openssl-sys-extras v0.7.14`
process didn't exit successfully: `/Users/gorup/Dev/rust/toby/target/debug/build/openssl-sys-extras-2793cad237f238db/build-script-build` (exit code: 101)
--- stdout
TARGET = Some("x86_64-apple-darwin")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-apple-darwin")
HOST = Some("x86_64-apple-darwin")
TARGET = Some("x86_64-apple-darwin")
TARGET = Some("x86_64-apple-darwin")
HOST = Some("x86_64-apple-darwin")
CC_x86_64-apple-darwin = None
CC_x86_64_apple_darwin = None
HOST_CC = None
CC = None
HOST = Some("x86_64-apple-darwin")
TARGET = Some("x86_64-apple-darwin")
HOST = Some("x86_64-apple-darwin")
CFLAGS_x86_64-apple-darwin = None
CFLAGS_x86_64_apple_darwin = None
HOST_CFLAGS = None
CFLAGS = None
DEBUG = Some("true")
running: "cc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-Wall" "-Wextra" "-o" "/Users/gorup/Dev/rust/toby/target/debug/build/openssl-sys-extras-dad78d7a0ee72c91/out/src/openssl_shim.o" "-c" "src/openssl_shim.c"
cargo:warning=src/openssl_shim.c:1:10: fatal error: 'openssl/hmac.h' file not found
cargo:warning=#include <openssl/hmac.h>
cargo:warning=         ^~~~~~~~~~~~~~~~
cargo:warning=1 error generated.
exit code: 1

--- stderr
thread 'main' panicked at '

Internal error occurred: Command "cc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-Wall" "-Wextra" "-o" "/Users/gorup/Dev/rust/toby/target/debug/build/openssl-sys-extras-dad78d7a0ee72c91/out/src/openssl_shim.o" "-c" "src/openssl_shim.c" with args "cc" did not execute successfully (status code exit code: 1).

', /Users/gorup/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/src/lib.rs:1670:4
note: Run with `RUST_BACKTRACE=1` for a backtrace.

I solved the issue by adding

export OPENSSL_INCLUDE_DIR=`brew --prefix openssl`/include
export OPENSSL_LIB_DIR=`brew --prefix openssl`/lib
export DEP_OPENSSL_INCLUDE=`brew --prefix openssl`/include

to my ~/.zshrc.

I found this solution on another rust package, rust-openssl

Perhaps you could implement a fix for this, or put it in the README? Thx

Upgrade openssl dependency

Would it be possible to upgrade the openssl dependency of netopt from 0.7 to the current 0.9. The 0.7 version does not support recent versions (1.1.0) of OpenSSL that are currently in use in distros such as Arch and Fedora 26.

Perhaps the ssl feature could also be removed from the default features and instead be opt-in only?

Trouble with Packet Identifiers

Background: I posted a question to stack overflow: http://stackoverflow.com/questions/39210834/do-any-mqtt-clients-actually-reuse-packet-identifiers

The packet identifier is required for certain MQTT control packets (http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/csprd02/mqtt-v3.1.1-csprd02.html#_Toc385349761). It's defined by the standard as a 16bit integer (presumably), and is generated by each client. The identifiers are reusable by the client after the acknowledgement packet is received. So the standard allows up to 64k in-flight messages.

rust-mq/mqtt3 implements the packet identifier as a u16, and we have this implementation:

#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
pub struct PacketIdentifier(pub u16);

impl PacketIdentifier {
    pub fn zero() -> PacketIdentifier {
        PacketIdentifier(0)
    }

    pub fn next(&self) -> PacketIdentifier {
        PacketIdentifier(self.0 + 1)
    }
}

Problem 1: next can be made to overflow and panic if more than 64k messages requiring a packet identifier is sent by a single client. (My very first test client panicked :-)

Problem 2: even if it didn't panic, each client would still be limited to a total of 64k messages requiring a packet identifier.

Publish a new version

I've noticed that between 0.1.2 and the current master, ClientOptions added a Send constraint to the incoming/outgoing stores. I need this for a project, so at first I attempted to reference each of mqttc/mqtt3/netopts to this repository, but that seems to cause rustc to re-compile the packages, resulting in "type mismatch" errors when implementing the Store trait. There's probably a way around that, but I figure it may just be easier for me and others if a version 0.1.3 is published with the recent changes.

panics on broken pipe

Hi,

in mqttc-0.1.4/src/client.rs, line 690:

    fn _write_packet(&mut self, packet: &Packet) {
        trace!("{:?}", packet);
        self.conn.write_packet(&packet).unwrap();
    }

the unwrap() panics:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Io(Error { repr: Os { code: 32, message: "Broken pipe" } })', src/libcore/result.rs:799
stack backtrace:
   1:     0x7f0d11cdadcf - std::sys::backtrace::tracing::imp::write::h6f1d53a70916b90d
   2:     0x7f0d11cdf48d - std::panicking::default_hook::{{closure}}::h137e876f7d3b5850
   3:     0x7f0d11cddfe0 - std::panicking::default_hook::h0ac3811ec7cee78c
   4:     0x7f0d11cde5e8 - std::panicking::rust_panic_with_hook::hc303199e04562edf
   5:     0x7f0d11cde482 - std::panicking::begin_panic::h6ed03353807cf54d
   6:     0x7f0d11cde3c0 - std::panicking::begin_panic_fmt::hc321cece241bb2f5
   7:     0x7f0d11cde341 - rust_begin_unwind
   8:     0x7f0d11d1215f - core::panicking::panic_fmt::h27224b181f9f037f
   9:     0x7f0d11ad97a2 - core::result::unwrap_failed::hf1a3b54c69e1eeef
                        at /build/rustc-1.13.0+dfsg1/src/libcore/macros.rs:29
  10:     0x7f0d11acfad3 - <core::result::Result<T, E>>::unwrap::haa3663173b183954
                        at /build/rustc-1.13.0+dfsg1/src/libcore/result.rs:737
  11:     0x7f0d11aeb64c - mqttc::client::Client::_write_packet::h28186173ff27678d
                        at /home/xav/.cargo/registry/src/github.com-1ecc6299db9ec823/mqttc-0.1.4/src/client.rs:690
  12:     0x7f0d11aec2f5 - mqttc::client::Client::_publish::h83daa8036786cf37
                        at /home/xav/.cargo/registry/src/github.com-1ecc6299db9ec823/mqttc-0.1.4/src/client.rs:647
  13:     0x7f0d11ae2bbb - <mqttc::client::Client as mqttc::PubSub>::publish::hba48b09bebf91cde
                        at /home/xav/.cargo/registry/src/github.com-1ecc6299db9ec823/mqttc-0.1.4/src/client.rs:215
...

Could it return something meaningful instead ?

Comparing one TopicPath to another

I just wanted to check if you provide a method or have a recommendation on, how one would best go about ensuring – when a client is subscribed to multiple topics – which topic the incoming message matches to?

Eg. My client is subscribed to "/stuff/#" and "/things/awesome_things/#" and receives a message with the topic "/things/awesome_things/sandwich". How would I check which subscription topic the incoming message related to?

Sorry if that's a bit convoluted!

Reconnection not happening (exactly) in ReconnectAfter duration

Reconnect is working but not as specified by ReconnnectAfter duration

opts.set_keep_alive(15);
    opts.set_reconnect(ReconnectMethod::ReconnectAfter(Duration::new(5,0)));
    let mut client = opts.connect(address.as_str(), netopt).unwrap();

    client.subscribe(topic.as_str()).unwrap();
    client.await().unwrap();

    loop {
        match client.await() {
            Ok(result) => match result {
                Some(message) => println!("{:?}", message),
                None => println!("."),
            },
            Err(_) => continue,
        }            
    }

My test: Take the broker down and bring it up immediately again.

Here is the client log

ERROR:mqttc::client: UnexpectedEof
INFO:mqttc::client:   Reconnect in 5 seconds
WARN:mqttc::client: mqttc is already connected
.
DEBUG:mqttc::client:        Pingreq
TRACE:mqttc::client: Pingreq
ERROR:mqttc::client: UnexpectedEof
INFO:mqttc::client:   Reconnect in 5 seconds
WARN:mqttc::client: mqttc is already connected
INFO:mqttc::client:   Disconnected mqttc_2017656392
INFO:mqttc::client:   Reconnect in 5 seconds
DEBUG:mqttc::client:        Connect mqttc_2017656392
TRACE:mqttc::client: Connect(Connect { protocol: MQTT(4), keep_alive: 15, client_id: "mqttc_2017656392", clean_session: true, last_will: None, username: None, password: None })
TRACE:mqttc::client: Connack(Connack { session_present: false, code: Accepted })
INFO:mqttc::client:     Connection accepted

Reconnection is being tried but it's failing because of ClientState::Connected. Actual client disconnection is happening after there is no PingResp and the next reconnect try is being successful.

Is this the expected behaviour? Shouldn't client be in DisconnectedState before retrying connection?

re-export Qos type (from mqtt3)

One use I saw is PubOpt::new, whose first arg is Qos. At the moment, I have to add mqtt3 do Cargo.toml, which I would rather avoid (since it's an implicit dependency).

Client not receiving messages after broker is down and up again

Slight modification to subscribe example in mqttc

loop {
        match client.await() {
            Ok(result) => {
                match result {
                    Some(message) => println!("{:?}", message),
                    None => println!("."),
                }
            }
            Err(_) => continue,     
        }
    }

Start rust-mq client

RUST_LOG=info,mqttc cargo run --example sub -- 127.0.0.1:1883 a/b/c

Keep publishing with mosquitto_pub

 while true; do sleep 1; mosquitto_pub -t "a/b/c" -m "Hello World"; done

Take down the broker and bring it up again. rust-mq client won't be receiving publishes anymore

Proxy?

Hi, I'm a n00b at MQTT - does it support http_proxy to allow events to be sent out from inside enterprises?

TLS via Cert

Hello! Can i use cert x.509 for Tls v1.2? Please do write a mini tutorial. Thks

Using a single client to subscibe and publish at the same time

Is it possible to use same client to subscribe (and read incoming messages) and publish at the same time?

loop {
        match client.await().unwrap() {
            Some(message) => println!("{:?}", message),
            None => {
                println!(".");
            }
        }
    }

Since this is blocking, where do I do my client.publish() ? Can you please write an example where a client does both subscribe and publish?

Consider replacing openssl with rust-native-tls

I'm new to rust, and trying to build this on OSX fails and none of the workarounds with brew and INCLIDE/LIB path exports work. I might be able to figure it out eventually, but it seems like this unnecessary hurdle could be avoided.

failed to run custom build command for `openssl-sys-extras v0.7.14`

I have a compiler error. I am building on RPi4 4G using the latest RPiOS.
Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux

Using libssl.so.1.1 *

  • I think this is the issue, but I am not an expert in libssl.

Steps:
$ cargo new --bin --vcs git mqttctl
Edit Cargo.toml

[dependencies]
mqttc = "0.1.4"

Do I have to use the github version?

$ cargo build
Updating crates.io index
Compiling libc v0.2.84
Compiling pkg-config v0.3.19
Compiling gcc v0.3.55
Compiling log v0.4.14
Compiling lazy_static v0.2.11
Compiling bitflags v0.7.0
Compiling byteorder v0.4.2
Compiling cfg-if v1.0.0
Compiling mqtt3 v0.1.4
Compiling log v0.3.9
Compiling openssl-sys v0.7.17
Compiling openssl-sys-extras v0.7.14
Compiling openssl v0.7.14
Compiling rand v0.3.23
The following warnings were emitted during compilation:

warning: src/c_helpers.c: In function ‘rust_SSL_clone’:
warning: src/c_helpers.c:4:5: warning: implicit declaration of function ‘CRYPTO_add’; did you mean ‘CRYPTO_free’? [-Wimplicit-function-declaration]
warning: CRYPTO_add(&ssl->references, 1, CRYPTO_LOCK_SSL);
warning: ^~~~~~~~~~
warning: CRYPTO_free
warning: src/c_helpers.c:4:20: error: dereferencing pointer to incomplete type ‘SSL’ {aka ‘struct ssl_st’}
warning: CRYPTO_add(&ssl->references, 1, CRYPTO_LOCK_SSL);
warning: ^~
warning: src/c_helpers.c:4:37: error: ‘CRYPTO_LOCK_SSL’ undeclared (first use in this function); did you mean ‘CRYPTO_LOCK’?
warning: CRYPTO_add(&ssl->references, 1, CRYPTO_LOCK_SSL);
warning: ^~~~~~~~~~~~~~~
warning: CRYPTO_LOCK
warning: src/c_helpers.c:4:37: note: each undeclared identifier is reported only once for each function it appears in
warning: src/c_helpers.c: In function ‘rust_SSL_CTX_clone’:
warning: src/c_helpers.c:8:20: error: dereferencing pointer to incomplete type ‘SSL_CTX’ {aka ‘struct ssl_ctx_st’}
warning: CRYPTO_add(&ctx->references,1,CRYPTO_LOCK_SSL_CTX);
warning: ^~
warning: src/c_helpers.c:8:35: error: ‘CRYPTO_LOCK_SSL_CTX’ undeclared (first use in this function); did you mean ‘CRYPTO_EX_INDEX_SSL_CTX’?
warning: CRYPTO_add(&ctx->references,1,CRYPTO_LOCK_SSL_CTX);
warning: ^~~~~~~~~~~~~~~~~~~
warning: CRYPTO_EX_INDEX_SSL_CTX
warning: src/c_helpers.c: In function ‘rust_X509_clone’:
warning: src/c_helpers.c:12:21: error: dereferencing pointer to incomplete type ‘X509’ {aka ‘struct x509_st’}
warning: CRYPTO_add(&x509->references,1,CRYPTO_LOCK_X509);
warning: ^~
warning: src/c_helpers.c:12:36: error: ‘CRYPTO_LOCK_X509’ undeclared (first use in this function); did you mean ‘CRYPTO_LOCK’?
warning: CRYPTO_add(&x509->references,1,CRYPTO_LOCK_X509);
warning: ^~~~~~~~~~~~~~~~
warning: CRYPTO_LOCK

error: failed to run custom build command for openssl v0.7.14

Caused by:
process didn't exit successfully: /home/pi/RUST/mctl/target/debug/build/openssl-6e0fb680d6c1cab5/build-script-build (exit code: 101)
--- stdout
TARGET = Some("armv7-unknown-linux-gnueabihf")
OPT_LEVEL = Some("0")
TARGET = Some("armv7-unknown-linux-gnueabihf")
HOST = Some("armv7-unknown-linux-gnueabihf")
TARGET = Some("armv7-unknown-linux-gnueabihf")
TARGET = Some("armv7-unknown-linux-gnueabihf")
HOST = Some("armv7-unknown-linux-gnueabihf")
CC_armv7-unknown-linux-gnueabihf = None
CC_armv7_unknown_linux_gnueabihf = None
HOST_CC = None
CC = None
HOST = Some("armv7-unknown-linux-gnueabihf")
TARGET = Some("armv7-unknown-linux-gnueabihf")
HOST = Some("armv7-unknown-linux-gnueabihf")
CFLAGS_armv7-unknown-linux-gnueabihf = None
CFLAGS_armv7_unknown_linux_gnueabihf = None
HOST_CFLAGS = None
CFLAGS = None
DEBUG = Some("true")
running: "cc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-march=armv7-a" "-I" "/usr/include" "-Wall" "-Wextra" "-o" "/home/pi/RUST/mctl/target/debug/build/openssl-36d5fa2cddf00564/out/src/c_helpers.o" "-c" "src/c_helpers.c"
cargo:warning=src/c_helpers.c: In function ‘rust_SSL_clone’:
cargo:warning=src/c_helpers.c:4:5: warning: implicit declaration of function ‘CRYPTO_add’; did you mean ‘CRYPTO_free’? [-Wimplicit-function-declaration]
cargo:warning= CRYPTO_add(&ssl->references, 1, CRYPTO_LOCK_SSL);
cargo:warning= ^~~~~~~~~~
cargo:warning= CRYPTO_free
cargo:warning=src/c_helpers.c:4:20: error: dereferencing pointer to incomplete type ‘SSL’ {aka ‘struct ssl_st’}
cargo:warning= CRYPTO_add(&ssl->references, 1, CRYPTO_LOCK_SSL);
cargo:warning= ^~
cargo:warning=src/c_helpers.c:4:37: error: ‘CRYPTO_LOCK_SSL’ undeclared (first use in this function); did you mean ‘CRYPTO_LOCK’?
cargo:warning= CRYPTO_add(&ssl->references, 1, CRYPTO_LOCK_SSL);
cargo:warning= ^~~~~~~~~~~~~~~
cargo:warning= CRYPTO_LOCK
cargo:warning=src/c_helpers.c:4:37: note: each undeclared identifier is reported only once for each function it appears in
cargo:warning=src/c_helpers.c: In function ‘rust_SSL_CTX_clone’:
cargo:warning=src/c_helpers.c:8:20: error: dereferencing pointer to incomplete type ‘SSL_CTX’ {aka ‘struct ssl_ctx_st’}
cargo:warning= CRYPTO_add(&ctx->references,1,CRYPTO_LOCK_SSL_CTX);
cargo:warning= ^~
cargo:warning=src/c_helpers.c:8:35: error: ‘CRYPTO_LOCK_SSL_CTX’ undeclared (first use in this function); did you mean ‘CRYPTO_EX_INDEX_SSL_CTX’?
cargo:warning= CRYPTO_add(&ctx->references,1,CRYPTO_LOCK_SSL_CTX);
cargo:warning= ^~~~~~~~~~~~~~~~~~~
cargo:warning= CRYPTO_EX_INDEX_SSL_CTX
cargo:warning=src/c_helpers.c: In function ‘rust_X509_clone’:
cargo:warning=src/c_helpers.c:12:21: error: dereferencing pointer to incomplete type ‘X509’ {aka ‘struct x509_st’}
cargo:warning= CRYPTO_add(&x509->references,1,CRYPTO_LOCK_X509);
cargo:warning= ^~
cargo:warning=src/c_helpers.c:12:36: error: ‘CRYPTO_LOCK_X509’ undeclared (first use in this function); did you mean ‘CRYPTO_LOCK’?
cargo:warning= CRYPTO_add(&x509->references,1,CRYPTO_LOCK_X509);
cargo:warning= ^~~~~~~~~~~~~~~~
cargo:warning= CRYPTO_LOCK
exit code: 1

--- stderr
thread 'main' panicked at '

Internal error occurred: Command "cc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-march=armv7-a" "-I" "/usr/include" "-Wall" "-Wextra" "-o" "/home/pi/RUST/mctl/target/debug/build/openssl-36d5fa2cddf00564/out/src/c_helpers.o" "-c" "src/c_helpers.c" with args "cc" did not execute successfully (status code exit code: 1).

', /home/pi/.cargo/registry/src/github.com-1285ae84e5963aae/gcc-0.3.55/src/lib.rs:1672:5
stack backtrace:
0: rust_begin_unwind
at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:495:5
1: std::panicking::begin_panic_fmt
at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:437:5
2: gcc::fail
at /home/pi/.cargo/registry/src/github.com-1285ae84e5963aae/gcc-0.3.55/src/lib.rs:1672:5
3: gcc::Build::compile
at /home/pi/.cargo/registry/src/github.com-1285ae84e5963aae/gcc-0.3.55/src/lib.rs:785:13
4: build_script_build::main
at ./build.rs:15:5
5: core::ops::function::FnOnce::call_once
at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/core/src/ops/function.rs:227:5
note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace.
warning: build failed, waiting for other jobs to finish...
The following warnings were emitted during compilation:

warning: src/openssl_shim.c: In function ‘SSL_CTX_set_ecdh_auto_shim’:
warning: src/openssl_shim.c:121:41: warning: unused parameter ‘ctx’ [-Wunused-parameter]
warning: int SSL_CTX_set_ecdh_auto_shim(SSL_CTX *ctx, int onoff) {
warning: ~~~~~~~~~^~~
warning: src/openssl_shim.c: In function ‘DH_new_from_params’:
warning: src/openssl_shim.c:132:7: error: dereferencing pointer to incomplete type ‘DH’ {aka ‘struct dh_st’}
warning: dh->p = p;
warning: ^~
warning: src/openssl_shim.c: In function ‘X509_get_extensions_shim’:
warning: src/openssl_shim.c:143:13: error: dereferencing pointer to incomplete type ‘X509’ {aka ‘struct x509_st’}
warning: return x->cert_info ? x->cert_info->extensions : NULL;
warning: ^~
warning: src/openssl_shim.c:144:1: warning: control reaches end of non-void function [-Wreturn-type]
warning: }
warning: ^

error: build failed

no server?

hello

what do you mean no server in readme?

you actually mean that this entire crate is just a client? no broker here?
image

basically, this crate can only provide client code for rust apps to be the device from that image?

so am i supposed to use a 3rd party mqtt broker to be able to run these examples?

because i tried running both examples and told me "Connection Refused", so im guessing there is no broker running at that addres passed on the examples, right?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.