Angular.io Website SSL Certificate Problem

The angular.io website does not work with ESET NOD32, I believe there is a certificate problem.
The certificate has many spam sites in the SAN field.
In NOD32 I have to "Disable HTTPS checking" to view the site or it is blocked.
This happens on no other sites that I visit regularly.

I have the same issue, it's related to the certificate for firebase (which is the same for angular.io), you probably have the same issue with firebaseapp.com
But I think the problems is with Eset, not really Google

I think it's related to the number of 'questionable quality' sites listed on certificate.
https://www.sslshopper.com/ssl-checker.html#hostname=angular.io
Angular should get their own certificate to sidestep the problem.
Wasted two hours trying to figure out why the site wouldn't load. It used to work fine.

Yes, that's a good idea, and for firebase as well, it should be an official and exclusive google certificate

Same issue here. ESET NOD32 was the culprit.

Turn off SSL filtering solved it
http://support.eset.com/kb3126/?locale=en_US

I also had the same issue. Angular.io seems is so far the only site I've encountered this. I can access it on my mobile on the same network without any problems.
When I disable the HTTPS checking in ESET NOD32 I can access the site without a problem.

It's also possible to load the website under ESET NOD32 by disabling HTTPS scanning (guessing it's almost the same thing?)

For those who would rather only allow access for the certificate used by angular.io, you can
Note: this refers to NOD32 ANTIVIRUS 9
Click "Setup"
Click "Internet Protection"
Click the gear to the right of "Web access protection"
Click "WEB AND EMAIL"
Expand "SSL/TLS"
Click the "Edit" link next to "List of known certificates"
Click "Add"
Click "URL"
Enter https://angular.io
Choose "Auto" for "Access action"
Choose "Ignore" for "Scan action"
Click "OK" 3 times to close 3 dialog boxes (one click each)
Try again to browse to https://angular.io
A dialog will come up about encrypted network traffic. Select "Remember Action for this certificate" and then click "Allow".

It appears this problem can be extended to those using FortiGate firewalls so a new shiny SSL certificate would definitely be a nice thing.

You can build the repo locally: https://github.com/angular/angular.io

I'm actually trying that @ocombe but when I do my gulp server-and-sync the Chrome tab that is trying to load it just spins for forever

Today I can't access angular.io using Chrome. I get this message:
This site can’t provide a secure connection
angular.io didn’t accept your login certificate, or your login certificate may have expired.
Try contacting the system admin.
ERR_BAD_SSL_CLIENT_AUTH_CERT

@marcusreese that's unusual. Is it still occurring, or was it temporary?

it's still occurring to all of us who use these firewalls / antivirus softwares

I had our security people do some config changes to allow access but the firebase CDN IP changed yesterday so that broke that.  It's looking like we either need to spend time/effort replicating the documentation locally or find another framework to use.  I'm wondering how many other Enterprises (who would be the more likely consumers of Fortigate firewalls) are going to have the same choice because of one silly SSL certificate.

@jeffbcross I can show you the problem at angular connect next week if you want

Same problem for me.... and impossible to modify the FortiGate Firewall of the place where is my entreprise..... and we are working with angular.... so it's very very difficult to can get access to documentation :-(.

To all of you who struggle to access the documentation, it is also available on devdocs: http://devdocs.io/angular~2.0_typescript/

I'm also in contact with Firebase to see if they can fix anything on there side as this issue impacts all the sites on that SSL certificate.

@ocombe Images aren't working as per http://devdocs.io/angular~2.0_typescript/cookbook/component-communication
Not sure if that's something that can be resolved or where I'd report it but still a nice workaround for now.

Same issue here, I as well am behind a FortiGate firewall

Same issue here as well - behind a FortiGate firewall.

Same issue. Both Bitdefender and ESET won't allow for a connection to be made.
The workaround in https://github.com/angular/angular.io/issues/1875#issuecomment-234679100 can not be applied because the options in the comment are no longer available.
This is critical for us, because we need to access the site.

sorry, folks -- I thought we had this fixed just before angular connect. continuing to investigate.
issue reports are very helpful.

A temp work around allowing bitdefender users to access the site is to go to web protection -> settings and uncheck scan ssl. I tried adding angular.io to the whitelist but that didn't work.

Hey folks -- Firebase Hosting team member here. We're looking into why this might be and what we can do to mitigate. Not sure when we'll be able to find a solution, but we're aware of the issue.

This is very much a Fortinet/FortiGate problem - if their appliance is configured for deep inspection, it will try to substitute a forged self-signed certificate (essentially doing a man-in-the-middle attack). Angular.io is using HSTS, so the connection will fail.
This is a known problem with FortiGate:
http://kb.fortinet.com/kb/documentLink.do?externalID=FD37211
Unfortunately, many of us don't have the choice about having our connection spied on, so we are pretty much screwed :(

I had same problem using Bitdefender Internet Security 2016.
The solution which looks like is working for now is:
Bitdefender -> Modules -> Web Protection -> Whitelist -> Add URL angular.io
I had to stop Scan SSL to get this working, but starting it again didn't cause any more issues.

I wouldn't call disabling your antivirus a solution

If HSTS is the issue, I'm not sure what the workaround can be, because we're very opinionated about using HSTS and doing so is deeply ingrained in Firebase Hosting infrastructure. :disappointed:

@mbleigh I think nobody can blame you for that. I have managed to get my case solved by hounding the local IT staff to exclude your servers from the FortiGate packet inspection - we are getting our Internet from a municipal connection which has a contract with Fortinet.
Hopefully I will annoy them sufficiently often (because it isn't only angular.io that doesn't work) that they will disable this spying nonsense for us completely than to have to deal with me again.
I think the best you can do is to keep this page alive and well document the problem, so that you don't get blamed for problems caused by corporate spyware.

Don't host with Firebase seems like a simple solution to me.

IMO, SSL breaking antiviruses and similar tools that install bogus certificates in your system or try to do man-in-the-middle attacks to allow data inspection are a much bigger problem. It is not long time ago some major ones were found full of security holes and these bogus certificates are a wonderful backdoor ready for exploitation by malware.
The antivirus vendors should rather work with browser vendors to obtain hooks where to connect the scanning machinery, if the user so desires.

@janoc the issue with some bad implementations were that the root certificate was shared on all devices. Modern solutions generate a per-device unique root certificate. That's pretty much impossible to MITM unless you're already on the machine (in which case, all hope is lost anyway). They also forward all the details about the certificate and don't just sign invalid certificates.

@urbanhusky Right - and you are left to trust the vendor to do the right thing - like not to siphon off the browsing data for market research and malware sample collection. Do you really have so much trust in a random self-interested third-party with e.g. your banking login? I certainly don't.
In. the Fortinet case, their system generates a completely bogus, self signed certificate, with their "solution" to these problems being a forced installation of their own bogus CA into your browser/certificate store to disable the invalid certificate warnings/HSTS errors. And the company is completely opaque about their policies, who can see the data, etc. Not exactly something I would trust with my data, especially as the company is in the US where the various privacy protection laws are very loose.

@janoc are you also not able to visit angularjs.org? We have HSTS configured there, but we have a wildcard certificate dedicated to *.angularjs.org, not shared with any other domains.
@nickhod we have HSTS configured on all Angular domains, even ones not hosted on Firebase.

@jeffbcross I think Angularjs.org was working for me, only angular.io hasn't. It is possible that the .org domain is whitelisted by Fortinet and the .io domain is treated as "suspicious" by default.

@janoc so does Fortigate only do the MITM for domains it deems suspicious, even if deep inspection is enabled?
FWIW I sent a message to Fortinet last week through their contact form asking them to whitelist angular.io. If anyone has a better contact, please share.

@jeffbcross No they do it on all domains, except what is in the whitelist, I believe. I think they exclude by default sites they class in categories like banking (I believe 3 categories are whitelisted by default).
The lists are secret, obviously.

@jeffbcross I just re-enabled HTTPS checking on NOD32 and angular.io actually works now. They must have whitelisted it in the past month or so.
I think you're correct that the alternative names on the cert was the issue not HSTS.

@nickhod great!
@ocombe @akarel @asaf050 @jhjdev can you verify that this is resolved for you on NOD32?

@jeffbcross It works with Eset Smart Security (nod32) now :) !!

Alright, so at least the original program is fixed, though Fortigate and others are presumably still affected. We'll continue exploring ways to solve this in the meantime.

It doesn't work for me in ESET Smart Security (which is just NOD32 with additional functionality) when re-enabling HTTPS scanning. I haven't whitelisted anything.
Firefox:
Secure Connection Failed

The connection to the server was reset while the page was loading.

    The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
    Please contact the web site owners to inform them of this problem.

Chrome:
This site can’t be reached

The connection was reset.
Try:
Checking the connection
Checking the proxy and the firewall
Running Windows Network Diagnostics
ERR_CONNECTION_RESET

I have not restarted yet. Smart Security is on the latest version and all definitions are up-to-date.

I just tested at work and it still doesn't work here, I wonder if I have a different version of Smart Security from my home computer. My version at work is 9.0.402.1

Really lose time with issue. I disabled SSL checking in NOD32, loaded successfully angular.io, now I can load it again withj SSL checking enabled back.

It works for a bit after re-enabling SLL scan, then stops. It might be browser cache or something. Definitely not resolved using Bitdefender.

Same problem here with https://material.angularjs.org and ESET Smart Security.
Above workaround by @kentweigel solved the issue, just add material.angularjs.org domain instead of just (or on top of) angularjs.org while both of them have different certificate.

I have the same version at home than at work and it works at home but not at work... weird

angular.io and firebase,io
Chrome: https error, cannot bypass, cannot access websites
Opera - https error, cannot bypass, cannot access websites
Firefox - ok
Edge - ok
Safari - ok
I tried everything possible to bypass in chrome this error and nothing worked, I hate that chrome imposes to not give me an option to bypass their error screen.
Have no firewall enabled, no antivirus, reinstalled chrome a few times with full cleanup,

