[Gauche-devel-jp] setsockoptと構造体

アーカイブの一覧に戻る

Kimura Fuyuki fuyuk****@hadal*****
2003年 4月 28日 (月) 13:22:30 JST


最近マルチキャストストリーミングで遊んでいるので、Gaucheにもそれ用のハッ
クを入れようとしています。要するにやりたいことは

setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq));

なので、とりあえず添付パッチのようなソケットオプションがあればいいやと
思ったのですが、

1. なぜかnet.scmからオプション定数がexportされていない

2. setsockoptに構造体を渡すのが面倒

3. inet_atonみたいなことをしてくれる関数がほしい

2はたぶん

http://www02.so-net.ne.jp/~greentea/doc-jp/java-ruby/java-ruby-net.html

のように使うものなんでしょうが、構造体のpaddingの扱いに依存しそうで怖
いですね。まあほかにいい手もないですけど…

3はどうせならinet_ptonのバインディングを入れたほうがいいかもしれません。
あとgetaddrinfoとかRFC3493一式。;)

-- 
木村 冬樹
-------------- next part --------------
Index: ext/net/net.c
===================================================================
RCS file: /cvsroot/gauche/Gauche/ext/net/net.c,v
retrieving revision 1.24
diff -u -r1.24 net.c
--- ext/net/net.c	30 Jan 2003 12:14:19 -0000	1.24
+++ ext/net/net.c	28 Apr 2003 04:10:55 -0000
@@ -353,5 +353,20 @@
 #ifdef IP_OPTIONS
     DEFSYM("IP_OPTIONS",   IP_OPTIONS);
 #endif
+#ifdef IP_MULTICAST_IF
+    DEFSYM("IP_MULTICAST_IF", IP_MULTICAST_IF);
+#endif
+#ifdef IP_MULTICAST_TTL
+    DEFSYM("IP_MULTICAST_TTL", IP_MULTICAST_TTL);
+#endif
+#ifdef IP_MULTICAST_LOOP
+    DEFSYM("IP_MULTICAST_LOOP", IP_MULTICAST_LOOP);
+#endif
+#ifdef IP_ADD_MEMBERSHIP
+    DEFSYM("IP_ADD_MEMBERSHIP", IP_ADD_MEMBERSHIP);
+#endif
+#ifdef IP_DROP_MEMBERSHIP
+    DEFSYM("IP_DROP_MEMBERSHIP", IP_DROP_MEMBERSHIP);
+#endif
 #endif /* SOL_IP */
 }


Gauche-devel-jp メーリングリストの案内
アーカイブの一覧に戻る