Hello,

I have made on perl script(attached) which do ldapsearch.
When I run that script through perl command it works,but when I called it through some programme to view it in browser it never works.My OS Win-2000.Any Thing I am missing as some environmental variable or something..


Best Regards,
Chandraknt
#!/usr/local/bin/perl
# # $Header: email_imap_config.pl 30-jul-2003.18:34:00 cpolinsk Exp $
#
# email_imap_config.pl
# # Copyright (c) 2003, Oracle Corporation.  All rights reserved.  #
#    NAME
#      email_imap_config.pl - <one-line expansion of the name>
#
#    DESCRIPTION
#      Script reads email config data from oid
#
#    NOTES
#      <other useful comments, qualifications, etc.>
#
#    MODIFIED   (MM/DD/YY)
#
use strict;
require "emd_common.pl";

my $OSNAME = $^O;

my $Second = "";
my $Minute = "";
my $Hour = "";
my $Day = "";
my $Month = "";
my $Year= "";
my $WeekDay = "";
my $DayOfYear = "";

($Second, $Minute, $Hour, $Day, $Month, $Year, $WeekDay, $DayOfYear) = localtime(time);
my $RealMonth = $Month + 1;

if($RealMonth < 10)
{
   $RealMonth = "0" . $RealMonth; # add a leading zero to one-digit months
}

if($Day < 10)
{
   $Day = "0" . $Day; # add a leading zero to one-digit days
}


if($Second < 10)
{
   $Second = "0" . $Second; # add a leading zero to one-digit days
}
if($Minute < 10)
{
   $Minute = "0" . $Minute; # add a leading zero to one-digit days
}

if($Hour < 10)
{
   $Hour = "0" . $Hour; # add a leading zero to one-digit days
}


my $Fixed_Year = $Year + 1900;

my $FormatedTime = "$Fixed_Year-$RealMonth-$Day $Hour:$Minute:$Second";


my $ldap_oh="";

EMAGENT_PERL_DEBUG("$ARGV[0] :: $ARGV[0]");


if(  ($OSNAME eq "MSWin32") or ($OSNAME eq "Windows_NT") )
{
        #$ldap_oh = "$ARGV[0]\\bin\\ldapsearch";
        $ldap_oh = "C:\\oracle_as\\bin\\ldapsearch";

}
else
{
        #$ldap_oh = "$ARGV[0]/bin/ldapsearch";
         $ldap_oh = "C:/oracle_as/bin/ldapsearch";
}


### ldap parameters

my $ldap_host="umsvr2-sun.us.oracle.com";
my $ldap_port="3060";
my $ldap_username="cn=orcladmin";
my $ldap_password="welcome1";
my $target_type = "oracle_ovf";
my $config_name = "orclmailprocloglevel";
my $target = " ";
my $output="";

## Do an ldap search first looking at the target level for the data


EMAGENT_PERL_DEBUG("ldap_oh :: $ldap_oh");

$output = `$ldap_oh -h \"$ldap_host\" -p $ldap_port -D \"$ldap_username\" -w 
$ldap_password -b 
\"cn=ovf,cn=OraVmail,cn=umdev04.us.oracle.com,cn=Computers,cn=OracleContext\" cn=ovf 
orclmailprocloglevel`;
print"$output";

EMAGENT_PERL_DEBUG("output :: $output");

## Parse the result string and retrieve just the value
my $ldapValue = getLdapValue($output);
##$ldapValue="NOTIFICATION";


## Return the parsed result
print "em_result=$ldapValue|$FormatedTime\n";

###
# getLdapValue
# # Takes an ldap search output string and strips the param name and '='
# from the string to retrieve only the attribute value.
###
sub getLdapValue
{
  my $attr_value = "";
  my $ldap_output = shift(@_);

  EMAGENT_PERL_DEBUG("ldap_output :: $ldap_output");

  my @lines = split("\n", $ldap_output);

  if($#lines > 0)
  {
      my $attr_line = @lines[1];
      my @attr = split("=", $attr_line);
      $attr_value = @attr[1];
  }

return $attr_value;
}

Reply via email to