diff options
author | 2006-10-19 02:44:38 +1000 | |
---|---|---|
committer | 2006-10-19 02:44:38 +1000 | |
commit | bab168f1d1c0db1b1a9aba208a87380616ac0850 (patch) | |
tree | 29d7ae23e5460ccc470c6baf099dab152908da73 /env_universal.c | |
parent | 2ab04f40437537a96bb11fcbe7ffd0ed3ee8e8d7 (diff) |
Fix yet another universal variable issue with initialization of the read buffer. This may fix fishd bugs reported by Philip Ganchev and Martin Bähr
darcs-hash:20061018164438-ac50b-c586b1ad36249853d613d0137b505377fe890d37.gz
Diffstat (limited to 'env_universal.c')
-rw-r--r-- | env_universal.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/env_universal.c b/env_universal.c index f686e684..c3e5cd90 100644 --- a/env_universal.c +++ b/env_universal.c @@ -193,7 +193,7 @@ static void check_connection() env_universal_server.fd = -1; env_universal_server.killme=0; - sb_clear( &env_universal_server.input ); + env_universal_server.input.used=0; env_universal_read_all(); } } @@ -230,15 +230,11 @@ void env_universal_init( wchar_t * p, user=u; start_fishd=sf; external_callback = cb; - - memset (&env_universal_server, 0, sizeof (connection_t)); - env_universal_server.fd = -1; - env_universal_server.killme = 0; + connection_init( &env_universal_server, -1 ); + env_universal_server.fd = get_socket(1); - q_init( &env_universal_server.unsent ); env_universal_common_init( &callback ); - b_init( &env_universal_server.input ); env_universal_read_all(); init = 1; if( env_universal_server.fd >= 0 ) @@ -258,17 +254,11 @@ void env_universal_destroy() { wperror( L"fcntl" ); } - try_send_all( &env_universal_server ); - - if( close( env_universal_server.fd ) ) - { - wperror( L"close" ); - } + try_send_all( &env_universal_server ); } - + + connection_destroy( &env_universal_server ); env_universal_server.fd =-1; - q_destroy( &env_universal_server.unsent ); - sb_destroy( &env_universal_server.input ); env_universal_common_destroy(); init = 0; } |