▼スレッド
│
└◇569:mhttpd [中島] 08/27 21:43
CygwinDLL 1.3.12 で、下記で配布されている mhttpd が動かなくなっていました。スレッド一覧
http://www.ops.dti.ne.jp/~cake-smd/wiki/MicroHttpdProject.html
CygwinDLL 1.3.10 では、shutdown( s, 1 ); の追加だけで大丈夫でした。
とりあえず、accept に失敗しても、もう一回リトライするように書き換えて、
CygwinDLL 1.3.12 でも動くようになりましたが、ソケット周りで何か仕様が
変わったのでしょうか。
--- mhttpd.c~ 2001-03-01 00:01:14.000000000 +0900
+++ mhttpd.c 2002-08-27 21:23:13.000000000 +0900
@@ -261,8 +261,11 @@
for (;;) {
dmsg( "now, wait for connection...\n" );
- if ( ( s = accept( sock, ( struct sockaddr * ) &from, &len ) ) < 0 )
- err_exit( "mhttpd_loop: accept" );
+ if ( ( s = accept( sock, ( struct sockaddr * ) &from, &len ) ) < 0 ){
+ if ( ( s = accept( sock, ( struct sockaddr * ) &from, &len ) ) < 0 ){
+ err_exit( "mhttpd_loop: accept" );
+ }
+ }
dmsg( "connected.\n" );