Ve středu v 17:00 byl ve Francii zablokován přístup k PornHubu a dalším webům pro dospělé. K 17:30 došlo k nárůstu počtu registrací Proton VPN o 1 000 % [𝕏]. Dle nového francouzského zákona jsou provozovatelé těchto webů povinni ověřovat věk uživatelů prostřednictvím průkazu totožnosti nebo platební karty.
Před 32 lety, 6. června 1993, byl spuštěn první český WWW server (ještě pod TLD .cs), pro potřeby fyziků zabývajících se problematikou vysokých energií.
Střílečku Borderlands 2 lze v rámci výprodeje série Borderlands na Steamu získat zdarma napořád, když aktivaci provedete do 8. června 19:00.
Byla vydána nová verze 2.22 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.
Canonical Launchpad vypíná systém správy verzí Bazaar. Vývojáři mohou své repozitáře do 1. září přemigrovat na Git.
Byla vydána nová verze 2.53.21 svobodného multiplatformního balíku internetových aplikací SeaMonkey (Wikipedie). Přehled novinek v poznámkách k vydání.
Petici za povinné zveřejnění zdrojových kódů softwaru použitých ve veřejné správě lze podepsat na ePetice.
Na Indiegogo byla spuštěna kampaň na podporu linuxového telefonu Liberux NEXX s osmijádrovým procesorem Rockchip RK3588S, 32 GB LPDDR4x RAM a 6.34″ 2400×1080 OLED displejem. Cena telefonu je 1 310 eur.
Miro Hrončok vyhrál volby do Fedora Council. Mezi sedmi kandidáty, kteří se ucházeli o dvě křesla, nakonec získal nejvíce hlasů - 1089. Česká komunita má tak po delší době opět zástupce v nejvyšším orgánu Fedory.
Redox OS (Wikipedie), tj. mikrokernelový unixový operační systém naprogramovaný v programovacím jazyce Rust, nově podporuje X11 a GTK 3.
Ahoj, mám dotaz ohledně jednoduchého problému. V TCP každý accept()
vytváří na straně serveru nové spojení, které má stále stejnou místní adresu i port. Dá se něčeho podobného docílit na straně klienta?
Úkol je jednoduchý: Démon, který (zejména kvůli firewallu) bude přijímat i navazovat TCP spojení pořád ze stejného portu. Každý démon může chtít navázat spojení (paralelně) s několika dalšími, případně přijmout několik příchozích spojení.
Strinktně vzato, TCP spojení je čtveřice (adresa, port, adresa, port). Proto si myslím, že by neměl být problém z jedné adresy a z jednoho portu navázat víc spojení, pokud se každé z nic aspoň v jednom prvku čtveřice odlišuje. Na Linuxu tohle bez problémů funguje, ale na Solarisu ne.
Například tato (pokusná) inicializace na Linuxu projde zcela bez problémů:
sock1 = socket( AF_INET6, SOCK_STREAM, IPPROTO_TCP ); sock2 = socket( AF_INET6, SOCK_STREAM, IPPROTO_TCP ); setsockopt( sock1, SOL_SOCKET, SO_REUSEADDR, &ONE, sizeof( ONE ) ); setsockopt( sock2, SOL_SOCKET, SO_REUSEADDR, &ONE, sizeof( ONE ) ); bind( sock1, (const struct sockaddr *) &addr, sizeof( addr ) ); bind( sock2, (const struct sockaddr *) &addr, sizeof( addr ) );
Pak lze bez problémů vytvořit dvě TCP spojení z téže adresy a z téhož portu ke dvěma různým strojům. To jsem důkladně otestoval. Oba sockety můžou odesílat i přijímat data, všechno se správně doručí a prostě to funguje.
Nicméně na Solarisu nastal problém. (Ne že bych to nečekal...) Druhý bind()
mi hlásí Address already in use
. Vždyť jsem přece nastavil SO_REUSEADDR
, tak v čem je chyba? Taky jsem zkoušel nastavit setsockopt()
až po prvním bind()
, ale nepomolo to.
Solaris měl kdysi bug, který byl nejspíš odstraněn natolik radikálně, že SO_REUSEADDR
už prostě nefunguje. Nebo možná funguje, ale neumožňuje vícenásobný bind()
na in6addr_any
? Možná, ale pak je tahle vymoženost pro mě bezcenná.
Nejdůležitější otázka nakonec: Nemá se náhodou problém tohoto typu řešit nějak jinak? Připadá mi, že každý systém si vykládá SO_REUSEADDR
po svém. Pak tudy cesta nevede, protože takový kód není přenositelný.
Aha, tak možná je opravdu problém s tou wildcard adresou. Linuxu to kupodivu nevadí, zatímco Solarisu ano. Solaris tedy zřejmě neumí navázat několik TCP spojení ze stejné adresy a stejného portu. Nebo jsem něco přehlédl?
Tak tohle vypadá dost beznadějně. Někdo už tenhle problém řešil. A nejspíš nevyřešil.
Vzdávám to. Když i Jabber provozuje serverová spojení z náhodných portů, asi to má svůj důvod...
[root@charon andrej]# netstat -atpn | grep 5269
tcp 0 0 :::5269 :::* LISTEN 6081/java
tcp 0 0 ::ffff:95.82.129.:39267 ::ffff:62.109.141.:5269 ESTABLISHED 6081/java
tcp 0 0 ::ffff:95.82.129.:54748 ::ffff:81.2.199.30:5269 ESTABLISHED 6081/java
tcp 0 0 ::ffff:95.82.129.1:5269 ::ffff:88.86.102.:46082 ESTABLISHED 6081/java
tcp 0 0 ::ffff:95.82.129.1:5269 ::ffff:81.2.199.3:57781 ESTABLISHED 6081/java
tcp 0 0 ::ffff:95.82.129.:38551 ::ffff:88.86.102.5:5269 ESTABLISHED 6081/java
tcp 0 0 ::ffff:95.82.129.1:5269 ::ffff:208.68.163:45581 ESTABLISHED 6081/java
tcp 0 0 ::ffff:95.82.129.:52673 ::ffff:208.68.163.:5269 ESTABLISHED 6081/java
Ten zvláštní multicasting, který jsem chtěl, by sice na Linuxu fungoval, ale to je chabá útěcha. Asi se budu muset vybodnout na ohleduplnost vůči firewallu a taky používat implicitní porty.
Ach jo, zase další den času v háji.
Tiskni
Sdílej: