39ed77e438
Current SOCKS5 implementation is above socket level and every higher layer protocol or application level needs to have SOCKS5 related changes. This solution is based on socket setsockopt(). Application caller has to set proxy details through setsockopt() and socket:connect() will take care creating connection. Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
40 lines
911 B
C
40 lines
911 B
C
/*
|
|
* Copyright (c) 2019 Antmicro Ltd
|
|
*
|
|
* Copyright (c) 2019 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef ZEPHYR_INCLUDE_NET_SOCKS_H_
|
|
#define ZEPHYR_INCLUDE_NET_SOCKS_H_
|
|
|
|
#include <net/socket.h>
|
|
|
|
/**@brief Connects to destination through a SOCKS5 proxy server.
|
|
*
|
|
* @param[in] ctx Network context.
|
|
* @param[in] dest Address of the destination server.
|
|
* @param[in] dest_len Address length of the destination server.
|
|
*
|
|
* @retval 0 or an error code if it was unsuccessful.
|
|
*/
|
|
#if defined(CONFIG_SOCKS)
|
|
int net_socks5_connect(struct net_context *ctx,
|
|
const struct sockaddr *dest,
|
|
socklen_t dest_len);
|
|
#else
|
|
inline int net_socks5_connect(struct net_context *ctx,
|
|
const struct sockaddr *dest,
|
|
socklen_t dest_len)
|
|
{
|
|
ARG_UNUSED(ctx);
|
|
ARG_UNUSED(dest);
|
|
ARG_UNUSED(dest_len);
|
|
|
|
return -ENOTSUP;
|
|
}
|
|
#endif
|
|
|
|
#endif /* ZEPHYR_INCLUDE_NET_SOCKS_H_ */
|