亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? httpd.i

?? 實現在指定視頻服務器下的視頻點播
?? I
字號:
# 1 "httpd.c"



 






































 






 

































 

# 1 "globals.h"








typedef unsigned long  int u32;
typedef unsigned short int u16;
typedef unsigned      char  u8;






                                    

                                    


                                        

                                    









extern _Bool STACK_BUSY;

extern u16 temp_cgi; 		

# 87 "httpd.c"
# 1 "uip.h"



 










 


































 




# 1 "uipopt.h"









 










 

































 





 



 






 
typedef unsigned char u8_t;






 
typedef unsigned short u16_t;






 
typedef unsigned short uip_stats_t;

 

 













 









 













 


# 146 "uipopt.h"

# 159 "uipopt.h"

# 172 "uipopt.h"









 






								

 

								

 

								

 

								

 

								

 

 
 




 




 














 






 


 

 








 





 









 






 






 


 
 



 










 










 








 










 










 






 







 








 






 







  



 
 



 








 







 


 

 




 









 









 










 







 
void uip_log(char *msg);









 



 
 









 
# 493 "uipopt.h"








 




 
 































 







 






 
 



 




# 57 "uip.h"
# 1 "httpd.h"



 





 

































 




void httpd_init(void);
void httpd_appcall(void);



 




struct httpd_state {
  u8 state; 
  u16 count;
  char *dataptr;
  char *script;
};



 






extern struct httpd_state *hs;

# 58 "uip.h"
# 1 "uip_arp.h"



 




 
 




 
  

































 




# 1 "uip.h"



 










 


































 

# 1071 "uip.h"


 

# 56 "uip_arp.h"





 
struct uip_eth_addr {
  u8 addr[6];
};

extern struct uip_eth_addr uip_ethaddr;



 
struct uip_eth_hdr {
  struct uip_eth_addr dest;
  struct uip_eth_addr src;
  u16_t type;
};








 
void uip_arp_init(void);





 
void uip_arp_ipin(void);






 
void uip_arp_arpin(void);










 
void uip_arp_out(void);


 
void uip_arp_timer(void);

 




 








 










 











 










 



















 
# 193 "uip_arp.h"

 




 
extern const u16_t uip_arp_draddr[2], uip_arp_netmask[2];









# 59 "uip.h"


 



 







 











 














 



 






 






 
void uip_init(void);

 







 


















































 











































 














 



# 297 "uip.h"






















 
extern u8 uip_buf[1600+2];

 

 



 





 












 
void uip_listen(u16 port);












 
void uip_unlisten(u16 port);

































 
struct uip_conn *uip_connect(u16 *ripaddr, u16 port);











 


























 










 










 








 










 









 







 










 






 









 










 











 









 









 









 











 













  







 












 












 
struct uip_udp_conn *uip_udp_new(u16 *ripaddr, u16 rport);







 












 


 

 







 
 



















 













 
# 715 "uip.h"







 

u16 htons(u16 val);


 







 

extern volatile u8 *uip_appdata;

extern volatile unsigned int uip_appdata_length; 


extern volatile u8 *uip_sappdata; 







 
extern volatile u8 *uip_urgdata; 











 
extern volatile u16 uip_len, uip_slen;


extern volatile u8 uip_urglen, uip_surglen;












 
struct uip_conn {
  u16 ripaddr[2];    
  
  u16 lport;         
  u16 rport;        
   
  
  u8 rcv_nxt[4];    
 
  u8 snd_nxt[4];    
 
  u16 len;           
  u16 mss;          
 
  u16 initialmss;   
   
  u8 sa;            
 
  u8 sv;            
 
  u8 rto;            
  u8 tcpstateflags;  
  u8 timer;          
  u8 nrtx;          
 

   
  u8 appstate[(sizeof(struct httpd_state))];  
};


 
extern struct uip_conn *uip_conn;
 
extern struct uip_conn uip_conns[10];



 



 
extern volatile u8 uip_acc32[4];

 


