~ubuntu-branches/ubuntu/trusty/erlang/trusty

« back to all changes in this revision

Viewing changes to lib/dialyzer/test/r9c_tests_SUITE_data/src/inets/httpd_example.erl

  • Committer: Bazaar Package Importer
  • Author(s): Clint Byrum
  • Date: 2011-05-05 15:48:43 UTC
  • mfrom: (3.5.13 sid)
  • Revision ID: james.westby@ubuntu.com-20110505154843-0om6ekzg6m7ugj27
Tags: 1:14.b.2-dfsg-3ubuntu1
* Merge from debian unstable.  Remaining changes:
  - Drop libwxgtk2.8-dev build dependency. Wx isn't in main, and not
    supposed to.
  - Drop erlang-wx binary.
  - Drop erlang-wx dependency from -megaco, -common-test, and -reltool, they
    do not really need wx. Also drop it from -debugger; the GUI needs wx,
    but it apparently has CLI bits as well, and is also needed by -megaco,
    so let's keep the package for now.
  - debian/patches/series: Do what I meant, and enable build-options.patch
    instead.
* Additional changes:
  - Drop erlang-wx from -et
* Dropped Changes:
  - patches/pcre-crash.patch: CVE-2008-2371: outer level option with
    alternatives caused crash. (Applied Upstream)
  - fix for ssl certificate verification in newSSL: 
    ssl_cacertfile_fix.patch (Applied Upstream)
  - debian/patches/series: Enable native.patch again, to get stripped beam
    files and reduce the package size again. (build-options is what
    actually accomplished this)
  - Remove build-options.patch on advice from upstream and because it caused
    odd build failures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
%% ``The contents of this file are subject to the Erlang Public License,
 
2
%% Version 1.1, (the "License"); you may not use this file except in
 
3
%% compliance with the License. You should have received a copy of the
 
4
%% Erlang Public License along with this software. If not, it can be
 
5
%% retrieved via the world wide web at http://www.erlang.org/.
 
6
%% 
 
7
%% Software distributed under the License is distributed on an "AS IS"
 
8
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
 
9
%% the License for the specific language governing rights and limitations
 
10
%% under the License.
 
11
%% 
 
12
%% The Initial Developer of the Original Code is Ericsson Utvecklings AB.
 
13
%% Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings
 
14
%% AB. All Rights Reserved.''
 
15
%% 
 
16
%%     $Id: httpd_example.erl,v 1.1 2008/12/17 09:53:34 mikpe Exp $
 
17
%%
 
18
-module(httpd_example).
 
19
-export([print/1]).
 
20
-export([get/2, post/2, yahoo/2, test1/2]).
 
21
 
 
22
-export([newformat/3]).
 
23
%% These are used by the inets test-suite
 
24
-export([delay/1]).
 
25
 
 
26
 
 
27
print(String) ->
 
28
  [header(),
 
29
   top("Print"),
 
30
   String++"\n",
 
31
   footer()].
 
32
 
 
33
 
 
34
test1(Env, []) ->
 
35
    io:format("Env:~p~n",[Env]),
 
36
    ["<html>",
 
37
     "<head>",
 
38
     "<title>Test1</title>",
 
39
     "</head>",
 
40
     "<body>",
 
41
     "<h1>Erlang Body</h1>",
 
42
     "<h2>Stuff</h2>",
 
43
     "</body>",
 
44
     "</html>"].
 
45
 
 
46
 
 
47
get(Env,[]) ->
 
48
  [header(),
 
49
   top("GET Example"),
 
50
   "<FORM ACTION=\"/cgi-bin/erl/httpd_example:get\" METHOD=GET> 
 
51
<B>Input:</B> <INPUT TYPE=\"text\" NAME=\"input1\">
 
52
<INPUT TYPE=\"text\" NAME=\"input2\">
 
53
<INPUT TYPE=\"submit\"><BR>
 
54
</FORM>" ++ "\n",
 
55
   footer()];
 
56
 
 
57
get(Env,Input) ->
 
58
  default(Env,Input).
 
59
 
 
60
post(Env,[]) ->
 
61
  [header(),
 
62
   top("POST Example"),
 
63
   "<FORM ACTION=\"/cgi-bin/erl/httpd_example:post\" METHOD=POST>       
 
64
<B>Input:</B> <INPUT TYPE=\"text\" NAME=\"input1\">
 
65
<INPUT TYPE=\"text\" NAME=\"input2\">
 
66
<INPUT TYPE=\"submit\"><BR>
 
67
</FORM>" ++ "\n",
 
68
   footer()];
 
69
 
 
70
post(Env,Input) ->
 
71
  default(Env,Input).
 
72
 
 
73
yahoo(Env,Input) ->
 
74
  "Location: http://www.yahoo.com\r\n\r\n".
 
75
 
 
76
default(Env,Input) ->
 
77
  [header(),
 
78
   top("Default Example"),
 
79
   "<B>Environment:</B> ",io_lib:format("~p",[Env]),"<BR>\n",
 
80
   "<B>Input:</B> ",Input,"<BR>\n",
 
81
   "<B>Parsed Input:</B> ",
 
82
   io_lib:format("~p",[httpd:parse_query(Input)]),"\n",
 
83
   footer()].
 
84
 
 
85
header() ->
 
86
  header("text/html").
 
87
header(MimeType) ->
 
88
  "Content-type: " ++ MimeType ++ "\r\n\r\n".
 
89
 
 
90
top(Title) ->
 
91
  "<HTML>
 
92
<HEAD>
 
93
<TITLE>" ++ Title ++ "</TITLE>
 
94
</HEAD>
 
95
<BODY>\n".
 
96
 
 
97
footer() ->
 
98
  "</BODY>
 
99
</HTML>\n".
 
100
 
 
101
    
 
102
newformat(SessionID,Env,Input)->
 
103
    mod_esi:deliver(SessionID,"Content-Type:text/html\r\n\r\n"),
 
104
    mod_esi:deliver(SessionID,top("new esi format test")),
 
105
    mod_esi:deliver(SessionID,"This new format is nice<BR>"),
 
106
    mod_esi:deliver(SessionID,"This new format is nice<BR>"),
 
107
    mod_esi:deliver(SessionID,"This new format is nice<BR>"),
 
108
    mod_esi:deliver(SessionID,footer()).
 
109
    
 
110
%% ------------------------------------------------------
 
111
 
 
112
delay(Time) when integer(Time) ->
 
113
    i("httpd_example:delay(~p) -> do the delay",[Time]),
 
114
    sleep(Time),
 
115
    i("httpd_example:delay(~p) -> done, now reply",[Time]),
 
116
    delay_reply("delay ok");
 
117
delay(Time) when list(Time) ->
 
118
    delay(httpd_conf:make_integer(Time));
 
119
delay({ok,Time}) when integer(Time) ->
 
120
    delay(Time);
 
121
delay({error,_Reason}) ->
 
122
    i("delay -> called with invalid time"),
 
123
    delay_reply("delay failed: invalid delay time").
 
124
 
 
125
delay_reply(Reply) ->
 
126
    [header(),
 
127
     top("delay"),
 
128
     Reply,
 
129
     footer()].
 
130
 
 
131
i(F)   -> i(F,[]).
 
132
i(F,A) -> io:format(F ++ "~n",A).
 
133
 
 
134
sleep(T) -> receive after T -> ok end.