mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-30 00:00:16 +01:00
105 lines
3.7 KiB
C
105 lines
3.7 KiB
C
/*
|
|
* libwebsockets - small server side websockets and web server implementation
|
|
*
|
|
* Copyright (C) 2010-2018 Andy Green <andy@warmcat.com>
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation:
|
|
* version 2.1 of the License.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
|
* MA 02110-1301 USA
|
|
*
|
|
* included from libwebsockets.h
|
|
*/
|
|
|
|
/** \defgroup net Network related helper APIs
|
|
* ##Network related helper APIs
|
|
*
|
|
* These wrap miscellaneous useful network-related functions
|
|
*/
|
|
///@{
|
|
|
|
/**
|
|
* lws_canonical_hostname() - returns this host's hostname
|
|
*
|
|
* This is typically used by client code to fill in the host parameter
|
|
* when making a client connection. You can only call it after the context
|
|
* has been created.
|
|
*
|
|
* \param context: Websocket context
|
|
*/
|
|
LWS_VISIBLE LWS_EXTERN const char * LWS_WARN_UNUSED_RESULT
|
|
lws_canonical_hostname(struct lws_context *context);
|
|
|
|
/**
|
|
* lws_get_peer_addresses() - Get client address information
|
|
* \param wsi: Local struct lws associated with
|
|
* \param fd: Connection socket descriptor
|
|
* \param name: Buffer to take client address name
|
|
* \param name_len: Length of client address name buffer
|
|
* \param rip: Buffer to take client address IP dotted quad
|
|
* \param rip_len: Length of client address IP buffer
|
|
*
|
|
* This function fills in name and rip with the name and IP of
|
|
* the client connected with socket descriptor fd. Names may be
|
|
* truncated if there is not enough room. If either cannot be
|
|
* determined, they will be returned as valid zero-length strings.
|
|
*/
|
|
LWS_VISIBLE LWS_EXTERN void
|
|
lws_get_peer_addresses(struct lws *wsi, lws_sockfd_type fd, char *name,
|
|
int name_len, char *rip, int rip_len);
|
|
|
|
/**
|
|
* lws_get_peer_simple() - Get client address information without RDNS
|
|
*
|
|
* \param wsi: Local struct lws associated with
|
|
* \param name: Buffer to take client address name
|
|
* \param namelen: Length of client address name buffer
|
|
*
|
|
* This provides a 123.123.123.123 type IP address in name from the
|
|
* peer that has connected to wsi
|
|
*/
|
|
LWS_VISIBLE LWS_EXTERN const char *
|
|
lws_get_peer_simple(struct lws *wsi, char *name, int namelen);
|
|
|
|
#define LWS_ITOSA_USABLE 0
|
|
#define LWS_ITOSA_NOT_EXIST -1
|
|
#define LWS_ITOSA_NOT_USABLE -2
|
|
#define LWS_ITOSA_BUSY -3 /* only returned by lws_socket_bind() on
|
|
EADDRINUSE */
|
|
|
|
#if !defined(LWS_WITH_ESP32) && !defined(LWS_PLAT_OPTEE)
|
|
/**
|
|
* lws_interface_to_sa() - Convert interface name or IP to sockaddr struct
|
|
*
|
|
* \param ipv6: Allow IPV6 addresses
|
|
* \param ifname: Interface name or IP
|
|
* \param addr: struct sockaddr_in * to be written
|
|
* \param addrlen: Length of addr
|
|
*
|
|
* This converts a textual network interface name to a sockaddr usable by
|
|
* other network functions.
|
|
*
|
|
* If the network interface doesn't exist, it will return LWS_ITOSA_NOT_EXIST.
|
|
*
|
|
* If the network interface is not usable, eg ethernet cable is removed, it
|
|
* may logically exist but not have any IP address. As such it will return
|
|
* LWS_ITOSA_NOT_USABLE.
|
|
*
|
|
* If the network interface exists and is usable, it will return
|
|
* LWS_ITOSA_USABLE.
|
|
*/
|
|
LWS_VISIBLE LWS_EXTERN int
|
|
lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr,
|
|
size_t addrlen);
|
|
#endif
|
|
///@}
|