# 842 "uip.h"





 
struct uip_stats {
  struct {
    uip_stats_t drop;     
 
    uip_stats_t recv;     
 
    uip_stats_t sent;     
 
    uip_stats_t vhlerr;   
 
    uip_stats_t hblenerr; 
 
    uip_stats_t lblenerr; 
 
    uip_stats_t fragerr;  
 
    uip_stats_t chkerr;   
 
    uip_stats_t protoerr; 
 
  } ip;                    
  struct {
    uip_stats_t drop;      
    uip_stats_t recv;      
    uip_stats_t sent;      
    uip_stats_t typeerr;  
 
  } icmp;                  
  struct {
    uip_stats_t drop;      
    uip_stats_t recv;      
    uip_stats_t sent;      
    uip_stats_t chkerr;   
 
    uip_stats_t ackerr;   
 
    uip_stats_t rst;       
    uip_stats_t rexmit;    
    uip_stats_t syndrop;  
 
    uip_stats_t synrst;   
 
  } tcp;                   
};





 
extern struct uip_stats uip_stat;


 


 
 





 
extern volatile u8 uip_flags;





 

# 945 "uip.h"








 
void uip_process(u8 flag);





 

# 971 "uip.h"

 
# 983 "uip.h"
  




 
typedef struct {
   
  u8 vhl,
    tos,          
    len[2],       
    ipid[2],        
    ipoffset[2],  
    ttl,          
    proto;     
  u16 ipchksum;
  u16 srcipaddr[2], 
    destipaddr[2];
  
   
  u16 srcport,
    destport;
  u8 seqno[4],  
    ackno[4],
    tcpoffset,
    flags,
    wnd[2];     
  u16 tcpchksum;
  u8 urgp[2];
  u8 optdata[4];
} uip_tcpip_hdr;

 
typedef struct {
   
  u8 vhl,
    tos,          
    len[2],       
    ipid[2],        
    ipoffset[2],  
    ttl,          
    proto;     
  u16 ipchksum;
  u16 srcipaddr[2], 
    destipaddr[2];
   
  u8 type, icode;
  u16 icmpchksum;
  u16 id, seqno;  
} uip_icmpip_hdr;


 
typedef struct {
   
  u8 vhl,
    tos,          
    len[2],       
    ipid[2],        
    ipoffset[2],  
    ttl,          
    proto;     
  u16 ipchksum;
  u16 srcipaddr[2], 
    destipaddr[2];
  
   
  u16 srcport,
    destport;
  u16 udplen;
  u16 udpchksum;
} uip_udpip_hdr;






extern const u16 uip_hostaddr[2];











 

# 88 "httpd.c"
# 1 "fs.h"



 





 
 

































 







 
struct fs_file {
  char *data;   
  int len;      
};








 
int fs_open(const char *name, struct fs_file *file);



u16_t fs_count(char *name);





 
void fs_init(void);

# 90 "httpd.c"
# 1 "fsdata.h"

































 







struct fsdata_file {
   const struct fsdata_file *next; 
   const char *name;				
   const char *data;					
   const int len;						


  u16_t count;


};

struct fsdata_file_noconst {
  struct fsdata_file *next;
  char *name;
  char *data;
  int len;


  u16_t count;


};




extern const struct fsdata_file file_cgi_stats[];
extern const struct fsdata_file file_cgi_tcp[];
extern const struct fsdata_file file_img_bg_png[];
extern const struct fsdata_file file_about_html[];
extern const struct fsdata_file file_control_html[];
extern const struct fsdata_file file_404_html[];


extern const struct fsdata_file file_media_html[];
extern const struct fsdata_file file_index_html[];
extern const struct fsdata_file file_stats_footer_plain[];
extern const struct fsdata_file file_stats_header_html[];
extern const struct fsdata_file file_tcp_footer_plain[];
extern const struct fsdata_file file_tcp_header_html[];


