1 --- cvs-nserver-1.11.1.52/src/server.c.orig 2005-02-16 00:11:57.460798401 +0100
2 +++ cvs-nserver-1.11.1.52/src/server.c 2005-02-26 20:25:07.156114626 +0100
3 @@ -3274,10 +3274,13 @@
4 buf_flush (buf_to_net, 1);
5 buf_shutdown (protocol_inbuf);
6 buf_free (protocol_inbuf);
7 + protocol_inbuf = NULL;
8 buf_shutdown (stderrbuf);
11 buf_shutdown (stdoutbuf);
17 @@ -4818,12 +4821,19 @@
18 error (0, status, "shutting down buffer from client");
19 buf_flush (buf_to_net, 1);
21 + buf_free (buf_from_net);
22 + buf_from_net = NULL;
27 if (buf_to_net != NULL)
29 (void) buf_shutdown (buf_to_net);
30 + buf_free (buf_to_net);
32 + error_use_protocol = 0;
37 @@ -4921,7 +4931,13 @@
40 if (buf_to_net != NULL)
42 + (void) buf_flush (buf_to_net, 1);
43 (void) buf_shutdown (buf_to_net);
44 + buf_free (buf_to_net);
46 + error_use_protocol = 0;
50 int server_active = 0;
51 @@ -5063,25 +5079,6 @@
56 - (void) SIG_register (SIGABRT, server_cleanup);
59 - (void) SIG_register (SIGHUP, server_cleanup);
62 - (void) SIG_register (SIGINT, server_cleanup);
65 - (void) SIG_register (SIGQUIT, server_cleanup);
68 - (void) SIG_register (SIGPIPE, server_cleanup);
71 - (void) SIG_register (SIGTERM, server_cleanup);
74 /* Now initialize our argument vector (for arguments from the client). */
76 /* Small for testing. */
77 @@ -5664,12 +5661,12 @@
81 - if (error_use_protocol)
82 + if (error_use_protocol && buf_to_net != NULL)
84 buf_output (saved_output, str, len);
85 buf_copy_lines (buf_to_net, saved_output, 'M');
87 - else if (server_active)
88 + else if (server_active && protocol != NULL)
90 buf_output (saved_output, str, len);
91 buf_copy_lines (protocol, saved_output, 'M');