I'm assuming right now you are just setting yyin to the fd for the socket.
What you're gonna want to do is define the macro YY_INPUT (see the man page for
details) so that it calls recv on your socket.  and then if it errors you can
have YY_INPUT return as an EOF and your <<EOF>> rule will work fine.

On Thu, Feb 22, 2001 at 09:32:42PM +0100, Thierry Herbelot wrote:
> Hello,
> 
> I'm currently writing a small interpreter for a client/server
> application.
> 
> the Lex and Yacc files seem to be OK, as the tests are running fine (as
> long as there is only one client, and the client dos not close its
> socket ...)
> 
> I still have one problem : the server has a single thread : the process
> accept()s a connection, then processes the commands (with yyparse()),
> and after the current client disconnects, gets back to listening to the
> socket, and so on.
> 
> the problem is that the yyparse() function does not return when the
> socket is closed. I've had a look at the sources of ftpd, where yacc is
> used, but from what I've seen, the yylex() function has been hand
> written (which I would like not to do)
> 
> I've added a <<EOF>> target in the lex file, but it does not seem to
> detect the socket close()
> 
>       taker for any solution,
> 
>       TfH
> -- 
> Thierry Herbelot
> 
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hackers" in the body of the message

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to