On Sat, Jun 13, 2009 at 07:53:10PM -0700, Xiaoqiang Zheng wrote: >to make the 2 BUGs more clear: > >* in the while loop of processing options with '-' using getopt_long(): > >$ tftpd/tftpd -u SYSTEM -L -vvvv -p -c -s /var/log > >1. it seems the '-<x> <value>'(-u SYSTEM) argument pairs that pass the second >argument as value have the value lost and the variable get null value. the >'-<x>'(-L -p -c -s; -vvvv is a special one) type arguments that set some flag >seems work well. > >2. the value of 'optind' is always 1 in each loop(-vvvv is a special one?). >but it would have be increased by 1 in each loop. after all the '-<x>' and >'-<x> <value>' arguments being processed, its value. > >3. because the value of optind not increased 1 for each loop, so that the >arguments '/var/log' at the end that pass value(s) get processed in a wrong >way as the optind is used for 'argv[optind]' to set value to some variable(s). > > >* recv() returns -1 with error 14 when it read acknolege packet from the >socket, the normal return value is 4.
Chuck's analysis of 1. seems spot on. Corinna should have fixed 2. earlier today. Her fix should be in the latest snapshot at http://cygwin.com/snapshots/ cgf -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/