web                42 source4/web_server/web_server.c static int websrv_destructor(struct websrv_context *web)
web                55 source4/web_server/web_server.c 	struct websrv_context *web = talloc_get_type(private_data, struct websrv_context);
web                56 source4/web_server/web_server.c 	struct stream_connection *conn = web->conn;
web                57 source4/web_server/web_server.c 	web->conn = NULL;
web                66 source4/web_server/web_server.c void http_error(struct websrv_context *web, const char *status, const char *info)
web                69 source4/web_server/web_server.c 	s = talloc_asprintf(web,"<HTML><HEAD><TITLE>Error %s</TITLE></HEAD><BODY><H1>Error %s</H1><pre>%s</pre><p></BODY></HTML>\r\n\r\n", 
web                72 source4/web_server/web_server.c 		stream_terminate_connection(web->conn, "http_error: out of memory");
web                75 source4/web_server/web_server.c 	websrv_output_headers(web, status, NULL);
web                76 source4/web_server/web_server.c 	websrv_output(web, s, strlen(s));
web                79 source4/web_server/web_server.c void websrv_output_headers(struct websrv_context *web, const char *status, struct http_header *headers)
web                85 source4/web_server/web_server.c 	s = talloc_asprintf(web, "HTTP/1.0 %s\r\n", status);
web                93 source4/web_server/web_server.c 	b = web->output.content;
web                94 source4/web_server/web_server.c 	web->output.content = data_blob_string_const(s);
web                95 source4/web_server/web_server.c 	websrv_output(web, b.data, b.length);
web                99 source4/web_server/web_server.c void websrv_output(struct websrv_context *web, void *data, size_t length)
web               101 source4/web_server/web_server.c 	data_blob_append(web, &web->output.content, data, length);
web               102 source4/web_server/web_server.c 	EVENT_FD_NOT_READABLE(web->conn->event.fde);
web               103 source4/web_server/web_server.c 	EVENT_FD_WRITEABLE(web->conn->event.fde);
web               104 source4/web_server/web_server.c 	web->output.output_pending = true;
web               111 source4/web_server/web_server.c NTSTATUS http_parse_header(struct websrv_context *web, const char *line)
web               114 source4/web_server/web_server.c 		web->input.end_of_headers = true;
web               116 source4/web_server/web_server.c 		web->input.url = talloc_strndup(web, &line[4], strcspn(&line[4], " \t"));
web               118 source4/web_server/web_server.c 		web->input.post_request = true;
web               119 source4/web_server/web_server.c 		web->input.url = talloc_strndup(web, &line[5], strcspn(&line[5], " \t"));
web               121 source4/web_server/web_server.c 		http_error(web, "400 Bad request", "This server only accepts GET and POST requests");
web               124 source4/web_server/web_server.c 		web->input.content_length = strtoul(&line[16], NULL, 10);
web               126 source4/web_server/web_server.c 		struct http_header *hdr = talloc_zero(web, struct http_header);
web               129 source4/web_server/web_server.c 			http_error(web, "500 Internal Server Error", "invalidly formatted header");
web               135 source4/web_server/web_server.c 		DLIST_ADD(web->input.headers, hdr);
web               148 source4/web_server/web_server.c 	struct websrv_context *web = talloc_get_type(conn->private_data,
web               161 source4/web_server/web_server.c 	if (!data_blob_append(web, &web->input.partial, buf, nread))
web               165 source4/web_server/web_server.c 	b = web->input.partial;
web               166 source4/web_server/web_server.c 	while (!web->input.end_of_headers &&
web               173 source4/web_server/web_server.c 		status = http_parse_header(web, line);
web               183 source4/web_server/web_server.c 	b = data_blob_talloc(web, b.data, b.length);
web               184 source4/web_server/web_server.c 	data_blob_free(&web->input.partial);
web               185 source4/web_server/web_server.c 	web->input.partial = b;
web               190 source4/web_server/web_server.c 	if (web->input.end_of_headers &&
web               191 source4/web_server/web_server.c 	    web->input.partial.length >= web->input.content_length) {
web               192 source4/web_server/web_server.c 		if (web->input.partial.length > web->input.content_length) {
web               193 source4/web_server/web_server.c 			web->input.partial.data[web->input.content_length] = 0;
web               195 source4/web_server/web_server.c 		EVENT_FD_NOT_READABLE(web->conn->event.fde);
web               204 source4/web_server/web_server.c 		if (!talloc_reference(web->task, web)) goto failed;
web               205 source4/web_server/web_server.c 		wdata = talloc_get_type(web->task->private_data, struct web_server_data);
web               207 source4/web_server/web_server.c 		wdata->http_process_input(wdata, web);
web               208 source4/web_server/web_server.c 		talloc_unlink(web->task, web);
web               223 source4/web_server/web_server.c 	struct websrv_context *web = talloc_get_type(conn->private_data,
web               229 source4/web_server/web_server.c 	b = web->output.content;
web               230 source4/web_server/web_server.c 	b.data += web->output.nsent;
web               231 source4/web_server/web_server.c 	b.length -= web->output.nsent;
web               235 source4/web_server/web_server.c 		stream_terminate_connection(web->conn, "socket_send: failed");
web               242 source4/web_server/web_server.c 	web->output.nsent += nsent;
web               244 source4/web_server/web_server.c 	if (web->output.content.length == web->output.nsent) {
web               245 source4/web_server/web_server.c 		stream_terminate_connection(web->conn, "websrv_send: finished sending");
web               256 source4/web_server/web_server.c 	struct websrv_context *web;
web               259 source4/web_server/web_server.c 	web = talloc_zero(conn, struct websrv_context);
web               260 source4/web_server/web_server.c 	if (web == NULL) goto failed;
web               262 source4/web_server/web_server.c 	web->task = task;
web               263 source4/web_server/web_server.c 	web->conn = conn;
web               264 source4/web_server/web_server.c 	conn->private_data = web;
web               265 source4/web_server/web_server.c 	talloc_set_destructor(web, websrv_destructor);
web               267 source4/web_server/web_server.c 	event_add_timed(conn->event.ctx, web, 
web               269 source4/web_server/web_server.c 			websrv_timeout, web);
web                27 source4/web_server/web_server.h 				   struct websrv_context *web);
web                36 source4/web_server/wsgi.c 	struct websrv_context *web;
web                48 source4/web_server/wsgi.c 	struct websrv_context *web = py_web->web;
web                63 source4/web_server/wsgi.c 		struct http_header *hdr = talloc_zero(web, struct http_header);
web                95 source4/web_server/wsgi.c 	websrv_output_headers(web, status, headers);
web               173 source4/web_server/wsgi.c 	struct websrv_context *web;
web               189 source4/web_server/wsgi.c 		size = self->web->input.partial.length-self->offset;
web               191 source4/web_server/wsgi.c 		size = MIN(size, self->web->input.partial.length-self->offset);
web               193 source4/web_server/wsgi.c 	ret = PyString_FromStringAndSize((char *)self->web->input.partial.data+self->offset, size);
web               245 source4/web_server/wsgi.c static PyObject *Py_InputHttpStream(struct websrv_context *web)
web               248 source4/web_server/wsgi.c 	ret->web = web;
web               323 source4/web_server/wsgi.c 				    struct websrv_context *web)
web               330 source4/web_server/wsgi.c 	py_web->web = web;
web               332 source4/web_server/wsgi.c 	socket_address = socket_get_my_addr(web->conn->socket, web);
web               333 source4/web_server/wsgi.c 	py_environ = create_environ(tls_enabled(web->conn->socket),
web               334 source4/web_server/wsgi.c 				    web->input.content_length, 
web               335 source4/web_server/wsgi.c 				    web->input.headers, 
web               336 source4/web_server/wsgi.c 				    web->input.post_request?"POST":"GET",
web               339 source4/web_server/wsgi.c 				    Py_InputHttpStream(web),
web               340 source4/web_server/wsgi.c 				    web->input.url
web               361 source4/web_server/wsgi.c 		websrv_output(web, PyString_AsString(item), PyString_Size(item));