Архив за Июнь 2007

vpn-сервер за NAT

Июнь 13, 2007

Задча ниже.
Дано:
Есть сеть за NAT’ом, наша сетка, в которой мы имеем возможность что-то сделать. (

locale_home_network)
Есть сеть на другой стороне ната, там мы, практически, ни чего сделать не можем. (remote_home_network).
Из locale_home_network в remote_home_network можно ходить только через нат, в обратном направлении вообще ни как.
Сеть locale_home_network имеет доступ еще к одной сети(other_network), к которой пользователи remote_home_network
доступа не имеют, но очень хотят.

Нужно:
Дать доступ к other_network пользователям из remote_home_network

Вот вроде так.)
«Белые решения», типа реального адреса для vpn-сервера и т.д., не подходят)

Ниже то, что я уже придумал.
(далее…)

Сериализация объектов и twisted.spread.pb

Июнь 9, 2007

В принципе там всё просто и в рамках документации, пока объекты примерно таких классов используются:


class basicObject(object):
    def __init__(self):
        print "A bugogoa"

Всё становится гораздо сложнее, когда у нас в объекте появляется ссылка на другой объект, например:


class extendedObject(object):
    def __init__(self):
        self.basicObject = basicObject()

Тут мы на приеме объекта получим InsecureJelly, я примерно догадываюсь почему, но связно объяснить сейчас не могу, может кто расскажет?
В общем встал вопрос, а что делать?
Встал ответ: а хрен его знает.
Я сел. Думать.
Хорошенько подумав решил, что нужно сериализовать self.basicObject руками и слать его уже упакованным в строку, чтоб нидаибались), родилось вот это:


from StringIO import StringIO
import pickle, zlib

class extendedObject(object):
    def setBasicObject(self, basicObject):
        s_basicObject = StringIO()
        pickle.dump(basicObject, s_basicObject)
        s_basicObject.flush()
        self.basicObject = zlib.compress(
                                s_basicObject.getvalue())

zlib.compress здесь для того, чтобы у нас StringIO объекта не оставалось, zlib.compress возвращает сжатую строку.

Ну вот вроде и всё, я не знаю, на сколько такое решение правильное и безопасное, сдается мне, что есть и более прямые пути, просто я о них еще не знаю)

Как только вкурю, как это всё работает «изнутри», то отпишусь.

websvn+utf8

Июнь 7, 2007

Ни как не получилось заставить нормально работать websvn с utf8.
Пришлось сделать quick&dirty патчик, он отключает кеширование логов, проблемы с кодировками именно на этапе кеширования возникают.
diff патча можно взять тут.
После установки необходимо добавить в конфиг строку:
$config->myLocale=’<вашалокаль>’.
например $config->myLocale=’ru_RU.UTF-8′ в моём случае.