Я пытаюсь использовать изолированную песочницу pypy для запуска ненадежного кода python у пользователей моего http-сервера. Кодирование python основано мной, и инфраструктуре необходимо поговорить с процессом на другом сервере. Поэтому я пытаюсь создать сокет для связи. Я нашел пост несколько лет назад, как создать соединение TCP на: Using the socket module in sandboxed PypyКак создать сокет в песочнице pypy
Это выглядит очень многообещающим, но, похоже, не работает для меня:
$./sandbox/pypy_interact.py goal/pypy-c
>>import os
>>fd = os.open("abc", os.O_RDWR|os.O_CREAT)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 2] No such file or directory: 'abc'
>>fd = os.open("tcp://10.0.0.5:5000", os.O_RDWR|os.O_CREAT)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 2] No such file or directory: 'tcp://10.0.0.5:5000'
Я также попытался построить песочницу с модулем _socket по: PyPy ../../rpython/bin/rpython -O2 --sandbox targetpypystandalone --withmod-_socket
Однако на этом ударил утверждают isinstance (ll_ptrtype, PTR), а затем потерпели неудачу.
Есть ли какое-либо решение для подключения tcp в песочнице pypy 2.3.1, или я сделал что-то не так?