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> );
60 chomp( my $loc = <STDIN> );
69 } ( 1 .. $n_svc_acct_pop );
71 warn "[fs_signupd] Creating $fs_signupd_socket\n" if $Debug;
72 my $uaddr = sockaddr_un($fs_signupd_socket);
73 my $proto = getprotobyname('tcp');
74 socket(Server,PF_UNIX,SOCK_STREAM,0) or die "socket: $!";
75 unlink($fs_signupd_socket);
76 bind(Server, $uaddr) or die "bind: $!";
77 listen(Server,SOMAXCONN) or die "listen: $!";
79 warn "[fs_signupd] Entering main loop...\n" if $Debug;
81 for ( ; $paddr = accept(Client,Server); close Client) {
83 chop( my $command = <Client> );
85 if ( $command eq "signup_info" ) {
86 warn "[fs_signupd] sending signup info...\n" if $Debug;
87 print Client join("\n", $n_cust_main_county,
96 print Client join("\n", $n_part_pkg,
103 print Client join("\n", $n_svc_acct_pop,
114 } elsif ( $command eq "new_customer" ) {
115 warn "[fs_signupd] reading customer signup...\n" if $Debug;
117 $first, $last, $ss, $company, $address1, $address2, $city, $county,
118 $state, $zip, $country, $daytime, $night, $fax, $payby, $payinfo,
119 $paydate, $payname, $invoicing_list, $referral_custnum,
120 $pkgpart, $username, $password, $popnum,
121 ) = map { scalar(<Client>) } ( 1 .. 24 );
123 warn "[fs_signupd] sending customer data to remote server...\n" if $Debug;
125 $first, $last, $ss, $company, $address1, $address2, $city, $county,
126 $state, $zip, $country, $daytime, $night, $fax, $payby, $payinfo,
127 $paydate, $payname, $invoicing_list, $referral_custnum,
128 $pkgpart, $username, $password, $popnum,
131 warn "[fs_signupd] reading error from remote server...\n" if $Debug;
134 warn "[fs_signupd] sending error to local client...\n" if $Debug;
138 die "unexpected command from client: $command";