lxd/devlxd.go
func extractUnderlyingConn(w http.ResponseWriter) *net.UnixConn {
	v := reflect.Indirect(reflect.ValueOf(w))
	connPtr := v.FieldByName("conn")
	conn := reflect.Indirect(connPtr)
	rwc := conn.FieldByName("rwc")

	netConnPtr := (*net.Conn)(unsafe.Pointer(rwc.UnsafeAddr()))
	unixConnPtr := (*netConnPtr).(*net.UnixConn)

	return unixConnPtr
}
func extractUnderlyingConn(w http.ResponseWriter) *net.UnixConn {
	v := reflect.Indirect(reflect.ValueOf(w))
	connPtr := v.FieldByName("conn")
	conn := reflect.Indirect(connPtr)
	rwc := conn.FieldByName("rwc")

	netConnPtr := (*net.Conn)(unsafe.Pointer(rwc.UnsafeAddr()))
	unixConnPtr := (*netConnPtr).(*net.UnixConn)

	return unixConnPtr
}
func extractUnderlyingConn ( w http . ResponseWriter ) * net . UnixConn { v := reflect . Indirect ( reflect . ValueOf ( w ) ) connPtr := v . FieldByName ( " " ) conn := reflect . Indirect ( connPtr ) rwc := conn . FieldByName ( " " ) netConnPtr := ( * net . Conn ) ( unsafe . Pointer ( rwc . UnsafeAddr ( ) ) ) unixConnPtr := ( * netConnPtr ) . ( * net . UnixConn ) return unixConnPtr }
/*
 * As near as I can tell, there is no nice way of extracting an underlying
 * net.Conn (or in our case, net.UnixConn) from an http.Request or
 * ResponseWriter without hijacking it [1]. Since we want to send and receive
 * unix creds to figure out which container this request came from, we need to
 * do this.
 *
 * [1]: https://groups.google.com/forum/#!topic/golang-nuts/_FWdFXJa6QA
 */
/ * As near as I can tell there is no nice way of extracting an underlying net . Conn ( or in our case net . UnixConn ) from an http . Request or ResponseWriter without hijacking it [ 1 ] . Since we want to send and receive unix creds to figure out which container this request came from we need to do this . [ 1 ] : https : // groups . google . com / forum / #!topic / golang - nuts / _FWdFXJa6QA