# US 10,771,579 B2 · Redirection of data flows from an end device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,771,579 B2
- Document ID: US10771579B2
- Status: Granted
- Kind: B2
- Application number: 15/714,233
- Filed: 2017-09-25
- Published: 2019-03-28
- Granted: 2020-09-08
- Earliest claimed: 2017-09-25
- Assignees: Verizon Patent and Licensing Inc.
- Applicants: Verizon Patent and Licensing Inc.
- Inventors: Beomjun Kim; Jae Won Chung; Jian Huang; Parth Modi
- Web page: https://patentgrep.com/patent/US10771579B2

## CPC

- H04L 67/563: Data redirection of data network streams
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/141: Setup of application sessions (admission control or resource allocation in data switching networks H04L47/70)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method, a device, and a non-transitory storage medium are described in which a connection service is provided based on a software development kit architecture for an end device that operates with an Android operating system. The connection service includes a library that, when called, sets-up a Hypertext Transfer Protocol connection between the end device and a proxy device using a function pointer and a portable operating system interface connect function. The connection service also generates and transmits a Hypertext Transfer Protocol CONNECT message, which includes a Proxy-Authorization header, to the proxy device, which triggers three-way handshaking between the proxy device and a target device, subsequent to an establishment of the connection with the proxy device.

## Claims

### Claim 1

A method comprising:
receiving, by an application of an end device, which uses an Android operating system, a first input indicating to establish a connection with a target device, wherein the application is configured to use a first connect function of a first library;
replacing, by the end device in response to the first input, use of the first connect function with a second connect function of a second library;
establishing, by the end device based on the receiving and the replacing, a connection between the end device and an Hypertext Transfer Protocol (HTTP) proxy device, using HTTP;
generating, by the end device, an HTTP CONNECT message that includes a Proxy-Authorization header and a destination address of the target device, in response to a successful establishment of the connection with the HTTP proxy device;
transmitting, by the end device, the HTTP CONNECT message to the HTTP proxy device which triggers three-way handshaking between the HTTP proxy device and the target device; and
receiving, by the end device, a response to the HTTP CONNECT message from the HTTP proxy device.

### Claim 2 (depends on 1)

The method of claim 1, wherein the replacing further comprises:
locating, by the end device, a first memory location for a first connect function included in a library used by the application;
reading, by the end device, a first address of the first connect function stored in the first memory location;
providing, by the end device, the first address of the first connect function to a function pointer;
reading, by the end device, a second address of a second connect function by its name; and
writing, by the end device, the second address of the second connect function to the first memory location.

### Claim 3 (depends on 2)

The method of claim 2, wherein the first connect function is a Portable Operating System Interface (POSIX) connect function.

### Claim 4 (depends on 3)

The method of claim 3, wherein the establishing comprises:
calling, in response to receiving the first input, the second connect function based on the second address in the first memory location; and
receiving, by the second connect function, a second input that includes an Internet Protocol address of the HTTP proxy device.

### Claim 5 (depends on 4)

The method of claim 4, wherein the establishing further comprises:
calling, by the second connect function in response to the calling and the second input, the first connect function via the function pointer, to establish the connection between the end device and the HTTP proxy device, using the HTTP; and
providing, by the second connect function to the first connect function via the function pointer, the second input.

### Claim 6 (depends on 5)

The method of claim 5, wherein the generating further comprises:
generating, by the second connect function in response to a successful connection between the end device and the HTTP proxy device, the HTTP CONNECT message that includes the Proxy-Authorization header and the destination address of the target device; and
calling, by the second connect function, a send function to transmit the HTTP CONNECT message to the target device via the HTTP proxy device.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
obtaining, by the second connect function, a hostname of the target device, and wherein when generating the HTTP CONNECT message, the destination address of the target device includes a Uniform Resource Locator of the target device.

### Claim 8 (depends on 6)

The method of claim 6, further comprising:
calling, by the second connect function, a receive function to receive a message, responsive to the HTTP CONNECT message, from the target device.

### Claim 9

An end device comprising:
a communication interface;
an application and an Android operating system;
a memory, wherein the memory stores instructions; and
a processor, wherein the processor executes the instructions to:
receive, by the application of the end device, a first input indicating to establish a connection with a target device, wherein the application is configured to use a first connect function of a first library;
replace, in response to the first input, use of the first connect function with a second connect function of a second library;
establish, via the communication interface, based on the receipt of the first input and the replacement, a connection between the end device and an Hypertext Transfer Protocol (HTTP) proxy device, using HTTP;
generate an HTTP CONNECT message that includes a Proxy-Authorization header and a destination address of the target device, in response to a successful establishment of the connection with the HTTP proxy device;
transmit, via the communication interface, the HTTP CONNECT message to the target device via the HTTP proxy device; and
receive, via the communication interface, a response to the HTTP CONNECT message from the target device via the HTTP proxy device.

