stream.go
changeset 84 25c4296a3524
parent 83 a264cb0129e2
child 93 fbd51fa6b7ea
equal deleted inserted replaced
83:a264cb0129e2 84:25c4296a3524
   139 					Log.Println("unmarshal stream: " +
   139 					Log.Println("unmarshal stream: " +
   140 						err.Error())
   140 						err.Error())
   141 				}
   141 				}
   142 				break Loop
   142 				break Loop
   143 			}
   143 			}
       
   144 			// BUG(cjyar): Does not verify server hostname
       
   145 			// in DNS as per RFC3920.14.3.
   144 			ch <- st
   146 			ch <- st
   145 			continue
   147 			continue
   146 		case "stream error", NsStream + " error":
   148 		case "stream error", NsStream + " error":
   147 			obj = &streamError{}
   149 			obj = &streamError{}
   148 		case NsStream + " features":
   150 		case NsStream + " features":
   401 		return
   403 		return
   402 	}
   404 	}
   403 }
   405 }
   404 
   406 
   405 // BUG(cjyar): Server certificate is not checked against the provided
   407 // BUG(cjyar): Server certificate is not checked against the provided
   406 // hostname.
   408 // hostname. RFC3920.14.2
   407 
   409 
   408 // readTransport() is running concurrently. We need to stop it,
   410 // readTransport() is running concurrently. We need to stop it,
   409 // negotiate TLS, then start it again. It calls waitForSocket() in
   411 // negotiate TLS, then start it again. It calls waitForSocket() in
   410 // its inner loop; see below.
   412 // its inner loop; see below.
   411 func (cl *Client) handleTls(t *starttls) {
   413 func (cl *Client) handleTls(t *starttls) {