diff options
Diffstat (limited to 'fs_selfservice/FS-SelfService/SelfService')
-rw-r--r-- | fs_selfservice/FS-SelfService/SelfService/FreeRadiusVoip.pm | 61 | ||||
-rw-r--r-- | fs_selfservice/FS-SelfService/SelfService/XMLRPC.pm | 88 |
2 files changed, 0 insertions, 149 deletions
diff --git a/fs_selfservice/FS-SelfService/SelfService/FreeRadiusVoip.pm b/fs_selfservice/FS-SelfService/SelfService/FreeRadiusVoip.pm deleted file mode 100644 index 0df24f7..0000000 --- a/fs_selfservice/FS-SelfService/SelfService/FreeRadiusVoip.pm +++ /dev/null @@ -1,61 +0,0 @@ -#Add this to the modules section of radiusd.conf -# perl { -# #path to this module -# module=/usr/local/share/perl/5.8.8/FS/SelfService/FreeRadiusVoip.pm -# func_authorize = authorize; -# } -# -#In the Authorize section -#Make sure that you have 'files' uncommented. Then add a line containing 'perl' -# after it. -# -# #N/A# Add a line containing 'perl' to the Accounting section. -# -# and on debian systems, add this to /etc/init.d/freeradius, with the -# correct path (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=416266) -# LD_PRELOAD=/usr/lib/libperl.so.5.8.8 -# export LD_PRELOAD - -BEGIN { $FS::SelfService::skip_uid_check = 1; } - -use strict; -use vars qw(%RAD_REQUEST %RAD_REPLY %RAD_CHECK); -#use Data::Dumper; -use FS::SelfService qw(call_time); - -use constant RLM_MODULE_REJECT=> 0; #immediately reject the request -use constant RLM_MODULE_FAIL=> 1; #module failed, don't reply -use constant RLM_MODULE_OK=> 2; #the module is OK, continue -use constant RLM_MODULE_HANDLED=> 3; #the module handled the request, so stop -use constant RLM_MODULE_INVALID=> 4; #the module considers the request invalid -use constant RLM_MODULE_USERLOCK=> 5; #reject the request (user is locked out) -use constant RLM_MODULE_NOTFOUND=> 6; #user not found -use constant RLM_MODULE_NOOP=> 7; #module succeeded without doing anything -use constant RLM_MODULE_UPDATED=> 8; #OK (pairs modified) -use constant RLM_MODULE_NUMCODES=> 9; #How many return codes there are - -sub authorize { - - #&log_request_attributes(); - - my $response = call_time( 'src' => $RAD_REQUEST{'Calling-Station-Id'}, - 'dst' => $RAD_REQUEST{'Called-Station-Id'}, ); - - if ( $response->{'error'} ) { - $RAD_REPLY{'Reply-Message'} = $response->{'error'}; - return RLM_MODULE_REJECT; - } else { - $RAD_REPLY{'Session-Timeout'} = $response->{'seconds'}; - return RLM_MODULE_OK; - } - -} - -sub log_request_attributes { - # This shouldn't be done in production environments! - # This is only meant for debugging! - for (keys %RAD_REQUEST) { - &radiusd::radlog(1, "RAD_REQUEST: $_ = $RAD_REQUEST{$_}"); - } -} - diff --git a/fs_selfservice/FS-SelfService/SelfService/XMLRPC.pm b/fs_selfservice/FS-SelfService/SelfService/XMLRPC.pm deleted file mode 100644 index 4e0d3e9..0000000 --- a/fs_selfservice/FS-SelfService/SelfService/XMLRPC.pm +++ /dev/null @@ -1,88 +0,0 @@ -package FS::SelfService::XMLRPC; - -=head1 NAME - -FS::SelfService::XMLRPC - Freeside XMLRPC accessible self-service API - -=head1 SYNOPSIS - -=head1 DESCRIPTION - -Use this API to implement your own client "self-service" module vi XMLRPC. - -Each routine described in L<FS::SelfService> is available vi XMLRPC as the -method FS.SelfService.XMLRPC.B<method>. All values are passed to the -selfservice-server in a struct of strings. The return values are in a -struct as strings, arrays, or structs as appropriate for the values -described in L<FS::SelfService>. - -=head1 BUGS - -=head1 SEE ALSO - -L<freeside-selfservice-clientd>, L<freeside-selfservice-server>,L<FS::SelfService> - -=cut - -use strict; -use vars qw($DEBUG $AUTOLOAD); -use FS::SelfService; - -$DEBUG = 0; -$FS::SelfService::DEBUG = $DEBUG; - -sub AUTOLOAD { - my $call = $AUTOLOAD; - $call =~ s/^FS::SelfService::XMLRPC:://; - if (exists($FS::SelfService::autoload{$call})) { - shift; #discard package name; - $call = "FS::SelfService::$call"; - no strict 'refs'; - &{$call}(@_); - }else{ - die "No such procedure: $call"; - } -} - -package SOAP::Transport::HTTP::Daemon; # yuck - -use POSIX qw(:sys_wait_h); - -no warnings 'redefine'; - -sub handle { - my $self = shift->new; - - local $SIG{CHLD} = 'IGNORE'; - -ACCEPT: - while (my $c = $self->accept) { - - my $kid = 0; - do { - $kid = waitpid(-1, WNOHANG); - warn "found kid $kid"; - } while $kid > 0; - - my $pid = fork; - next ACCEPT if $pid; - - if ( not defined $pid ) { - warn "fork() failed: $!"; - $c = undef; - } else { - while (my $r = $c->get_request) { - $self->request($r); - $self->SUPER::handle; - $c->send_response($self->response); - } - # replaced ->close, thanks to Sean Meisner <Sean.Meisner@VerizonWireless.com> - # shutdown() doesn't work on AIX. close() is used in this case. Thanks to Jos Clijmans <jos.clijmans@recyfin.be> - UNIVERSAL::isa($c, 'shutdown') ? $c->shutdown(2) : $c->close(); - $c->close; - } - exit; - } -} - -1; |