Skip to content

Commit 719db45

Browse files
committed
Update RO Server to work with CGI >= 3.49 (patch from Nikolay A. Fetisov)
Update RO Client to work over SSL with untrusted certificates with LWP >= 6.00 (initial patch from Nikolay A. Fetisov) Add LWP UA options into RO Client config
1 parent 38d00b0 commit 719db45

12 files changed

Lines changed: 61 additions & 9 deletions

File tree

Client/config

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
'proto' => 'http' # workflow protocol
1111
},
1212

13+
# LWP UA settings (can be useful with SSL connections)
14+
# USE AT YOUR OWN RISK, SKIP IT UNLESS YOUR REALLY KNOW WHAT YOU DO
15+
# 'lwp_ua_options' => { 'agent' => 'RO Client'
16+
# },
17+
1318
# cache location
1419
'cache' => '/var/cache/ro',
1520

Client/config-pseudo-repository

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
'proto' => 'http' # workflow protocol
1111
},
1212

13+
# LWP UA settings (can be useful with SSL connections)
14+
# USE AT YOUR OWN RISK, SKIP IT UNLESS YOUR REALLY KNOW WHAT YOU DO
15+
# 'lwp_ua_options' => { 'agent' => 'RO Client'
16+
# },
17+
1318
# logfile section
1419
'log' => { 'use_log' => 1,# logging flag
1520
'log_file' => '/var/log/ro_log' # log location

Client/config-repository

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
'proto' => 'http' # workflow protocol
1111
},
1212

13+
# LWP UA settings (can be useful with SSL connections)
14+
# USE AT YOUR OWN RISK, SKIP IT UNLESS YOUR REALLY KNOW WHAT YOU DO
15+
# 'lwp_ua_options' => { 'agent' => 'RO Client'
16+
# },
17+
1318
# cache location
1419
'cache' => '/var/cache/ro',
1520

Client/config-system

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
'proto' => 'http' # workflow protocol
1111
},
1212

13+
# LWP UA settings (can be useful with SSL connections)
14+
# USE AT YOUR OWN RISK, SKIP IT UNLESS YOUR REALLY KNOW WHAT YOU DO
15+
# 'lwp_ua_options' => { 'agent' => 'RO Client'
16+
# },
17+
1318
# cache location
1419
'cache' => '/var/cache/ro',
1520

Client/ro_client.pl

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/perl -w
22
# RO (Repository Observer) - Client script
3-
# Copyright (C) 2007, 2008 Fedor A. Fetisov <faf@ossg.ru>. All Rights Reserved
3+
# Copyright (C) 2007-2011 Fedor A. Fetisov <faf@ossg.ru>. All Rights Reserved
44
#
55
# This program is free software: you can redistribute it and/or modify
66
# it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@
2424
use constant PACKAGES_LIMIT => 500; # максимальное количество пакетов, пересылаемое в одном XML-документе
2525
# внимание - при запросе обновления отсылается два XML-документа
2626

27-
my $VERSION = '0.9.16svn'; # версия клиента
27+
my $VERSION = '0.9.17svn'; # версия клиента
2828

2929
my $date = localtime(time); # для записи в кеш - на всякий случай
3030

@@ -388,7 +388,19 @@
388388

389389
# отсылка данных
390390
print STDERR "[DEBUG] Initializing user agent to send data.\n" if $debug_mode;
391-
my $ua = LWP::UserAgent->new();
391+
392+
# инициализация клиента для отсылки данных
393+
my %ua_options;
394+
# при работе через https по умолчанию не проверять сертификат сервера
395+
$ua_options{'ssl_opts'} = {'verify_hostname' => 0 } if (($config->{'server'}->{'proto'} eq 'https') && !($LWP::UserAgent::VERSION =~ /^[0-5]\./));
396+
# задание/переопределение опций клиента, указанных в конфигурации
397+
if ((defined $config->{'lwp_ua_options'}) && (ref($config->{'lwp_ua_options'}) eq 'HASH')) {
398+
foreach (keys(%{$config->{'lwp_ua_options'}})) {
399+
$ua_options{$_} = $config->{'lwp_ua_options'}->{$_};
400+
}
401+
}
402+
403+
my $ua = scalar(keys(%ua_options)) ? LWP::UserAgent->new(%ua_options) : LWP::UserAgent->new();
392404

