結構昔から使っているんだけど、
最近のはmakeするときに-DUSE_EPOLLが定義されちゃうんで
My Linuxではコンパイルが通らない。。(kernelが2.4のため・・・)
ま、これは-DUSE_EPOLLをはずしてコンパイルすればよいっと。
で、stoneをKILLしてすぐに再起動するとエラーになっちゃう。
ま、しょうがないと言えばしょうがないんだけど、ちょっと使いづらいので、
tcpserver(djb)のまねしてreuseソケットを使うようにした。
diff -Nur stone.orig/stone.c stone/stone.c
--- stone.orig/stone.c 2006-09-17 09:53:35.000000000 +0900
+++ stone/stone.c 2008-05-30 12:52:01.000000000 +0900
@@ -3676,6 +3676,10 @@
return 0;
}
saPort(csa, 0);
+ {
+ int opt = 1;
+ setsockopt(sd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof opt);
+ }
if (bind(sd, csa, csalen) < 0) {
#ifdef WINDOWS
errno = WSAGetLastError();
んで、そんときの何の役にも立たないパッチ。
そんだけ。
.
0 コメント:
コメントを投稿