~craftyguy/jankboot

4c585e2aa3a2820bc6a517f5eff2c4028d0c31f6 — Clayton Craft 2 years ago 820aa0d
pkg/openIOEndpoint: add method for opening endpoints

Removes some code duplication
1 files changed, 21 insertions(+), 20 deletions(-)

M pkg/jankboot/jankboot.go
M pkg/jankboot/jankboot.go => pkg/jankboot/jankboot.go +21 -20
@@ 152,17 152,8 @@ func (d *FastbootDevice) sendCommand(ctx *gousb.Context, cmd string) (resp fastb
	}
	defer done()

	// Open an IN endpoint
	epIn, err := intf.InEndpoint(d.inEdpAddr)
	epIn, epOut, err := d.openIOEndpoints(intf)
	if err != nil {
		err = fmt.Errorf("failure initializing IN endpoint: %w", err)
		return
	}

	// Open an OUT endpoint
	epOut, err := intf.OutEndpoint(d.outEdpAddr)
	if err != nil {
		err = fmt.Errorf("failure initializing OUT endpoint %w", err)
		return
	}



@@ 287,17 278,8 @@ func (d *FastbootDevice) sendData(ctx *gousb.Context, source io.Reader, size int
	}
	defer done()

	// Open an IN endpoint
	epIn, err := intf.InEndpoint(d.inEdpAddr)
	epIn, epOut, err := d.openIOEndpoints(intf)
	if err != nil {
		err = fmt.Errorf("failure initializing IN endpoint: %w", err)
		return
	}

	// Open an OUT endpoint
	epOut, err := intf.OutEndpoint(d.outEdpAddr)
	if err != nil {
		err = fmt.Errorf("failure initializing OUT endpoint %w", err)
		return
	}



@@ 313,6 295,25 @@ func (d *FastbootDevice) sendData(ctx *gousb.Context, source io.Reader, size int
		return fmt.Errorf("jankboot.Flash(): client sent invalid response when sending data: %q", resp)
	}
	return

}

func (d *FastbootDevice) openIOEndpoints(intf *gousb.Interface) (epIn *gousb.InEndpoint, epOut *gousb.OutEndpoint, err error) {
	// Open an IN endpoint
	epIn, err = intf.InEndpoint(d.inEdpAddr)
	if err != nil {
		err = fmt.Errorf("jankboot.openIOEndpoints(): failure initializing IN endpoint: %w", err)
		return
	}

	// Open an OUT endpoint
	epOut, err = intf.OutEndpoint(d.outEdpAddr)
	if err != nil {
		err = fmt.Errorf("jankboot.openIOEndpoints(): failure initializing OUT endpoint %w", err)
		return
	}

	return
}

// getResponse parses the response from the client into a fastbootResponse type