Сделать два приложения
1. серверное на сокетах, прослушивающее заданный TCP порт.
По факту входящего соединения запускать второе приложение, деллигировать ему сокет и продолжать слушать порт
2. Работает в два потока.
Поток А:
Разбирает client_hello в tls находит доменное имя и согласно таблицы переадресаций домен-ip устанавливает во втором потоке (В) соединение с указанным ip и в дальнейшем передает полученные с входящего подключения данные для отправки через второй поток (В), а так же отправляет данные полученные из первого потока в сокет входящего соединения
Поток В:
Устанавливает исходящее соединение с IP полученным из потока А, отправляет данные полученные от потока А, полученные из сокета данные передает потоку А для отправки
Доп вопросы:
- имеется ли опыт работы с пайпами/именованными каналами в линукс?
- имеется ли опыт передачи дубликата сокета между родственными процессами в линукс?