🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #11303

Re: problemas con sockets y fork() --- stdout?

#11303
From: Ignacio Arenaza
Date: Thu, 06 Dec 2001 12:56
54 lines
3260 bytes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

>>>>> "BloKe" == BloKe  <bloke@noquierospamtelepolis.com> writes:

    BloKe> Aqui pongo el main y la funcion en cuestion a ver si me
    BloKe> podias dar alguna idea mas.

Me extra�a siquiera que te haga algo util y coherente. De entrada hay
dos cosas "singulares". Una poco peligrosa (entre comillas) y otra que
es una bomba de relojeria.

Empezaremos por la segunda, ya que es la mas peligrosa con diferencia.
En la funcion mete_saca() haces una espera de 1800 segundos y luego
llamas de nuevo a propia funcion. Entiendo que quieres repetir el
proceso cada 1800 segundos, pero hacer una llamada recursiva sin un
control de finalizacion del proceso recursivo es tener ganas de
problemas. Te costara algo de tiempo (solo lo haces cada 1800
segundos) pero vas a desfondar la pila del proceso y te va a dar unos
'stack overflows' muy simpaticos.

Usa un bucleo while() o similares, pero no hagas una llamada recursiva
;-) 

El primero de los problemeas es basicamente el que tu preguntabas,
�por que no lo envia por el socket al servidor de IRC? La respuesta es
muy facil, porque tu haces el fork() antes que conectar el socket al
servidor y por tanto el valor del socket del hijo esta sin
inicializar.

Haz primero el socket()+connect() y luego el fork(). Asi la variable
sock del proceso hijo ya estara ligada a la conexion con el servidor
de IRC.

Sino, la variable sock puede tener cualquier cosa (probablemente cero,
aunque no esta garantizado salvo que sea una variable estatica) con lo
cual hacer un send(), write() o cualquier otra cosa puede tener
resultados completamente impredecibles, desde escribir en la consola
hasta darte un 'Segment Violation'.

Saludos. I�aki.

- -- 
  Get PGP/GPG Keys at  http://www.escomposlinux.org/iarenaza/pgpkey.html
  I use free software / Yo uso software libre

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: Processed by Mailcrypt and GPG

iD8DBQE8D2sJZXLnGT1HLgcRAl0LAJ4p0UHoQDUqj+FEdVI7iNyOVyjBlwCfaSJp
roNlXHNmO1EkqFEWKRtG8D0=
=gDZL
-----END PGP SIGNATURE-----
Technical Details
Message-ID: <87n10w4id1.fsf@eb2ebu.ampr.org>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!fr.clara.net!heighliner.fr.clara.net!opentransit.net!newsfeed.comtenidos.com!newsfeeder.wanadoo.es!news.antakira.com!eb2ebu.ampr.org!not-for-mail
References: <9ugqbf$9d8$1@talia.mad.ttd.net>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,8997bc5c6184d641
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2001-12-06 06:06:10 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!fr.clara.net!heighliner.fr.clara.net!opentransit.net!newsfeed.comtenidos.com!newsfeeder.wanadoo.es!news.antakira.com!eb2ebu.ampr.org!not-for-mail
From: Ignacio Arenaza <iarenaza@eb2ebu.ampr.org>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: problemas con sockets y fork() --- stdout?
Date: 06 Dec 2001 13:56:42 +0100
Organization: Servidor NNTP de eb2ebu.ampr.org
Lines: 54
Message-ID: <87n10w4id1.fsf@eb2ebu.ampr.org>
References: <9ugqbf$9d8$1@talia.mad.ttd.net>
NNTP-Posting-Host: 212.25.147.135
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: news.wanadoo.es 1007646966 11106 212.25.147.135 (6 Dec 2001 13:56:06 GMT)
X-Complaints-To: usenet@wanadoo.es
NNTP-Posting-Date: Thu, 6 Dec 2001 13:56:06 +0000 (UTC)
User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7