Changeset 1106
- Timestamp:
- 06/27/08 16:34:08 (2 months ago)
- Files:
-
- trunk/mango/net/http/server/HttpBridge.d (modified) (3 diffs)
- trunk/mango/net/http/server/HttpResponse.d (modified) (5 diffs)
- trunk/mango/net/servlet/ServletResponse.d (modified) (1 diff)
- trunk/mango/net/servlet/model/IServletResponse.d (modified) (1 diff)
- trunk/mango/net/util/AbstractServer.d (modified) (5 diffs)
- trunk/mango/net/util/ServerThread.d (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/mango/net/http/server/HttpBridge.d
r1101 r1106 14 14 15 15 private import tango.net.Socket; 16 17 private import tango.net.http.HttpConst; 16 18 17 19 private import tango.io.model.IConduit; … … 85 87 void cross (IConduit conduit) 86 88 { 89 auto count = 0; 90 87 91 // bind our input & output instance to this conduit 88 92 request.setConduit (conduit); … … 98 102 response.reset; 99 103 100 // first, extract HTTP headers from input 104 // first, extract HTTP headers from input (this may timeout) 101 105 request.readHeaders; 102 106 /+ 107 // check for Connection:close 108 if ("close" != request.getInputHeaders.get(HttpHeader.Connection) && ++count < 16) 109 { 110 //Stdout.formatln (">>> setting keepalive"); 111 //response.keepAlive = true; 112 } 113 +/ 103 114 // pass request off to the provider. It is the provider's 104 115 // responsibility to flush the output! trunk/mango/net/http/server/HttpResponse.d
r1101 r1106 15 15 private import tango.io.Buffer; 16 16 17 private import tango.time.Clock; 18 17 19 private import tango.net.http.HttpConst, 18 20 tango.net.http.HttpParams, … … 26 28 27 29 private import Integer = tango.text.convert.Integer; 30 private import Timestamp = tango.text.convert.TimeStamp; 28 31 29 32 //version = ShowHeaders; … … 235 238 void sendRedirect (char[] location) 236 239 { 237 setStatus (HttpResponses. MovedTemporarily);240 setStatus (HttpResponses.TemporaryRedirect); 238 241 getHeader().add (HttpHeader.Location, location); 239 242 flush (); … … 339 342 commited = true; 340 343 341 char[ 16] tmp;344 char[64] tmp; 342 345 char[] header; 343 346 HttpHeaders headers = getHeader; … … 350 353 (status.name) 351 354 (HttpConst.Eol); 355 356 // set date header 357 headers.add (HttpHeader.Date, Timestamp.format (tmp, Clock.now)); 352 358 353 359 // set connection header trunk/mango/net/servlet/ServletResponse.d
r1104 r1106 128 128 { 129 129 super.managed (yes); 130 } 131 132 /*********************************************************************** 133 134 ***********************************************************************/ 135 136 void keepalive (bool yes) 137 { 138 super.keepAlive (yes); 130 139 } 131 140 trunk/mango/net/servlet/model/IServletResponse.d
r1104 r1106 91 91 ***********************************************************************/ 92 92 93 void keepalive (bool yes); 94 95 /*********************************************************************** 96 97 ***********************************************************************/ 98 93 99 void setContentLength (int len); 94 100 trunk/mango/net/util/AbstractServer.d
r1067 r1106 14 14 15 15 private import tango.net.Socket; 16 16 private import tango.core.Thread; 17 17 18 protected import tango.util.log.Log; 18 19 … … 21 22 22 23 protected import tango.io.model.IConduit; 23 24 protected import tango.text.convert.Sprint;25 24 26 25 protected import mango.net.util.model.IServer, … … 40 39 private ServerSocket server; 41 40 private Logger logger; 42 private Sprint!(char) sprint;43 41 private uint threads; 44 42 private uint backlog; … … 70 68 this.threads = threads; 71 69 this.backlog = backlog; 72 this.sprint = new Sprint!(char);73 70 } 74 71 … … 206 203 207 204 // indicate what's going on 208 logger.info ( sprint ("Server {} started on {} with {} accept threads and {} backlogs",209 this, localAddress, threads, backlog));205 logger.info ("Server {} started on {} with {} accept threads and {} backlogs", 206 this, localAddress, threads, backlog); 210 207 } 211 208 } trunk/mango/net/util/ServerThread.d
r1097 r1106 22 22 23 23 private import mango.net.util.model.IRunnable; 24 25 private import Integer = tango.text.convert.Integer; 24 26 25 27 /****************************************************************************** … … 47 49 this (AbstractServer server, ServerSocket socket) 48 50 { 51 static int count; 52 49 53 this.server = server; 50 54 this.socket = socket; 51 55 thread = new Thread (&run); 56 thread.name = Integer.toString (count++, "u3"); 52 57 } 53 58