### Claim 10 (depends on 9)

The end device of claim 9, wherein when replacing, the processor further executes the instructions to:
locate a first memory location for a first connect function included in a library used by the application;
read a first address of the first connect function stored in the first memory location;
provide the first address of the first connect function to a function pointer;
read a second address of a second connect function by its name; and
write the second address of the second connect function to the first memory location.

### Claim 11 (depends on 10)

The end device of claim 10, wherein the first connect function is a Portable Operating System Interface (POSIX) connect function.

### Claim 12 (depends on 11)

The end device of claim 11, wherein, when establishing, the processor further executes the instructions to:
call, in response to receiving the first input, the second connect function based on the second address in the first memory location; and
receive, by the second connect function, a second input that includes an Internet Protocol address of the HTTP proxy device.

### Claim 13 (depends on 12)

The end device of claim 12, wherein, when establishing, the processor further executes the instructions to:
call, by the second connect function in response to the calling and the second input, the first connect function via the function pointer, to establish the connection between the end device and the HTTP proxy device, using the HTTP; and
provide, by the second connect function to the first connect function via the function pointer, the second input.

### Claim 14 (depends on 13)

The end device of claim 13, wherein, when generating, the processor further executes the instructions to:
generate, by the second connect function in response to a successful connection between the end device and the HTTP proxy device, the HTTP CONNECT message that includes the Proxy-Authorization header and the destination address of the target device; and
call, by the second connect function, a send function to transmit the HTTP CONNECT message to the target device via the HTTP proxy device.

### Claim 15 (depends on 14)

The end device of claim 14, wherein the processor further executes the instructions to:
obtain, by the second connect function, a hostname of the target device, and wherein when generating the HTTP CONNECT message, the destination address of the target device includes a Uniform Resource Locator of the target device.

### Claim 16

A non-transitory, computer-readable storage medium storing instructions executable by a processor of an end device that operates with an Android operating system, which when executed cause the end device to:
receive, by an application of the end device, a first input indicating to establish a connection with a target device, wherein the application is configured to use a first connect function of a first library;
replace, in response to the first input, use of the first connect function with a second connect function of a second library;
establish, based on the receipt of the first input and the replacement, a connection between the end device and an Hypertext Transfer Protocol (HTTP) proxy device, using HTTP;
generate an HTTP CONNECT message that includes a Proxy-Authorization header and a destination address of the target device, in response to a successful establishment of the connection with the HTTP proxy device;
transmit the HTTP CONNECT message to the HTTP proxy device which triggers three-way handshaking between the HTTP proxy device and the target device; and
receive a response to the HTTP CONNECT message from the HTTP proxy device.

### Claim 17 (depends on 16)

The non-transitory, computer-readable storage medium of claim 16, wherein the instructions to replace further storing instructions executable by the processor of the end device, which when executed cause the end device to:
locate a first memory location for a first connect function included in a library used by the application;
read a first address of the first connect function stored in the first memory location;
provide the first address of the first connect function to a function pointer;
read a second address of a second connect function by its name; and
write the second address of the second connect function to the first memory location.

### Claim 18 (depends on 17)

The non-transitory, computer-readable storage medium of claim 17, wherein the instructions to establish further include instructions executable by the processor of the end device, which when executed cause the end device to:
call, in response to receiving the first input, the second connect function based on the second address in the first memory location; and
receive, by the second connect function, a second input that includes an Internet Protocol address of the HTTP proxy device, wherein the first connect function is a Portable Operating System Interface (POSIX) connect function.

### Claim 19 (depends on 18)

The non-transitory, computer-readable storage medium of claim 18, wherein the instructions to establish further include instructions executable by the processor of the end device, which when executed cause the end device to:
call, by the second connect function in response to the calling and the second input, the first connect function via the function pointer, to establish the connection between the end device and the HTTP proxy device, using the HTTP; and
provide, by the second connect function to the first connect function via the function pointer, the second input.

### Claim 20 (depends on 19)

The non-transitory, computer-readable storage medium of claim 19, wherein the instructions to generate further include instructions executable by the processor of the end device, which when executed cause the end device to:
generate, by the second connect function in response to a successful connection between the end device and the HTTP proxy device, the HTTP CONNECT message that includes the Proxy-Authorization header and the destination address of the target device; and
call, by the second connect function, a send function to transmit the HTTP CONNECT message to the target device via the HTTP proxy device.
