Hello
            everyone and thanks in advance for your support.
         
        I cannot
            connect to Azure IoTHub via the C paho library (on linux).
            I’m using the latest release,
            v1.2.1.
        I’m
            following the official Microsoft documentation here (https://docs.microsoft.com/it-it/azure/iot-hub/iot-hub-mqtt-support).
        I have
            managed to successfully connect with both the python library
            (un Ubuntu) and
            the Java GUI client (on Windows) and to exchange messages,
            so I guess the
            credentials I’m using are correct.
         
        I'm compiling the C paho
            library, altough my application is in C++, I don't know if
            this can be a problem.
        What happens after I try
            to Connect is connectFailure with a null response pointer.
        
          
        This is a
            snippet of my MQTT_connect() function, linked against the
            mqtt3as library:
        
        
        
        
        #define MQTT_BROKER_ADDRESS
          "ssl://xxx:8883"                              
                                                   
                                                                       
                
        void onConnectFailure(void* context,
          MQTTAsync_failureData* response)                             
                                                                       
                                                             
        {                                         
                                                                       
                                                                       
                                                       
          printf("Connect failed, rc %d %s\n",
          response ? response->code : 0, response->message);     
                                                                       
                                                                    }  
        
        
         int main() {}
          char
            clientID[] =
"xxxx";                                                                                                                                                                                 
         
            MQTTAsync_connectOptions conn_opts =
MQTTAsync_connectOptions_initializer;                                                                                                                                       
          
          MQTTAsync_SSLOptions
            ssl_opts =
MQTTAsync_SSLOptions_initializer;                                                                                                                                                
          
                                                      
                                                                                                                                                                     
         
            //MQTTAsync_willOptions will_opts =
            MQTTAsync_willOptions_initializer;                 
                                                                                                                          
                                                                                                                                            
                                                                               
         
            MQTTAsync_create(&client,
            MQTT_BROKER_ADDRESS,
clientID,                                                                                                                                                         
                          
            MQTTCLIENT_PERSISTENCE_NONE,
NULL);                                                                                                                                                             
          
                                                                                                                                                                                                                           
          
         
            MQTTAsync_setCallbacks(client, client, NULL,
            OnMessageArrived,
NULL);                                                                                                                                            
                                                                                             
                                                                       
                                                                       
                                                     
          string username =
          "xxxx";                                                       
                                                                       
                                       
        
          string password =
            "xxxx ";                                            
                                                                                               
                                                                                                                            
          //ssl_opts.struct_version =
2;                                                                                                                                              
                                              
        
         
            ssl_opts.enableServerCertAuth =
1;                                                                                                                                                                               
          ssl_opts.sslVersion =
MQTT_SSL_VERSION_TLS_1_2;                                                                                                                                                                  
          
          ssl_opts.trustStore =
"/etc/ssl/certs/Baltimore_CyberTrust_Root.pem";                                                                                                                                            
          
          //ssl_opts.keyStore
="/etc/ssl/certs/ca-certificates.crt";                             
                                                                                                                          
          //ssl_opts.CApath =
"/etc/ssl/certs";                                                                                             
                                                                               
         
//ssl_opts.enabledCipherSuites="TLSv1";                                                                                                                                      
                                                
                                                                                                                                                                                                                           
          
         
            //conn_opts.keepAliveInterval =
MQTT_KEEPALIVE;                                                                                                                                                                  
          
         
            //conn_opts.cleansession =
            MQTT_CLEAN_SESSION;
                                                                                                                                                                   
          //conn_opts.will =
&will_opts;                                                                                                                                                                                   
                                                                                                                                              
                                                                             
          conn_opts.username =
username.c_str();                                                                                                                                                                           
          conn_opts.password =
password.c_str();                                                                                                                                                                           
               
                                                                                                                                                                                                            
         
            //conn_opts.connectTimeout =
            MQTT_TIMEOUT;      
                                                                                                                                                                 
          conn_opts._onSuccess_ =
onConnect;                                                           
                                                                                                                      
          conn_opts._onFailure_ =
onConnectFailure;                                                                                               
                                                                           
          conn_opts.context =
client;                                                                                                                                                                                      
         
            //conn_opts.automaticReconnect = 0;     
                                                                                                                                                                         
          conn_opts.ssl =
            &ssl_opts;                                                         
                                                                                                                              
          conn_opts.MQTTVersion
            =
4;                                                                                                                                                                                       
                                                                                                                                                                                   
                                                    
        // 
            gAppLog.PrintLog(LOG_DEBUG_WS, "MQTT
            connecting to: %s",
MQTT_BROKER_ADDRESS);                                                                                                                                 
          printf("host: %s
            \nclientID: %s
            \nusername: %s \npassword: %s \n",
            MQTT_BROKER_ADDRESS,clientID,username.c_str(),
password.c_str());                                                                             
                                                    
                                                                                                                                                                       
          int
rc;                                                                                                                                                                                                          
          rc =
            MQTTAsync_connect(client,
            &conn_opts);
         }
       
      --