The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

OpenNews: Установка локального WindowsUpdate сервера под Unix, opennews (??), 02-Окт-04, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


107. "OpenNews: Установка локального WindowsUpdate сервера под Uni..."  +/
Сообщение от crazyElephantemail (?), 09-Окт-04, 16:58 
проблема в следующем
если wget можно обяснить что он работае через прокси
то функции send_head (из файла sus_utils.py, которая вызывается в файле sus_sync.py строкой ---> res = send_head("%saucatalog1.cab"%mssus_path)<--)
это как-то по барабану !?
прошу людей знающих в python, либо автора решить эту проблему
постольку поскольку внутренний сервак не имеющий выхода в инет (и никогда его не получит, только если через прокси) пытается забрать обновления и вываливается с ошибкой
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
i-worm-netsky# python sus_sync.py
Traceback (most recent call last):
  File "sus_sync.py", line 35, in ?
    res = send_head("%saucatalog1.cab"%mssus_path)
  File "/usr/www/autoupdate/sus_utils.py", line 350, in send_head
    sock.connect((host, int(port)))
  File "<string>", line 1, in connect
socket.error: (60, 'Operation timed out')
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
был бы очень презнателен если бы решение проблемы выслали в указанный почтовый ящик
P.S. заранее благодарю
Ответить | Правка | Наверх | Cообщить модератору

108. "OpenNews: Установка локального WindowsUpdate сервера под Uni..."  +/
Сообщение от crazyElephantemail (?), 09-Окт-04, 20:05 
отвечаю на свой вопрос, может кому пригодиться
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
в sus_consts.py добавил строки
UseProxyServer = True|Flase #на выбор, по обстановке
#при использовании False не обращайте внимание на следующие параметры
proxy_ip = "xxx.xxx.xxx.xxx"
proxy_port = 3128

UseProxyAuth = True|Flase #на выбор, по обстановке
proxy_user = 'user
proxy_passwd = 'passwd
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
в sus_utils.py добавил
import base64
и заменил строки
def send_head(url):
    url = url[7:]
    i = url.find('/')
    host = url[:i]
    file = url[i:]
    if host.find(':') > 0:
        host,port = host.split(':')
    else:
        port = 80
    sock = socket(AF_INET, SOCK_STREAM)
    sock.connect((host, int(port)))
    sock.send("HEAD %s HTTP/1.0\r\n\r\n"%file)
    lines = sock.recv(1024)
    res = {}
    for line in lines.split('\r\n'):
        if line.find(':') > 0:
            par,value = line.split(': ')
            res[par] = value
    if res.has_key('Content-Length') and res.has_key('Last-Modified'):
        return res['Content-Length'], res['Last-Modified']
    else:
        return None

на
def send_head(url):
    url = url[7:]
    i = url.find('/')
    host = url[:i]
    file = url[i:]
    if host.find(':') > 0:
        host,port = host.split(':')
    else:
        port = 80
    if UseProxyServer:
        #proxy_agent='User-Agent: python\r\n'
        proxy_connect='HEAD http://%s:%s'%(host,port)
        if UseProxyAuth:      
                proxy_head='%s HTTP/1.0\r\n'%file
                proxy_user_pass=proxy_user+':'+proxy_passwd
                proxy_user_passwd=base64.encodestring(proxy_user_pass)
                proxy_authorization='Proxy-authorization: Basic '+proxy_user_passwd+'\r\n'
                proxy_pieces=proxy_connect+proxy_head+proxy_authorization
        else:
                proxy_head='%s HTTP/1.0\r\n\r\n'%file
                proxy_pieces=proxy_connect+proxy_head
        sock = socket(AF_INET, SOCK_STREAM)
        sock.connect((proxy_ip, int(proxy_port)))
        sock.send(proxy_pieces+'\r\n')
    else:
        sock = socket(AF_INET, SOCK_STREAM)
        sock.connect((host, int(port)))
        sock.send("HEAD %s HTTP/1.0\r\n\r\n"%file)
    lines = sock.recv(1024)
    res = {}
    for line in lines.split('\r\n'):
        if line.find(':') > 0:
            par,value = line.split(': ')  
            res[par] = value    
    if res.has_key('Content-Length') and res.has_key('Last-Modified'):
        return res['Content-Length'], res['Last-Modified']
    else:
        return None
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
прошу указать ошибки (если есть), и если возможно подскажите возможное улучшение кода
P.S. заранее благодарю

Ответить | Правка | Наверх | Cообщить модератору

111. "OpenNews: Установка локального WindowsUpdate сервера под Uni..."  +/
Сообщение от Nikolai (??), 11-Окт-04, 13:18 
Разве не было бы проще прописать Proxy в wgetrc?
Ответить | Правка | Наверх | Cообщить модератору

113. "OpenNews: Установка локального WindowsUpdate сервера под Uni..."  +/
Сообщение от crazyElephantemail (?), 11-Окт-04, 23:01 
слов нет проще
но это только для wget
если внимательно посмотришь там средствами python происходит коннект к серваку
а значит ему всё равно как настроен wget
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру