[Vienna-pm] setsockopt() auf eine DBI handle

Bernd Petrovitsch bernd at firmix.at
Thu Nov 10 01:05:47 PST 2005


On Thu, 2005-11-10 at 09:48 +0100, Peter J. Holzer wrote:
> On 2005-11-10 09:05:15 +0100, Wolfgang Laun wrote:
> > Bernd Petrovitsch wrote:
> > >Es wär' ja zu einfach gewesen, in der setsockopt() Implementierung im
> > >perl selber auch auf einen int zu reagieren und den als Filedescriptor
> > >zu interpretieren.
> > >  
> > Aber entsteht das Problem nicht dadurch, dass DBI das Filehandle, das 
> > mit socket eingerichtet wird, verbirgt und (warum auch immer) nur den 
> > Filedescriptor hergibt?
> 
> Da gibt es aller Wahrscheinlichkeit nach keinen Perl Filehandle. Der
> Socket zur Datenbank wird ja üblicherweise nicht von Perl-Code erzeugt,
> sondern von der entsprechenden Datenbankclientlibrary. Eigentlich

Ja, nehm ich auch mal an. Bei der C-Version der PG-Client-Lib macht das
auch die Lib.

> wundert mich, dass man da überhaupt einen Filedescriptor rauskriegt (ich
> finde func('getfd') auch nicht in der Doku, ich nehme an, das ist eine

Weil du (offensichtlich;-) in der falschen suchst - ich hab auch länger
gebraucht, das zu finden: func() als solches ist in
http://search.cpan.org/~timb/DBI-1.48/DBI.pm beschrieben und das akut
verwendete ist in http://search.cpan.org/~rudy/DBD-Pg-1.31/Pg.pm zu
finden.

> private Funktion eines speziellen DBD-Treibers). Natürlich könnte der
> DBD auch netterweise gleich einen Perl-Filehandle zurückliefern statt
> des "nackten" Filedescriptors.

V.a. einen, der nicht auch irgendwie gleich die DB-Connection schließen
will - die Befürchtung (und Erwartung) habe ich, nachdem ich die
Fehlermeldung gelesen und analysiert hatte.
MaW DBI/DBD::* braucht eine Methode, die nichts andere wie die obige
Lösung des Problems in eine Methode gegossen. Einfahc zu verwenden und
funktioniert trotzdem.

	Bernd
-- 
Firmix Software GmbH                   http://www.firmix.at/
mobil: +43 664 4416156                 fax: +43 1 7890849-55
          Embedded Linux Development and Services



More information about the Vienna-pm mailing list