mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-23 00:00:06 +01:00

This has no effect on user code or backward compatibility. It moves the in-tree public api header libwebsockets.h from ./lib to ./include, and introduces a dir ./include/libwebsockets/ The single public api header is split out into 31 sub-headers in ./include/libwebsockets. ./include/libwebsockets.h contains some core types and platform adaptation code, but the rest of it is now 31 #include <libwebsockets/...> At install time, /usr/[local/]include/libwebsockets.h is installed as before, along now with the 31 sub-headers in ...include/libwebsockets/ There's no net effect on user code. But the api header is now much easier to maintain and study, with 31 topic-based sub headers.
103 lines
3.6 KiB
C
103 lines
3.6 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_NOT_EXIST -1
|
|
#define LWS_ITOSA_NOT_USABLE -2
|
|
#define LWS_ITOSA_USABLE 0
|
|
#if !defined(LWS_WITH_ESP32)
|
|
/**
|
|
* 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
|
|
///@}
|