src/server/daemon/protocol.c

changeset 630
aae6e06d70b8
parent 513
9a49c245a49c
equal deleted inserted replaced
629:1e1da9adc532 630:aae6e06d70b8
53 53
54 pp = pblock_key_param_create(rq->srvhdrs, pb_key_status, msg, strlen(msg)); 54 pp = pblock_key_param_create(rq->srvhdrs, pb_key_status, msg, strlen(msg));
55 pblock_kpinsert(pb_key_status, pp, rq->srvhdrs); 55 pblock_kpinsert(pb_key_status, pp, rq->srvhdrs);
56 } 56 }
57 57
58 NSAPI_PUBLIC const char * protocol_status_message(int code) {
59 cxstring s = protocol_status_message_s(code);
60 return s.ptr;
61 }
62
58 63
59 /* 64 /*
60 * http_status_message from Open Webserver (frame/http.cpp) 65 * based on http_status_message from Open Webserver (frame/http.cpp)
61 * TODO: replace, use cxmutstr
62 */ 66 */
63 NSAPI_PUBLIC const char * protocol_status_message (int code) 67 cxstring protocol_status_message_s(int code)
64 { 68 {
65 WS_ASSERT(code > 0); 69 WS_ASSERT(code > 0);
66 70
67 const char *r; 71 cxstring r;
68 72
69 switch (code) 73 switch (code)
70 { 74 {
71 case PROTOCOL_CONTINUE : // 100 75 case PROTOCOL_CONTINUE : // 100
72 r = "Continue"; 76 r = CX_STR("Continue");
73 break; 77 break;
74 case PROTOCOL_SWITCHING: //101 78 case PROTOCOL_SWITCHING: //101
75 r = "Switching Protocols"; 79 r = CX_STR("Switching Protocols");
76 break; 80 break;
77 case PROTOCOL_OK: // 200 81 case PROTOCOL_OK: // 200
78 r = "OK"; 82 r = CX_STR("OK");
79 break; 83 break;
80 case PROTOCOL_CREATED: // 201 84 case PROTOCOL_CREATED: // 201
81 r = "Created"; 85 r = CX_STR("Created");
82 break; 86 break;
83 case PROTOCOL_ACCEPTED: // 202 87 case PROTOCOL_ACCEPTED: // 202
84 r = "Accepted"; 88 r = CX_STR("Accepted");
85 break; 89 break;
86 case PROTOCOL_NONAUTHORITATIVE: // 203 90 case PROTOCOL_NONAUTHORITATIVE: // 203
87 r = "Non-Authoritative Information"; 91 r = CX_STR("Non-Authoritative Information");
88 break; 92 break;
89 case PROTOCOL_NO_CONTENT: //204 93 case PROTOCOL_NO_CONTENT: //204
90 /* There is another define to PROTOCOL_NO_RESPONSE for 204 in nsapi.h 94 /* There is another define to PROTOCOL_NO_RESPONSE for 204 in nsapi.h
91 The spec maps this to No Content. 95 The spec maps this to No Content.
92 Hence cahnging this to No Content 96 Hence cahnging this to No Content
93 */ 97 */
94 r = "No Content"; 98 r = CX_STR("No Content");
95 break; 99 break;
96 case PROTOCOL_RESET_CONTENT: // 205 100 case PROTOCOL_RESET_CONTENT: // 205
97 r = "Reset Content"; 101 r = CX_STR("Reset Content");
98 break; 102 break;
99 case PROTOCOL_PARTIAL_CONTENT: // 206 103 case PROTOCOL_PARTIAL_CONTENT: // 206
100 r = "Partial Content"; 104 r = CX_STR("Partial Content");
101 break; 105 break;
102 case PROTOCOL_MULTI_STATUS: // 207 106 case PROTOCOL_MULTI_STATUS: // 207
103 r = "Multi Status"; 107 r = CX_STR("Multi Status");
104 break; 108 break;
105 case PROTOCOL_MULTIPLE_CHOICES: // 300 109 case PROTOCOL_MULTIPLE_CHOICES: // 300
106 r = "Multiple Choices"; 110 r = CX_STR("Multiple Choices");
107 break; 111 break;
108 case PROTOCOL_MOVED_PERMANENTLY: // 301 112 case PROTOCOL_MOVED_PERMANENTLY: // 301
109 r = "Moved Permanently"; 113 r = CX_STR("Moved Permanently");
110 break; 114 break;
111 case PROTOCOL_REDIRECT: // 302 115 case PROTOCOL_REDIRECT: // 302
112 r = "Moved Temporarily"; /* The spec actually says "Found" */ 116 r = CX_STR("Moved Temporarily"); /* The spec actually says "Found" */
113 break; 117 break;
114 case PROTOCOL_SEE_OTHER: // 303 118 case PROTOCOL_SEE_OTHER: // 303
115 r = "See Other"; 119 r = CX_STR("See Other");
116 break; 120 break;
117 case PROTOCOL_NOT_MODIFIED: // 304 121 case PROTOCOL_NOT_MODIFIED: // 304
118 r = "Use local copy"; /* The spec actually says "Not Modified" */ 122 r = CX_STR("Use local copy"); /* The spec actually says "Not Modified" */
119 break; 123 break;
120 case PROTOCOL_USE_PROXY: // 305 124 case PROTOCOL_USE_PROXY: // 305
121 r = "Use Proxy"; 125 r = CX_STR("Use Proxy");
122 break; 126 break;
123 case PROTOCOL_TEMPORARY_REDIRECT: // 307 127 case PROTOCOL_TEMPORARY_REDIRECT: // 307
124 r = "Temporary Redirect"; 128 r = CX_STR("Temporary Redirect");
125 break; 129 break;
126 case PROTOCOL_BAD_REQUEST: // 400 130 case PROTOCOL_BAD_REQUEST: // 400
127 r = "Bad request"; 131 r = CX_STR("Bad request");
128 break; 132 break;
129 case PROTOCOL_UNAUTHORIZED: // 401 133 case PROTOCOL_UNAUTHORIZED: // 401
130 r = "Unauthorized"; 134 r = CX_STR("Unauthorized");
131 break; 135 break;
132 case PROTOCOL_PAYMENT_REQUIRED: // 402 136 case PROTOCOL_PAYMENT_REQUIRED: // 402
133 r = "Payment Required"; 137 r = CX_STR("Payment Required");
134 break; 138 break;
135 case PROTOCOL_FORBIDDEN: // 403 139 case PROTOCOL_FORBIDDEN: // 403
136 r = "Forbidden"; 140 r = CX_STR("Forbidden");
137 break; 141 break;
138 case PROTOCOL_NOT_FOUND: // 404 142 case PROTOCOL_NOT_FOUND: // 404
139 r = "Not found"; 143 r = CX_STR("Not found");
140 break; 144 break;
141 case PROTOCOL_METHOD_NOT_ALLOWED: // 405 /* HTTP/1.1 */ 145 case PROTOCOL_METHOD_NOT_ALLOWED: // 405 /* HTTP/1.1 */
142 r = "Method Not Allowed"; 146 r = CX_STR("Method Not Allowed");
143 break; 147 break;
144 case PROTOCOL_NOT_ACCEPTABLE: // 406 /* HTTP/1.1 */ 148 case PROTOCOL_NOT_ACCEPTABLE: // 406 /* HTTP/1.1 */
145 r = "Not Acceptable"; 149 r = CX_STR("Not Acceptable");
146 break; 150 break;
147 case PROTOCOL_PROXY_UNAUTHORIZED: // 407 151 case PROTOCOL_PROXY_UNAUTHORIZED: // 407
148 r = "Proxy Authentication Required"; 152 r = CX_STR("Proxy Authentication Required");
149 break; 153 break;
150 case PROTOCOL_REQUEST_TIMEOUT: // 408 /* HTTP/1.1 */ 154 case PROTOCOL_REQUEST_TIMEOUT: // 408 /* HTTP/1.1 */
151 r = "Request Timeout"; 155 r = CX_STR("Request Timeout");
152 break; 156 break;
153 case PROTOCOL_CONFLICT: // 409 157 case PROTOCOL_CONFLICT: // 409
154 r = "Conflict"; /* HTTP/1.1 */ 158 r = CX_STR("Conflict"); /* HTTP/1.1 */
155 break; 159 break;
156 case PROTOCOL_GONE: // 410 160 case PROTOCOL_GONE: // 410
157 r = "Gone"; /* HTTP/1.1 */ 161 r = CX_STR("Gone"); /* HTTP/1.1 */
158 break; 162 break;
159 case PROTOCOL_LENGTH_REQUIRED: // 411 /* HTTP/1.1 */ 163 case PROTOCOL_LENGTH_REQUIRED: // 411 /* HTTP/1.1 */
160 r = "Length Required"; 164 r = CX_STR("Length Required");
161 break; 165 break;
162 case PROTOCOL_PRECONDITION_FAIL: // 412 /* HTTP/1.1 */ 166 case PROTOCOL_PRECONDITION_FAIL: // 412 /* HTTP/1.1 */
163 r = "Precondition Failed"; 167 r = CX_STR("Precondition Failed");
164 break; 168 break;
165 case PROTOCOL_ENTITY_TOO_LARGE: // 413 /* HTTP/1.1 */ 169 case PROTOCOL_ENTITY_TOO_LARGE: // 413 /* HTTP/1.1 */
166 r = "Request Entity Too Large"; 170 r = CX_STR("Request Entity Too Large");
167 break; 171 break;
168 case PROTOCOL_URI_TOO_LARGE: // 414 /* HTTP/1.1 */ 172 case PROTOCOL_URI_TOO_LARGE: // 414 /* HTTP/1.1 */
169 r = "Request-URI Too Large"; 173 r = CX_STR("Request-URI Too Large");
170 break; 174 break;
171 case PROTOCOL_UNSUPPORTED_MEDIA_TYPE: // 415 175 case PROTOCOL_UNSUPPORTED_MEDIA_TYPE: // 415
172 r = "Unsupported Media Type"; 176 r = CX_STR("Unsupported Media Type");
173 break; 177 break;
174 case PROTOCOL_REQUESTED_RANGE_NOT_SATISFIABLE: // 416 178 case PROTOCOL_REQUESTED_RANGE_NOT_SATISFIABLE: // 416
175 r = "Requested range not satisfiable"; 179 r = CX_STR("Requested range not satisfiable");
176 break; 180 break;
177 case PROTOCOL_EXPECTATION_FAILED: // 417 181 case PROTOCOL_EXPECTATION_FAILED: // 417
178 r = "Expectation Failed"; 182 r = CX_STR("Expectation Failed");
179 break; 183 break;
180 case PROTOCOL_LOCKED: // 423 184 case PROTOCOL_LOCKED: // 423
181 r = "Locked"; 185 r = CX_STR("Locked");
182 break; 186 break;
183 case PROTOCOL_FAILED_DEPENDENCY: // 424 187 case PROTOCOL_FAILED_DEPENDENCY: // 424
184 r = "Failed Dependency"; 188 r = CX_STR("Failed Dependency");
185 break; 189 break;
186 case PROTOCOL_SERVER_ERROR: // 500 190 case PROTOCOL_SERVER_ERROR: // 500
187 r = "Server Error"; /* The spec actually says "Internal Server Error" */ 191 r = CX_STR("Server Error"); /* The spec actually says "Internal Server Error" */
188 break; 192 break;
189 case PROTOCOL_NOT_IMPLEMENTED: // 501 193 case PROTOCOL_NOT_IMPLEMENTED: // 501
190 r = "Not Implemented"; 194 r = CX_STR("Not Implemented");
191 break; 195 break;
192 case PROTOCOL_BAD_GATEWAY: // 502 196 case PROTOCOL_BAD_GATEWAY: // 502
193 r = "Bad Gateway"; 197 r = CX_STR("Bad Gateway");
194 break; 198 break;
195 case PROTOCOL_SERVICE_UNAVAILABLE: // 503 199 case PROTOCOL_SERVICE_UNAVAILABLE: // 503
196 r = "Service Unavailable"; 200 r = CX_STR("Service Unavailable");
197 break; 201 break;
198 case PROTOCOL_GATEWAY_TIMEOUT: // 504 /* HTTP/1.1 */ 202 case PROTOCOL_GATEWAY_TIMEOUT: // 504 /* HTTP/1.1 */
199 r = "Gateway Timeout"; 203 r = CX_STR("Gateway Timeout");
200 break; 204 break;
201 case PROTOCOL_VERSION_NOT_SUPPORTED: // 505 /* HTTP/1.1 */ 205 case PROTOCOL_VERSION_NOT_SUPPORTED: // 505 /* HTTP/1.1 */
202 r = "HTTP Version Not Supported"; 206 r = CX_STR("HTTP Version Not Supported");
203 break; 207 break;
204 case PROTOCOL_INSUFFICIENT_STORAGE: // 507 208 case PROTOCOL_INSUFFICIENT_STORAGE: // 507
205 r = "Insufficient Storage"; 209 r = CX_STR("Insufficient Storage");
206 break; 210 break;
207 default: 211 default:
208 switch (code / 100) 212 switch (code / 100)
209 { 213 {
210 case 1: 214 case 1:
211 r = "Information"; 215 r = CX_STR("Information");
212 break; 216 break;
213 case 2: 217 case 2:
214 r = "Success"; 218 r = CX_STR("Success");
215 break; 219 break;
216 case 3: 220 case 3:
217 r = "Redirect"; 221 r = CX_STR("Redirect");
218 break; 222 break;
219 case 4: 223 case 4:
220 r = "Client error"; 224 r = CX_STR("Client error");
221 break; 225 break;
222 case 5: 226 case 5:
223 r = "Server error"; 227 r = CX_STR("Server error");
224 break; 228 break;
225 default: 229 default:
226 r = "Unknown reason"; 230 r = CX_STR("Unknown reason");
227 break; 231 break;
228 } 232 }
229 break; 233 break;
230 } 234 }
231 235

mercurial