ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
1454
1454
EMPFEHLEN
-
26.11.04 12:01 #1
- Registriert seit
- Apr 2004
- Beiträge
- 80
Hallo zusammen.
Mal wieder stehe ich vor einem Problem !
Ich habe ein Modul (CONAN.pm) geschrieben für die Verwaltung von ISDN und
VPN Verbindungen aus einer LDAP Datenbank heraus. Zusätzlich gibt es
es ein Webinterface das dieses Modul benutzt, dabei werde viele HTML
Seiten aus Perl heraus generiert.
Nun Zum Problem.
Ich beutze z.B in einem kleinen Script wie diesem mein Modul:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
!/usr/bin/perl use Net::CONAN; use Net::LDAP; # Verbindung zu LDAP-Server aufbauen. #**************************************************************** $ldap = Net::LDAP->new("localhost"); $mesg = $ldap->bind("cn=adin, o=Schaal", password=>"amin"); # LDAP Referenz und Bais Conan übergeben. $retcode = CONAN->useLDAP(ldap=>$ldap,base=>"o=Schaal"); # Nach Fehlern prüfen. if_error($retcode); # Neues Verbindungsdaten-Objekt erstellen #**************************************************************** $retcode = CONAN->new("isdn","verbindungsname","kunde"); # Nach Fehlern prüfen. $connOBJ = if_error($retcode);
Die Methode aus dem CONAN Modul sieht wie folgt aus. Die Aufgabe ist
lediglich zum testen eine SFTP Verbindung aufzubauen.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
sub set_onHost { my $self = shift; my %param = @_; if( $self->{type} eq "isdn" ){ print "ok1"; $sftp = Net::SFTP->new("localhost", debug=>1, user=>"root", password=>"1983_sv_MA"); print "ok2"; }elsif( $self->{type} eq "vpn"){ . . } }
Das ergebniss ist eine korret aufgebaut SFTP Verbindung mit der ich dann ganz normal
Dateie kopieren kann etc.
Jetzt aber endlich mal das eigentliche Problem:
Wenn ich das selbe Script wie oben in einem CGI Script benutze funktioniert es nicht
und das zweite "OK2" bekomme ich nicht zu gesicht (das erste aber schon.)
Zur vollständigkeit das CGI Script:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
#!/usr/bin/perl #***************************************************************# # INITIALISIERUNG # #***************************************************************# # Benötigte Module laden. #**************************************************************** use CGI; use Net::CONAN; use Net::CONAN::Search; use Net::LDAP; # Neues CGI Objekt erstellen und Vorbereiten. #**************************************************************** $q = new CGI; # HTML Header hinzufügen. print $q->header; # HTML Document beginnen. print $q->start_html(-name=>'listConnection'); %auth_ldap = $q->cookie(-name=>'auth_ldap'); if(!defined %auth_ldap){ print $q->h3("Es besteht noch keine LDAP Verbindung aufgebaut"); exit; } # Verbindung zu LDAP-Server aufbauen und Conan übergeben. #**************************************************************** $ldap = Net::LDAP->new("$auth_ldap{host}"); $mesg = $ldap->bind("$auth_ldap{user}", password=>"$auth_ldap{pass}"); #Conan die neue Verbindung und Suchbasis übergeben. $retcode = CONAN->useLDAP(ldap=>$ldap,base=>"o=Schaal"); #Nach Fehlern prüfen. if_error($retcode,$q); # Auslesen der vom HTTP-Client übergebenen Variablen. #**************************************************************** # Für Baissuiche nötige Variablen auslesen. $name = $q->param('name') ; $customer = $q->param('customer'); $type = $q->param('type') ; $conn_nr = $q->param('choose') ; #***************************************************************# # HAUPTPROGRAMM # #***************************************************************# # Neues Verbindungsdaten-Objekt erstellen #**************************************************************** $ret = CONAN->new($type,$name,$customer); # Nach Fehlern prüfen. $connOBJ = if_error($ret); $connOBJ->set_onHost(host=>"localhost", user=>"foo", password=>"xxx"); # Anzeigen der Optionen für ein Verbindung #**************************************************************** $return = $connOBJ->get_option(); %result = $return->result; # Ausgeben der Tabelle mit den Optionen #**************************************************************** # Tabele einleiten und Überschrift definieren print qq{<table rules=none border valign="top" align="center" hight=100% width=100%> <tr> <th colspan=2> <h3><br>Auflistung der Optionen für Nr.: $conn_nr<br></h3> </th> </tr>}; print qq{<form action="/cgi-bin/modify.pl" method="POST" target="right">}; foreach $type (keys %result) { # Optionstyp auslesen. $href = $result{$type}; print qq{<tr> <td bgcolor=#E0E0E0 colspan=2> Optionen für $type </td> </tr>}; # Für jedes Attribute-Werte Paar zwei Tabellenspalten in einer # Tabellenzeile ausgeben . foreach (keys %$href){ $input = qq{<input name="$_" value="$result{$type}->{$_}"> }; print "<tr> <td>$_</td> <td>$input</td> </tr>"; } # Leere Tabellenzeile als Trennung zwischen Optionstypen. print "<tr ><td colspan=2> </td></tr>"; } # Tabelle beenden. print "</table>"; print qq{<table align="center"> <tr> <td><input type="submit" name="submit" value="OK" align="right"></td> </tr> <input type="hidden" name="name" value="$name"> <input type="hidden" name="customer" value="$customer"> <input type="hidden" name="type" value="$type"> </form> </table>}; # HTML Dokument abschließen. print $q->end_html; #***************************************************************# # SUBROUTINEN # #***************************************************************# sub if_error (){ #Prüft ob in Conan ein Fehler passiert ist. #Es muss 1. Das zu testende CONAN::Retcode Objekt #und 2.das zu benutzende CGI Objekt übergeben werden. #**************************************************************** my $to_test = shift; my $cgi_out = shift; # - Returncode Prüfen und bei Fehler Programm verlassen if ($to_test->code != 0) { print $cgi_out-> h2( $to_test->error ); exit; } return $to_test->result(); } exit;
Ich hoffe es kann mir jemand einen Tip geben.
-
*) Fange Fehlermeldungen ab und poste sie hier - vielleicht mal bei dem Verbindungsaufbau Net::SFTP->new() or die $!
*) verstecke das Passwort, das im Conan-Modul eingetragen ist vor der Öffentlichkeit
Ähnliche Themen
-
Perl Modul YAPE::Regex
Von Binio im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 1Letzter Beitrag: 04.03.08, 23:54 -
Perl/tk modul
Von marcust im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 4Letzter Beitrag: 15.10.03, 18:52 -
Perl-Modul MIME::TOOLS für Linux
Von AndreasStevens im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 1Letzter Beitrag: 04.07.03, 14:17 -
PERL Script Windows > UNIX Problem
Von SirNeo im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 1Letzter Beitrag: 09.07.02, 15:24 -
(perl) problem mit script (+ rename)
Von stephan01 im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 6Letzter Beitrag: 29.03.02, 17:11





Zitieren
Login





