@@ -63,20 +63,20 @@ func (this *Request) SetTimeout(timeout time.Duration) {
6363 this .timeout = timeout
6464}
6565
66- func (this * Request ) CallOn (conn net.Conn ) (* http.Response , error ) {
67- err : = this .writeBeginRequest (conn )
66+ func (this * Request ) CallOn (conn net.Conn ) (resp * http.Response , stderr [] byte , err error ) {
67+ err = this .writeBeginRequest (conn )
6868 if err != nil {
69- return nil , err
69+ return nil , nil , err
7070 }
7171
7272 err = this .writeParams (conn )
7373 if err != nil {
74- return nil , err
74+ return nil , nil , err
7575 }
7676
7777 err = this .writeStdin (conn )
7878 if err != nil {
79- return nil , err
79+ return nil , nil , err
8080 }
8181
8282 return this .readStdout (conn )
@@ -187,15 +187,14 @@ func (this *Request) writeRecord(conn net.Conn, recordType byte, contentData []b
187187 return nil
188188}
189189
190- func (this * Request ) readStdout (conn net.Conn ) (* http.Response , error ) {
190+ func (this * Request ) readStdout (conn net.Conn ) (resp * http.Response , stderr [] byte , err error ) {
191191 stdout := []byte {}
192- stderr := []byte {}
193192
194193 for {
195194 respHeader := Header {}
196195 err := binary .Read (conn , binary .BigEndian , & respHeader )
197196 if err != nil {
198- return nil , ErrClientDisconnect
197+ return nil , nil , ErrClientDisconnect
199198 }
200199
201200 // 检查ID是否一致
@@ -207,7 +206,7 @@ func (this *Request) readStdout(conn net.Conn) (*http.Response, error) {
207206 err = binary .Read (conn , binary .BigEndian , & b )
208207 if err != nil {
209208 log .Println ("err:" , err .Error ())
210- return nil , ErrClientDisconnect
209+ return nil , nil , ErrClientDisconnect
211210 }
212211
213212 if respHeader .Type == FCGI_STDOUT {
@@ -243,7 +242,7 @@ func (this *Request) readStdout(conn net.Conn) (*http.Response, error) {
243242 resp , err := http .ReadResponse (bufio .NewReader (bytes .NewReader (statusStdout )), nil )
244243
245244 if err != nil {
246- return nil , err
245+ return nil , stderr , err
247246 }
248247
249248 if ! foundStatus {
@@ -263,14 +262,14 @@ func (this *Request) readStdout(conn net.Conn) (*http.Response, error) {
263262 }
264263 }
265264
266- return resp , nil
265+ return resp , stderr , nil
267266 }
268267
269268 if len (stderr ) > 0 {
270- return nil , errors .New ("fcgi:" + string (stderr ))
269+ return nil , stderr , errors .New ("fcgi:" + string (stderr ))
271270 }
272271
273- return nil , errors .New ("no response from server" )
272+ return nil , stderr , errors .New ("no response from server" )
274273}
275274
276275func (this * Request ) nextId () uint16 {
0 commit comments