Wikimedia Maps Layer (open street maps) getting 429 error (trouble connecting to ssl with wget) - openstreetmap

Trying to trace down why The wikimedia map layer is down, wondering if anyone has heard anything. Google wasn't very helpful
This has been broken since at least yesterday for our maps : https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}{r}.png
The site is up, trying to find out if they changed how the layers were pulled?
https://maps.wikimedia.org/#4/40.75/-73.96
I used wget and getting this
Resolving maps.wikimedia.org... 208.80.154.240
Connecting to maps.wikimedia.org|208.80.154.240|:443... connected.
OpenSSL: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
Unable to establish SSL connection.```

It does seem as if your apllication does not support modern TLS protocols but tries to connect with the really old TLS 1.0 that is not supported anymore by wikimedia maps.
Upgrade your TLS to version 1.2 and you should be fine.
Edit: wikimedia now blocks map access for external users. See https://phabricator.wikimedia.org/T245145#5880898
I don't understand why this produces a TLS error, but the likely reason for your problems is the 429 http error code because of wikimedias blocking external projects. You'll need a different tile provider.

Related

Grpc C++ DNS overrides

I am trying to connect a grpc-c++ client to a grpc-c++ server. I already have a grpc-java client connected with working TLS so the server should be functioning correctly.
However inside grpc-java there is a method when building a channel named 'overrideAuthority'. From the documentation the method
"Overrides the authority used with TLS and HTTP virtual hosting. It does not change what host is actually connected to. Is commonly in the form host:port."
I was attempting to find something similar for the c++ client. However, so far all I have found is a function named set_authority() on the grpc::ClientContext as well as two options used with grpc_channel_args which are GRPC_ARG_DEFAULT_AUTHORITY and GRPC_SSL_TARGET_NAME_OVERRIDE_ARG.
None of these seem to have any effect on the authority at all. The server will always reject the connection with the error
No match found for server name: 0.0.0.0.
P.S. I am aware that I can add it to the common name on the certificate (and I will if I need to). However, if possible I would like to follow the same pattern as the grpc-java client.
GRPC_SSL_TARGET_NAME_OVERRIDE_ARG is the right channel arg. Please take a look at some of the tests https://github.com/grpc/grpc/blob/470a3066c74abc7c2a0a2cab3b35000b27b51af1/test/core/end2end/fixtures/h2_ssl.cc#L133
https://github.com/grpc/grpc/blob/470a3066c74abc7c2a0a2cab3b35000b27b51af1/test/cpp/end2end/xds/xds_end2end_test.cc#L1348
Additionally, if I remember correctly, this log just serves as a warning and does not result in disconnections. Please collect some more verbose logs https://github.com/grpc/grpc/blob/master/TROUBLESHOOTING.md. That might give more hints as to what's going on here.

asp.net 5 kestrel : sometime, unable to bind socket on a free port

While trying to start an asp.net 5 kestrel website, I sometime got this error :
Failed to bind to address http://localhost:5000
"An attempt was made to access a socket in a way forbidden by its access permissions."
The only way to solve the issue is to reboot the computer.
The port (5000) is not in use in TCPView or NETSTAT.
I tried to explicitly allow the app in the windows firewall, but no luck either. Same with fully deactivating the firewall.
I got this issue with a published website (kestrel) without any visual studio, and also in debug from VS2019.
My customers also have the issue around 1 day in a month, without any apparent reason.
Do you have any idea to help me track down this issue ?
Thanks.

Possible reasons why my shadowsocks not working on virmach's server?

I'm a new comer to using the overseas server. Recently I bought a vps from virmach in order to see foreign websites like google and wiki.
I've been trying for a long time configuring my shadowsocks on my server.
However, when I was using shadowsocks-qt5 to connect my server, it was timeout.
And of course I can't access google correctly.
What I want to ask is the reason why I failed.
Here are things that I do remember to do:
stop the firewall on both computers;
build the .json file which I referred to blogs in China.
Here are the outline of my shadowsocks.json on my server:
{
"server":"0.0.0.0",
"server_port":8388,
"local_address":"127.0.0.1",
"local_port":1080,
"password":"XXXX",
"timeout":600,
"method":"aes-256-cfb"
}
Other useful(maybe) information:
my client OS version: Ubuntu 18.04.3 LTS
my server OS version: Ubuntu 16.04.6 LTS
the client I choose is from: https://github.com/shadowsocks/shadowsocks-qt5
I could not help but wandered, are there any other possible reasons I've forgot? Can anyone inform me some helpful details to solve this puzzling problems? Thanks a lot!
I have not set up my own VPS but I have instead subscribed to the server provided by caonima.io, so I can't speak for any server related issues. Additionally, I have no affiliation with caonima.io. I did however successfully set up my client on Ubuntu 16.04 after having some issues connecting to GFW-blocked (China's Great FireWall) websites.
From what I understand from my solution, the client configuration is NOT the only step of setup. There are two layers of proxy access that need to be completed:
Client Configuration. Configure your client with the server and connection information. A successful connection looked like this for me with my command line interface
shadowsocks-libev command line client successful connection
System or Browser Proxy Configuration. You will need to configure either your browser or web access tool to use a proxy, or set system-wide proxy settings. To set system wide proxy settings, go to system settings > network > network proxy and enter the proxy information. Setting Socks host to localhost:1080 resulted in successful GFW-blocked website access (as shown below)!
Ubuntu network settings proxy manual configuration

Bluetooth: how to create a socket for connecting to a service with specific UUID with Bluez?

I am working with the BlueZ libraries for managing the bluetooth stack under linux. I am trying to open a socket that should connect with a specific service whose UUID is known. I have successfully tried to open sockets between a server and a client following the examples here:
http://people.csail.mit.edu/albert/bluez-intro/c404.html
where it is also described how to explore services in a remote host; however, what I cannot figure out is how to specify the UUID while connecting the socket. This is something quite straightforward on other contexts, as it happens when using Android libraries; however, with BlueZ I haven't found examples on the web.
Thanks for the help!
Stefano
-- added some details in a reply... don't know if it's right or not; if not, sorry
thanks for your help!
In my post I said I wanted to connect a socket with a specified UUID since I had in mind a function like createRfcommSocketToServiceRecord as can be found in:
http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#createRfcommSocketToServiceRecord%28java.util.UUID%29
which returns a socket given a certain UUID. I am developing two softwares, one being the client and the other the server, therefore it's a service I am creating, not a standard one. I publish such service on the server with a specified UUID, and I would like to connect to it from the client. The server is running fine, since with an android platform, exploiting the mentioned createRfcommSocketToServiceRecord method, I am able to connect to the server with the right service.
The example you posted is very clear as well, but unfortunately it is in Python, while (I forgot to point out) I am using Bluez as a C library. I am able to exploit the SDP and inspect services on a remote server; however, when it is the time of setting up the socket, I don't see how to specify the port. I thought about the rc_channel, but as far as I understood it is the bluetooth channel (ranging from 1 to 11 or something similar). Could you please point out Where I should be able to specify the port while creating the socket in the client? And where am I able to find the right port in the complex structure the sdp is dealing with? -- referred to:
http://people.csail.mit.edu/albert/bluez-intro/x604.html
Thanks again for the help!
You don't connect sockets by UUID. You use a socket to connect to remote device and browse its SDP to discover the UUIDs it offers, and map that to a socket port. Here's an example of this process using PyBluez, python wrappers above BlueZ
http://people.csail.mit.edu/albert/bluez-intro/x290.html

No internet while running application in android emulator

I get internet access on the browser but when i run the application, the application doesnt get internet. I have used internet permissions.
Actually the problem is because of proxy settings.
Early there was no internet connectivity on the browser, but later I set the proxy in APN and internet started working on the browser. But the application doesnt get internet.
Any solution for this?
** EDITED Apr 13th 2010 **
To get the proxy working with WebView, you apparently need to call WebView.enablePlatformNotifications()
According to the HttpURLConnection docs (Proxies heading):
Proxies
By default, this class will connect
directly to the origin server. It can
also connect via an HTTP or SOCKS
proxy. To use a proxy, use
URL.openConnection(Proxy) when
creating the connection.
You should be able to enable proxy use by setting the system properties described here, however this may not work on Android - the bug report on Proxy support doesn't go into much detail on where the bug is (e.g. property not set vs property not used)
Proxy use can also be controlled using ProxySelectorRoutePlanner, which is used by AbstractHttpClient.setRoutePlanner. Unfortunately, this means re-writing the httpConnection code to use DefaultHttpClient
Hope this helps,
Phil Lello