@syrusstk I can confirm it's revoked on safari aswell,

Using Bitdefender Total Security 2015 here and I'm getting the same issue as everyone else.
Temporary work around > Turn off Scan SSL under Protection > Web Protection.
Would much rather not have to turn off SSL protection to access Angular.io.

I am using Mac, what should I do on Mac to solve this problem?

@nicolasxu it's still working on firefox so... I'd suggest to use firefox to open angular.io for now, until they fix the underlying issue

@jlsjonas tried firefox, safari. All not working.

@nicolasxu hmm... odd... (though... expected)
for some reason my firefox still thinks it's a valid certificate, all other browsers don't though

I do notice their certificate is only valid from 5october 2016, maybe check your date/time?

My clock is auto synced with Apple time server. I tried everything already, still not working. The error msg is "angular.io didn’t accept your login certificate, or your login certificate may have expired."
Why login certificate? I am not trying to login anyting.

+1. macbook. won't work on any browser.
halp

I would like to suggest that going to whitelist every antivirus might not be the road to go. Since Angular will be used in various networks, it should always be available for developers to look at the API and the site. No matter what security suite they are using. And we know that most companies aren't really fast in updating their software, even for stuff like this. And i know for sure that most developers won't be able to change their antivirus settings to disable anything.
I can understand the want for HSTS and other stuff, but perhaps thats overkill for a site thats simply there to view information. What attacks are you trying to prevent there? And it seems that the time just isn't right for using HSTS right now (or whatever is still causing this issue)
If you want people to stop using your new fancy library, you should probably at least make them able to view the API as it is very hard to work without it if you are just starting.

Wouldn't it be simpler to just change the https certificate ? It's not like it costs a lot (especially for Google), you can even get one for free now...

I am on macOS, I don't have any antivirus/firewall installed and I still can't visit the site from Chrome/Chrome Canary/Safari/Safari Technology Preview. Only Firefox is OK with the site for some reason.
Is anybody else here in the same (no antivirus/firewall and still not able to see the site) condition?

@doplumi as above..

@doplumi. Had the same problem only firefox worked and only one pc in my home network had the problem, the next morning everything worked normaly for some reason firefox is the exception

It seems that https://elements.polymer-project.org got the same issue as this? Come on Google, get your SSL in order!!

Having the same problem. Working on OS X, not behind a firewall. Can't open angular.io - except on firefox. Any ideas what to do?

Yesterday, on my Mac, it started working again, no action taken.
Il mer 19 ott 2016, 08:11 Sebastian Hildebrandt<EMAIL_ADDRESS>ha scritto:

Having the same problem. Working on OS X, not behind a firewall. Can't
open angular.io - except on firefox. Any ideas what to do?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/angular/angular.io/issues/1875#issuecomment-254719830,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEJUzBYsY_GEQ61zV1weDon2Q_Fkza6Nks5q1bSCgaJpZM4JLLor
.

Funny enough - I just restarted my macbook and now it works fine ...

I don't have any antivirus software installed on my PC, however I can't enter the website either. I get the same SSL error message, including firebase.com too.

Same problem here on NOD32 Internet Security!
Disabling real-time protection and firewall doesn't help.
Uninstalled NOD32 and everything works while using Windows Defender.
Really need to get this solved.
How is it possible that something like angular.io is blocked by an AV? Something smells!

Hi folks, we've just updated the SSL certificate used by angular.io to one that isn't shared by other Firebase Hosting customers. Can any of you who have been having problems check and see if you're having better luck now?

It works for me, no more problem now !! :)

Woohoo!
On Fri, Oct 28, 2016, 10:25 PM Olivier Combe<EMAIL_ADDRESS>wrote:

It works for me, no more problem now !! :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/angular/angular.io/issues/1875#issuecomment-257072180,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAD_qpBrSfTbFc3l5AR6FBSac1CaCzcks5q4tjJgaJpZM4JLLor
.

I don't know if I had issues at home, but it works here.
It will be a few days before I can test it at work - I'll report the results.

It works, thanks.
P.S.
I was playing with ESET Internet Security options. After changing SSL mode from automatic to interactive it worked. I reverted mode to automatic and it was still working.
Exactly in that moment the cert was updated :).

Works behind a Fortigate firewall now!
Thanks very much!

Well, it seems like the new cert worked! I'll close this issue now. If anyone experiences a similar issue, please create a new issue and mention me in it.

And big thanks to @mbleigh for taking care of this!

@mbleigh this does mean that all/most other firebase hosting customers are dealing with the same unreachability though...

We're working on a solution for everyone. Consider this a small test of
future progress 😉
On Tue, Nov 8, 2016, 7:27 AM Jonas De Kegel<EMAIL_ADDRESS>wrote:

@mbleigh https://github.com/mbleigh this does mean that all/most other
firebase hosting customers are dealing with the same unreachability
though...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/angular/angular.io/issues/1875#issuecomment-259166948,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAD_lmwXX2ZXGKs9HFIACXO2VjXgjFyks5q8JTRgaJpZM4JLLor
.

@jeffbcross @mbleigh My company cannot access the site due to our third party firewall declaring the cert bad. The initial October fix seemed to work, though problems recurred a couple weeks ago. I'm not sure I can help by opening a new issue because I won't be able to verify resolution (we can't do without the site any longer and will simply be whitelisting it by close of business today).

I'm not sure why Github says I unassigned @jeffbcross

Dan: are you able to send me information about the certificate you're
seeing? Specifically the Common Name, Subject Alternate Names, and
expiration date?
On Thu, Feb 2, 2017 at 11:43 AM Dan Wolf<EMAIL_ADDRESS>wrote:

I'm not sure why Github says I unassigned @jeffbcross
https://github.com/jeffbcross
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/angular/angular.io/issues/1875#issuecomment-277056394,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAD_vqw3HjC44MfeZTRjiyqHsBRneJ5ks5rYi23gaJpZM4JLLor
.

The issue is back for me as well, haven't visited angular.io in a while though so I don't know when it began again.

On Feb 2, 2017, at 1:48 PM, Michael Bleigh<EMAIL_ADDRESS>wrote:
Dan: are you able to send me information about the certificate you're
seeing? Specifically the Common Name, Subject Alternate Names, and
expiration date?
On Thu, Feb 2, 2017 at 11:43 AM Dan Wolf<EMAIL_ADDRESS>wrote:

I'm not sure why Github says I unassigned @jeffbcross
https://github.com/jeffbcross
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/angular/angular.io/issues/1875#issuecomment-277056394,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAD_vqw3HjC44MfeZTRjiyqHsBRneJ5ks5rYi23gaJpZM4JLLor
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

No problem for me, it's still working

Actually, I'm seeing angular.io serving from a shared certificate again.
I'll investigate and report back.
On Thu, Feb 2, 2017 at 12:21 PM Olivier Combe<EMAIL_ADDRESS>wrote:

No problem for me, it's still working
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/angular/angular.io/issues/1875#issuecomment-277070232,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAD_usi0F7vnNMQcE5eA58Cd-O9vKKwks5rYjlSgaJpZM4JLLor
.

Stopped working for me as well.
I've got Bitdefender running and turning off SSL scan allows me to access the site.
I've tried whitelisting the domain, but that didn't seem to help

Started experiencing the same symptoms again as @rodp82

I am facing the same problems, but as rodp82 said, turning of ssl scanning in bitdefender does the trick.

For me in my company it complains that the TLS 1.0 to TLS 1.2 is deactivated. Probably for security reasons so the angular.* stack needs to be upped to the next level for us to be able to access the site.

We have an idea of what's causing this, but the fix is going to take a
little while. Please bear with us, and apologies for the inconvenience.
On Wed, Feb 8, 2017 at 12:27 PM Fredric Adell<EMAIL_ADDRESS>wrote:

For me in my company it complains that the TLS 1.0 to TLS 1.2 is
deactivated. Probably for security reasons so the angular.* stack needs to
be upped to the next level for us to be able to access the site.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/angular/angular.io/issues/1875#issuecomment-278451416,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAD_oamkvVGGUzx6RfAKcsZ58TmjFKvks5raiU8gaJpZM4JLLor
.

Any update on this? Still experiencing cert errors as of today.

I am having this same exact problem using Chrome on Windows 10 Professional 64 bit.  I get basically the same error when trying it with Firefox.

This site can’t provide a secure connection
angular.io sent an invalid response.
Try running Windows Network Diagnostics.
ERR_SSL_PROTOCOL_ERROR

Chrome:

Firefox:

Hi,
Still experiencing this error too. I'm behind a stormshield firewall. Turning off the SSL validation does the work but this is not a good solution at all.

Hey all, can you give this another spin? We are no longer serving the same GlobalSign certificate and this may be resolved. Please let me know if you're still having problems!

It seems that I can get to it just fine now.

On Mar 30, 2017, at 2:53 PM, Michael Bleigh<EMAIL_ADDRESS>wrote:
Hey all, can you give this another spin? We are no longer serving the same GlobalSign certificate and this may be resolved. Please let me know if you're still having problems!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Appears to be fixed with Bitdefender too. Working now. Thanks!

Yes! It's working now. Thanks.

Works fine with ESET, thanks :)

Works fine now! Thanks.

Works fine with à firewall. Thanks.


Firebase.ready() and .httpconnected() return true even if no internet is available

