- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
<?php declare(strict_types=1);
/**
* This file is part of Swoft.
*
* @link https://swoft.org
* @document https://swoft.org/docs
* @contact [email protected]
* @license https://github.com/swoft-cloud/swoft/blob/master/LICENSE
*/
namespace Database;
use Swoft;
use Swoft\SwoftComponent;
/**
* Class AutoLoader
*
* @since 2.0
*/
class AutoLoader extends SwoftComponent
{
/**
* Class constructor.
*/
public function __construct()
{
parent::__construct();
Swoft::setAlias('@database', dirname(__DIR__) . '/database');
}
/**
* @return array
*/
public function getPrefixDirs(): array
{
return [
__NAMESPACE__ => __DIR__,
];
}
/**
* @return array
*/
public function metadata(): array
{
return [];
}
}
https://github.com/swoft-cloud/swoft/blob/master/database/AutoLoader.php
MAPTbIwKA 10.11.2020 18:56 # 0
Fike 10.11.2020 21:57 # +2
Saehrimnir 10.11.2020 22:10 # 0
MAKAKA 11.11.2020 01:54 # 0
https://github.com/swoft-cloud/swoft/blob/master/app/Helper/Functions.php
хотя есть и ООПшный
https://github.com/swoft-cloud/swoft/blob/master/app/Common/MyBean.php
MAKAKA 11.11.2020 02:32 # 0
Стракеровый сайт все еще забанен
Saehrimnir 11.11.2020 06:51 # 0
bormand 11.11.2020 07:19 # 0
3_dar 11.11.2020 13:54 # 0
Xepyc_DJIuHyc 11.11.2020 07:35 # 0
MAPTbIwKA 11.11.2020 13:57 # 0
gost 11.11.2020 12:46 # 0
3_dar 11.11.2020 13:55 # 0
MAPTbIwKA 11.11.2020 14:00 # 0
OCETuHCKuu_nemyx 11.11.2020 15:16 # 0
MAPTbIwKA 11.11.2020 15:19 # 0
bormand 11.11.2020 15:27 # 0
gost 11.11.2020 15:29 # 0
Fike 11.11.2020 15:45 # 0
MAPTbIwKA 11.11.2020 16:52 # 0
жизнь простого пыхаписта
Kypumca_rpuJlb 11.11.2020 16:13 # 0
MAPTbIwKA 11.11.2020 16:52 # 0
guestinxo 11.11.2020 18:41 # +1
guestinxo 11.11.2020 18:46 # +1
bormand 11.11.2020 18:47 # +2
guestinxo 11.11.2020 19:33 # +1
guestinxo 11.11.2020 19:36 # +1
Fike 12.11.2020 02:25 # +1
bormand 12.11.2020 08:38 # 0
j123123 12.11.2020 09:40 # 0
bormand 12.11.2020 09:43 # 0
Просто чуваков заебало, что в HTTP/1.0 на каждом запросе три хендшейка последовательно идут (TCP затем TLS затем HTTP). В HTTP/1.1 и HTTP/2 пытались это как-то уменьшить, но из-за TCP всё равно работало через жопу и последовательно. Вот теперь решили полностью снуля запилить, поклеив все три слоя в один.
MAPTbIwKA 13.11.2020 21:43 # 0
gost 13.11.2020 21:44 # 0
guest6 14.11.2020 00:07 # 0
bormand 13.11.2020 21:45 # 0
guest6 14.11.2020 00:06 # 0
bormand 14.11.2020 00:13 # 0
Проблемы с пробиванием NAT начинаются когда у тебя сервер за NAT (что для HTTP выглядит как извращение) или вообще оба (пи-ту-пи).
guest6 14.11.2020 00:15 # 0
bormand 14.11.2020 00:16 # 0
guest6 14.11.2020 00:17 # 0
Если поверх UDP (то есть там есть UDP порт) то разумеется взлетит, и пройдет через любой нат
Если же нет, то нужна спец поддержка от NATа, как для некоторых протоколов типа GRE
>Многие провайдеры такие пакеты вообще дропают.
Если у провайдера нету NAT, то может и не дропать.
Если есть, то да: может оказаться, что ты в жопе. Я поел говна во времена PPTP с этим.
смотри на все модули со словом nat
https://elixir.bootlin.com/linux/v4.1/source/net/ipv4/netfilter
А еще провайдеры грохают фрагментированные пакеты, от чего я отсосал с IPSEC на w7, кажется я про это ныл уже, могу еще раз поныть
bormand 14.11.2020 00:22 # 0
guest6 14.11.2020 00:25 # 0
ESP работает поверх IP вроде и тоже может не пройти.
> С инкапсуляцией в UDP дропали ESP после хендшейка
DPI ломался?) а с AH работало?
У меня отсос был в том, что IPSEC фрагментил пакеты.
Современный IPSEC умеет не фрагментить, но это умеют только w10 и storngswan (они работают) а w7 не умеет.
Но вообще NAT (кроме полного ната по адресу -- фул кон или как он там) это преступление. Он портит добрую половину функицональности сети, и требует костыли типа сокс, upnp итд
bormand 14.11.2020 00:36 # 0
Блядь, вот тоже гениальный протокол. Я как-то реализовывал его в своей туле, там чуть ли не XML приходится формировать чтобы роутер найти и сраный порт попросить прокинуть.
З.Ы. Хотя протокол, конечно, совсем не ради проброса портов создавался. Он больше о телевизорах и прочей мультимедии.
guest6 14.11.2020 00:39 # 0
В моем децтве не было никаких upnp, и потому на роутере подымался socks (dante socks, как ща помню) и ты настраивал его в клиенте, например чтобы ходить в "активном" режиме на FTP сервера за натом
>телевизорах
у него вообще главный смысл же в том, что бы мультикастом найти говно, в том числе и вроутер?
gost 14.11.2020 00:48 # 0
Это «SSDP». Забавная штука, в своё время через него проводили задорные амплифицированные (D)DoS-атаки на сотни гигабит.
MAKAKA 14.11.2020 00:50 # 0
А что, мультикасты ходили через Internet?
AFAIK, послать мультикаст по интернету обычно нельзя: Можно попросить роутера вступить в группу через IGMP, и далее он может стримать тебе мультикаст получая данные от источника через PIM (там еще есть место, куда всё стекается, с поэтичным названием "рандеву поинт")
gost 14.11.2020 00:39 # 0
guest6 14.11.2020 00:43 # 0
http://upnp.org/resources/documents/UPnP_UDA_tutorial_July2014.pdf
есть еще бунжур (от ябла) и ws-discovery (это а-ля SOAP на основе XML от MS в качестве замены бродкаста и браузинга сетей в NEtBIOS)
gost 14.11.2020 00:47 # 0
bormand 14.11.2020 00:47 # +1
Всмысле я туда какие-то полузахардкоженные строки кидал и парсил чуть ли не strstr'ом, не заморачиваясь с настоящей либой для хмл. Благо почти всё константное.
gost 14.11.2020 00:50 # 0
bormand 14.11.2020 00:51 # +1
gost 14.11.2020 00:53 # 0
MAKAKA 14.11.2020 00:51 # +2
>парсил чуть ли не strstr'ом,
как PHPшник
bormand 14.11.2020 00:52 # 0
MAKAKA 14.11.2020 00:53 # 0
я как-то парсил XML на сишке, пися спортивного интереса ради плагин к фару для одного нашего говносервиса. Я помню, что была какая-то либа.. чуть ли не libxml.. причем там был не dom, а sax вроде
gost 14.11.2020 00:54 # 0
MAKAKA 14.11.2020 00:55 # 0
gost 14.11.2020 00:55 # 0
guest6 14.11.2020 00:56 # +1
bormand 14.11.2020 00:57 # +1
guest6 14.11.2020 00:59 # 0
и вообще: сетевой байтордер не обязан совпадать с хостовым
Вообще если без шуток, то для статически типизированных языков сетевой протокол должен предоставлять тул для генерации структуры, чтобы я его заполнил, и потек
А когда я вручную собираю XML или JSON подглядывая в доку, и боясь неверно назвать таг или имя поля --это пидарство
guest6 14.11.2020 01:04 # +1
Но уже к середине 70-х везде были .h файлы
Прошло сорок пять лет, и вот мои коллеги-жабоебы пишут на котлине
govnoJson["drisnja"] = "22"
а с другой стороны пишут
govnoJson["drisnja"].getInt()
Человечество деградирует
guest6 14.11.2020 00:30 # 0
У меня в молодости стояли всякие сервера за натом на роутере (мы называли их "проброски") и это был не фул кон нат, а нат по порту, и всё вроде работало..
bormand 14.11.2020 00:33 # +1
Ну а если у тебя белая айпишка и DNAT на своём железе - вай нот, всё норм должно быть.
guest6 14.11.2020 00:37 # 0
Но даже со своим локальным натом (да и с провайдеровским фул кон) можно остосать с FTP, если его не настроить.
Выглядит это так:
Пусть все запросы на 1.2.3.4 перебрасываются на сервер 192.168.1.10. Там крутится FTP.
К нему подключается питух, и хочет отправить файл.
FTP сервер видит подключение с 192.168.1.1, и открывает порт 1234 и сообщает клиенту: "я жду тебя на 192.168.10:1234", и клиент ожидаемо идет нахуй.
Лечится сообщением FTP его публичного адреса (pasv_address или как-то так)
bormand 13.11.2020 22:21 # 0
gost 13.11.2020 22:23 # 0
bormand 13.11.2020 22:26 # 0
А ведь первый опыт - самый важный для посетителя сайта.
bormand 13.11.2020 22:26 # 0
Ну кстати частично и про безопасность, там же TLS интегрирован если верить вики.
gost 13.11.2020 22:29 # 0
Fike 12.11.2020 11:07 # 0
BoJlLLle6HuLLa 11.11.2020 19:37 # +2
guest6 12.11.2020 02:28 # +2