OSDN Git Service

update libMiMic
[mimic/MiMicSDK.git] / projects / example / sample.net.simplehttpd / src / sketch.c
1 /**\r
2  * httpdサーバのサンプルです。\r
3  * ROMにある定義済みファイルの入出力と、クロスドメインRESTが確認できます。\r
4  */\r
5 #include "boot/sketch.h"\r
6 #include "NyLPC_net.h"\r
7 \r
8 #include "NyLPC_http.h"\r
9 #include "NyLPC_utils.h"\r
10 #include "../netif/mimicip/NyLPC_cMiMicIpNetIf.h"\r
11 \r
12 const struct NyLPC_TiNetInterface_Interface* netif;\r
13 struct MyHttpd{\r
14         NyLPC_TcHttpd_t super;\r
15 }httpd;\r
16 \r
17 #define NUM_OF_FSDATA 4\r
18 extern struct NyLPC_TRomFileData fsdata[];\r
19 \r
20 \r
21 void handler(NyLPC_TcHttpdConnection_t* i_connection)\r
22 {\r
23         NyLPC_TcModUrl_t mod;\r
24         char url[64];\r
25 \r
26 \r
27         //SHORT URL\r
28         NyLPC_cModUrl_initialize(&mod);\r
29         if(!NyLPC_cModUrl_execute(&mod,i_connection,url,64)){\r
30                 NyLPC_cModUrl_finalize(&mod);\r
31                 return;\r
32         }\r
33         NyLPC_cHttpdConnection_sendResponseHeader(i_connection,200,"text/html",NULL);\r
34         NyLPC_cHttpdConnection_sendResponseBodyF(i_connection,"<html><h1>Your request path is %s</h1></html>",url);\r
35         NyLPC_cModUrl_finalize(&mod);\r
36         return;\r
37 }\r
38 void setup(void)\r
39 {\r
40         //uipサービス初期化。いろいろ利用可能に。\r
41         netif=NyLPC_cMiMicIpNetIf_getNetInterface();\r
42         NyLPC_cNet_initialize(netif);\r
43         NyLPC_cHttpd_initialize(&httpd.super,80);\r
44         httpd.super.function.onRequest=handler;\r
45 \r
46 }\r
47 \r
48 \r
49 void loop(void)\r
50 {\r
51         NyLPC_TcNetConfig_t c2;\r
52         //192.168.0.39\r
53         NyLPC_cNetConfig_initialize(&c2,NyLPC_TBool_TRUE);\r
54         NyLPC_cNet_start(&(c2.super));\r
55         NyLPC_cHttpd_loop(&httpd.super);\r
56         for(;;);\r
57 }\r
58 \r
59 \r