投稿

7月, 2009の投稿を表示しています

新江ノ島水族館

今週末は鎌倉の海岸で海水浴予定だったが、あいにくの天気に見舞われ、新江ノ島水族館に行き先を変更。 朝一の館内は、そんなに人も混んでおらずそこそこ展示物を楽しめたが、イルカショーの後のころには、ペンギンもカメタッチも人混み過ぎてあまり楽しめず。 イルカショーは、へんちくりんな格好した人間のパフォーマンスが目に付き、肝心のイルカの芸が迫力がない。でも、それはあくまで大人目線で、ムスメは一人で拍手しながら大興奮。 正直、イルカショーに限っていえば、近場の品川アクアスタジアムの方が数倍は楽しい。明らかに客の歓声の数も大きさも違った。 でも展示物はこちらの方が多いし、ムスメがもう少し大きくなってゆっくり回れるようになったら、もう一度来てみようか。

apacheのサイト証明書を設定 - 調査

確認環境 Debian(etch) apache2-mpm-prefork 2.2.3-4+etch6 手順 ①証明書要求の作成 ~# cd ~# mkdir www33.atwiki.jp ~# cd www33.atwiki.jp ~/www33.atwiki.jp# ~/www33.atwiki.jp# openssl req -new -keyout site_key.pem -out site_csr.pem ... Enter PEM pass phrase: Verifying - Enter PEM pass phrase: ... Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]:KANTO Locality Name (eg, city) []:KANAGAWA Organization Name (eg, company) [Internet Widgits Pty Ltd]:NONE Organizational Unit Name (eg, section) []:NONE Common Name (eg, YOUR name) []:www33.atwiki.jp Email Address []:NONE Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:tekitou An optional company name []: ~/www33.atwiki.jp# ②証明書要求の送付 サイト証明書を発行してもらうため、証明書要求をベリサイン等の認証機関に送付する。もしくは、独自認証局で自分でサイト証明書を作成する。 (1)サイト証明書の配置と設定 scp等でサイト証明書を/root/www33.atwiki.jp/site_cert.pemに配置 ~# ls www33.atwiki.jp/site_cert.pem www33.atwiki.jp/site_cert.pem (2)サイトキーから...

[C言語] RPCサンプルプログラム - 調査

参考資料( http://www.cs.tsukuba.ac.jp/~yas/sie/cdsoft-2005/2006-01-20/index.html )を元にRPCサンプルプログラムを動作させてみた際のメモ。 ソースコードほかの入手 $ wget http://www.cs.tsukuba.ac.jp/~yas/sie/cdsoft-2005/2006-01-20/ex/dirlist.x $ wget http://www.cs.tsukuba.ac.jp/~yas/sie/cdsoft-2005/2006-01-20/ex/dirlist_server.c $ wget http://www.cs.tsukuba.ac.jp/~yas/sie/cdsoft-2005/2006-01-20/ex/dirlist_client.c $ wget http://www.cs.tsukuba.ac.jp/~yas/sie/cdsoft-2005/2006-01-20/ex/Makefile コンパイル $ make rpcgen -C dirlist.x gcc -g -DDEBUG -c -o dirlist_clnt.o dirlist_clnt.c gcc -g -DDEBUG -c -o dirlist_client.o dirlist_client.c gcc -g -DDEBUG -c -o dirlist_xdr.o dirlist_xdr.c gcc -g -DDEBUG -o dirlist_client dirlist_clnt.o dirlist_client.o dirlist_xdr.o -lnsl gcc -g -DDEBUG -c -o dirlist_svc.o dirlist_svc.c gcc -g -DDEBUG -c -o dirlist_server.o dirlist_server.c gcc -g -DDEBUG -o dirlist_server dirlist_svc.o dirlist_server.o dirlist_xdr.o -lnsl 実験その1 単純動作 ※サーバとクライアントで端末を分けること <サーバ側> $ ./dirlist_server <クライアント側...

pmap_getport(2)

ポートマッパ(portmap)からRPCサービスのポート番号を取得するpmap_getport関数の使い方。 用例 ... addr.sin_port = htons(111); /* (1) portmapのポート番号を設定 */ if ((addr.sin_port = htons(pmap_getport(&addr, 0x20000000, 1, IPPROTO_TCP))) == 0) { /* (2) 使用したいRPCサービスのポート番号で置き換え */ perror("pmap_getport"); exit(1); } /* (3) ポート番号が置き換わったところで、コネクトする */ if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0){ perror("connect"); exit(1); } 備考 上記は、独自プロトコルのポート取得にportmapを使う例になっている。本来、connectなんて書かずに、キチンとRPCの関数を使ってRPCプロトコルで通信すべきなんだろうが。

pmap_set(2)

ポートマップ(portmap)にRPCサービスを登録するpmap_set関数。 用例 pmap_unset(0x20000000, 1); if (pmap_set(0x20000000, 1, IPPROTO_TCP, ntohs(saddr.sin_port)) != 1) { perror("pmap_set"); exit(1); }

getsockname(2)

soctnameを取得する関数。 用例 len = sizeof(saddr); if (getsockname(fd1, (struct sockaddr *)&saddr, &len) != 0){ perror("getsockname"); exit(1); } printf("port number is %d.\n", ntohs(saddr.sin_port)); メモ manページを眺めても使い方が良く分かんらんかった。試行錯誤の上、上記に到達。