mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-08 10:06:55 +00:00
Add a macro in public header that represents maximum hostname string length without terminating NULL character. This will allow other modules, such as offloaded network drivers, to know how much space is needed to allocate in order to fit whole hostname. Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
90 lines
1.8 KiB
C
90 lines
1.8 KiB
C
/** @file
|
|
* @brief Hostname configuration definitions
|
|
*/
|
|
|
|
/*
|
|
* Copyright (c) 2017 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef ZEPHYR_INCLUDE_NET_HOSTNAME_H_
|
|
#define ZEPHYR_INCLUDE_NET_HOSTNAME_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @brief Network hostname configuration library
|
|
* @defgroup net_hostname Network Hostname Library
|
|
* @ingroup networking
|
|
* @{
|
|
*/
|
|
|
|
#define NET_HOSTNAME_MAX_LEN \
|
|
(sizeof(CONFIG_NET_HOSTNAME) - 1 + \
|
|
(IS_ENABLED(CONFIG_NET_HOSTNAME_UNIQUE) ? \
|
|
sizeof("0011223344556677") - 1 : 0))
|
|
|
|
/**
|
|
* @brief Get the device hostname
|
|
*
|
|
* @details Return pointer to device hostname.
|
|
*
|
|
* @return Pointer to hostname or NULL if not set.
|
|
*/
|
|
#if defined(CONFIG_NET_HOSTNAME_ENABLE)
|
|
const char *net_hostname_get(void);
|
|
#else
|
|
static inline const char *net_hostname_get(void)
|
|
{
|
|
return "zephyr";
|
|
}
|
|
#endif /* CONFIG_NET_HOSTNAME_ENABLE */
|
|
|
|
/**
|
|
* @brief Initialize and set the device hostname.
|
|
*
|
|
*/
|
|
#if defined(CONFIG_NET_HOSTNAME_ENABLE)
|
|
void net_hostname_init(void);
|
|
#else
|
|
static inline void net_hostname_init(void)
|
|
{
|
|
}
|
|
#endif /* CONFIG_NET_HOSTNAME_ENABLE */
|
|
|
|
/**
|
|
* @brief Set the device hostname postfix
|
|
*
|
|
* @details Set the device hostname to some value. This is only used if
|
|
* CONFIG_NET_HOSTNAME_UNIQUE is set.
|
|
*
|
|
* @param hostname_postfix Usually link address. The function will convert this
|
|
* to a string.
|
|
* @param postfix_len Length of the hostname_postfix array.
|
|
*
|
|
* @return 0 if ok, <0 if error
|
|
*/
|
|
#if defined(CONFIG_NET_HOSTNAME_UNIQUE)
|
|
int net_hostname_set_postfix(const uint8_t *hostname_postfix,
|
|
int postfix_len);
|
|
#else
|
|
static inline int net_hostname_set_postfix(const uint8_t *hostname_postfix,
|
|
int postfix_len)
|
|
{
|
|
return -EMSGSIZE;
|
|
}
|
|
#endif /* CONFIG_NET_HOSTNAME_UNIQUE */
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* ZEPHYR_INCLUDE_NET_HOSTNAME_H_ */
|