5 # This is run REMOTELY over ssh by fs_signup_server.
11 use vars qw( $Debug );
15 my($fs_signupd_socket)="/usr/local/freeside/fs_signupd_socket";
17 $ENV{'PATH'} ='/usr/local/bin:/usr/bin:/usr/ucb:/bin';
18 $ENV{'SHELL'} = '/bin/sh';
19 $ENV{'IFS'} = " \t\n";
22 $ENV{'BASH_ENV'} = '';
26 warn "[fs_signupd] Reading locales...\n" if $Debug;
27 chomp( my $n_cust_main_county = <STDIN> );
28 my @cust_main_county = map {
29 chomp( my $taxnum = <STDIN> );
30 chomp( my $state = <STDIN> );
31 chomp( my $county = <STDIN> );
32 chomp( my $country = <STDIN> );
37 'country' => $country,
39 } ( 1 .. $n_cust_main_county );
41 warn "[fs_signupd] Reading package definitions...\n" if $Debug;
42 chomp( my $n_part_pkg = <STDIN> );
44 chomp( my $pkgpart = <STDIN> );
45 chomp( my $pkg = <STDIN> );
47 'pkgpart' => $pkgpart,
50 } ( 1 .. $n_part_pkg );
52 warn "[fs_signupd] Reading POPs...\n" if $Debug;
53 chomp( my $n_svc_acct_pop = <STDIN> );
54 my @svc_acct_pop = map {
55 chomp( my $popnum = <STDIN> );
56 chomp( my $city = <STDIN> );
57 chomp( my $state = <STDIN> );
58 chomp( my $ac = <STDIN> );
59 chomp( my $exch = <STDIN> );
67 } ( 1 .. $n_svc_acct_pop );
69 warn "[fs_signupd] Creating $fs_signupd_socket\n" if $Debug;
70 my $uaddr = sockaddr_un($fs_signupd_socket);
71 my $proto = getprotobyname('tcp');
72 socket(Server,PF_UNIX,SOCK_STREAM,0) or die "socket: $!";
73 unlink($fs_signupd_socket);
74 bind(Server, $uaddr) or die "bind: $!";
75 listen(Server,SOMAXCONN) or die "listen: $!";
77 warn "[fs_signupd] Entering main loop...\n" if $Debug;
79 for ( ; $paddr = accept(Client,Server); close Client) {
81 chop( my $command = <Client> );
83 if ( $command eq "signup_info" ) {
84 warn "[fs_signupd] sending signup info...\n" if $Debug;
85 print Client join("\n", $n_cust_main_county,
94 print Client join("\n", $n_part_pkg,
101 print Client join("\n", $n_svc_acct_pop,
111 } elsif ( $command eq "new_customer" ) {
112 warn "[fs_signupd] reading customer signup...\n" if $Debug;
114 $first, $last, $ss, $company, $address1, $address2, $city, $county,
115 $state, $zip, $country, $daytime, $night, $fax, $payby, $payinfo,
116 $paydate, $payname, $invoicing_list, $pkgpart, $username, $password,
118 ) = map { scalar(<Client>) } ( 1 .. 23 );
120 warn "[fs_signupd] sending customer data to remote server...\n" if $Debug;
122 $first, $last, $ss, $company, $address1, $address2, $city, $county,
123 $state, $zip, $country, $daytime, $night, $fax, $payby, $payinfo,
124 $paydate, $payname, $invoicing_list, $pkgpart, $username, $password,
128 warn "[fs_signupd] reading error from remote server...\n" if $Debug;
131 warn "[fs_signupd] sending error to local client...\n" if $Debug;
135 die "unexpected command from client: $command";