r23658 - in /scripts/KGB/server: KGB kgb.conf.sample
dmn at users.alioth.debian.org
dmn at users.alioth.debian.org
Mon Jul 28 13:05:27 UTC 2008
Author: dmn
Date: Mon Jul 28 13:05:25 2008
New Revision: 23658
URL: http://svn.debian.org/wsvn/?sc=1&rev=23658
Log:
add min_protocol_ver variable to config. server rejects requests with lower proto ver
Modified:
scripts/KGB/server/KGB
scripts/KGB/server/kgb.conf.sample
Modified: scripts/KGB/server/KGB
URL: http://svn.debian.org/wsvn/scripts/KGB/server/KGB?rev=23658&op=diff
==============================================================================
--- scripts/KGB/server/KGB (original)
+++ scripts/KGB/server/KGB Mon Jul 28 13:05:25 2008
@@ -74,6 +74,11 @@
$conf->{soap}{service_name} ||= "KGB";
$conf->{soap}{server_port} ||= 9999;
$conf->{soap}{server_addr} ||= "127.0.0.1";
+$conf->{min_protocol_ver} ||= 1;
+
+$conf->{min_protocol_ver} =~ /^[01]$/
+ or die "Unrecognised min_protocol_ver (".$conf->{min_protocol_ver}."). I only know about protocol 0 and 1.\n";
+
foreach(keys %{$conf->{networks}}) {
$conf->{networks}{$_}{nick} ||= "KGB";
$conf->{networks}{$_}{ircname} ||= "KGB bot";
@@ -225,6 +230,12 @@
sub do_commit_0 {
my $kernel = $_[KERNEL];
my $response = $_[ARG0];
+ unless($conf->{min_protocol_version} == 0) {
+ $kernel->post(SOAPServer => 'FAULT', $response, 'Client.Arguments',
+ "Protocol version 0 not welcome");
+ warn("Protocol version 0 rejected\n");
+ return
+ }
my($repo_id, $passwd, $rev, $paths, $log, $author) = @_;
unless($conf->{repositories}{$repo_id}) {
$kernel->post(SOAPServer => 'FAULT', $response, 'Client.Arguments',
@@ -278,12 +289,20 @@
return do_commit_0(@{$params->{Array}});
}
my $proto_ver = shift @{$params->{Array}};
+ unless($proto_ver =~ /^\d{1,5}$/
+ and $conf->{min_protocol_version} <= $proto_ver)
+ {
+ $kernel->post(SOAPServer => 'FAULT', $response, 'Client.Arguments',
+ "Protocol version $proto_ver not welcome");
+ warn("Protocol version $proto_ver rejected\n");
+ return
+ }
if($proto_ver == 1) {
return do_commit_1(@{$params->{Array}})
} else {
$kernel->post(SOAPServer => 'FAULT', $response, 'Client.Arguments',
- "Invalid protocol version ($protocol_ver)");
- warn("Invalid protocol version ($protocol_ver)\n");
+ "Invalid protocol version ($proto_ver)");
+ warn("Invalid protocol version ($proto_ver)\n");
return;
}
}
Modified: scripts/KGB/server/kgb.conf.sample
URL: http://svn.debian.org/wsvn/scripts/KGB/server/kgb.conf.sample?rev=23658&op=diff
==============================================================================
--- scripts/KGB/server/kgb.conf.sample (original)
+++ scripts/KGB/server/kgb.conf.sample Mon Jul 28 13:05:25 2008
@@ -21,3 +21,4 @@
repos:
- foo
pid_dir: ~ # defaults to /var/run
+min_protocol_ver: 1 # anything less is rejected
More information about the Pkg-perl-cvs-commits
mailing list