int fd;
/** Bitmask of those status items the client is interested in. */
uint64_t item_mask;
- /** See \ref stat_client flags. s*/
+ /** See \ref stat_client flags. */
unsigned flags;
/** Its entry in the list of stat clients. */
struct list_head node;
continue;
b = (sc->flags & SCF_PARSER_FRIENDLY)? &pfpb : &pb;
if (!b->buf)
- (void)WRITE_STATUS_ITEM(b, item_num, "%s\n",
- msg? msg : "");
+ WRITE_STATUS_ITEM(b, item_num, "%s\n", msg? msg : "");
ret = write(sc->fd, b->buf, b->offset);
if (ret == b->offset)
continue;
char *item = stat_item_values[i];
if (!((one << i) & mask))
continue;
- (void)WRITE_STATUS_ITEM(&b, i, "%s\n", item? item : "");
+ WRITE_STATUS_ITEM(&b, i, "%s\n", item? item : "");
}
ret = client_write(fd, b.buf);
if (ret >= 0)
return ret < 0? ret : 0;
}
-static int check_perms(uid_t uid, uid_t *whitelist)
-{
- int i;
-
- if (!conf.user_allow_given)
- return 1;
- for (i = 0; i < conf.user_allow_given; i++)
- if (uid == whitelist[i])
- return 1;
- return -E_UCRED_PERM;
-}
-
/**
* Handle arriving connections on the local socket.
*
* \param accept_fd The fd to accept connections on.
* \param rfds If \a accept_fd is not set in \a rfds, do nothing.
- * \param uid_whitelist Array of UIDs which are allowed to connect.
*
* This is called in each iteration of the select loop. If there is an incoming
* connection on \a accept_fd, this function reads the command sent by the peer,
*
* \sa para_accept(), recv_cred_buffer()
* */
-int handle_connect(int accept_fd, fd_set *rfds, uid_t *uid_whitelist)
+int handle_connect(int accept_fd, fd_set *rfds)
{
int i, argc, ret, clifd;
char buf[MAXLINE], **argv = NULL;
if (ret < 0)
goto out;
uid = ret;
- PARA_INFO_LOG("connection from user %i, buf: %s\n", ret, buf);
- ret = check_perms(uid, uid_whitelist);
- if (ret < 0)
+ PARA_INFO_LOG("connection from UID %d, buf: %s\n", ret, buf);
+ ret = -E_UCRED_PERM;
+ if (!uid_is_whitelisted(uid))
goto out;
ret = create_argv(buf, "\n", &argv);
if (ret <= 0)