From: Russ Cox Date: Mon, 20 Oct 2008 19:37:07 +0000 (-0700) Subject: add io.ReadWriteClose and use it in http X-Git-Tag: weekly.2009-11-06~2945 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7c7a525d182a93473071307392fb47e8478aedd1;p=gostls13.git add io.ReadWriteClose and use it in http R=r DELTA=15 (6 added, 7 deleted, 2 changed) OCL=17447 CL=17461 --- diff --git a/src/lib/http/conn.go b/src/lib/http/conn.go index e7024ed606..15c0707f3e 100644 --- a/src/lib/http/conn.go +++ b/src/lib/http/conn.go @@ -11,16 +11,9 @@ import ( "os" ) -// Read/write/close interface. -type RWC interface { - Read(p *[]byte) (n int, err *os.Error); - Write(p *[]byte) (n int, err *os.Error); - Close() *os.Error; -} - // Active HTTP connection (server side). export type Conn struct { - rwc RWC; + rwc io.ReadWriteClose; br *bufio.BufRead; bw *bufio.BufWrite; close bool; @@ -28,7 +21,7 @@ export type Conn struct { } // Create new connection from rwc. -export func NewConn(rwc RWC) (c *Conn, err *os.Error) { +export func NewConn(rwc io.ReadWriteClose) (c *Conn, err *os.Error) { c = new(Conn); c.rwc = rwc; if c.br, err = bufio.NewBufRead(rwc); err != nil { diff --git a/src/lib/io.go b/src/lib/io.go index 8ab751a022..20b7b90292 100644 --- a/src/lib/io.go +++ b/src/lib/io.go @@ -19,6 +19,12 @@ export type ReadWrite interface { Write(p *[]byte) (n int, err *os.Error); } +export type ReadWriteClose interface { + Read(p *[]byte) (n int, err *os.Error); + Write(p *[]byte) (n int, err *os.Error); + Close() *os.Error; +} + export func WriteString(w Write, s string) (n int, err *os.Error) { b := new([]byte, len(s)+1); if !syscall.StringToBytes(b, s) {