393405
# если данных для отсылки нет, должны быть отосланы пустые данные,
394406
# чтобы обновить дату синхронизации системы на сервере
@@ -405,7 +417,7 @@
405417
$params->[0]->{'packages'} = make_xml({});
406418
$params->[0]->{'action'} = 'init';
407419
}
408-
$params->[0]->{'node'} = $config->{'signature'};
420+
$params->[0]->{'node'} = $config->{'signature'};
409421
}
410422

411423
my $error;

Client/russian-configs/config

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
'proto' => 'http' # использующийся протокол
1111
},
1212

13+
# опции LWP UA (могут быть полезны при использовании SSL)
14+
# ИСПОЛЬЗУЙТЕ ТОЛЬКО ЕСЛИ ТОЧНО ЗНАЕТЕ, ЧТО ДЕЛАЕТЕ
15+
# 'lwp_ua_options' => { 'agent' => 'RO Client'
16+
# },
17+
1318
# местоположение кеша
1419
'cache' => '/var/cache/ro',
1520

Client/russian-configs/config-pseudo-repository

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
'proto' => 'http' # использующийся протокол
1111
},
1212

13+
# опции LWP UA (могут быть полезны при использовании SSL)
14+
# ИСПОЛЬЗУЙТЕ ТОЛЬКО ЕСЛИ ТОЧНО ЗНАЕТЕ, ЧТО ДЕЛАЕТЕ
15+
# 'lwp_ua_options' => { 'agent' => 'RO Client'
16+
# },
17+
1318
# секция лог-файла
1419
'log' => { 'use_log' => 1,# флаг записи в лог
1520
'log_file' => '/var/log/ro_log' # местоположение

Client/russian-configs/config-repository

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
'proto' => 'http' # использующийся протокол
1111
},
1212

13+
# опции LWP UA (могут быть полезны при использовании SSL)
14+
# ИСПОЛЬЗУЙТЕ ТОЛЬКО ЕСЛИ ТОЧНО ЗНАЕТЕ, ЧТО ДЕЛАЕТЕ
15+
# 'lwp_ua_options' => { 'agent' => 'RO Client'
16+
# },
17+
1318
# местоположение кеша
1419
'cache' => '/var/cache/ro',
1520

Client/russian-configs/config-system

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
'proto' => 'http' # использующийся протокол
1111
},
1212

13+
# опции LWP UA (могут быть полезны при использовании SSL)
14+
# ИСПОЛЬЗУЙТЕ ТОЛЬКО ЕСЛИ ТОЧНО ЗНАЕТЕ, ЧТО ДЕЛАЕТЕ
15+
# 'lwp_ua_options' => { 'agent' => 'RO Client'
16+
# },
17+
1318
# местоположение кеша
1419
'cache' => '/var/cache/ro',
1520

Server/ro_analyzer.pl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/perl -w
22
# RO (Repository Observer) - Analyzer script
3-
# Copyright (C) 2007, 2008 Fedor A. Fetisov <faf@ossg.ru>. All Rights Reserved
3+
# Copyright (C) 2007-2011 Fedor A. Fetisov <faf@ossg.ru>. All Rights Reserved
44
#
55
# This program is free software: you can redistribute it and/or modify
66
# it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@
1919
use DBI;
2020
use Getopt::Long qw(:config no_ignore_case bundling no_auto_abbrev);
2121

22-
my $VERSION = '0.9.16svn'; # версия анализатора
22+
my $VERSION = '0.9.17svn'; # версия анализатора
2323

2424
# коды состояний (были заданы при создании БД)
2525
my $states = {

0 commit comments

Comments
 (0)