Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.
Hi John, I would like to patch the code since I want to use CVSNT and eclipse but I cannot find the code sequence in server.c. I do not have "else if (server_active)" neither in the 57b code nor in the current repository. I only find if (server_active && supported_response ("MT")) ... else ... Could it be that you added the whole else-if? Ullrich. John Goehringer wrote: > Hi, > > Been working with the Eclipse CVS client and the > 1.11.1.3 builds. It's been reported that the newest > Eclipse builds work ok with build 58b, but > we found a problem with doing checkouts. > > The checkout from Eclipse finishes without reporting > an error, but no files are fetched. > > Tracked this down to server.c/server_protocol() > getting a very large count_needed from buf_copy_counted(), > and never sending the output back to the client. > > The large count_needed is the int value of > 'Mod-', as in Mod-time 9 Oct 1997 17:50:00 -0000. > > The Eclipse CVS client does not support the "MT" > response, so in server.c/cvs_output_tagged() > cvs_output() is called to send to the client. cvs_output() > calls cvs_flusherr(), which calls buf_send_special_count(). > > buf_send_special_count() prepends it's count as the first > data packet, chains any existing data from the passed > buffer to data->next, and calls buf_send_output(). > > If there is data in the buf sent to buf_send_special_count(), > it is sent over the pipe without the leading count, so > server_protocol() ends up picking those first 4 bytes > (Mod-) as the count, a large number. > > My patch is to add buf_send_counted (protocol) to > cvs_flusherr() prior to buf_send_special_count (protocol, -2) > > so > > else if (server_active) > { > /* make sure stderr is flushed before we send the flush count on the > * protocol pipe > */ > fflush (stderr); > /* Send a special count to tell the parent to flush. */ > buf_send_special_count (protocol, -2); > } > > becomes > > else if (server_active) > { > /* buf_send_special_count sends it's count only, so be sure to send > * any current data with it's count first. > */ > buf_send_counted (protocol); > /* make sure stderr is flushed before we send the flush count on the > * protocol pipe > */ > fflush (stderr); > /* Send a special count to tell the parent to flush. */ > buf_send_special_count (protocol, -2); > } > > John Goehringer > > > > > > _______________________________________________ > Cvsnt mailing list > Cvsnt at cvsnt.org > http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt https://www.march-hare.com/cvspro/en.asp#downcvs _______________________________________________ Cvsnt mailing list Cvsnt at cvsnt.org http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt https://www.march-hare.com/cvspro/en.asp#downcvs