Jun Furutani / libMiMic

Fork of libMiMic by Ryo Iizuka

Committer:
nyatla
Date:
Tue Jul 09 12:07:17 2013 +0000
Revision:
43:a182f2b5ff41
Parent:
mbed/ModBaseClass.cpp@19:33b9ba0859ee
Child:
66:ee7866efe5e6
Child:
85:416f8bbbdf54
update to r276;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 7:2b33a8d84eb3 1 #pragma once
nyatla 7:2b33a8d84eb3 2
nyatla 7:2b33a8d84eb3 3 #include "ModBaseClass.h"
nyatla 7:2b33a8d84eb3 4 #include "HttpdConnection.h"
nyatla 7:2b33a8d84eb3 5 #include "NyLPC_cHttpdConnection_protected.h"
nyatla 7:2b33a8d84eb3 6
nyatla 7:2b33a8d84eb3 7
nyatla 7:2b33a8d84eb3 8
nyatla 7:2b33a8d84eb3 9 namespace MiMic
nyatla 7:2b33a8d84eb3 10 {
nyatla 7:2b33a8d84eb3 11 ModBaseClass::ModBaseClass(const char* i_path)
nyatla 7:2b33a8d84eb3 12 {
nyatla 7:2b33a8d84eb3 13 this->_path=NULL;
nyatla 7:2b33a8d84eb3 14 this->setParam(i_path);
nyatla 7:2b33a8d84eb3 15 }
nyatla 7:2b33a8d84eb3 16 ModBaseClass::ModBaseClass()
nyatla 7:2b33a8d84eb3 17 {
nyatla 7:2b33a8d84eb3 18 this->_path=NULL;
nyatla 7:2b33a8d84eb3 19 }
nyatla 7:2b33a8d84eb3 20 ModBaseClass::~ModBaseClass()
nyatla 7:2b33a8d84eb3 21 {
nyatla 7:2b33a8d84eb3 22 if(this->_path!=NULL){
nyatla 7:2b33a8d84eb3 23 free(this->_path);
nyatla 7:2b33a8d84eb3 24 }
nyatla 7:2b33a8d84eb3 25 }
nyatla 7:2b33a8d84eb3 26 void ModBaseClass::setParam(const char* i_path)
nyatla 7:2b33a8d84eb3 27 {
nyatla 7:2b33a8d84eb3 28 if(this->_path!=NULL){
nyatla 7:2b33a8d84eb3 29 free(this->_path);
nyatla 7:2b33a8d84eb3 30 }
nyatla 7:2b33a8d84eb3 31 this->_path=(char*)malloc(strlen(i_path)+1);
nyatla 7:2b33a8d84eb3 32 if(this->_path==NULL){
nyatla 7:2b33a8d84eb3 33 exit(-1);
nyatla 7:2b33a8d84eb3 34 }
nyatla 7:2b33a8d84eb3 35 strcpy(this->_path,i_path);
nyatla 7:2b33a8d84eb3 36 }
nyatla 7:2b33a8d84eb3 37 bool ModBaseClass::canHandle(HttpdConnection& i_connection)
nyatla 7:2b33a8d84eb3 38 {
nyatla 7:2b33a8d84eb3 39 if(this->_path==NULL){
nyatla 7:2b33a8d84eb3 40 return false;
nyatla 7:2b33a8d84eb3 41 }
nyatla 19:33b9ba0859ee 42 //connectonの状態を確認
nyatla 19:33b9ba0859ee 43 if(!NyLPC_cHttpdConnection_getReqStatus(i_connection._ref_inst)==NyLPC_cHttpdConnection_ReqStatus_REQPARSE)
nyatla 19:33b9ba0859ee 44 {
nyatla 19:33b9ba0859ee 45 return NyLPC_TBool_FALSE;
nyatla 19:33b9ba0859ee 46 }
nyatla 7:2b33a8d84eb3 47 const NyLPC_TChar* in_url;
nyatla 7:2b33a8d84eb3 48 in_url=NyLPC_cHttpdConnection_getUrlPrefix(i_connection._ref_inst);
nyatla 7:2b33a8d84eb3 49 size_t base_url_len=strlen(this->_path);
nyatla 7:2b33a8d84eb3 50 if(strlen(in_url)-2<base_url_len){
nyatla 7:2b33a8d84eb3 51 return false;
nyatla 7:2b33a8d84eb3 52 }
nyatla 7:2b33a8d84eb3 53 if(in_url[0]!='/' || strncmp(in_url+1,this->_path,base_url_len)!=0 || in_url[base_url_len+1]!='/'){
nyatla 7:2b33a8d84eb3 54 return false;
nyatla 7:2b33a8d84eb3 55 }
nyatla 7:2b33a8d84eb3 56 return true;
nyatla 7:2b33a8d84eb3 57 }
nyatla 7:2b33a8d84eb3 58 }