MonaがWebサーバになった日 2005/12/31
uIPが正常動作し、MonaがWebサーバになりました。
涙が出そうなくらいうれしいですね。
1.MonaでuIPを起動します。
3.Monaからコンテンツが返ってきます
4.Live HTTP headersで見てみると
HTTP/1.x 200 OK Server: Mona OS 0.3.0Alpha6 uIP/0.9 (http://dunkels.com/adam/uip/) Content-Type: text/html
('ー` ;) ナケル
まとめ
このWebサーバ機能はuIPのhttpdをそのまま利用しています。
Webサーバは今のところ、ファイルシステムアクセスをしていません(ソースに埋め込まれたコンテンツを返しています。ファイルシステムにつなぐコードを書くのは正月ごろに・・・)。
QEMUで動作するISOイメージはこちら(IPアドレスが192.168.100.2に固定されています)
mona-iso-20051231.zip
この機能が実現できたのは、id:Yamamiさんの先行実装であるMonesとその成果物である、NICドライバがあってこそ実現できたものです。
この場を借りてお礼を申し上げます。
追記 WinPcap版からMonaへの移植の際のトラブル
- ぬるぽで落ちる
- →データ構造体を間違える単純ミス
- 送信がうまくいかない
// 宛先アドレスの書き込み // ne_pio_writemem( ptx_dest, NE_TX_PAGE_START << 8, 6 ); // 送信元アドレスの書き込み // ne_pio_writemem( ether_mac_addr, ( NE_TX_PAGE_START << 8 ) + 6, 6 ); // プロトコルIDの書き込み // ne_pio_writemem( (byte *)&ptx_type, ( NE_TX_PAGE_START << 8 ) + 12, 2 ); // データ部分の書き込み // ne_pio_writemem( ptx_packet, ( NE_TX_PAGE_START << 8 ) + 14, ptx_size ); ne_pio_writemem( ptx_packet, ( NE_TX_PAGE_START << 8 ) , ptx_size );