[freeside-commits] freeside/FS/FS/part_export forward_shellcommands.pm, 1.7, 1.8

Ivan,,, ivan at wavetail.420.am
Sat Aug 6 17:41:25 PDT 2005


Update of /home/cvs/cvsroot/freeside/FS/FS/part_export
In directory wavetail:/tmp/cvs-serv11378

Modified Files:
	forward_shellcommands.pm 
Log Message:
update forward_shellcommands export to know about literal source addresses, closes: Bug#1246

Index: forward_shellcommands.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/part_export/forward_shellcommands.pm,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- forward_shellcommands.pm	3 Aug 2005 02:23:22 -0000	1.7
+++ forward_shellcommands.pm	7 Aug 2005 00:41:23 -0000	1.8
@@ -45,8 +45,9 @@
 The following variables are available for interpolation (prefixed with
 <code>new_</code> or <code>old_</code> for replace operations):
 <UL>
-  <LI><code>$username</code>
-  <LI><code>$domain</code>
+  <LI><code>$username</code> - username of forward source
+  <LI><code>$domain</code> - domain of forward source
+  <LI><code>$source</code> - forward source ($username@$domain)
   <LI><code>$destination</code> - forward destination
   <LI>All other fields in <a href="../docs/schema.html#svc_forward">svc_forward</a> are also available.
 </UL>
@@ -77,10 +78,17 @@
     ${$_} = $svc_forward->getfield($_) foreach $svc_forward->fields;
   }
 
-  my $svc_acct = $svc_forward->srcsvc_acct;
-  $username = $svc_acct->username;
-  $domain = $svc_acct->domain;
-  if ($svc_forward->dstsvc_acct) {
+  if ( $svc_forward->srcsvc ) {
+    my $srcsvc_acct = $svc_forward->srcsvc_acct;
+    $username = $srcsvc_acct->username;
+    $domain   = $srcsvc_acct->domain;
+    $source   = $srcsvc_acct->email;
+  } else {
+    $source = $svc_forward->src;
+    ( $username, $domain ) = split(/\@/, $source);
+  }
+
+  if ($svc_forward->dstsvc) {
     $destination = $svc_forward->dstsvc_acct->email;
   } else {
     $destination = $svc_forward->dst;
@@ -107,19 +115,33 @@
     ${"new_$_"} = $new->getfield($_) foreach $new->fields;
   }
 
-  my $old_svc_acct = $old->srcsvc_acct;
-  $old_username = $old_svc_acct->username;
-  $old_domain = $old_svc_acct->domain;
-  if ($old->dstsvc_acct) {
+  if ( $old->srcsvc ) {
+    my $srcsvc_acct = $old->srcsvc_acct;
+    $old_username = $srcsvc_acct->username;
+    $old_domain   = $srcsvc_acct->domain;
+    $old_source   = $srcsvc_acct->email;
+  } else {
+    $old_source = $old->src;
+    ( $old_username, $old_domain ) = split(/\@/, $old_source);
+  }
+
+  if ( $old->dstsvc ) {
     $old_destination = $old->dstsvc_acct->email;
   } else {
     $old_destination = $old->dst;
   }
 
-  my $new_svc_acct = $new->srcsvc_acct;
-  $new_username = $new_svc_acct->username;
-  $new_domain = $new_svc_acct->domain;
-  if ($new->dstsvc) {
+  if ( $new->srcsvc ) {
+    my $srcsvc_acct = $new->srcsvc_acct;
+    $new_username = $srcsvc_acct->username;
+    $new_domain   = $srcsvc_acct->domain;
+    $new_source   = $srcsvc_acct->email;
+  } else {
+    $new_source = $new->src;
+    ( $new_username, $new_domain ) = split(/\@/, $new_source);
+  }
+
+  if ( $new->dstsvc ) {
     $new_destination = $new->dstsvc_acct->email;
   } else {
     $new_destination = $new->dst;



More information about the freeside-commits mailing list