+
+ if (s->smack_ip_in)
+ if (fsetxattr(fd, "security.SMACK64IPIN", s->smack_ip_in, strlen(s->smack_ip_in), 0) < 0)
+ log_error("fsetxattr(\"security.SMACK64IPIN\"): %m");
+
+ if (s->smack_ip_out)
+ if (fsetxattr(fd, "security.SMACK64IPOUT", s->smack_ip_out, strlen(s->smack_ip_out), 0) < 0)
+ log_error("fsetxattr(\"security.SMACK64IPOUT\"): %m");
+
+ if (s->socket_user &&
+ get_user_creds((const char **)&s->socket_user, &uid,
+ NULL, NULL, NULL) < 0) {
+ log_warning("failed to lookup user: %s", s->socket_user);
+ }
+
+ if (s->socket_group &&
+ get_group_creds((const char **)&s->socket_group, &gid) < 0) {
+ log_warning("failed to lookup group: %s", s->socket_group);
+ }
+
+ if ((uid != 0 || gid != 0) && fchown(fd, uid, gid) < 0) {
+ log_warning("failed to change ownership of socket");
+ }