mirror of
https://github.com/systemd/systemd
synced 2025-10-08 05:04:45 +02:00
Compare commits
6 Commits
4ab334472c
...
6604fb0207
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6604fb0207 | ||
![]() |
b4bc798f87 | ||
![]() |
74bd6ad016 | ||
![]() |
6064344894 | ||
![]() |
5b098203fd | ||
![]() |
ac51363496 |
@ -1004,7 +1004,6 @@ int chase_symlinks_and_fopen_unlocked(
|
|||||||
_cleanup_close_ int fd = -1;
|
_cleanup_close_ int fd = -1;
|
||||||
_cleanup_free_ char *final_path = NULL;
|
_cleanup_free_ char *final_path = NULL;
|
||||||
int mode_flags, r;
|
int mode_flags, r;
|
||||||
FILE *f;
|
|
||||||
|
|
||||||
assert(path);
|
assert(path);
|
||||||
assert(open_flags);
|
assert(open_flags);
|
||||||
@ -1018,12 +1017,10 @@ int chase_symlinks_and_fopen_unlocked(
|
|||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return fd;
|
return fd;
|
||||||
|
|
||||||
r = fdopen_unlocked(fd, open_flags, &f);
|
r = take_fdopen_unlocked(&fd, open_flags, ret_file);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
TAKE_FD(fd);
|
|
||||||
|
|
||||||
*ret_file = f;
|
|
||||||
if (ret_path)
|
if (ret_path)
|
||||||
*ret_path = TAKE_PTR(final_path);
|
*ret_path = TAKE_PTR(final_path);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -919,7 +919,7 @@ int unit_thaw_vtable_common(Unit *u);
|
|||||||
|
|
||||||
/* Macros which append UNIT= or USER_UNIT= to the message */
|
/* Macros which append UNIT= or USER_UNIT= to the message */
|
||||||
|
|
||||||
#define log_unit_full_errno(unit, level, error, ...) \
|
#define log_unit_full_errno_zerook(unit, level, error, ...) \
|
||||||
({ \
|
({ \
|
||||||
const Unit *_u = (unit); \
|
const Unit *_u = (unit); \
|
||||||
(log_get_max_level() < LOG_PRI(level)) ? -ERRNO_VALUE(error) : \
|
(log_get_max_level() < LOG_PRI(level)) ? -ERRNO_VALUE(error) : \
|
||||||
@ -927,9 +927,16 @@ int unit_thaw_vtable_common(Unit *u);
|
|||||||
log_internal(level, error, PROJECT_FILE, __LINE__, __func__, ##__VA_ARGS__); \
|
log_internal(level, error, PROJECT_FILE, __LINE__, __func__, ##__VA_ARGS__); \
|
||||||
})
|
})
|
||||||
|
|
||||||
#define log_unit_full(unit, level, ...) (void) log_unit_full_errno(unit, level, 0, __VA_ARGS__)
|
#define log_unit_full_errno(unit, level, error, ...) \
|
||||||
|
({ \
|
||||||
|
int _error = (error); \
|
||||||
|
ASSERT_NON_ZERO(_error); \
|
||||||
|
log_unit_full_errno_zerook(unit, level, _error, ##__VA_ARGS__); \
|
||||||
|
})
|
||||||
|
|
||||||
#define log_unit_debug(unit, ...) log_unit_full_errno(unit, LOG_DEBUG, 0, __VA_ARGS__)
|
#define log_unit_full(unit, level, ...) (void) log_unit_full_errno_zerook(unit, level, 0, __VA_ARGS__)
|
||||||
|
|
||||||
|
#define log_unit_debug(unit, ...) log_unit_full(unit, LOG_DEBUG, __VA_ARGS__)
|
||||||
#define log_unit_info(unit, ...) log_unit_full(unit, LOG_INFO, __VA_ARGS__)
|
#define log_unit_info(unit, ...) log_unit_full(unit, LOG_INFO, __VA_ARGS__)
|
||||||
#define log_unit_notice(unit, ...) log_unit_full(unit, LOG_NOTICE, __VA_ARGS__)
|
#define log_unit_notice(unit, ...) log_unit_full(unit, LOG_NOTICE, __VA_ARGS__)
|
||||||
#define log_unit_warning(unit, ...) log_unit_full(unit, LOG_WARNING, __VA_ARGS__)
|
#define log_unit_warning(unit, ...) log_unit_full(unit, LOG_WARNING, __VA_ARGS__)
|
||||||
|
@ -747,8 +747,7 @@ int netdev_load_one(Manager *manager, const char *filename) {
|
|||||||
r = netdev_get_mac(netdev->ifname, &netdev->mac);
|
r = netdev_get_mac(netdev->ifname, &netdev->mac);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_netdev_error_errno(netdev, r,
|
return log_netdev_error_errno(netdev, r,
|
||||||
"Failed to generate predictable MAC address for %s: %m",
|
"Failed to generate predictable MAC address: %m");
|
||||||
netdev->ifname);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
r = hashmap_ensure_put(&netdev->manager->netdevs, &string_hash_ops, netdev->ifname, netdev);
|
r = hashmap_ensure_put(&netdev->manager->netdevs, &string_hash_ops, netdev->ifname, netdev);
|
||||||
@ -760,8 +759,8 @@ int netdev_load_one(Manager *manager, const char *filename) {
|
|||||||
assert(n);
|
assert(n);
|
||||||
if (!streq(netdev->filename, n->filename))
|
if (!streq(netdev->filename, n->filename))
|
||||||
log_netdev_warning_errno(netdev, r,
|
log_netdev_warning_errno(netdev, r,
|
||||||
"The setting Name=%s in %s conflicts with the one in %s, ignoring",
|
"Device was already configured by file %s, ignoring %s.",
|
||||||
netdev->ifname, netdev->filename, n->filename);
|
n->filename, netdev->filename);
|
||||||
|
|
||||||
/* Clear ifname before netdev_free() is called. Otherwise, the NetDev object 'n' is
|
/* Clear ifname before netdev_free() is called. Otherwise, the NetDev object 'n' is
|
||||||
* removed from the hashmap 'manager->netdevs'. */
|
* removed from the hashmap 'manager->netdevs'. */
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include "conf-parser.h"
|
#include "conf-parser.h"
|
||||||
#include "list.h"
|
#include "list.h"
|
||||||
|
#include "log-link.h"
|
||||||
#include "networkd-link.h"
|
#include "networkd-link.h"
|
||||||
#include "time-util.h"
|
#include "time-util.h"
|
||||||
|
|
||||||
@ -223,24 +224,32 @@ const struct ConfigPerfItem* network_netdev_gperf_lookup(const char *key, GPERF_
|
|||||||
|
|
||||||
/* Macros which append INTERFACE= to the message */
|
/* Macros which append INTERFACE= to the message */
|
||||||
|
|
||||||
#define log_netdev_full(netdev, level, error, ...) \
|
#define log_netdev_full_errno_zerook(netdev, level, error, ...) \
|
||||||
({ \
|
({ \
|
||||||
const NetDev *_n = (netdev); \
|
const NetDev *_n = (netdev); \
|
||||||
_n ? log_object_internal(level, error, PROJECT_FILE, __LINE__, __func__, "INTERFACE=", _n->ifname, NULL, NULL, ##__VA_ARGS__) : \
|
log_interface_full_errno_zerook(_n ? _n->ifname : NULL, level, error, __VA_ARGS__); \
|
||||||
log_internal(level, error, PROJECT_FILE, __LINE__, __func__, ##__VA_ARGS__); \
|
|
||||||
})
|
})
|
||||||
|
|
||||||
#define log_netdev_debug(netdev, ...) log_netdev_full(netdev, LOG_DEBUG, 0, ##__VA_ARGS__)
|
#define log_netdev_full_errno(netdev, level, error, ...) \
|
||||||
#define log_netdev_info(netdev, ...) log_netdev_full(netdev, LOG_INFO, 0, ##__VA_ARGS__)
|
({ \
|
||||||
#define log_netdev_notice(netdev, ...) log_netdev_full(netdev, LOG_NOTICE, 0, ##__VA_ARGS__)
|
int _error = (error); \
|
||||||
#define log_netdev_warning(netdev, ...) log_netdev_full(netdev, LOG_WARNING, 0, ## __VA_ARGS__)
|
ASSERT_NON_ZERO(_error); \
|
||||||
#define log_netdev_error(netdev, ...) log_netdev_full(netdev, LOG_ERR, 0, ##__VA_ARGS__)
|
log_netdev_full_errno_zerook(netdev, level, _error, __VA_ARGS__); \
|
||||||
|
})
|
||||||
|
|
||||||
#define log_netdev_debug_errno(netdev, error, ...) log_netdev_full(netdev, LOG_DEBUG, error, ##__VA_ARGS__)
|
#define log_netdev_full(netdev, level, ...) (void) log_netdev_full_errno_zerook(netdev, level, 0, __VA_ARGS__)
|
||||||
#define log_netdev_info_errno(netdev, error, ...) log_netdev_full(netdev, LOG_INFO, error, ##__VA_ARGS__)
|
|
||||||
#define log_netdev_notice_errno(netdev, error, ...) log_netdev_full(netdev, LOG_NOTICE, error, ##__VA_ARGS__)
|
#define log_netdev_debug(netdev, ...) log_netdev_full(netdev, LOG_DEBUG, __VA_ARGS__)
|
||||||
#define log_netdev_warning_errno(netdev, error, ...) log_netdev_full(netdev, LOG_WARNING, error, ##__VA_ARGS__)
|
#define log_netdev_info(netdev, ...) log_netdev_full(netdev, LOG_INFO, __VA_ARGS__)
|
||||||
#define log_netdev_error_errno(netdev, error, ...) log_netdev_full(netdev, LOG_ERR, error, ##__VA_ARGS__)
|
#define log_netdev_notice(netdev, ...) log_netdev_full(netdev, LOG_NOTICE, __VA_ARGS__)
|
||||||
|
#define log_netdev_warning(netdev, ...) log_netdev_full(netdev, LOG_WARNING, __VA_ARGS__)
|
||||||
|
#define log_netdev_error(netdev, ...) log_netdev_full(netdev, LOG_ERR, __VA_ARGS__)
|
||||||
|
|
||||||
|
#define log_netdev_debug_errno(netdev, error, ...) log_netdev_full_errno(netdev, LOG_DEBUG, error, __VA_ARGS__)
|
||||||
|
#define log_netdev_info_errno(netdev, error, ...) log_netdev_full_errno(netdev, LOG_INFO, error, __VA_ARGS__)
|
||||||
|
#define log_netdev_notice_errno(netdev, error, ...) log_netdev_full_errno(netdev, LOG_NOTICE, error, __VA_ARGS__)
|
||||||
|
#define log_netdev_warning_errno(netdev, error, ...) log_netdev_full_errno(netdev, LOG_WARNING, error, __VA_ARGS__)
|
||||||
|
#define log_netdev_error_errno(netdev, error, ...) log_netdev_full_errno(netdev, LOG_ERR, error, __VA_ARGS__)
|
||||||
|
|
||||||
#define LOG_NETDEV_MESSAGE(netdev, fmt, ...) "MESSAGE=%s: " fmt, (netdev)->ifname, ##__VA_ARGS__
|
#define LOG_NETDEV_MESSAGE(netdev, fmt, ...) "MESSAGE=%s: " fmt, (netdev)->ifname, ##__VA_ARGS__
|
||||||
#define LOG_NETDEV_INTERFACE(netdev) "INTERFACE=%s", (netdev)->ifname
|
#define LOG_NETDEV_INTERFACE(netdev) "INTERFACE=%s", (netdev)->ifname
|
||||||
|
@ -914,14 +914,13 @@ static int wireguard_verify(NetDev *netdev, const char *filename) {
|
|||||||
r = wireguard_read_key_file(w->private_key_file, w->private_key);
|
r = wireguard_read_key_file(w->private_key_file, w->private_key);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_netdev_error_errno(netdev, r,
|
return log_netdev_error_errno(netdev, r,
|
||||||
"Failed to read private key from %s. Dropping network device %s.",
|
"Failed to read private key from %s. Ignoring network device.",
|
||||||
w->private_key_file, netdev->ifname);
|
w->private_key_file);
|
||||||
|
|
||||||
if (eqzero(w->private_key))
|
if (eqzero(w->private_key))
|
||||||
return log_netdev_error_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
|
return log_netdev_error_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
|
||||||
"%s: Missing PrivateKey= or PrivateKeyFile=, "
|
"%s: Missing PrivateKey= or PrivateKeyFile=, "
|
||||||
"Dropping network device %s.",
|
"Ignoring network device.", filename);
|
||||||
filename, netdev->ifname);
|
|
||||||
|
|
||||||
LIST_FOREACH_SAFE(peers, peer, peer_next, w->peers)
|
LIST_FOREACH_SAFE(peers, peer, peer_next, w->peers)
|
||||||
if (wireguard_peer_verify(peer) < 0)
|
if (wireguard_peer_verify(peer) < 0)
|
||||||
|
@ -65,24 +65,33 @@ typedef struct Context {
|
|||||||
LIST_HEAD(UnitStatusInfo, units);
|
LIST_HEAD(UnitStatusInfo, units);
|
||||||
} Context;
|
} Context;
|
||||||
|
|
||||||
#define log_unit_full(unit, level, error, ...) \
|
#define log_unit_full_errno_zerook(unit, level, error, ...) \
|
||||||
({ \
|
({ \
|
||||||
const UnitStatusInfo *_u = (unit); \
|
const UnitStatusInfo *_u = (unit); \
|
||||||
log_object_internal(level, error, PROJECT_FILE, __LINE__, __func__, \
|
_u ? log_object_internal(level, error, PROJECT_FILE, __LINE__, __func__, "UNIT=", _u->name, NULL, NULL, ##__VA_ARGS__) : \
|
||||||
"UNIT=", _u->name, NULL, NULL, ##__VA_ARGS__); \
|
log_internal(level, error, PROJECT_FILE, __LINE__, __func__, ##__VA_ARGS__); \
|
||||||
})
|
})
|
||||||
|
|
||||||
#define log_unit_debug(unit, ...) log_unit_full(unit, LOG_DEBUG, 0, ##__VA_ARGS__)
|
#define log_unit_full_errno(unit, level, error, ...) \
|
||||||
#define log_unit_info(unit, ...) log_unit_full(unit, LOG_INFO, 0, ##__VA_ARGS__)
|
({ \
|
||||||
#define log_unit_notice(unit, ...) log_unit_full(unit, LOG_NOTICE, 0, ##__VA_ARGS__)
|
int _error = (error); \
|
||||||
#define log_unit_warning(unit, ...) log_unit_full(unit, LOG_WARNING, 0, ##__VA_ARGS__)
|
ASSERT_NON_ZERO(_error); \
|
||||||
#define log_unit_error(unit, ...) log_unit_full(unit, LOG_ERR, 0, ##__VA_ARGS__)
|
log_unit_full_errno_zerook(unit, level, _error, ##__VA_ARGS__); \
|
||||||
|
})
|
||||||
|
|
||||||
#define log_unit_debug_errno(unit, error, ...) log_unit_full(unit, LOG_DEBUG, error, ##__VA_ARGS__)
|
#define log_unit_full(unit, level, ...) (void) log_unit_full_errno_zerook(unit, level, 0, ##__VA_ARGS__)
|
||||||
#define log_unit_info_errno(unit, error, ...) log_unit_full(unit, LOG_INFO, error, ##__VA_ARGS__)
|
|
||||||
#define log_unit_notice_errno(unit, error, ...) log_unit_full(unit, LOG_NOTICE, error, ##__VA_ARGS__)
|
#define log_unit_debug(unit, ...) log_unit_full(unit, LOG_DEBUG, ##__VA_ARGS__)
|
||||||
#define log_unit_warning_errno(unit, error, ...) log_unit_full(unit, LOG_WARNING, error, ##__VA_ARGS__)
|
#define log_unit_info(unit, ...) log_unit_full(unit, LOG_INFO, ##__VA_ARGS__)
|
||||||
#define log_unit_error_errno(unit, error, ...) log_unit_full(unit, LOG_ERR, error, ##__VA_ARGS__)
|
#define log_unit_notice(unit, ...) log_unit_full(unit, LOG_NOTICE, ##__VA_ARGS__)
|
||||||
|
#define log_unit_warning(unit, ...) log_unit_full(unit, LOG_WARNING, ##__VA_ARGS__)
|
||||||
|
#define log_unit_error(unit, ...) log_unit_full(unit, LOG_ERR, ##__VA_ARGS__)
|
||||||
|
|
||||||
|
#define log_unit_debug_errno(unit, error, ...) log_unit_full_errno(unit, LOG_DEBUG, error, ##__VA_ARGS__)
|
||||||
|
#define log_unit_info_errno(unit, error, ...) log_unit_full_errno(unit, LOG_INFO, error, ##__VA_ARGS__)
|
||||||
|
#define log_unit_notice_errno(unit, error, ...) log_unit_full_errno(unit, LOG_NOTICE, error, ##__VA_ARGS__)
|
||||||
|
#define log_unit_warning_errno(unit, error, ...) log_unit_full_errno(unit, LOG_WARNING, error, ##__VA_ARGS__)
|
||||||
|
#define log_unit_error_errno(unit, error, ...) log_unit_full_errno(unit, LOG_ERR, error, ##__VA_ARGS__)
|
||||||
|
|
||||||
static void unit_status_info_clear(UnitStatusInfo *p) {
|
static void unit_status_info_clear(UnitStatusInfo *p) {
|
||||||
assert(p);
|
assert(p);
|
||||||
@ -485,7 +494,7 @@ static int unit_start_or_stop(UnitStatusInfo *u, sd_bus *bus, sd_bus_error *erro
|
|||||||
"ss",
|
"ss",
|
||||||
u->name,
|
u->name,
|
||||||
"replace");
|
"replace");
|
||||||
log_unit_full(u, r < 0 ? LOG_WARNING : LOG_DEBUG, r,
|
log_unit_full_errno_zerook(u, r < 0 ? LOG_WARNING : LOG_DEBUG, r,
|
||||||
"%s unit: %m", start ? "Starting" : "Stopping");
|
"%s unit: %m", start ? "Starting" : "Stopping");
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user