Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!munnari.OZ.AU!news.ecn.uoknor.edu!news.wildstar.net!imci5!imci4!newsfeed.internetmci.com!hunter.premier.net!news.mathworks.com!fu-berlin.de!zrz.TU-Berlin.DE!news From: jostobfe@linux.zrz.TU-Berlin.DE (Jost Boekemeier) Newsgroups: de.comp.os.linux.misc,comp.unix.bsd.bsdi.misc,comp.unix.bsd.netbsd.misc Subject: Re: Problem mit getservbyport() Date: 27 Sep 1996 13:54:21 GMT Organization: Technical University Berlin, Germany Lines: 50 Sender: jostobfe@apfel.zrz.TU-Berlin.DE Message-ID: <52gmad$b81@brachio.zrz.TU-Berlin.DE> References: <51ohq5$hl4@news.cs.tu-berlin.de> <5267e2$pje@news.cs.tu-berlin.de> <52c429$7gh@claude.ifi.unizh.ch> <52dsns$3rq@brachio.zrz.TU-Berlin.DE> <52envl$cto@claude.ifi.unizh.ch> NNTP-Posting-Host: apfel.zrz.tu-berlin.de Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Newsreader: knews 0.9.8 Xref: euryale.cc.adfa.oz.au comp.unix.bsd.bsdi.misc:4997 comp.unix.bsd.netbsd.misc:4674 Huhu, folgende Frage an die BSD-Experten: Ist das erste Argument von getservbyport im Netzwerkformat oder im Host-Format anzugeben? In article <52envl$cto@claude.ifi.unizh.ch>, weidner@ifi.unizh.ch (Harald Weidner) writes: [getservbyport] >>>>Soweit ich weiss, wird als erster Parameter ein Integer uebergeben und > Naja, die getserv*() Funktionen dienen zur Abfrage von Parametern > von TCP und UDP (naemlich Portnummern), gehoeren also nach OSI zur > Dienstschnittstelle der Schicht 4. Nein. Es handelt sich hier einfach nur um "Datenbankabfragen", naemlich /etc/services auf diesem Rechner oder per RPC auf einem entfernten System. Das hat mit dem Netzwerk ersteinmal gar nichts zu tun. Abhaengig davon, ob ein RPC durchgefuehrt, oder die lokale Datei ausgelesen wird, muss die Routine bei einem RPC intern natuerlich ins Netzwerkformat wandeln, bei einer lokalen Abfrage dagegen nicht. Die Funktion getservent tut dies, gibt aber --- und genau hier liegt das Problem --- die gelesenen Daten im Netzwerkformat zurueck. Soweit ist das alles noch okay und dokumentiert. Die Frage ist aber, ob die Funktion getservbyport() *selbststaendig* konvertiert, bevor sie die gelieferten Eintraege von getservent() matched (was logisch und im Header dokumentiert ist) oder es dem Aufrufer ueberlassen bleibt diesen Bug zu korrigieren (was den BSD-Heinies mal wieder aehnlich sieht, siehe sendmail). getservbyport ist ganz sicher eine OSI7 Applikation, da der dahinterstehende RPC transparent bleiben muss. Die Frage ist hier nur, ob ihr erster Parameter ein Integer oder eine Art "gruenes Krokodil" ist. Kurz: Hier ist ganz sicher ein Bug. Aber nicht in der Handbuchseite und auch nicht im Header. So, jetzt will ich ersmal hoeren was die BSD-Leute dazu zu sagen haben. Schliesslich werden sich die Leute vor 10 Jahren wohl etwas dabei gedacht haben --- sollte man meinen. Viele Gruesse, Jost