Merge pull request #10927 from yuwata/udev-ctrl-cleanup
udev: update log messages and fix coding style issues
This commit is contained in:
commit
a7f71a01b8
|
@ -574,7 +574,7 @@ static int set_sset(int fd, struct ifreq *ifr, const struct ethtool_link_usettin
|
|||
|
||||
/* If autonegotiation is disabled, the speed and duplex represent the fixed link
|
||||
* mode and are writable if the driver supports multiple link modes. If it is
|
||||
* enabled then they are read-only. If the link is up they represent the negotiated
|
||||
* enabled then they are read-only. If the link is up they represent the negotiated
|
||||
* link mode; if the link is down, the speed is 0, %SPEED_UNKNOWN or the highest
|
||||
* enabled speed and @duplex is %DUPLEX_UNKNOWN or the best enabled duplex mode.
|
||||
*/
|
||||
|
|
|
@ -370,7 +370,7 @@ int link_config_apply(link_config_ctx *ctx, link_config *config,
|
|||
if (r < 0) {
|
||||
|
||||
if (config->port != _NET_DEV_PORT_INVALID)
|
||||
log_warning_errno(r, "Could not set port (%s) of %s: %m", port_to_string(config->port), old_name);
|
||||
log_warning_errno(r, "Could not set port (%s) of %s: %m", port_to_string(config->port), old_name);
|
||||
|
||||
if (!eqzero(config->advertise))
|
||||
log_warning_errno(r, "Could not set advertise mode: %m"); /* TODO: include modes in the log message. */
|
||||
|
|
|
@ -193,7 +193,7 @@ static int builtin_keyboard(sd_device *dev, int argc, char *argv[], bool test) {
|
|||
keycode++;
|
||||
|
||||
release[release_count] = scancode;
|
||||
if (release_count < ELEMENTSOF(release)-1)
|
||||
if (release_count < ELEMENTSOF(release)-1)
|
||||
release_count++;
|
||||
|
||||
if (keycode[0] == '\0')
|
||||
|
|
|
@ -76,14 +76,14 @@ struct udev_ctrl *udev_ctrl_new_from_fd(int fd) {
|
|||
int r;
|
||||
|
||||
uctrl = new0(struct udev_ctrl, 1);
|
||||
if (uctrl == NULL)
|
||||
if (!uctrl)
|
||||
return NULL;
|
||||
uctrl->n_ref = 1;
|
||||
|
||||
if (fd < 0) {
|
||||
uctrl->sock = socket(AF_LOCAL, SOCK_SEQPACKET|SOCK_NONBLOCK|SOCK_CLOEXEC, 0);
|
||||
if (uctrl->sock < 0) {
|
||||
log_error_errno(errno, "error getting socket: %m");
|
||||
log_error_errno(errno, "Failed to create socket: %m");
|
||||
udev_ctrl_unref(uctrl);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -98,7 +98,7 @@ struct udev_ctrl *udev_ctrl_new_from_fd(int fd) {
|
|||
*/
|
||||
r = setsockopt_int(uctrl->sock, SOL_SOCKET, SO_PASSCRED, true);
|
||||
if (r < 0)
|
||||
log_warning_errno(r, "could not set SO_PASSCRED: %m");
|
||||
log_warning_errno(r, "Failed to set SO_PASSCRED: %m");
|
||||
|
||||
uctrl->saddr.un = (struct sockaddr_un) {
|
||||
.sun_family = AF_UNIX,
|
||||
|
@ -124,11 +124,11 @@ int udev_ctrl_enable_receiving(struct udev_ctrl *uctrl) {
|
|||
}
|
||||
|
||||
if (err < 0)
|
||||
return log_error_errno(errno, "bind failed: %m");
|
||||
return log_error_errno(errno, "Failed to bind socket: %m");
|
||||
|
||||
err = listen(uctrl->sock, 0);
|
||||
if (err < 0)
|
||||
return log_error_errno(errno, "listen failed: %m");
|
||||
return log_error_errno(errno, "Failed to listen: %m");
|
||||
|
||||
uctrl->bound = true;
|
||||
uctrl->cleanup_socket = true;
|
||||
|
@ -147,7 +147,7 @@ DEFINE_PRIVATE_TRIVIAL_REF_FUNC(struct udev_ctrl, udev_ctrl);
|
|||
DEFINE_TRIVIAL_UNREF_FUNC(struct udev_ctrl, udev_ctrl, udev_ctrl_free);
|
||||
|
||||
int udev_ctrl_cleanup(struct udev_ctrl *uctrl) {
|
||||
if (uctrl == NULL)
|
||||
if (!uctrl)
|
||||
return 0;
|
||||
if (uctrl->cleanup_socket)
|
||||
sockaddr_un_unlink(&uctrl->saddr.un);
|
||||
|
@ -155,7 +155,7 @@ int udev_ctrl_cleanup(struct udev_ctrl *uctrl) {
|
|||
}
|
||||
|
||||
int udev_ctrl_get_fd(struct udev_ctrl *uctrl) {
|
||||
if (uctrl == NULL)
|
||||
if (!uctrl)
|
||||
return -EINVAL;
|
||||
return uctrl->sock;
|
||||
}
|
||||
|
@ -166,7 +166,7 @@ struct udev_ctrl_connection *udev_ctrl_get_connection(struct udev_ctrl *uctrl) {
|
|||
int r;
|
||||
|
||||
conn = new(struct udev_ctrl_connection, 1);
|
||||
if (conn == NULL)
|
||||
if (!conn)
|
||||
return NULL;
|
||||
conn->n_ref = 1;
|
||||
conn->uctrl = uctrl;
|
||||
|
@ -174,25 +174,25 @@ struct udev_ctrl_connection *udev_ctrl_get_connection(struct udev_ctrl *uctrl) {
|
|||
conn->sock = accept4(uctrl->sock, NULL, NULL, SOCK_CLOEXEC|SOCK_NONBLOCK);
|
||||
if (conn->sock < 0) {
|
||||
if (errno != EINTR)
|
||||
log_error_errno(errno, "unable to receive ctrl connection: %m");
|
||||
log_error_errno(errno, "Failed to receive ctrl connection: %m");
|
||||
goto err;
|
||||
}
|
||||
|
||||
/* check peer credential of connection */
|
||||
r = getpeercred(conn->sock, &ucred);
|
||||
if (r < 0) {
|
||||
log_error_errno(r, "unable to receive credentials of ctrl connection: %m");
|
||||
log_error_errno(r, "Failed to receive credentials of ctrl connection: %m");
|
||||
goto err;
|
||||
}
|
||||
if (ucred.uid > 0) {
|
||||
log_error("sender uid="UID_FMT", message ignored", ucred.uid);
|
||||
log_error("Sender uid="UID_FMT", message ignored", ucred.uid);
|
||||
goto err;
|
||||
}
|
||||
|
||||
/* enable receiving of the sender credentials in the messages */
|
||||
r = setsockopt_int(conn->sock, SOL_SOCKET, SO_PASSCRED, true);
|
||||
if (r < 0)
|
||||
log_warning_errno(r, "could not set SO_PASSCRED: %m");
|
||||
log_warning_errno(r, "Failed to set SO_PASSCRED: %m");
|
||||
|
||||
udev_ctrl_ref(uctrl);
|
||||
return conn;
|
||||
|
@ -220,7 +220,7 @@ static int ctrl_send(struct udev_ctrl *uctrl, enum udev_ctrl_msg_type type, int
|
|||
ctrl_msg_wire.magic = UDEV_CTRL_MAGIC;
|
||||
ctrl_msg_wire.type = type;
|
||||
|
||||
if (buf != NULL)
|
||||
if (buf)
|
||||
strscpy(ctrl_msg_wire.buf, sizeof(ctrl_msg_wire.buf), buf);
|
||||
else
|
||||
ctrl_msg_wire.intval = intval;
|
||||
|
@ -245,7 +245,7 @@ static int ctrl_send(struct udev_ctrl *uctrl, enum udev_ctrl_msg_type type, int
|
|||
pfd[0].fd = uctrl->sock;
|
||||
pfd[0].events = POLLIN;
|
||||
r = poll(pfd, 1, timeout * MSEC_PER_SEC);
|
||||
if (r < 0) {
|
||||
if (r < 0) {
|
||||
if (errno == EINTR)
|
||||
continue;
|
||||
err = -errno;
|
||||
|
@ -312,7 +312,7 @@ struct udev_ctrl_msg *udev_ctrl_receive_msg(struct udev_ctrl_connection *conn) {
|
|||
struct ucred *cred;
|
||||
|
||||
uctrl_msg = new0(struct udev_ctrl_msg, 1);
|
||||
if (uctrl_msg == NULL)
|
||||
if (!uctrl_msg)
|
||||
return NULL;
|
||||
uctrl_msg->n_ref = 1;
|
||||
uctrl_msg->conn = conn;
|
||||
|
@ -327,16 +327,16 @@ struct udev_ctrl_msg *udev_ctrl_receive_msg(struct udev_ctrl_connection *conn) {
|
|||
pfd[0].events = POLLIN;
|
||||
|
||||
r = poll(pfd, 1, 10000);
|
||||
if (r < 0) {
|
||||
if (r < 0) {
|
||||
if (errno == EINTR)
|
||||
continue;
|
||||
goto err;
|
||||
} else if (r == 0) {
|
||||
log_error("timeout waiting for ctrl message");
|
||||
log_error("Timeout waiting for ctrl message");
|
||||
goto err;
|
||||
} else {
|
||||
if (!(pfd[0].revents & POLLIN)) {
|
||||
log_error_errno(errno, "ctrl connection error: %m");
|
||||
log_error("Invalid ctrl connection: %m");
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
|
@ -348,8 +348,8 @@ struct udev_ctrl_msg *udev_ctrl_receive_msg(struct udev_ctrl_connection *conn) {
|
|||
iov.iov_len = sizeof(struct udev_ctrl_msg_wire);
|
||||
|
||||
size = recvmsg(conn->sock, &smsg, 0);
|
||||
if (size < 0) {
|
||||
log_error_errno(errno, "unable to receive ctrl message: %m");
|
||||
if (size < 0) {
|
||||
log_error_errno(errno, "Failed to receive ctrl message: %m");
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
@ -357,20 +357,20 @@ struct udev_ctrl_msg *udev_ctrl_receive_msg(struct udev_ctrl_connection *conn) {
|
|||
|
||||
cmsg = CMSG_FIRSTHDR(&smsg);
|
||||
|
||||
if (cmsg == NULL || cmsg->cmsg_type != SCM_CREDENTIALS) {
|
||||
log_error("no sender credentials received, message ignored");
|
||||
if (!cmsg || cmsg->cmsg_type != SCM_CREDENTIALS) {
|
||||
log_error("No sender credentials received, ignoring message");
|
||||
goto err;
|
||||
}
|
||||
|
||||
cred = (struct ucred *) CMSG_DATA(cmsg);
|
||||
|
||||
if (cred->uid != 0) {
|
||||
log_error("sender uid="UID_FMT", message ignored", cred->uid);
|
||||
log_error("Sender uid="UID_FMT", ignoring message", cred->uid);
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (uctrl_msg->ctrl_msg_wire.magic != UDEV_CTRL_MAGIC) {
|
||||
log_error("message magic 0x%08x doesn't match, ignore it", uctrl_msg->ctrl_msg_wire.magic);
|
||||
log_error("Message magic 0x%08x doesn't match, ignoring", uctrl_msg->ctrl_msg_wire.magic);
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "glob-util.h"
|
||||
#include "libudev-util.h"
|
||||
#include "mkdir.h"
|
||||
#include "parse-util.h"
|
||||
#include "path-util.h"
|
||||
#include "proc-cmdline.h"
|
||||
#include "stat-util.h"
|
||||
|
@ -202,7 +203,7 @@ struct token {
|
|||
union {
|
||||
unsigned attr_off;
|
||||
unsigned rule_goto;
|
||||
mode_t mode;
|
||||
mode_t mode;
|
||||
uid_t uid;
|
||||
gid_t gid;
|
||||
int devlink_prio;
|
||||
|
@ -233,7 +234,7 @@ static const char *operation_str(enum operation_type type) {
|
|||
[OP_REMOVE] = "remove",
|
||||
[OP_ASSIGN] = "assign",
|
||||
[OP_ASSIGN_FINAL] = "assign-final",
|
||||
} ;
|
||||
};
|
||||
|
||||
return operation_strs[type];
|
||||
}
|
||||
|
@ -466,11 +467,11 @@ static int add_token(struct udev_rules *rules, struct token *token) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void log_unknown_owner(int error, const char *entity, const char *owner) {
|
||||
static void log_unknown_owner(sd_device *dev, int error, const char *entity, const char *owner) {
|
||||
if (IN_SET(abs(error), ENOENT, ESRCH))
|
||||
log_error("Specified %s '%s' unknown", entity, owner);
|
||||
log_device_error(dev, "Specified %s '%s' unknown", entity, owner);
|
||||
else
|
||||
log_error_errno(error, "Failed to resolve %s '%s': %m", entity, owner);
|
||||
log_device_error_errno(dev, error, "Failed to resolve %s '%s': %m", entity, owner);
|
||||
}
|
||||
|
||||
static uid_t add_uid(struct udev_rules *rules, const char *owner) {
|
||||
|
@ -489,7 +490,7 @@ static uid_t add_uid(struct udev_rules *rules, const char *owner) {
|
|||
}
|
||||
r = get_user_creds(&owner, &uid, NULL, NULL, NULL, USER_CREDS_ALLOW_MISSING);
|
||||
if (r < 0)
|
||||
log_unknown_owner(r, "user", owner);
|
||||
log_unknown_owner(NULL, r, "user", owner);
|
||||
|
||||
/* grow buffer if needed */
|
||||
if (rules->uids_cur+1 >= rules->uids_max) {
|
||||
|
@ -532,7 +533,7 @@ static gid_t add_gid(struct udev_rules *rules, const char *group) {
|
|||
}
|
||||
r = get_group_creds(&group, &gid, USER_CREDS_ALLOW_MISSING);
|
||||
if (r < 0)
|
||||
log_unknown_owner(r, "group", group);
|
||||
log_unknown_owner(NULL, r, "group", group);
|
||||
|
||||
/* grow buffer if needed */
|
||||
if (rules->gids_cur+1 >= rules->gids_max) {
|
||||
|
@ -1957,10 +1958,10 @@ int udev_rules_apply_to_event(
|
|||
|
||||
event->program_result = mfree(event->program_result);
|
||||
udev_event_apply_format(event, rules_str(rules, cur->key.value_off), program, sizeof(program), false);
|
||||
log_debug("PROGRAM '%s' %s:%u",
|
||||
program,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
log_device_debug(dev, "PROGRAM '%s' %s:%u",
|
||||
program,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
|
||||
if (udev_event_spawn(event, timeout_usec, true, program, result, sizeof(result)) < 0) {
|
||||
if (cur->key.op != OP_NOMATCH)
|
||||
|
@ -1972,7 +1973,7 @@ int udev_rules_apply_to_event(
|
|||
if (IN_SET(esc, ESCAPE_UNSET, ESCAPE_REPLACE)) {
|
||||
count = util_replace_chars(result, UDEV_ALLOWED_CHARS_INPUT);
|
||||
if (count > 0)
|
||||
log_debug("Replaced %i character(s)" , count);
|
||||
log_device_debug(dev, "Replaced %i character(s) from result of '%s'" , count, program);
|
||||
}
|
||||
event->program_result = strdup(result);
|
||||
if (cur->key.op == OP_NOMATCH)
|
||||
|
@ -1993,10 +1994,10 @@ int udev_rules_apply_to_event(
|
|||
char import[UTIL_PATH_SIZE];
|
||||
|
||||
udev_event_apply_format(event, rules_str(rules, cur->key.value_off), import, sizeof(import), false);
|
||||
log_debug("IMPORT '%s' %s:%u",
|
||||
import,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
log_device_debug(dev, "IMPORT '%s' %s:%u",
|
||||
import,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
|
||||
if (import_program_into_properties(event, timeout_usec, import) != 0)
|
||||
if (cur->key.op != OP_NOMATCH)
|
||||
|
@ -2009,10 +2010,10 @@ int udev_rules_apply_to_event(
|
|||
if (udev_builtin_run_once(cur->key.builtin_cmd)) {
|
||||
/* check if we ran already */
|
||||
if (event->builtin_run & (1 << cur->key.builtin_cmd)) {
|
||||
log_debug("IMPORT builtin skip '%s' %s:%u",
|
||||
udev_builtin_name(cur->key.builtin_cmd),
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
log_device_debug(dev, "IMPORT builtin skip '%s' %s:%u",
|
||||
udev_builtin_name(cur->key.builtin_cmd),
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
/* return the result from earlier run */
|
||||
if (event->builtin_ret & (1 << cur->key.builtin_cmd))
|
||||
if (cur->key.op != OP_NOMATCH)
|
||||
|
@ -2024,16 +2025,16 @@ int udev_rules_apply_to_event(
|
|||
}
|
||||
|
||||
udev_event_apply_format(event, rules_str(rules, cur->key.value_off), command, sizeof(command), false);
|
||||
log_debug("IMPORT builtin '%s' %s:%u",
|
||||
udev_builtin_name(cur->key.builtin_cmd),
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
log_device_debug(dev, "IMPORT builtin '%s' %s:%u",
|
||||
udev_builtin_name(cur->key.builtin_cmd),
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
|
||||
r = udev_builtin_run(dev, cur->key.builtin_cmd, command, false);
|
||||
if (r < 0) {
|
||||
/* remember failure */
|
||||
log_debug_errno(r, "IMPORT builtin '%s' fails: %m",
|
||||
udev_builtin_name(cur->key.builtin_cmd));
|
||||
log_device_debug_errno(dev, r, "IMPORT builtin '%s' fails: %m",
|
||||
udev_builtin_name(cur->key.builtin_cmd));
|
||||
event->builtin_ret |= (1 << cur->key.builtin_cmd);
|
||||
if (cur->key.op != OP_NOMATCH)
|
||||
goto nomatch;
|
||||
|
@ -2059,7 +2060,7 @@ int udev_rules_apply_to_event(
|
|||
key = rules_str(rules, cur->key.value_off);
|
||||
r = proc_cmdline_get_key(key, PROC_CMDLINE_VALUE_OPTIONAL, &value);
|
||||
if (r < 0)
|
||||
log_debug_errno(r, "Failed to read %s from /proc/cmdline, ignoring: %m", key);
|
||||
log_device_debug_errno(dev, r, "Failed to read %s from /proc/cmdline, ignoring: %m", key);
|
||||
else if (r > 0) {
|
||||
imported = true;
|
||||
|
||||
|
@ -2118,13 +2119,13 @@ int udev_rules_apply_to_event(
|
|||
event->owner_set = true;
|
||||
r = get_user_creds(&ow, &event->uid, NULL, NULL, NULL, USER_CREDS_ALLOW_MISSING);
|
||||
if (r < 0) {
|
||||
log_unknown_owner(r, "user", owner);
|
||||
log_unknown_owner(dev, r, "user", owner);
|
||||
event->uid = 0;
|
||||
}
|
||||
log_debug("OWNER %u %s:%u",
|
||||
event->uid,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
log_device_debug(dev, "OWNER %u %s:%u",
|
||||
event->uid,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
break;
|
||||
}
|
||||
case TK_A_GROUP: {
|
||||
|
@ -2139,35 +2140,35 @@ int udev_rules_apply_to_event(
|
|||
event->group_set = true;
|
||||
r = get_group_creds(&gr, &event->gid, USER_CREDS_ALLOW_MISSING);
|
||||
if (r < 0) {
|
||||
log_unknown_owner(r, "group", group);
|
||||
log_unknown_owner(dev, r, "group", group);
|
||||
event->gid = 0;
|
||||
}
|
||||
log_debug("GROUP %u %s:%u",
|
||||
event->gid,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
log_device_debug(dev, "GROUP %u %s:%u",
|
||||
event->gid,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
break;
|
||||
}
|
||||
case TK_A_MODE: {
|
||||
char mode_str[UTIL_NAME_SIZE], *endptr;
|
||||
char mode_str[UTIL_NAME_SIZE];
|
||||
mode_t mode;
|
||||
|
||||
if (event->mode_final)
|
||||
break;
|
||||
udev_event_apply_format(event, rules_str(rules, cur->key.value_off), mode_str, sizeof(mode_str), false);
|
||||
mode = strtol(mode_str, &endptr, 8);
|
||||
if (endptr[0] != '\0') {
|
||||
log_error("ignoring invalid mode '%s'", mode_str);
|
||||
r = parse_mode(mode_str, &mode);
|
||||
if (r < 0) {
|
||||
log_device_error_errno(dev, r, "Failed to parse mode '%s': %m", mode_str);
|
||||
break;
|
||||
}
|
||||
if (cur->key.op == OP_ASSIGN_FINAL)
|
||||
event->mode_final = true;
|
||||
event->mode_set = true;
|
||||
event->mode = mode;
|
||||
log_debug("MODE %#o %s:%u",
|
||||
event->mode,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
log_device_debug(dev, "MODE %#o %s:%u",
|
||||
event->mode,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
break;
|
||||
}
|
||||
case TK_A_OWNER_ID:
|
||||
|
@ -2177,10 +2178,10 @@ int udev_rules_apply_to_event(
|
|||
event->owner_final = true;
|
||||
event->owner_set = true;
|
||||
event->uid = cur->key.uid;
|
||||
log_debug("OWNER %u %s:%u",
|
||||
event->uid,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
log_device_debug(dev, "OWNER %u %s:%u",
|
||||
event->uid,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
break;
|
||||
case TK_A_GROUP_ID:
|
||||
if (event->group_final)
|
||||
|
@ -2189,10 +2190,10 @@ int udev_rules_apply_to_event(
|
|||
event->group_final = true;
|
||||
event->group_set = true;
|
||||
event->gid = cur->key.gid;
|
||||
log_debug("GROUP %u %s:%u",
|
||||
event->gid,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
log_device_debug(dev, "GROUP %u %s:%u",
|
||||
event->gid,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
break;
|
||||
case TK_A_MODE_ID:
|
||||
if (event->mode_final)
|
||||
|
@ -2201,10 +2202,10 @@ int udev_rules_apply_to_event(
|
|||
event->mode_final = true;
|
||||
event->mode_set = true;
|
||||
event->mode = cur->key.mode;
|
||||
log_debug("MODE %#o %s:%u",
|
||||
event->mode,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
log_device_debug(dev, "MODE %#o %s:%u",
|
||||
event->mode,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
break;
|
||||
case TK_A_SECLABEL: {
|
||||
_cleanup_free_ char *name = NULL, *label = NULL;
|
||||
|
@ -2235,10 +2236,10 @@ int udev_rules_apply_to_event(
|
|||
|
||||
name = label = NULL;
|
||||
|
||||
log_debug("SECLABEL{%s}='%s' %s:%u",
|
||||
name, label,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
log_device_debug(dev, "SECLABEL{%s}='%s' %s:%u",
|
||||
name, label,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
break;
|
||||
}
|
||||
case TK_A_ENV: {
|
||||
|
@ -2280,7 +2281,7 @@ int udev_rules_apply_to_event(
|
|||
(*p >= '0' && *p <= '9') ||
|
||||
IN_SET(*p, '-', '_'))
|
||||
continue;
|
||||
log_error("Ignoring invalid tag name '%s'", tag);
|
||||
log_device_error(dev, "Ignoring invalid tag name '%s'", tag);
|
||||
break;
|
||||
}
|
||||
if (cur->key.op == OP_REMOVE)
|
||||
|
@ -2303,24 +2304,24 @@ int udev_rules_apply_to_event(
|
|||
if (IN_SET(esc, ESCAPE_UNSET, ESCAPE_REPLACE)) {
|
||||
count = util_replace_chars(name_str, "/");
|
||||
if (count > 0)
|
||||
log_debug("Replaced %i character(s)", count);
|
||||
log_device_debug(dev, "Replaced %i character(s) from result of NAME=\"%s\"", count, name);
|
||||
}
|
||||
if (sd_device_get_devnum(dev, NULL) >= 0 &&
|
||||
(sd_device_get_devname(dev, &val) < 0 ||
|
||||
!streq(name_str, val + STRLEN("/dev/")))) {
|
||||
log_error("NAME=\"%s\" ignored, kernel device nodes cannot be renamed; please fix it in %s:%u\n",
|
||||
name,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
log_device_error(dev, "Kernel device nodes cannot be renamed, ignoring NAME=\"%s\"; please fix it in %s:%u\n",
|
||||
name,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
break;
|
||||
}
|
||||
if (free_and_strdup(&event->name, name_str) < 0)
|
||||
return log_oom();
|
||||
|
||||
log_debug("NAME '%s' %s:%u",
|
||||
event->name,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
log_device_debug(dev, "NAME '%s' %s:%u",
|
||||
event->name,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
break;
|
||||
}
|
||||
case TK_A_DEVLINK: {
|
||||
|
@ -2343,15 +2344,15 @@ int udev_rules_apply_to_event(
|
|||
else if (esc == ESCAPE_REPLACE)
|
||||
count = util_replace_chars(temp, "/");
|
||||
if (count > 0)
|
||||
log_debug("Replaced %i character(s)" , count);
|
||||
log_device_debug(dev, "Replaced %i character(s) from result of LINK" , count);
|
||||
pos = temp;
|
||||
while (isspace(pos[0]))
|
||||
pos++;
|
||||
next = strchr(pos, ' ');
|
||||
while (next) {
|
||||
next[0] = '\0';
|
||||
log_debug("LINK '%s' %s:%u", pos,
|
||||
rules_str(rules, rule->rule.filename_off), rule->rule.filename_line);
|
||||
log_device_debug(dev, "LINK '%s' %s:%u", pos,
|
||||
rules_str(rules, rule->rule.filename_off), rule->rule.filename_line);
|
||||
strscpyl(filename, sizeof(filename), "/dev/", pos, NULL);
|
||||
device_add_devlink(dev, filename);
|
||||
while (isspace(next[1]))
|
||||
|
@ -2360,8 +2361,8 @@ int udev_rules_apply_to_event(
|
|||
next = strchr(pos, ' ');
|
||||
}
|
||||
if (pos[0] != '\0') {
|
||||
log_debug("LINK '%s' %s:%u", pos,
|
||||
rules_str(rules, rule->rule.filename_off), rule->rule.filename_line);
|
||||
log_device_debug(dev, "LINK '%s' %s:%u", pos,
|
||||
rules_str(rules, rule->rule.filename_off), rule->rule.filename_line);
|
||||
strscpyl(filename, sizeof(filename), "/dev/", pos, NULL);
|
||||
device_add_devlink(dev, filename);
|
||||
}
|
||||
|
@ -2379,14 +2380,14 @@ int udev_rules_apply_to_event(
|
|||
attr_subst_subdir(attr, sizeof(attr));
|
||||
|
||||
udev_event_apply_format(event, rules_str(rules, cur->key.value_off), value, sizeof(value), false);
|
||||
log_debug("ATTR '%s' writing '%s' %s:%u", attr, value,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
log_device_debug(dev, "ATTR '%s' writing '%s' %s:%u", attr, value,
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
f = fopen(attr, "we");
|
||||
if (!f)
|
||||
log_error_errno(errno, "Failed to open ATTR{%s} for writing: %m", attr);
|
||||
log_device_error_errno(dev, errno, "Failed to open ATTR{%s} for writing: %m", attr);
|
||||
else if (fprintf(f, "%s", value) <= 0)
|
||||
log_error_errno(errno, "Failed to write ATTR{%s}: %m", attr);
|
||||
log_device_error_errno(dev, errno, "Failed to write ATTR{%s}: %m", attr);
|
||||
break;
|
||||
}
|
||||
case TK_A_SYSCTL: {
|
||||
|
@ -2395,11 +2396,11 @@ int udev_rules_apply_to_event(
|
|||
udev_event_apply_format(event, rules_str(rules, cur->key.attr_off), filename, sizeof(filename), false);
|
||||
sysctl_normalize(filename);
|
||||
udev_event_apply_format(event, rules_str(rules, cur->key.value_off), value, sizeof(value), false);
|
||||
log_debug("SYSCTL '%s' writing '%s' %s:%u", filename, value,
|
||||
rules_str(rules, rule->rule.filename_off), rule->rule.filename_line);
|
||||
log_device_debug(dev, "SYSCTL '%s' writing '%s' %s:%u", filename, value,
|
||||
rules_str(rules, rule->rule.filename_off), rule->rule.filename_line);
|
||||
r = sysctl_write(filename, value);
|
||||
if (r < 0)
|
||||
log_error_errno(r, "Failed to write SYSCTL{%s}='%s': %m", filename, value);
|
||||
log_device_error_errno(dev, r, "Failed to write SYSCTL{%s}='%s': %m", filename, value);
|
||||
break;
|
||||
}
|
||||
case TK_A_RUN_BUILTIN:
|
||||
|
@ -2427,10 +2428,10 @@ int udev_rules_apply_to_event(
|
|||
|
||||
cmd = NULL;
|
||||
|
||||
log_debug("RUN '%s' %s:%u",
|
||||
rules_str(rules, cur->key.value_off),
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
log_device_debug(dev, "RUN '%s' %s:%u",
|
||||
rules_str(rules, cur->key.value_off),
|
||||
rules_str(rules, rule->rule.filename_off),
|
||||
rule->rule.filename_line);
|
||||
break;
|
||||
}
|
||||
case TK_A_GOTO:
|
||||
|
@ -2445,7 +2446,7 @@ int udev_rules_apply_to_event(
|
|||
case TK_M_PARENTS_MAX:
|
||||
case TK_M_MAX:
|
||||
case TK_UNSET:
|
||||
log_error("Wrong type %u", cur->type);
|
||||
log_device_error(dev, "Wrong type %u", cur->type);
|
||||
goto nomatch;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue