geFORK()tes Kind schliesst fremde sockets

Jan-Benedict Glaw jbglaw at lug-owl.de
Sam Sep 13 16:23:46 CEST 2003


On Sat, 2003-09-13 15:06:34 +0200, martin.heyer at gmx.de <martin.heyer at gmx.de>
wrote in message <30393.1063458394 at www26.gmx.net>:
> > On Sat, 2003-09-13 14:32:22 +0200, martin.heyer at gmx.de 
> > <martin.heyer at gmx.de> 
> > wrote in message <30775.1063456342 at www13.gmx.net>: 

> > Sowas macht man gemeinhin nicht:) Wenn man die Bearbeitung eines Clients 
> > abgibt (z.B. an ein via fork() erzeugten Prozeß), dann sollte der 
> > _alles_ machen, was für den Client gemacht wird... 
> >  
> Das ging aber schnell... :) 
> Wenn der Child-Prozess ueber exit() aussteigt, dann scheints zu gehen. 
> Es sieht aber irgendwie sauberer aus, wenn er das return der main()-Funktion
> nimmt. 
> Der geforkte client-Prozess soll alles für den  Client machen, aber nicht am
> 
> server-Socket (listen) spielen. 

Das passiert auch nicht...

> Ich dachte jetzt, die beiden Prozesse greifen über den socketFd auf ein und
> dasselbe 
> Socket zu, wenn der eine das schliesst hat der andere Pech. 

Nö.

> So ähnlich sieht nämlich auch das Resultat hier aus... 
> Oder wird das Socket erst geschlossen, wenn der letzte ein shutdown/close 
> gemacht hat? 

Beim fork wird der socket kopiert. Generell gibst Du dem Kind ja nur den
fd zum Client mit, nicht den zum listen/bind-Socket. Hast Du Sourcen?
Dann könnten wir einfach mal 'reingucken...

MfG, JBG

-- 
   Jan-Benedict Glaw       jbglaw at lug-owl.de    . +49-172-7608481
   "Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg
    fuer einen Freien Staat voll Freier Bürger" | im Internet! |   im Irak!
      ret = do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: nicht verfügbar
URL         : http://www.tlug.de/pipermail/tlug_allgemein/attachments/20030913/ee116c3a/attachment.pgp