Describe the bug
When unplugging internet connection on router, while WiFi stays active, Firebase.ready() and .httpconnected() still return true.
~4min after disconnecting internet
message [E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable" stops and insted
[E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app is printed every 30ms (This only happens if a stream with callback is used)
83s later WiFi of ESP32 gets disconnected while router WiFi is still active
To Reproduce
unplug internet connection of router
Expected behavior
Fiebase.ready() and .httpconnected() shuld return false
[E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app should not be printed every 30ms
IDE and its version:

Arduino, PlatformIO
Version [Core 6.1.11 Home 3.4.4]
PACKAGES:
framework-arduinoespressif32 @ 3.20011.230801 (2.0.11)
tool-esptoolpy @ 1.40501.0 (4.5.1)
toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Dependency Graph
|-- Firebase Arduino Client Library for ESP8266 and ESP32 @ 4.4.9
|-- WiFi @ 2.0.0

Basic example with additional stream:
#include <Arduino.h>
#if defined(ESP32) || defined(ARDUINO_RASPBERRY_PI_PICO_W)
#include <WiFi.h>
#elif defined(ESP8266)
#include <ESP8266WiFi.h>
#elif __has_include(<WiFiNINA.h>)
#include <WiFiNINA.h>
#elif __has_include(<WiFi101.h>)
#include <WiFi101.h>
#elif __has_include(<WiFiS3.h>)
#include <WiFiS3.h>
#endif

#include <Firebase_ESP_Client.h>

// Provide the token generation process info.
#include <addons/TokenHelper.h>

// Provide the RTDB payload printing info and other helper functions.
#include <addons/RTDBHelper.h>

/* 1. Define the WiFi credentials */
#define WIFI_SSID "xxx"
#define WIFI_PASSWORD "xxx"
#define API_KEY "xxx"

#define DATABASE_URL "xxx"

/* 4. Define the user Email and password that alreadey registerd or added in your project */
#define USER_EMAIL "xxx"
#define USER_PASSWORD "xxx"

// Define Firebase Data object
FirebaseData fbdo, stream;
bool dataChanged = false;
FirebaseAuth auth;
FirebaseConfig config;

unsigned long sendDataPrevMillis = 0;
unsigned long checkConnectionPrevMillis = 0;
unsigned long count = 0;

void streamCallback(FirebaseStream data)
{
  Serial.printf("Received Data stream.. path: %s\nevent path: %s\ndata type: %s\nevent type: %s",
                data.streamPath().c_str(),
                data.dataPath().c_str(),
                data.dataType().c_str(),
                data.eventType().c_str());
  Serial.printf("Received stream payload size: %d (Max. %d)\n", data.payloadLength(), data.maxPayloadLength());
  dataChanged = true;
}

void streamTimeoutCallback(bool timeout)
{
  if (timeout){
    Serial.printf("stream timed out, resuming... error reason: %s", stream.errorReason());
    }
}

void setup()
{

  Serial.begin(115200);
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("Connecting to Wi-Fi");
  unsigned long ms = millis();
  while (WiFi.status() != WL_CONNECTED)
  {
    Serial.print(".");
    delay(300);
  }
  Serial.println();
  Serial.print("Connected with IP: ");
  Serial.println(WiFi.localIP());
  Serial.println();

  Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION);

  config.api_key = API_KEY;
  auth.user.email = USER_EMAIL;
  auth.user.password = USER_PASSWORD;
  config.database_url = DATABASE_URL;

  config.token_status_callback = tokenStatusCallback; // see addons/TokenHelper.h

  fbdo.setBSSLBufferSize(4096 , 1024 );
  fbdo.setResponseSize(2048);

  stream.setBSSLBufferSize(4096 , 512);
  Firebase.begin(&config, &auth);

  if (!Firebase.RTDB.beginStream(&stream, "/test"))
    Serial.printf("stream begin error, %s\n\n", stream.errorReason().c_str());

  Firebase.RTDB.setStreamCallback(&stream, streamCallback, streamTimeoutCallback);

  Firebase.setDoubleDigits(5);

  config.timeout.serverResponse = 10 * 1000;

  stream.keepAlive(5, 5, 1);

}

void loop()
{
  if(millis() > checkConnectionPrevMillis+10000){
    checkConnectionPrevMillis = millis();
    if(WiFi.status() != WL_CONNECTED)
        Serial.printf("[%lu] WiFi not connected\n", millis());
    else{
        Serial.printf("[%lu] WiFi OK\n", millis());
        if(!Firebase.ready())
            Serial.printf("[%lu] Firebase not ready\n", millis());
        else
            Serial.printf("[%lu] Firebase is ready\n", millis());

        if(stream.httpConnected())
            Serial.printf("[%lu] Stream connected\n", millis());
        else
            Serial.printf("[%lu] Stream disconnected\n", millis());
    }
  }

  if (Firebase.ready() && (millis() - sendDataPrevMillis > 15000 || sendDataPrevMillis == 0))
  {
    sendDataPrevMillis = millis();

    // For the usage of FirebaseJson, see examples/FirebaseJson/BasicUsage/Create_Edit_Parse.ino
    FirebaseJson json;

    if (count == 0)
    {
      json.set("value/round/" + String(count), F("cool!"));
      json.set(F("value/ts/.sv"), F("timestamp"));
      Serial.printf("Set json... %s\n", Firebase.RTDB.set(&fbdo, F("/test/json"), &json) ? "ok" : fbdo.errorReason().c_str());
    }
    else
    {
      json.add(String(count), F("smart!"));
      Serial.printf("Update node... %s\n", Firebase.RTDB.updateNode(&fbdo, F("/test/json/value/round"), &json) ? "ok" : fbdo.errorReason().c_str());
    }

    Serial.println();
    count++;
  }
}

Serial Output:
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1184
load:0x40078000,len:13232
load:0x40080400,len:3028
entry 0x400805e4
Connecting to Wi-Fi....
Connected with IP: <IP_ADDRESS>

Firebase Client v4.4.9

Token info: type = id token (GITKit token), status = on request
Token info: type = id token (GITKit token), status = ready
Received Data stream.. path: /test
event path: /
data type: json
event type: putReceived stream payload size: 224 (Max. 224)
Set json... ok
Received Data stream.. path: /test
event path: /json
data type: json
event type: putReceived stream payload size: 80 (Max. 224)

[10001] WiFi OK
[10001] Firebase is ready
[10001] Stream connected
Update node... ok

Received Data stream.. path: /test
event path: /json/value/round
data type: json
event type: patchReceived stream payload size: 58 (Max. 224)
[20002] WiFi OK
[20002] Firebase is ready
[20003] Stream connected
[30003] WiFi OK
[30003] Firebase is ready
[30003] Stream connected
Update node... response payload read timed out

[42773] WiFi OK
[42774] Firebase is ready
[42774] Stream connected
stream timed out, resuming... error reason: not connected[ 66272][E][WiFiClientI
mpl.h:347] tcpConnect(): connect on fd 49, errno: 113, "Software caused connecti
on abort"
Update node... connection refused

[66291] WiFi OK
[66291] Firebase is ready
[66292] Stream connected
[ 81316][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 113, "S
oftware caused connection abort"
stream timed out, resuming... error reason: not connected[ 84820][E][WiFiClientI
mpl.h:347] tcpConnect(): connect on fd 49, errno: 113, "Software caused connecti
on abort"
Update node... connection refused

[84838] WiFi OK
[84839] Firebase is ready
[84839] Stream connected
[ 99861][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 113, "S
oftware caused connection abort"
stream timed out, resuming... error reason: not connected[103366][E][WiFiClientI
mpl.h:347] tcpConnect(): connect on fd 49, errno: 113, "Software caused connecti
on abort"
Update node... connection refused

[103384] WiFi OK
[103385] Firebase is ready
[103385] Stream connected
[118403][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 113, "S
oftware caused connection abort"
stream timed out, resuming... error reason: not connected[121907][E][WiFiClientI
mpl.h:347] tcpConnect(): connect on fd 49, errno: 113, "Software caused connecti
on abort"
Update node... connection refused

[121925] WiFi OK
[121926] Firebase is ready
[121926] Stream connected
[136946][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 113, "S
oftware caused connection abort"
stream timed out, resuming... error reason: not connected[140451][E][WiFiClientI
mpl.h:347] tcpConnect(): connect on fd 49, errno: 113, "Software caused connecti
on abort"
Update node... connection refused

[140469] WiFi OK
[140470] Firebase is ready
[140470] Stream connected
[155481][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 113, "S
oftware caused connection abort"
stream timed out, resuming... error reason: not connected[158986][E][WiFiClientI
mpl.h:347] tcpConnect(): connect on fd 49, errno: 113, "Software caused connecti
on abort"
Update node... connection refused

[159004] WiFi OK
[159005] Firebase is ready
[159005] Stream connected
[174015][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 113, "S
oftware caused connection abort"
stream timed out, resuming... error reason: not connected[177520][E][WiFiClientI
mpl.h:347] tcpConnect(): connect on fd 49, errno: 113, "Software caused connecti
on abort"
Update node... connection refused

[177538] WiFi OK
[177539] Firebase is ready
[177539] Stream connected
[192548][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 113, "S
oftware caused connection abort"
stream timed out, resuming... error reason: not connected[196053][E][WiFiClientI
mpl.h:347] tcpConnect(): connect on fd 49, errno: 113, "Software caused connecti
on abort"
Update node... connection refused

[196071] WiFi OK
[196072] Firebase is ready
[196072] Stream connected
[211082][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 113, "S
oftware caused connection abort"
stream timed out, resuming... error reason: not connected[214587][E][WiFiClientI
mpl.h:347] tcpConnect(): connect on fd 49, errno: 113, "Software caused connecti
on abort"
Update node... connection refused

[214605] WiFi OK
[214606] Firebase is ready
[214606] Stream connected
[229623][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 113, "S
oftware caused connection abort"
stream timed out, resuming... error reason: not connected[233129][E][WiFiClientI
mpl.h:347] tcpConnect(): connect on fd 49, errno: 113, "Software caused connecti
on abort"
Update node... connection refused

[233147] WiFi OK
[233148] Firebase is ready
[233148] Stream connected
[248159][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 113, "S
oftware caused connection abort"
stream timed out, resuming... error reason: not connected[251665][E][WiFiClientI
mpl.h:347] tcpConnect(): connect on fd 49, errno: 113, "Software caused connecti
on abort"
Update node... connection refused

[251683] WiFi OK
[251684] Firebase is ready
[251684] Stream connected
[266219][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 49, errno: 113, "S
oftware caused connection abort"
[266227][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 113, "S
oftware caused connection abort"
stream timed out, resuming... error reason: not connected[266267][E][WiFiClientI
mpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "Host is unreachable"
Update node... connection refused

[266290] WiFi OK
[266291] Firebase is ready
[266291] Stream disconnected
[266297][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266326][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266356][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266386][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266416][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266446][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266476][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266505][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266535][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266564][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266594][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266624][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266654][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266684][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266705][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266714][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266744][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
Update node... connection refused

[266774][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266804][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266833][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266863][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[266892][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
..
[296299][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
stream timed out, resuming... error reason: not connected[296317] WiFi OK
[296318] Firebase is ready
[296318] Stream disconnected
[296329][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
..
[296775][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
Update node... connection refused

[296805][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
..
[299301][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
stream timed out, resuming... error reason: not connected[299330][E][WiFiClientI
mpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "Host is unreachable"
[299360][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
..
[302309][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
stream timed out, resuming... error reason: not connected[302340][E][WiFiClientI
mpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "Host is unreachable"
[302369][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[302399][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[302429][E][WiFiClientImpl.h:347] tcpConnect(): connect on fd 48, errno: 118, "H
ost is unreachable"
[302458][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[302487][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[302516][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[346342][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[346360] WiFi OK
[346361] Firebase is ready
[346361] Stream disconnected
[346371][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[347473][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
stream timed out, resuming... error reason: not connected[347503][E][WiFiGeneric
.cpp:1578] hostByName(): DNS Failed for terrarium-managment-system-default-rtdb.
europe-west1.firebasedatabase.app
[347532][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[350490][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
stream timed out, resuming... error reason: not connected[350520][E][WiFiGeneric
.cpp:1578] hostByName(): DNS Failed for terrarium-managment-system-default-rtdb.
europe-west1.firebasedatabase.app
[350549][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[353507][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
stream timed out, resuming... error reason: not connected[353537][E][WiFiGeneric
.cpp:1578] hostByName(): DNS Failed for terrarium-managment-system-default-rtdb.
europe-west1.firebasedatabase.app
[353566][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[356350][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[356368] WiFi OK
[356369] Firebase is ready
[356369] Stream disconnected
[356379][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[356524][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
stream timed out, resuming... error reason: not connected[356554][E][WiFiGeneric
.cpp:1578] hostByName(): DNS Failed for terrarium-managment-system-default-rtdb.
europe-west1.firebasedatabase.app
[356583][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[356789][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
Update node... connection refused

[356818][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[359515][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
stream timed out, resuming... error reason: not connected[359545][E][WiFiGeneric
.cpp:1578] hostByName(): DNS Failed for terrarium-managment-system-default-rtdb.
europe-west1.firebasedatabase.app
[359577][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[362535][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
stream timed out, resuming... error reason: not connected[362565][E][WiFiGeneric
.cpp:1578] hostByName(): DNS Failed for terrarium-managment-system-default-rtdb.
europe-west1.firebasedatabase.app
[362594][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[365552][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
stream timed out, resuming... error reason: not connected[365582][E][WiFiGeneric
.cpp:1578] hostByName(): DNS Failed for terrarium-managment-system-default-rtdb.
europe-west1.firebasedatabase.app
[365611][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[365640][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[366365][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[366383] WiFi OK
[366384] Firebase is ready
[366384] Stream disconnected
[366394][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[366423][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[368569][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
stream timed out, resuming... error reason: not connected[368599][E][WiFiGeneric
.cpp:1578] hostByName(): DNS Failed for terrarium-managment-system-default-rtdb.
europe-west1.firebasedatabase.app
[368628][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[371586][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
stream timed out, resuming... error reason: not connected[371616][E][WiFiGeneric
.cpp:1578] hostByName(): DNS Failed for terrarium-managment-system-default-rtdb.
europe-west1.firebasedatabase.app
[371645][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[371674][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[371793][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
Update node... connection refused

[371822][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[374577][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
stream timed out, resuming... error reason: not connected[374606][E][WiFiGeneric
.cpp:1578] hostByName(): DNS Failed for terrarium-managment-system-default-rtdb.
europe-west1.firebasedatabase.app
[374639][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[376379][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[376397] WiFi OK
[376398] Firebase is ready
[376398] Stream disconnected
[376408][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[377539][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[377568][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[377597][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
stream timed out, resuming... error reason: not connected[377627][E][WiFiGeneric
.cpp:1578] hostByName(): DNS Failed for terrarium-managment-system-default-rtdb.
europe-west1.firebasedatabase.app
[377656][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[377685][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[377714][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[377743][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[377772][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[380527][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[380556][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[380585][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[380614][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
stream timed out, resuming... error reason: not connected[380644][E][WiFiGeneric
.cpp:1578] hostByName(): DNS Failed for terrarium-managment-system-default-rtdb.
europe-west1.firebasedatabase.app
[380673][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
..
[383631][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
stream timed out, resuming... error reason: not connected[383661][E][WiFiGeneric
.cpp:1578] hostByName(): DNS Failed for terrarium-managment-system-default-rtdb.
europe-west1.firebasedatabase.app
..
[386155][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[386184][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[386213][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app
[386398] WiFi not connected
[396399] WiFi not connected

I deleted some prints because otherwise it would be 5605 lines

This is the normal as the httpConnected returns true since server connection established and returns false only when session was closed (by user) or network disconnected.
You have to use TCP keepalive for probing server connection periodically.
https://github.com/mobizt/Firebase-ESP-Client/blob/43d4a98621305899fc09936575f33eb01662c90e/examples/RTDB/DataChangesListener/Callback/Callback.ino#L163-L169

Expected behavior
Fiebase.ready() and .httpconnected() shuld return false
[E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for test-default-rtdb.europe-west1.firebasedatabase.app should not be printed every 30ms'

Did you don't understand what I post before?  It is intended and normal behavior of this library.
You should set the ESP debug level in PlatformIO.

Firebase ready returns false only when network disconnected, or token expired or unauthenticated.


python310Packages.ckcc-protocol: 1.2.1 -> 1.3.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.ckcc-protocol is: "Communicate with your Coldcard using Python"
meta.homepage for python310Packages.ckcc-protocol is: "https://github.com/Coldcard/ckcc-protocol"
meta.changelog for python310Packages.ckcc-protocol is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
Warning: a test defined in passthru.tests did not pass
Warning: no invocation of /nix/store/2fvhr06lchs4iyi4f8rjzjgv17dah5vf-python3.10-ckcc-protocol-1.3.0/bin/.ckcc-wrapped had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/2fvhr06lchs4iyi4f8rjzjgv17dah5vf-python3.10-ckcc-protocol-1.3.0/bin/ckcc had a zero exit code or showed the expected version
0 of 2 passed binary check by having a zero exit code.
0 of 2 passed binary check by having the new version present in output.
found 1.3.0 with grep in /nix/store/2fvhr06lchs4iyi4f8rjzjgv17dah5vf-python3.10-ckcc-protocol-1.3.0
found 1.3.0 in filename of file in /nix/store/2fvhr06lchs4iyi4f8rjzjgv17dah5vf-python3.10-ckcc-protocol-1.3.0

Rebuild report (if merged into master) (click to expand)

10 total rebuild path(s)

5 package rebuild(s)

5 x86_64-linux rebuild(s)
5 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
electrum
electrum-grs
electrum-ltc
python310Packages.ckcc-protocol
python39Packages.ckcc-protocol

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/2fvhr06lchs4iyi4f8rjzjgv17dah5vf-python3.10-ckcc-protocol-1.3.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.ckcc-protocol https://github.com/r-ryantm/nixpkgs/archive/719a9a4c03ffdcddb1b7c4edeee94e5471d9ea56.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/2fvhr06lchs4iyi4f8rjzjgv17dah5vf-python3.10-ckcc-protocol-1.3.0
ls -la /nix/store/2fvhr06lchs4iyi4f8rjzjgv17dah5vf-python3.10-ckcc-protocol-1.3.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package failed to build:

electrum-grs

4 packages built:

electrum
electrum-ltc
python310Packages.ckcc-protocol
python39Packages.ckcc-protocol

Maintainer pings
cc @hkjn for testing.

electrum failure addressed in #162394


Look into stewards action and activity page

[ ] Where does the number for  actions on a stewards card come from
[ ] should link to action/acitvitypage

replaced by: https://github.com/GoodDollar/GoodCollective/issues/127


Building a structure with elements only takes too long

The following code is painfully slow when the number of atoms is big:
Chem::Structure.build do |builder|
  100_000.times do
    builder.atom Chem::PeriodicTable::H, Chem::Spatial::Vec3.zero
  end
end

It takes about 9s. Compare with the following that takes only 0.007s:
Chem::Structure.build do |builder|
  100_000.times do
    builder.atom "H", Chem::Spatial::Vec3.zero, element: Chem::PeriodicTable::H
  end
end

In the first snippet, the code is setting the atom name by counting the number of atoms with the same element in the current residue. Since all atoms are in the same residue, the time complexity is effectively O(N) instead of constant time as in the second example.

Commit 156cfa6 adds cache for element count when assigning atom name from the element, which reduces the runtime significantly (0.02s) in the original example without affecting other scenarios.


HTTP channel timeout overload

If you make an HTTP channel, and the endpoint never returns, it will timeout after the default 8 seconds.
If a device transmits at a faster rate than the timeout, or a hotspot makes it way back into a state channel and sends all the messages it's been holding. The channels_worker will start to accumulate messages since http_channel is a blocking request.

Fixed with https://github.com/helium/router/pull/550


Remove redundant require ostruct

requiring ostruct was introduced at https://github.com/rspec/rspec-core/commit/5cd41d3420cd277c1132fba5ce4cff7a0a1367a3 and removed using OpenStruct at https://github.com/rspec/rspec-core/commit/d7e40339e9b329c661f9326407aea94c705dc223 .
ostruct was loaded from the standard library, but will no longer be part of the default gems since Ruby 3.5.0.
Related https://bugs.ruby-lang.org/issues/20309 https://github.com/ruby/ruby/pull/10428

Can you rebase this once #3097 is merged / or cherry-pick that commit, theres an issue with our legacy actions needing fixing.

#3097 has been merged

@JonRowe
Thank you for fixing CI! I rebased.


How to snapshot to s3?

Hello!
I am reviewing the guide for s3, and wondering how I can setup s3 for non-aws, such as wasabi?

NVM, I figured it out. Posting here if it helps anyone.
apiVersion: dragonflydb.io/v1alpha1
kind: Dragonfly
metadata:
  name: api-cache
  namespace: api-cache
  resourceVersion: '843691383'
  uid: f4a7c374-6c0c-44d7-9cc4-a29425d25006
spec:
  args:
    - '--s3_endpoint=s3.ca-central-1.wasabisys.com/'
  authentication:
    passwordFromSecret:
      key: password
      name: db-password
      optional: false
  env:
    - name: AWS_ACCESS_KEY_ID
      valueFrom:
        secretKeyRef:
          key: awsAccessKeyId
          name: wasabi-credentials
    - name: AWS_SECRET_ACCESS_KEY
      valueFrom:
        secretKeyRef:
          key: awsSecretAccessKey
          name: wasabi-credentials
    - name: AWS_REGION
      value: ca-central-1
    - name: AWS_BUCKET_NAME
      value: preprod-dragonfly-operator
  image: docker.dragonflydb.io/dragonflydb/dragonfly:v1.22.0
  replicas: 3
  resources:
    limits: {}
    requests:
      cpu: 250m
      memory: 250Mi
  snapshot:
    cron: '*/5 * * * *'
    dir: s3://preprod-dragonfly-operator/api-cache/dragonfly/snapshots
    persistentVolumeClaimSpec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: linstor-replica-one-local
status:
  phase: ready

@jonathon2nd Glad that you figured it out!
We also have a document to do it with workload identity: https://www.dragonflydb.io/docs/managing-dragonfly/operator/snapshot-s3


Add instructions for how to run locally

Notably:

General dev flow (e.g. live server, which port to use, etc)
Setting up the Earthstar config stuff using https://github.com/earthstar-project/applet-control-panel

Perhaps also add to the workshop where the earthstar.bundle.js file came from?

Perhaps also add to the workshop where the earthstar.bundle.js file came from?

ah yeah that too, although at the moment, gwil just custom bundled it and shared the file directly with me 😄 for now, the instruction would be to just copy+paste the file I have in the repo


[Help] Can't build on vespene geyser

Hello i'm trying to build refinery on vespene but i've no idea why it's not working, if some one could help i would appreciate.
Here's a function wich give a exact position of Vespene Geyser .

            if (CountUnitType(UNIT_TYPEID::TERRAN_REFINERY) == 0) {
                Point3D Location;
                Location.x = 19.5;
                Location.y = 122.5;
                Location.z = 12;
                return Location;
            }

And Here's a function wich ask to build the Refinery

        Actions()->UnitCommand(unit_to_build, ABILITY_ID::BUILD_REFINERY, Gas());

But some how the svc can't find the way to build giving the alert
" Can't place, locaton invalid "

Hi @azshalasa
Try to pass a pointer to a geiser unit instead of a 3d point.

Tx for reply @alkurbatov  !
i'm not sure if i understood what to do...
You mean a pointer to Point3D ?
Even functions like that are not working properly

    const Unit* FindNearestVespenelPatch(const Point3D& start) {
        Units units = Observation()->GetUnits(Unit::Alliance::Neutral);
        float distance = std::numeric_limits<float>::max();
        const Unit* target = nullptr;
        for (const auto& u : units) {
            if (u->unit_type == UNIT_TYPEID::NEUTRAL_VESPENEGEYSER) {
                std::cout << u->pos.x << std::endl;
                std::cout << u->pos.y << std::endl;
                float d = DistanceSquared3D(u->pos, start);
                if (d < distance) {
                    distance = d;
                    target = u;
                }
            }
        }

        return target;
    }

    const Unit* FindNearestCC(const Point2D& start) {
        Units units = Observation()->GetUnits(Unit::Alliance::Neutral);
        float distance = std::numeric_limits<float>::max();
        const Unit* target = nullptr;
        for (const auto& u : units) {
            if (u->unit_type == UNIT_TYPEID::TERRAN_COMMANDCENTER) {
                float d = DistanceSquared2D(u->pos, start);
                if (d < distance) {
                    distance = d;
                    target = u;
                }
            }
        }
        return target;
    }

With the functions above, SCV are acting like crazy, looking for far mining places and wrong gaiser..

Take a look at examples from the API's sources (bool TerranMultiplayerBot::BuildRefinery() ):
https://github.com/Blizzard/s2client-api/blob/master/examples/common/bot_examples.cc
Usually you should find nearest mineral or vesper geyser (these are neutral units on the map), use the unit founded as a target for the 'build' command instead of a point.

Ah, suddenly I've remembered. I've used the example from the API (with location point) and it failed to build a refinery. Then I've switched to another solution, you can see it I my bot's sources.
So the following advice should help:

Usually, you should find the nearest mineral or vesper geyser (these are neutral units on the map), use the unit found as a target for the 'build' command instead of a point.

Actually nearest mineral or nearest vespene are pointing SCVs to the wrong way.
When some SCV finish something and get iddle he's sent to findnearestminerals and mine there, but for some reason he's getting wrong mineral and gaiser, and i already tryed to push them to CC before getting iddle, no sucess.
That's explain why my pointers are not working properly ~~maybe.

~
Here's a iddle function:

        case UNIT_TYPEID::TERRAN_SCV: {
            const Unit* cc_target = FindNearestCC(unit->pos);
            const Unit* mineral_target = FindNearestMineralPatch(unit->pos);
            if (!mineral_target) {
                break;
            }
            Actions()->UnitCommand(unit, ABILITY_ID::SMART, cc_target);
            Actions()->UnitCommand(unit, ABILITY_ID::SMART, mineral_target);
            break;
        }

Heres Nearest Vespene

const Unit* FindNearestVespenelPatch(const Point3D& start) {
Units units = Observation()->GetUnits(Unit::Alliance::Neutral);
float distance = std::numeric_limits::max();
const Unit* target = nullptr;
for (const auto& u : units) {
if (u->unit_type == UNIT_TYPEID::NEUTRAL_VESPENEGEYSER) {
std::cout << u->pos.x << std::endl;
std::cout << u->pos.y << std::endl;
float d = DistanceSquared3D(u->pos, start);
if (d < distance) {
distance = d;
target = u;
}
}
}

Heres Nearest Minerals

    const Unit* FindNearestMineralPatch(const Point2D& start) {
        Units units = Observation()->GetUnits(Unit::Alliance::Neutral);
        float distance = std::numeric_limits<float>::max();
        const Unit* target = nullptr;
        for (const auto& u : units) {
            if (u->unit_type == UNIT_TYPEID::NEUTRAL_MINERALFIELD) {
                float d = DistanceSquared2D(u->pos, start);
                if (d < distance) {
                    distance = d;
                    target = u;
                }
            }
        }
        return target;
    }

I think, problem is the map, this function work great at (2)Bel'ShirVestigeLE (Void), i mean it build on correct location...

Minerals:
There are two flaws in your code. First: why are you looking for a mineral that is closest to the unit position and not cc_target->pos? You don't want the closest mineral to the worker, you want the closest mineral that belongs to the closest cc to the worker.
Second: if you issue two commands in the same frame without queuing, the second overrides the first. So the move command to the cc will never be used. Anyway, you don't need to queue. Just look for the right closest mineral.
Gas:
You could also here use a cc position rather than a worker position as start. You just need to make sure that the gas positions are not already occupied for the cc.
(Sry I'm at my phone so no nice formating.)

One thing I forgot to mention: keep in mind that there are different types if mineral/gas. On some maps your functions won't find minerals/gas because you are only looking for one specific type. See type enums for the others.

By the way, is there any simple approach to identify that the gas positions are not already occupied (i.e. without additional memory and comparison of refineries with vespene points)?

@Archiatrus
Minerals:

There are two flaws in your code. First: why are you looking for a mineral that is closest to the unit.....
R: I was trying to send SCV to CC before to look for neares minerals to check if SCV would try some distant mine.
Already fixed that.

One thing I forgot to mention: keep in mind that there are different types if mineral/gas. On some maps your functions won't find minerals/gas because you are only looking for one specific type. See type enums for the others.
R: That post was the key to solve the problem, since Geyser on plataform are named NEUTRAL_SPACEPLATFORMGEYSER instead of NEUTRAL_VESPENEGEYSER, just like the minerals.

So the problem is solved, but i'll ask to keep that issue open just a little more, i'll close by my self when i feel confident.

Ok, thx to @alkurbatov  and @Archiatrus  all problems are fixed and i'll close the issue.
If somebody are facing some problem related just feel free to inbox me any time.


TypeScript types are not correct for server module

Using the following version:
    "loadable-components": "^2.2.3",

When trying to use loadable-components in a TypeScript project I am getting the following error:
import { getLoadableState } from 'loadable-components/server';

error TS7016: Could not find a declaration file for module 'loadable-components/server'.

I suspect this is a missing export definition file.
Elsewhere this works fine:
import loadable from 'loadable-components';

v3 has been release, no TypeScript support. Please add them to https://github.com/DefinitelyTyped/DefinitelyTyped if you want them.


Add support for Ubuntu 20.04 LTS

Next  version 20.04 LTS released April 23rd 2020.  We should support this ASAP.  As always, involves various components such as ROS providing support for it.

ROS Melodic will not support 20.04.  ROS Noetic is due 23rd May 2020, and will support 20.04.
http://wiki.ros.org/noetic

Looks like in 20.04, stopping network manager and configuring using /etc/network/interfaces doesn't work anymore.
Probably we shouldn't control network interfaces in desktopvm profile, just leave it as dhcp/networkmanager and let the user configure as normal through the desktop.

Quite a few updates needed for 20.04, bump to maverick 1.3


Is there any way to use depcheck with NVD data from zipped json instead of the data feed?

It's just easier to download the NVD data from zipped json files from https://nvd.nist.gov/vuln/data-feeds sometimes.
Is there any option currently to use data from https://nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-modified.json.zip (for example) instead of NVD APIs? (which demands API key)
If not, anyone can point in the source code where I could implement such a change?
thanks
Leo

After version 8.4.3 the switch to the API was made in response to NVD indicating that the datafeeds would soon be dismantled and replaced by the API.
Overall putting some automation to get the API contents populated to a locally cached NVD CVE-db and running ODC (without updating) against that local cache is a more future-proof setup, which would still isolate temporary NVD troubles like the past few days from your build-jobs (only your 'update the cached data job' would be in trouble, all your CI/build jobs would run fine (only lacking new CVEs that cannot also be discovered on other sources than the NVD).
On our (my day-job) build-CI we have one job taking care of updating the CVEdb with NVD data (which is currently frequently and in past intermittently failing). All software builds are re-using this prepopulated database and run in no-update mode.


adds translation(ES) for advanced guides #151

What: Adds translations in Spanish for the advanced guides

Thanks so much for this @anthony2025! Hey @gillchristian, @Macxim, and @tylermcginnis, could  to give this a review? You're awesome! Thanks!

I'm really not a fan of the Title Case which is very specific to English language.
Sometimes you use el prop (masculino), sometimes la prop (feminino). We should stick to feminine, as it comes from propiedad (femenino)

Otherwise, it looks good 👍

Thanks for making it so easy to contribute, @kentcdodds. I just updated the pr with @Macxim suggestions.

Thank you @anthony2025! @Macxim any last comments or can I merge this in?

I made two more comments.
When that's fixed, we're good! 👍

Thanks @Macxim, fixed.

Thanks tons!


[Android] Implement the method to set compositing surface type for si…

…ngle XWalkView
Currently, XWalkView compositing surface type(SURFACE_VIEW or TEXTURE_VIEW)
can only be configured by XWalkPreferences, which is shared by all XWalkViews.
This implementation provide a method to config the surface type in application's
layout file, and it also make each XWalkView has separate configuration.
BUG=XWALK-5449

@lincsoon @axinging @wuhengzhi @fujunwei @XiaosongWei

At last, could you make it clear in the description that which is prioritized when the value of single XWalkView conflicts with global value.

yes, I am refine this point.
My thinking is: we should check if there is setup on single XWalkView(layout), if yes, we should use it and ignore XWalkPreferences, if not, we use XWalkPreferences.
Do you think it's ok?

@lincsoon please help to review

Thanks @xzhan96 . Will your commit be added to next crosswalk-android version?

@suleymanccelik
sure, it should be added into Crosswalk-20, so stay tuned :)


Feature request: toggle state

Would it be possible to create a toggle function by reading the json info and switching accordingly? Unfortunately I am not very familiar with Rust, and it would seem better to do this within rust rather than parsing json with some other language and setting a variable.
btw, I was able to build this with termux on Android and it is really great to be able to do things with tasker!

That's a very neat use case, thanks for sharing it!
How exactly did you get termux to make use of the library? Would a Rust example on how you can achieve the toggle functionality help you out?

In fact, it was not too hard. Basic process was:

Install rust and git on termux.
Clone your repo
try to build with cargo and install packages when cargo fails, needed: binutils, openssl, pkg-config
run cargo successfully

There are some limitations, as I think that you have to call the binary from the command line and it may require root in some cases. But I can call it from within termux and with root in tasker.
I do not know rust, and so I was hoping to avoid figuring out how to parse json, and respond accordingly based on the info function, if that is something that you could easily share a snippet for, I would greatly appreciate it. I already used the functionalities from the examples to create my own examples and have compiled them for use on windows and now android.

Please look at this newly added example and let me know if it answers your need.
https://github.com/mihai-dinculescu/tapo/blob/main/examples/tapo_generic_device_toggle.rs

perfect! This works and is exactly what I was looking for. Thank you so much!


Confused terminology: resolve and fulfill

In 2.3, we seem to be defining resolution as the state transitioning out of pending, into fulfilled or rejected. However, in <IP_ADDRESS> we specify that the two callbacks supplied should be resolvePromise and rejectPromise. To my understanding, resolvePromise is actually deterministically fulfilling the Promise. Should these more accurately be named fulfillPromise and rejectPromise to closer match our definitions of fulfillment vs resolution?
This may appear to be a minor issue, but this recommendation seems to have guided MDN's documentation to suggest the following Promise callback names:
new Promise(function(resolve, reject) { /* ... */ });

Furthering my concern, I've recently had conversations with other Node.js & JavaScript developers that have suggested the community has moved away from the fulfilled terminology and onto the resolved terminology, which I can only attribute to MDN's misleading documentation.
I'd like to tighten up this terminology in this specification, creating a clear distinction between these terms, and ideally propagate said clarifications to MDN and any other documentation confusing these terms. What do you think, contributors?

However, in <IP_ADDRESS> we specify that the two callbacks supplied should be resolvePromise and rejectPromise. To my understanding, resolvePromise is actually deterministically fulfilling the Promise.

in <IP_ADDRESS> resolvePromise does resolving the promise rather than fulfilling I.E. if the argument is a thenable/promise its value will become the fulfilled value rather than the promise. Fulfill takes whatever value as it is, without considering if it's a promise or thenable.

I think the reason it’s called resolve its that you can pass a rejected Promise to resolve(), i.e. it does in fact not necessarily make the Promise fulfilled:
new Promise((resolve, reject) => {
    resolve(Promise.reject('ABC'));
})
// => rejected Promise with reason 'ABC'

Thank you for the clarification, guys. This makes perfect sense. I wasn't thinking about resolving with a rejected Promise.


iOS, with the new fix the picker only works in darkmode

Hello,
I have been testing the plugin and I found that with the fix to work with dark mode this happens in light mode.

https://github.com/PingAK9/Mobile-Dialog-Unity/blob/master/native-dialog/Assets/Plugins/iOS/PopupNative/IOSNativeDatePicker.mm
Can you try fix on this file (about at line 80)? Edit directly on your Xcode. (You do not need rebuild unity).

Hello PinkAK9,
What should i replace to work in light and dark mode?
`   UIView *darkView = [[UIView alloc] initWithFrame:CGRectMake(0, vc.view.bounds.size.height, [self GetW], 260)];
darkView.alpha = 1;
darkView.backgroundColor = [UIColor blackColor];
darkView.tag = 9;
UIView *whiteView = [[UIView alloc] initWithFrame:vc.view.bounds];
whiteView.alpha = 1;
whiteView.backgroundColor = [[UIColor alloc] initWithRed:1 green:1 blue:1 alpha:0];
whiteView.tag = 8;`

Did you have any success in fixing it ?

Did you have any success in fixing it ?

Nop

https://github.com/PingAK9/Mobile-Dialog-Unity/blob/master/native-dialog/Assets/Plugins/iOS/PopupNative/IOSNativeDatePicker.mm
Can you try fix on this file (about at line 80)? Edit directly on your Xcode. (You do not need rebuild unity).

Can you explain better how to do that?

adding this solved it for me
darkView.backgroundColor = [UIColor whiteColor];
if (@available(iOS 12.0, *)) {
    if (darkView.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
        darkView.backgroundColor = [UIColor blackColor];
    } else {
        darkView.backgroundColor = [UIColor whiteColor];
    }
}

@nimrodbens  I don't know what i did wrong but mine is like this

sorry i only tested it on the date picker. not time picker.
but eventually i ended up not using this tool, because it broke my android project. it didn't even build in unity when the platform was android. did you guys not experience this?

@nimrodbens No on android is working fine, what tool are you using to solve this problem?

didn't find anything else that works. are you using the latest unity version and all? maybe i'm missing something?
i added the NativePopupPlugin.jar file to the Plugins/Android folder and also copied the MobileNative folder to my Assets folder.

I'm using Unity 2020.1.3 can you send me the error?

i just tested the time picker and it works great for me both on light/dark mode.
in file IOSNativeDatePicker.mm in Xcode, under this line (i think it's line 76):
darkView.alpha = 1;

add this code:
if (@available(iOS 12.0, *)) {
    if (darkView.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
        darkView.backgroundColor = [UIColor blackColor];
    } else {
        darkView.backgroundColor = [UIColor whiteColor];
    }
} else {
    darkView.backgroundColor = [UIColor whiteColor];
}

sorry you can just change the code in Plugins/iOS/PopupNative/IOSNativeDatePicker.mm and then build again in unity.
if that doesn't work you can change it in Xcode.

also somehow android now builds for me. if that error will reoccur i will send you the error. thank you!

i created a pull request to fix this thing. it's my first time creating a pull request so i hope i got things right in terms of how to create it.
https://github.com/PingAK9/Mobile-Dialog-Unity/pull/11

The problem occurs in iOS 14

it happened to me as well on iOS 13 and what i wrote fixed it. i didn't check it on iOS 14 though.. if i will get a chance i will update about it. currently i don't have a setup for iOS 14.

just tested it on iOS 14 as well and it works great both on light/dark mode.

Thank you @nimrodbens. I merged your PR.


Added support for multiple header value in API Gateway

Last October AWS announced support for multi-value headers.
Since version 1.8.1, aws-lambda-go package events supports multi-value headers as map[string][]string.
This is particularly useful for setting multiple cookies. This is a quick fix proposal.

How do you use this library
can someone add full route request with parsed response

@davidfaynzilberg check out the readme, there's an example. It's basically a drop-in replacement for net/http for Lambda


Copy over instructions from helm-get-started tutorial

In #1902 it was discovered that the part of the tutorial where
PODINFO_UI_COLOR was changed didn't actually work. So we're
using the same instructions as in the Helm tutorial now, modulo
the namespace (default vs flux) change.

cc @stefanprodan

@dholbach how did you test the color change? If you use curl it should return a json with the right color

@dholbach how did you test the color change? If you use curl it should return a json with the right color

I opened it in a browser. It was still green.

@dholbach how did you test the color change? If you use curl it should return a json with the right color

I opened it in a browser. It was still green.
https://github.com/weaveworks/flux/pull/1912/files#diff-15622267c2ec3db7451cdecfe25640b9L138


update coding-conventions url

This PR is a

[ ] Feature Implementation
[ ] Bug Fix
[x] Documentation

What this PR does / why we need it:
Which issue(s) this PR fixes

Fixes #
Please leave this checklist in the PR comment so that maintainers can ensure a good PR.
Merge Checklist:

[ ] New feature

[ ] Tests
[x] Documentation

[ ] SVCat CLI flag
[ ] Server Flag for config

[ ] Chart changes
[ ] removing a flag by marking deprecated and hiding to avoid
breaking the chart release and existing clients who provide a
flag that will get an error when they try to update

@vincepri


Add required capabilities to delivery service structure

This PR adds the required capabilities into the deliveryservice structure.

Which Traffic Control components are affected by this PR?

Documentation
Traffic Ops

What is the best way to verify this PR?

Make CRUD calls to the delivery service API and make sure that you can add, remove, modify and get required permissions as part of the DS structure.
Make sure all the tests pass.
If this is a bugfix, which Traffic Control versions contained the bug?

master

PR submission checklist

[x] This PR has tests
[x] This PR has documentation
[x] This PR has a CHANGELOG.md entry
[x] This PR DOES NOT FIX A SERIOUS SECURITY VULNERABILITY (see the Apache Software Foundation's security guidelines for details)

needs conflict resolution to run GHA

@srijeet0406 TestDeliveryServicesRequiredCapabilities is entirely commented out
https://github.com/apache/trafficcontrol/blob/319283608617c7c92db5daf0ccfd0c9a42a08905/traffic_ops/testing/api/v5/deliveryservices_required_capabilities_test.go#L28-L31
Also, the API tests still try to create and delete DS required capabilities.


Mat Finalizer Missing?

Using OpenCvSharp3-AnyCP <IP_ADDRESS>80830 Nuget, I had wanted to have a few asynchronous tasks read operating on an OpenCV Mat that was returned from a single source.
The Matrix is constructed using new Mat( int rows, int columns, MatType type).
I assumed that there was a finalizer in place for garbage collection to call Dispose() if the matrix went out of scope.  However, it doesn't seem to be the case, and I don't see a ~Mat finalizer in the source.
Is there a reason for not having a finalizer on Mat?

The base class of Mat has its finalizer (destructor).
However, in C#, destructor behavior (GC behavior) may be different from your understanding.

There are 3 reason why GC is called (https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals#conditions_for_a_garbage_collection):
-The system has low physical memory.
-The memory that is used by allocated objects on the managed heap surpasses an acceptable threshold.
-The GC.Collect method is called.
Since usually most of the memory of "Mat" is allocated in the unmanaged space, GC simply doesn’t see it.
So if you do not additionally allocate much manged memory in your program, GC will not run. Hence you should consider calling it "manually" by GC.Collect() once in a while.

Thanks for the clarification.  I should've realized that the unmanaged memory was piling up too quickly while GC wasn't seeing a need to do any garbage collection so I was filling up my heap.
Looks like all my code will need to be more explicit about calling release/dispose.  So much for being lazy about it.

Using GC.AddMemoryPressure is one solution. However, since the method is mutual exclusion, a performance degradation may occur on multi-threaded environment.
And it is difficult to always monitor the amount of memory used by Mat.
https://docs.microsoft.com/en-us/dotnet/api/system.gc.addmemorypressure?view=netframework-4.7.2

Is there a better solution for this bug?
Except gc


Build errors on latest rust nightly

   Compiling rustbox v0.2.9
/Users/sameerdhar/.cargo/registry/src/github.com-1ecc6299db9ec823/rustbox-0.2.9/src/rustbox.rs:122:32: 122:37 error: explicit lifetime bound required
/Users/sameerdhar/.cargo/registry/src/github.com-1ecc6299db9ec823/rustbox-0.2.9/src/rustbox.rs:122     Opt(InitOption, Option<Box<Error>>),
                                                                                ^~~~~
error: aborting due to previous error
Could not compile `rustbox`.

$[~] rustc --version
rustc 1.0.0-nightly (29bd9a06e 2015-01-20 23:03:09 +0000)

Yep, I'm seeing this too. Looking into it.

I really dislike debugging rust's lifetime errors :sweat_smile:

You and me both, I tried myself for a bit and had literally no idea what was going on, but I am still learning. Maybe go ask in #rust on irc.mozilla.org?

@gchp: I think Error needs either 'static or Send.

replacing line 122 with this:
    Opt(InitOption, Option<Box<Error + 'static>>),

produces this output:
   Compiling rustbox v0.2.9 (file:///Users/sameerdhar/Documents/projects/personal/rust/rustbox)
src/rustbox.rs:291:29: 291:31 error: cannot infer an appropriate lifetime for automatic coercion due to conflicting requirements
src/rustbox.rs:291                             rg)
                                               ^~
<std macros>:1:1: 6:60 note: in expansion of try!
src/rustbox.rs:287:32: 292:85 note: expansion site
src/rustbox.rs:291:29: 291:31 note: first, the lifetime cannot outlive the expression at 291:28...
src/rustbox.rs:291                             rg)
                                               ^~
<std macros>:1:1: 6:60 note: in expansion of try!
src/rustbox.rs:287:32: 292:85 note: expansion site
src/rustbox.rs:291:29: 291:31 note: ...so that auto-reference is valid at the time of borrow
src/rustbox.rs:291                             rg)
                                               ^~
<std macros>:1:1: 6:60 note: in expansion of try!
src/rustbox.rs:287:32: 292:85 note: expansion site
src/rustbox.rs:287:37: 291:32 note: but, the lifetime must be valid for the call at 287:36...
src/rustbox.rs:287                 *stderr = Some(try!(redirect(
src/rustbox.rs:288                             try!(PipeStream::open(libc::STDERR_FILENO)
src/rustbox.rs:289                             .map_err( |e| InitError::Opt(InitOption::BufferStderr,
src/rustbox.rs:290                                                          Some(Box::new(e) as Box<Error + 'static>)) )),
src/rustbox.rs:291                             rg)
<std macros>:1:1: 6:60 note: in expansion of try!
src/rustbox.rs:287:32: 292:85 note: expansion site
src/rustbox.rs:291:29: 291:31 note: ...so that argument is valid for the call
src/rustbox.rs:291                             rg)
                                               ^~
<std macros>:1:1: 6:60 note: in expansion of try!
src/rustbox.rs:287:32: 292:85 note: expansion site
error: aborting due to previous error
Could not compile `rustbox`.

What do you mean by using Send?

@cevn: I am also facing this issue. He's talking about Send kind. Read this explanation, and this is how it's normally used.
I am not sure how to fix this error though... I guess we have to read the docs and dig deeper to get it done.

redirect in that file also has Box<Error> in its signature.  It will probably require changing in a number of places (you may have tried this already).

Oh good call @pythonesque, that was enough to fix it. I'll make a PR

Just released 0.2.10 with the fix for this.


Added logic to create history tables

questions :

how do you handle the DDL on the base table ?
it may make sense to add a timestamp to the table (rather than use the _version which is a debezium timestamp)


Tenant not filtered in model forms

Suppose I have the following 2 models and a model form
`
class CostCenter(ClientModelMixin, models.Model):
    tenant_id = 'client_id'
    client = models.ForeignKey('accounts.Client', on_delete=models.CASCADE)
    name = models.CharField(max_length=50)
    objects = TenantManager()

class Account(ClientModelMixin, models.Model):
    tenant_id = 'client_id'
    client = models.ForeignKey('accounts.Client', on_delete=models.CASCADE)
    name = models.CharField(max_length=50)
    cost_center = TenantForeignKey(CostCenter, on_delete=models.PROTECT)
    objects = TenantManager()

class CreateForm(forms.ModelForm):
    class Meta:
        model = Account
        fields = ['cost_center']

`
When the model form is rendered it shows all cost centers in the dropdown. I think it happens because the model form is created before the tenant is set and then no tenant filtering is applied.
I can override the init method of every form and set the queryset correctly but this isn't ideal.
How can this be solved?

I think the best option is to subclass ModelForm:
class TenantModelForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        kwargs.setdefault('label_suffix', '')
        super().__init__(*args, **kwargs)

        tenant = get_current_tenant()
        if tenant:
            for field in self.fields.values():
                if isinstance(
                        field,
                        (forms.ModelChoiceField,
                         forms.ModelMultipleChoiceField),
                ) and hasattr(field.queryset.model, 'tenant_id'):
                    # Add filter restricting queryset to values to this
                    # tenant only.
                    kwargs = {field.queryset.model.tenant_id: tenant}
                    field.queryset = field.queryset.filter(**kwargs)

        else:
            raise ImproperlyConfigured('Current tenant is not set. You must '
                                       'have a tenant set when calling a '
                                       'subclass of TenantModelForm')

    def clean(self):
        cleaned_data = super().clean()

        if hasattr(self.instance, 'tenant_id'):
            self.instance.tenant = get_current_tenant()
        return cleaned_data

If you use django-simple-multitenant v3.1.0 or above and define tenant_id using TenantMeta, code from comment above will no longer work, you need to replace:
if isinstance(
...
) and hasattr(field.queryset.model, 'tenant_id'):
...
    kwargs = {field.queryset.model.tenant_id: tenant}

with something like:
from django_multitenant.utils import get_tenant_filters
from django_multitenant.models import TenantModel
...

if isinstance(
...
) and issubclass(field.queryset.model, TenantModel):
...
    kwargs = get_tenant_filters(field.queryset.model)


Bump of-watchdog version to 0.4.2

Signed-off-by: Radoslav Dimitrov<EMAIL_ADDRESS>
Description

Bump of-watchdog version to 0.4.2
Motivation and Context

[ ] I have raised an issue to propose this change (required)

Which issue(s) this PR fixes

Fixes #
How Has This Been Tested?

Not tested yet!
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I've read the CONTRIBUTION guide
[x] I have signed-off my commits with git commit -s
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

LGTM


Travis-CI pylint and flake8 on MacOS

I can get both flake8 and pylint to pass locally but the travis-ci vm's spit out some errors when ever you run it there.   Any solutions I have tried have killed the linux vm's ability to run them as well.  From what I can see this still stems from travis-ci's inability to properly install python on the MacOS vm.
Example failing build is travis-ci

I've fixed the linting errors in the macOS VMs, now only the tests fail.


System.PlatformNotSupportedException","Message":"'CspParameters' requires Windows Cryptographic API (CAPI), which is not available on this platform.

Issue Title
System.PlatformNotSupportedException","Message":"'CspParameters' requires Windows Cryptographic API (CAPI), which is not available on this platform.
Enviroment
Centos 7,Docker ，.Net Core 2.1
General
cause the error code is :"  RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(bitLen, CspParameters);".
The Code is :
     CspParameters CspParameters = new CspParameters();
                CspParameters.Flags = CspProviderFlags.UseMachineKeyStore;

                int bitLen = 1024;
                if ("RSA2".Equals(signType))
                {
                    bitLen = 2048;
                }

                RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(bitLen, CspParameters);
                RSAParameters RSAparams = new RSAParameters();
                RSAparams.Modulus = MODULUS;
                RSAparams.Exponent = E;
                RSAparams.D = D;
                RSAparams.P = P;
                RSAparams.Q = Q;
                RSAparams.DP = DP;
                RSAparams.DQ = DQ;
                RSAparams.InverseQ = IQ;
                RSA.ImportParameters(RSAparams);

I find a similar issue ,so close this.

Oh,It's not a question.

If you're not naming your keys to persist them there's no point in using the CspParameters key creation.  Your code could just be
RSA rsa = RSA.Create();
RSAParameters RSAParams = new RSAParameters();
...
rsa.ImportParameters(RSAparams);

CspParameters is about directly interacting with the Windows crypto libraries, which are only available on Windows.
If you're strongly typed as RSACryptoServiceProvider (which is generally a bad idea, it's the most limited of the RSA types) you can just eliminate the use of the CspParameters parameter... ImportParameters (when the key isn't named) makes a new ephemeral key and imports into that.  And the original key size data is ignored when using ImportParameters.  So, that would leave
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSAParameters RSAParams = new RSAParameters();
...
RSA.ImportParameters(RSAParams);

@bartonjs  Thank you very much !


changed broadcast param on README

New version changed the broadcast param from data to detail.
I'm requesting to change this at the documentation.

I think this may have just been a documentation error (as far as I can tell, it has always been detail). Good catch, thank you.


Add period to force rerun of mcxstudio

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate <manifest>, where <manifest> is the name of the manifest you're submitting?
[ ] Have you tested your manifest locally with winget install -m <manifest>?

Microsoft Reviewers: Open in CodeFlow

/azp run

/azp run


update certbot cron job to request certificate for www.cantusdatabase.org

...as well as just cantusdatabase.org
should fix #1020.

so, some interesting output when I tried to run the updated command with multiple -d flags:
jacob@cantus-db-prod:~$ /usr/local/bin/docker-compose run --rm certbot certonly --webroot --webroot-path /var/www/certbot/ -d cantusdatabase.org -d www.cantusdatabase.org --renew-hook "nginx -s reload"
ERROR:
        Can't find a suitable configuration file in this directory or any
        parent. Are you in the right directory?

        Supported filenames: docker-compose.yml, docker-compose.yaml

jacob@cantus-db-prod:~$ cd ../ubuntu/code/CantusDB/
jacob@cantus-db-prod:/home/ubuntu/code/CantusDB$ /usr/local/bin/docker-compose run --rm certbot certonly --webroot --webroot-path /var/www/certbot/ -d cantusdatabase.org -d www.cantusdatabase.org --renew-hook "nginx -s reload"
Unable to find renew-hook command nginx in the PATH.
(PATH is /usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)
See also the --disable-hook-validation option.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /tmp/certbot-log-q6811rm2/log or re-run Certbot with -v for more details.
jacob@cantus-db-prod:/home/ubuntu/code/CantusDB$ docker-compose exec nginx bash
root@8fbbd1cd51f4:/# nginx -s reload
2023/09/13 22:43:30 [notice] 35#35: signal process started

the above didn't lead to any change in the certificate displayed in the browser. Neither did restarting the containers.

When I quickly checked the docs, it looks like they pass multiple domains differently than you do here...

You're absolutely right - I misunderstood a comment @kqct made on #870. I've updated this.

update: running docker-compose run --rm certbot certonly --webroot --webroot-path /var/www/certbot/ -d cantusdatabase.org -d www.cantusdatabase.org and then restarting the containers worked - our certificates (both for the domain with "www" and without) are now good until mid-December. So the two -d flags work.


Certain Tuya Components now Non-Operational from Hass.io (No Errors)

Home Assistant release with the issue:
0.96.5 & 0.97.2
Last working Home Assistant release (if known):
0.96.5
Operating environment (Hass.io/Docker/Windows/etc.):
Hass.io 183 / Docker / Ubuntu 18.04.3 LTS
Component/platform:
https://www.home-assistant.io/components/tuya/
Description of problem:
9 off Tuya Switch Components Installed and all working originally at 0.96.5
Went on holiday for 3 weeks and returned to 6 off components not working.
All 9 devices work from the phone app and via Google Voice Assistant
Restored to last known working snapshot, no change.
Upgraded to 0.97.2 no change.
No configuration changes took place at any time.
Home Assistant Non-Operational Devices / Operational via Smart Life App & Google App:
WiFi Smart Plug 13A White Double Wall Sockets
https://www.amazon.co.uk/gp/product/B07RLRC33K/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1
Home Assistant Operational Devices / Operational via Smart Life App & Google App:
Smart Plug WiFi Socket TECKIN 16A
https://www.amazon.co.uk/gp/product/B07QN5XY89/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
tuya:
  username: !secret tuya_username
  password: !secret tuya_password
  country_code: 44
  platform: smart_life

Traceback (if applicable):

Additional information:
From what I can see the affected devices all are 2 Gang and have the entity suffixed with _1 or _2.
Non-Operational Entities
switch.02432778c44f339a4c7b_1 | off | friendly_name: Desk Power
switch.02432778c44f339a4c7b_2 | off | friendly_name: Desk Essential Power
switch.02432778c44f339a4e01_1 | off | friendly_name: Left Bench Power
switch.02432778c44f339a4e01_2 | off | friendly_name: Rack
switch.02432778c44f339a4ff0_1 | off | friendly_name: Fridge
switch.02432778c44f339a4ff0_2 | off | friendly_name: Right Bench Power
Operational Entities
switch.20820045bcddc22735ed | unavailable | friendly_name: Wax Melt
switch.33847136807d3a6f85f5 | on | friendly_name: Ice Maker
switch.33847136807d3a6f8922 | on | friendly_name: pfsense
Note - Wax Melt is unplugged but is operational.

Known issue, TUYA APi Changed. Fix in next HA release. #25992


Make key a writable field in the API certificate resource

When updating a certificate in the API it should be possible to update the private key as well, since it is common practice to generate a new private key when requesting a certificate re-issue at the CA.
Currently the Let's Encrypt service - see https://github.com/rancher/rancher/issues/2734#issuecomment-177763643 - needs to keep state on the private key for renewals because the API does neither expose nor allow to update the certificate key. This isn't a problem per se. But if the certificate service container that created cert X is destroyed, the resource for that certificate will become stale: Even though you can update the resource with a renewed certificate by deploying another certificate service container, the private key will not match the new certificate.

:+1:
@vincent99 The missing piece for Let's Encrypt support?

There is also this blocking issue: https://github.com/rancher/rancher/issues/3556
And as discussed in the other thread, an API agent role with permissions for certificate and load balancer schemes is also high on the list. @alena1108
  labels:
    io.rancher.container.create_agent: "true"
    io.rancher.container.agent.role: "certificate-service"

@janeczku that should be relatively easy fix. We'll just have to fix the permissions at this line:
https://github.com/rancher/cattle/blob/6454299777e425a3ed764836a489e30f12a2bd6b/resources/content/schema/user/user-auth.json#L338
c - create
d - delete
"ro" - read only. I still think we shouldn't expose the private key in the API, but not sure if ro can co-exists ti the upgrade, need to try that.
I might not get time to get to work on it, till next week though, so if you are willing to put it in this fix (with some basic test for Update operation), it would be much appreciated.

ro means "read only on create".. it's meant for API key generation, you get the secret value back in the POST response but can't ever get it back again.  In this case the create is providing the secret value so there's not really any reason to send it back in the create response.
I would think you just want cu, but not sure if that's a supported combination.

@janeczku With v0.63.0, could you please test and let me know if it works as expected?

Added new certificate resource
Updated certificate resource with a renewed certificate and new private key using API web interface
Checked that operation succeeded

Works as expected @deniseschannon


refactor(wasm): Refactor wasm component adapter and wasi/wit code

Refactor to move wasi outside the wasi component adapter crate.
Rename the component adapter crate so it can not be confused with the official one.
Remove the ability to build a command version as hermes does not support it.

Why to keep wasi/wit files in two places ? Maybe it make sense to get rid of one copy of them ?

We don't.  I fixed the import path to use a relative reference and fixed the COPY in earthly to put the files at the right point in the build.


coro::thread_pool use lock free concurrent queue

Won't use per reasons on the linked issue for now.