# 91 "httpd.c"
# 1 "cgi.h"



 





 

































 




typedef u8_t (* cgifunction)(u8_t next);




 
extern cgifunction cgitab[];

# 92 "httpd.c"



 









# 113 "httpd.c"

struct httpd_state *hs;




static void next_scriptline(void);
static void next_scriptstate(void);

# 136 "httpd.c"


 




 
 
void
httpd_init(void)
{
  fs_init();
  
   
  uip_listen(((((u16)((80) & 0xff)) << 8) | (((80) & 0xff00) >> 8)));
}
 
void
httpd_appcall(void)
{
  struct fs_file fsfile; 
  char temp=0; 

  u32 i;

  	if(temp_cgi ==1){			
		temp_cgi=66;};
  
  switch(uip_conn->lport) {
     
  case ((((u16)((80) & 0xff)) << 8) | (((80) & 0xff00) >> 8)):
     
    hs = (struct httpd_state *)(uip_conn->appstate);

    





 
    if((uip_flags & 64)) {
      




 
      hs->state = 0;
      hs->count = 0;
      return;

    } else if((uip_flags & 8)) {
      

 
      if(hs->count++ >= 10) {
	(uip_flags = 32);
      }
      return;
    } else if((uip_flags & 2) && hs->state == 0) {
      
 
      
       
      if(uip_appdata[0] != 0x47 ||
	 	 uip_appdata[1] != 0x45 ||
	 	 uip_appdata[2] != 0x54 ||
	 	 uip_appdata[3] != 0x20) {
	 
	(uip_flags = 32);
	return;
      }
	       
       
      for(i = 4; i < 40; ++i) {
		if(uip_appdata[i] == 0x20 ||
	   	   uip_appdata[i] == 0x0d ||
	   	   uip_appdata[i] == 0x0a) {
	  	   	uip_appdata[i] = 0;
	  		break;
		}
      }

      ;
      ;
      
       
      if(uip_appdata[4] == 0x2f &&
	 uip_appdata[5] == 0) {

	fs_open(file_index_html->name, &fsfile);    
 
      } else {
	if(!fs_open((const char *)&uip_appdata[4], &fsfile)) {
	  ;

  	  fs_open(file_404_html->name, &fsfile);

	}
      } 


      if(uip_appdata[4] == 0x2f &&
	 	 uip_appdata[5] == 0x63 &&
	 	 uip_appdata[6] == 0x67 &&
		 uip_appdata[7] == 0x69 &&
		 uip_appdata[8] == 0x2f) {
	
 	
	hs->script = fsfile.data;
	next_scriptstate();
	temp++;
      } else {  
	hs->script = (void *)0;
	

 
	hs->state = 1;

	
 
	hs->dataptr = fsfile.data;
	hs->count = fsfile.len;	
      }     
    }

    
    if(hs->state != 3) {
      


 
   if((uip_flags & 1)) {
	if(hs->count >= uip_conn->len) {
	  hs->count -= uip_conn->len;
	  hs->dataptr += uip_conn->len;
	} else {
	  hs->count = 0;
	}
	
	if(hs->count == 0) {
	  if(hs->script != (void *)0) {
	    next_scriptline();
	    next_scriptstate();
	  } else { (uip_flags = 16); }
	}
      }         
    } else {
       
      if(cgitab[hs->script[2] - 0x61]((uip_flags & 1))) {
	
 
	next_scriptline();
	next_scriptstate();
      }
    }

    if(hs->state != 3 && !(uip_flags & 8)) {
      
  
  	  do { uip_sappdata = ((volatile u8_t *)hs->dataptr); uip_slen = (hs->count);} while(0);
    }

    
 
   return;

  default:
     
    (uip_flags = 32);
    break;
  }  
}
 


 
static void
next_scriptline(void)
{
   
  do {
    ++(hs->script);
  } while(hs->script[0] != 0x0a);

   
  ++(hs->script);
}
 



 
static void
next_scriptstate(void)
{
  struct fs_file fsfile;
  u8_t i;
 again:
  switch(hs->script[0]) {
  case 0x74:
     
    hs->state = 2;
    hs->dataptr = &hs->script[2];

     
    for(i = 0; hs->dataptr[i] != 0x0a; ++i);
    hs->count = i;    
    break;
  case 0x63:
     
    hs->state = 3;
    hs->dataptr = (void *)0;
    hs->count = 0;
    cgitab[hs->script[2] - 0x61](0);
    break;
  case 0x69:   
     
    hs->state = 1;
    if(!fs_open(&hs->script[2], &fsfile)) {
      (uip_flags = 32);
    }
    hs->dataptr = fsfile.data;
    hs->count = fsfile.len;
    break;
  case 0x23:
     
    next_scriptline();
    goto again;

  case 0x2e:
     
    hs->state = 4;
    (uip_flags = 16);
    break;
  default:
    (uip_flags = 32);
    break;
  }
}
 
 
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩福利电影在线观看| 亚洲精品在线免费观看视频| 蜜桃视频第一区免费观看| 色综合久久综合网97色综合| 国产精品电影院| www.欧美亚洲| 一级精品视频在线观看宜春院| 91久久精品一区二区二区| 天天av天天翘天天综合网色鬼国产| 日韩午夜激情av| 国产91在线观看丝袜| 亚洲免费高清视频在线| 欧美日韩国产bt| 国产乱码精品一区二区三 | 欧美日韩美女一区二区| 三级欧美韩日大片在线看| 精品国产91亚洲一区二区三区婷婷| 韩国欧美国产一区| 亚洲品质自拍视频| 欧美一级欧美三级在线观看| 懂色av噜噜一区二区三区av| 亚洲国产裸拍裸体视频在线观看乱了 | 国产成a人亚洲精品| 亚洲免费在线观看| 欧美一区二区免费| 菠萝蜜视频在线观看一区| 亚洲国产sm捆绑调教视频| 精品国产电影一区二区| 91一区二区在线观看| 日韩精品一区第一页| 国产情人综合久久777777| 欧洲日韩一区二区三区| 国产乱一区二区| 亚洲五码中文字幕| 国产精品污网站| 日韩欧美亚洲另类制服综合在线| 国产精品一二三四| 天堂va蜜桃一区二区三区| 国产精品久久久久久久裸模| 欧美一区二区三区免费视频| av欧美精品.com| 精彩视频一区二区| 天天综合网 天天综合色| 国产精品免费人成网站| 一区二区三区影院| 久久精品视频一区| 日韩一级二级三级精品视频| 色国产综合视频| 风间由美一区二区三区在线观看| 三级欧美在线一区| 亚洲精品ww久久久久久p站| 久久久久久99精品| 欧美大片在线观看一区| 欧美日韩免费电影| 欧美性大战久久久久久久蜜臀| 不卡一区二区三区四区| 国内精品免费在线观看| 日韩va亚洲va欧美va久久| 亚洲综合在线第一页| 亚洲视频香蕉人妖| 国产精品初高中害羞小美女文| 日韩欧美不卡一区| 日韩欧美一区电影| 91精品国产综合久久国产大片| 欧美午夜免费电影| 欧美日韩一级黄| 欧美三区在线观看| 欧美色图激情小说| 欧美影片第一页| 欧美日韩中文精品| 欧美日韩黄视频| 欧美高清精品3d| 91精品一区二区三区久久久久久 | 性欧美大战久久久久久久久| 亚洲黄色性网站| 亚洲精品国产第一综合99久久| 亚洲情趣在线观看| 亚洲婷婷在线视频| 夜夜揉揉日日人人青青一国产精品| 亚洲日本乱码在线观看| 亚洲精选一二三| 亚洲一区二区三区在线看| 亚洲综合男人的天堂| 无码av免费一区二区三区试看| 日韩精品乱码av一区二区| 日韩不卡一区二区| 国产在线不卡一区| 成人黄动漫网站免费app| 97久久精品人人爽人人爽蜜臀| 99精品视频免费在线观看| 色偷偷一区二区三区| 国产精品三级视频| 综合中文字幕亚洲| 亚洲国产另类av| 久久精品国产澳门| 丰满白嫩尤物一区二区| 色综合 综合色| 777午夜精品免费视频| 欧美mv日韩mv国产网站| 国产欧美视频一区二区三区| 亚洲国产精品成人综合色在线婷婷| 成人欧美一区二区三区1314| 亚洲午夜精品网| 狠狠色丁香九九婷婷综合五月| 成人污污视频在线观看| 在线观看免费成人| 精品欧美黑人一区二区三区| 国产精品国产精品国产专区不蜜| 亚洲精品五月天| 久久精品国产亚洲aⅴ| 波多野结衣视频一区| 欧美精品第一页| 国产精品麻豆视频| 天天爽夜夜爽夜夜爽精品视频| 国产成人综合自拍| 欧美视频在线一区二区三区 | 亚洲人一二三区| 日韩一区精品视频| 国产精品亚洲一区二区三区在线 | 99久精品国产| 日韩你懂的在线观看| 国产精品久久久久久久久快鸭 | 国产福利视频一区二区三区| 在线影视一区二区三区| 久久中文娱乐网| 亚洲bdsm女犯bdsm网站| 国产成人亚洲综合色影视| 欧美日韩黄视频| 亚洲色图欧洲色图| 激情欧美一区二区| 欧美高清一级片在线| **网站欧美大片在线观看| 精品一区二区三区不卡| 欧美激情一区二区三区四区| 日本在线不卡一区| 91国内精品野花午夜精品| 精品免费日韩av| 日韩专区在线视频| 一本色道久久综合亚洲aⅴ蜜桃 | 成人精品gif动图一区| 日韩欧美一二三四区| 亚洲电影第三页| 色综合天天综合网天天狠天天| 久久久久久**毛片大全| 九九**精品视频免费播放| 51午夜精品国产| 亚洲18影院在线观看| 欧洲日韩一区二区三区| 中文字幕一区三区| 国产成人午夜精品影院观看视频| 欧美一区二区三区免费观看视频| 亚洲高清免费在线| 在线免费观看视频一区| 综合欧美亚洲日本| 99国产精品久久久久久久久久| 久久精品欧美一区二区三区麻豆| 久久99热这里只有精品| 欧美一卡二卡在线观看| 日本怡春院一区二区| 5858s免费视频成人| 五月婷婷综合网| 91精品国产综合久久久蜜臀图片| 一区二区三区国产| 欧美亚洲精品一区| 亚洲国产一区二区三区青草影视| 在线观看日韩av先锋影音电影院| 亚洲老妇xxxxxx| 欧美亚洲禁片免费| 日韩国产欧美在线视频| 91精品国产入口在线| 青青草国产精品亚洲专区无| 日韩欧美电影在线| 国内国产精品久久| 中文字幕第一区二区| 99国产精品国产精品毛片| 亚洲精品高清在线| 欧美日韩一卡二卡三卡| 免费欧美在线视频| 久久精品一区二区| av亚洲精华国产精华精| 一区二区三区中文免费| 欧美吞精做爰啪啪高潮| 男女男精品网站| 精品国产乱码久久久久久1区2区| 国产成人午夜精品影院观看视频| 日本一区二区电影| 色婷婷亚洲精品| www.欧美色图| 亚洲国产成人av网| 亚洲精品在线观看网站| 国产成人自拍高清视频在线免费播放| 国产精品国产三级国产有无不卡 | 日韩欧美视频一区| 国产老女人精品毛片久久| 国产精品久久久久精k8| 欧美日韩你懂得| 国产剧情一区二区| 亚洲一区在线观看免费 | 国产成都精品91一区二区三| 亚洲精品午夜久久久|