12.06.2015 Views

Running Apache httpd on a mobile phone

Running Apache httpd on a mobile phone

Running Apache httpd on a mobile phone

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

!!"<br />

# $%&' !!"( ()


)<br />

!<br />

!"##$%<br />

&'(#%<br />

)##!


*$<br />

*+$#+#,!-#<br />

"'(#./<br />

&'(('$.<br />

-#$ -0<br />

1#-(-+$,##0<br />

#$+#+#'#- 0<br />

'2+"'##(- 0


+$ ,+-!<br />

!"#3+$22#2"'!"+(!(#,0<br />

)44&50<br />

!"'$$!#(#+#20<br />

6+##'#72-(!+$ 0<br />

8($+''$7+'"!!+(+$+'"+ #,<br />

2"- -($ #$<br />

#((+0<br />

($+#$""!"#,"## #9#- #,#$2!"<br />

'$$+$0<br />

:$+## #$+#$'+,#0<br />

,'#,2"- '$$0<br />

,(2-$!+-#0<br />

%!;5#$< =>!#'2!"#0<br />

)##(2+##!-0


.<br />

!"#(2"#!!($*#$$/ )!0<br />

@+"$0<br />

A+,,!<br />

>'-"'"#$#'20<br />

#, $!#'2!"###+<br />

-+$(#'(!"#+"#,0<br />

5#('#,27 -#$+$0<br />

&,#2#(2(2+###!'*


+$ ,+-!<br />

%


+$ ,+-!<br />

+H<br />

A+$##"#<br />

I+#"++<br />

JB'#,:<br />

5"'#,$+<br />

+!$<br />

&2(("'!$22##+''$# !"#0


0+$ ,+-!<br />

G


0+$ ,+-!<br />

A+$##"#'"!##$-0<br />

"B'"#+$##"##


+<br />

&#!(#,((+$+##( ,+#$7#$'#$#!2;57"+<br />

+#$#!"#0<br />

'0<br />

)#!0<br />

,'0<br />

)#!'$,+)44&57+#,-((#''###-(<br />

(0<br />

!#(#+!!#(#+!0<br />

A(#$(#7(!"'"#(&5!#$#,",(0<br />

)#&''<br />

)#


* +$ +1<br />

+#&'(('$$!#!"#0<br />

JB#"$2#-+$#$$0<br />

5#$7('$+##'($#$(!"#0<br />

>"(+$7(''',+!"#0<br />

>"'#2-7(##"#-(++!0<br />

;5<br />

('$0$<br />

,<br />

<br />

('$0B<br />

, '(L"#<br />


"#''###2('##,(-0<br />

RHttpd hHttpd;<br />

hHttpd.C<strong>on</strong>nect();<br />

8(('0<br />

-7('$2#$2StartServer() $0<br />

hHttpd.StartServer();<br />

&('##$!($$#-((('$"#$0<br />

#if defined(__SYMBIAN32__)<br />

int apache_main(int argc, c<strong>on</strong>st char * c<strong>on</strong>st argv[])<br />

#else<br />

int main(int argc, c<strong>on</strong>st char * c<strong>on</strong>st argv[])<br />

#endif


23 <br />

8(+2+##!2&'(('$'$$!(($<br />

7 #$<br />

!(C#$#!"'$"$+E""+#+#,, 0<br />

5#'#,!"#'!"#K07:


23 +$ 4%<br />

>"#K0#-$7!"#+''$#:


3 23 <br />

8B'7!+$-("$+'2'2B0<br />

APU_DECLARE_DATA extern apr_pool_t *apr_hook_global_pool;<br />

O#"'2"7('2B$2#$$22#!$'#$#,#-((<br />

#("$+$2##,($(#,"'$0<br />

8(7-(((!"(+$B'$"'$0<br />

•APU_DECLARE_EXPORT $2#-((0<br />

:2#$MN("$+2(#,"'$0<br />

;#$2#$MN"$(+(!"(#,"'$0


3 23 +$ <br />

#if defined(APU_DECLARE_EXPORT)<br />

APU_DECLARE_DATA extern apr_pool_t *apr_hook_global_pool;<br />

#else<br />

#define apr_hook_global_pool (*_apr_hook_global_pool())<br />

#endif<br />

APU_DECLARE(apr_pool_t **) _apr_hook_global_pool();<br />

52("$+$2##,((#,"'$7(#-+<br />

$(0<br />

(#("$+(#$$!0<br />

O(-7-$2#"(B'#$#$2#$2+##0<br />

5#(-$2+##(+#($$2(0<br />

G


3023 <br />

8($2## ("#!"#-(0<br />

APU_DECLARE_DATA apr_pool_t *apr_hook_global_pool = NULL;<br />

5#$$#-($$(2+##+##,($$2 (0<br />

APU_DECLARE(apr_pool_t **) _apr_hook_global_pool()<br />

{<br />

return &apr_hook_global_pool;<br />

}<br />

K


$ $ <br />

:#<br />

APU_DECLARE_EXPORTED_DATA(apr_pool_t *, apr_hook_global_pool);<br />

:2##<br />

APU_DEFINE_EXPORTED_DATA(apr_pool_t *, apr_hook_global_pool) = NULL;<br />

5#(+!"#(#B'#$#(+#$2##0


. #


. <br />

5#,#7""$+#+#('$7+$$ +#"<br />

$#,#+##0<br />

>("$+$$#('0<br />

8(#!" $+'!#"0<br />

O#!"#7!"2":


2+$<br />

8!'!"$+B'+#2-module ++(##<br />

2+##'###B'$2+##0<br />

""$+P 0,0:P B'2+##0<br />

A!B'#,2"("$+2+##(-(#,##"#+#<br />

($$2('#$#,!"7-#'$-!2 #,+'<br />

!"!#"0<br />

apr_status_t ap_lookup_symbol(c<strong>on</strong>st char* name, void** symbol);<br />

>+(72(2+## B'$+#,("$#7-#<br />

" (#'#(!"72"('$'#2-7#<br />

$$!#"+!-(0<br />

J!#,!+#,("B'$2##22"$+0<br />

$+B'#,$$#2+###$'2$2##20


5+$<br />

&!'#!2<str<strong>on</strong>g>httpd</str<strong>on</strong>g>.c<strong>on</strong>f ",(<br />

LoadModule access_module modules/mod_access.so<br />

O#!"#7#"+#$Q!QA#0<br />

J#2$!(!"#'2"+!0<br />

8(7"##,('(0<br />

A+2"'!-(<str<strong>on</strong>g>httpd</str<strong>on</strong>g>.c<strong>on</strong>f #(##"#7'(-$<br />

#$,#$0<br />

5#&'(mod_so.c #$&I!"#'2dso.cpp #-$,+<br />

(#,"##$0<br />

>+##-(('2$# $+'0<br />

8(2+##$-(('$$#"C*L"$+/E0<br />

8(2!(#,+ #!('2"0


# +<br />


678)6%6+9#/8.: 6;<br />

JB'#$#H<br />

static c<strong>on</strong>st ap_export_entry ap_export_entries[] = {<br />

{ “access_module”, &access_module }<br />

};<br />

static c<strong>on</strong>st int ap_export_entries_count =<br />

sizeof(ap_export_entries)/sizeof(ap_export_entries[0]);<br />

EXPORT_C int ap_lookup_symbol(c<strong>on</strong>st char* name, void** symbol) {<br />

}<br />

return ap_lookup_table_symbol(ap_export_entries,<br />

ap_export_entries_count,<br />

name, symbol);<br />

•ap_lookup_table_symbol() ('( +'(!"2"(<br />

'$!2++0<br />

%


0+$


8(+!"$2!"#3+$22#"'$(2(<br />

##"#0<br />

JB+#$:


3 <br />

J!''#('$!2-#0<br />

(''##2#($!0<br />

2'2#2,+#2.<br />

•<str<strong>on</strong>g>httpd</str<strong>on</strong>g>.c<strong>on</strong>f7users70<br />

5#'#'!7+(--+$!+$("#(.<br />

&#$-(2'0<br />

>"+##,($!+#,:&R7(#$#,2"#("'+0<br />

>("#,7&'($#('+-((#<br />

'#2#! #$0<br />

8 !+7+-(2"# -+$"$2!(#2,+#2#$<br />

,2+"''.<br />

I$!+7-(!+#$-(!+72#$+!+-(+<br />

#$'B'##+"0<br />

K


)/ <br />

8(&8>--#("##$(5##0<br />

8(7("#$#(#"#$!+#(0<br />

?<br />

Browser<br />

0?S<br />

Operator<br />

Firewall<br />

5##<br />

Web Server


)5<br />

5#(#B2#,-7("'(#''(<br />

$"##"08(7(-#('(#(;I(--7(-#$('#-#,7''2<br />

(-+$$###0<br />

#2"'#0<br />

*8("'(#"2+""2(-0/<br />

Webserver<br />

Browser<br />

0?S<br />

Operator<br />

Firewall<br />

5##


)< $<br />

I+##"'+-(5#(5##0<br />

5#+000%0<br />

&:"''#,*.at.openlaboratory.net -> 212.213.221.2460<br />

•john.at.openlaboratory.net -> 212.213.221.246<br />

•bob.at.openlaboratory.net -> 212.213.221.246<br />

Webserver<br />

Browser<br />

0?S<br />

Operator<br />

Firewall<br />

Gateway<br />

DNS<br />

5##


;I< ('HT00'#!0# (5$$2(<br />

,-!"'+CE0<br />

883+$$(,-!CE0<br />

>"( 883+($7(,-!#$$+-((3+<br />

##$$20<br />

8(,-!(#$(3+2(###'#$!(<br />

"#CE0<br />

Webserver<br />

<br />

<br />

Browser<br />

<br />

0?S<br />

Operator<br />

Firewall<br />

Gateway<br />

DNS<br />

5##<br />

?


#= #<br />

%


#<br />

#'(<br />

#0<br />

(!+<br />

"<br />

#-0<br />

&$H<br />

8B",0<br />

)#$<br />

)#<br />

A!+!2<br />

,("U'BG"$0"


#<br />

5#,#2(<br />

"'(##$<br />

(-0<br />

2"2<br />

#$#,",<br />

$!(#B<br />

2('(#0<br />

5#!<br />

,#$##0<br />

A!+!2<br />

,("U'BG"$0"<br />

G


+9. <br />

(# #-<br />

!+#0<br />

'2"<br />

S,0<br />

A!+!2<br />

,("U'BG"$0"<br />

K


5 1<br />

)+#!(+#$-##$'#$#!#(<br />

#'+'"2(3+#$""($#!2(<br />

#-#,0<br />

O2#$!#"+(!'!#B'(+"#''##(<br />

##,##0<br />

(#(-'##$$#$(<br />

$#,2"2("7(+#$22#0<br />

8($"#-!#!#$#''#(<br />

##,##0


5 1& 2


2(. )3<br />

5#$#-(,,'(#2(-<br />

"##,##(#,#$(#"'<br />

#(+#$##0<br />

("(##,((+#$##<br />

"!$'#$#(,,'(##$(++#$#,<br />

#B0


.$2$= #*<br />

&#--!2# #,-P (!$+(!<br />

,,'(!#!((0


# <br />

)"#$2""-($2"(+0<br />

('H#0'#!0<br />

#I#O#'


5<br />

"'(#;5'!+2#$!7+3+##$ -(#"'$<br />

-((,$'!#$'' !$2)0<br />

A+()!-(P ("7#(227#(5##2V0<br />

52JA5#2$2(''#2"'(#H<br />

(#!+()P #!)7#+!+-#P !++$+!+<br />

'(#+#,(,$'!#$'' !$2()0<br />

6+#+#!)(''(2!+'(#0<br />

;5+$"+"'#(#;50<br />

&$$$#+P !++$72##7$#$#-<br />

-(#!+2,#!+'(#("0<br />

?


#,!+#$+#,#!-0<br />

A!+!2<br />

,("U'BG"$0"<br />

%


+1<br />

"'-0<br />

(2(--#22+##!2(<br />

"'(#.<br />

&#$#!+2++#!+#" (''0<br />

I+##('-$-(#F$0<br />

&-#2(#$-+$" '<br />

$+$''#$''#-(+#!#F$0<br />

8(#$-+$+$$#!""##,2+#(#B22#$(<br />

2"!0<br />

5#,()#$("'(#0


= 5 <br />

(#-4-'+,#M"+2'(#2"-0<br />

&2'+,###7<br />

'(##+"<br />

" 0<br />

)7#$#$$<br />

#-(+<br />

#,!+-0<br />

('H(0# 0"('#-'+,##$B0("<br />

G


# <br />

)+#!("#2""+##,-(('(#!$2#$<br />

!#$$7'(#"#+2+#$'7<br />

)7#$7#$0<br />

3++"#0<br />

(,# 88'#-",#,#'<br />

-(+#$2'#$$F#+''2"('0<br />

&(##$#$$--0<br />

5##,2"''-0<br />

52!+$!(0?SP 2##72-#,(-P<br />

2+##!"(2#'$$#! 220<br />

K


+( ?@<br />

A<br />

?


03 ) 0<br />

8-!'P "#!#$!0<br />

#!,#+!-!!2$.<br />

>"#,"""#7+-(7(""0<br />

A!#,#,#!-(#(""$2++0<br />

)""#(((""#22#(-"$7(<br />

7#2($("-0<br />

;#,


I,+#"(#"#''$+(7,(.<br />

<br />

8("$!23+("+0<br />

&#"+#$2(3+#(-"$0<br />

8(#2#(#,0<br />

('!+$#-(#!+',7+!+",(#-#+<br />

#!$!$#!+!0<br />

>+(7(##$$!""!#B$'#$#0<br />

8(#"!(#B$'#$#-0<br />

?


+$ 1 $<br />

(#+#"''P !+#B'(""-<br />

$"#0<br />

#,+##$*#-+''/ -(#"(2,#(<br />

'-$0<br />

6+$#-#(+#3+,#'-$!"!+0<br />

5"+#'$#!('#$0<br />

A+!2!+-#0<br />

8($#!2"##,#,!+'$$!( !"0<br />

6+(+$'$"2+-(#("(<br />

-0<br />

"#,,##"(#"#$$0<br />

?


1 $<br />

($#!-7$"#,,#,(#$#+<br />

(-!+'0<br />

("7(+"'####,((--!<br />

0<br />

'+#22('(#0<br />

6++#+2!0<br />

:22+$-(2"'(#-$!$$7+!-(#<br />

!+(##,#,-!#-#0<br />

5#27##"$,-!'$##-"#!3+#0<br />

?


.)<br />

<br />

<br />

<br />

(+,$#-'('!+(+$#'$000<br />

8(#,#7#"#B,$#-",(P <br />

<br />

??


0<br />

)+#!"?4<br />

"#-0<br />

8"-#$$#<br />

?"#".<br />

--$#"#$'#$0<br />

:#"'!("##,2+##-+$$0<br />

8(#$-$("#+P ("$"+#20<br />

8("#+P !+'!272##"#!"(##<br />

"2!#+"'#0<br />

8(-#B"#+P (2#$(#,##!0<br />

8("#,"#+P (##($$#B?"#+,#$<br />

-#B?"#+2"#-0<br />

8(#!"#+P ###,#$#!#$$<br />

#B2 $20<br />

8((2(#,(#,P !+##$B##($#!B0<br />

?%


)+0 <br />

J!(#,P "##$,-!2-P '#+$+#$(&'(<br />

#0<br />

('H- 0'#+0# 0"'LL<br />

('H'#+0# 0""L-L<br />

('H(0# 0""L-L<br />

('H+2,0"'#<br />

('(''-'!+#$-((#'0<br />

?


) 9<br />

@+#.<br />

"H(#0- "#U# 0"<br />

?G

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!