int client_fd;
ssize_t ret = -1;
- client_fd = lxc_cmd_connect(name, lxcpath, hashed_sock_name);
+ client_fd = lxc_cmd_connect(name, lxcpath, hashed_sock_name, "command");
if (client_fd < 0) {
if (client_fd == -ECONNREFUSED)
return -ECONNREFUSED;
goto out;
}
-int lxc_cmd_init(const char *name, struct lxc_handler *handler,
- const char *lxcpath)
+int lxc_cmd_init(const char *name, const char *lxcpath, const char *suffix)
{
int fd, len, ret;
char path[sizeof(((struct sockaddr_un *)0)->sun_path)] = {0};
* because we print the sockname out sometimes.
*/
len = sizeof(path) - 2;
- ret = lxc_make_abstract_socket_name(offset, len, name, lxcpath, NULL, "command");
+ ret = lxc_make_abstract_socket_name(offset, len, name, lxcpath, NULL, suffix);
if (ret < 0)
return -1;
+ TRACE("Creating abstract unix socket \"%s\"", offset);
fd = lxc_abstract_unix_open(path, SOCK_STREAM, 0);
if (fd < 0) {
return -1;
}
- handler->conf->maincmd_fd = fd;
- return 0;
+ return fd;
}
int lxc_cmd_mainloop_add(const char *name, struct lxc_epoll_descr *descr,
struct lxc_epoll_descr;
struct lxc_handler;
-extern int lxc_cmd_init(const char *name, struct lxc_handler *handler,
- const char *lxcpath);
+extern int lxc_cmd_init(const char *name, const char *lxcpath, const char *suffix);
extern int lxc_cmd_mainloop_add(const char *name, struct lxc_epoll_descr *descr,
struct lxc_handler *handler);
extern int lxc_try_cmd(const char *name, const char *lxcpath);
goto again;
}
- ERROR("failed to receive message: %s", strerror(errno));
+ ERROR("Failed to receive message: %s", strerror(errno));
return -1;
}
- if (ret == 0) {
- ERROR("length of message was 0");
+ if (ret < 0)
return -1;
- }
- TRACE("received state %s from state client %d",
+ TRACE("Received state %s from state client %d",
lxc_state2str(msg.value), state_client_fd);
return msg.value;
}
int lxc_cmd_connect(const char *name, const char *lxcpath,
- const char *hashed_sock_name)
+ const char *hashed_sock_name, const char *suffix)
{
int ret, client_fd;
char path[sizeof(((struct sockaddr_un *)0)->sun_path)] = {0};
*/
size_t len = sizeof(path) - 2;
ret = lxc_make_abstract_socket_name(offset, len, name, lxcpath,
- hashed_sock_name, "command");
+ hashed_sock_name, suffix);
if (ret < 0)
return -1;
* >= 0 client fd
*/
extern int lxc_cmd_connect(const char *name, const char *lxcpath,
- const char *hashed_sock_name);
+ const char *hashed_sock_name, const char *suffix);
#endif /* __LXC_COMMANDS_UTILS_H */
* lxc_cmd_add_state_client() to miss a state.
*/
handler->state = state;
- TRACE("set container state to %s", lxc_state2str(state));
+ TRACE("Set container state to %s", lxc_state2str(state));
if (lxc_list_empty(&handler->state_clients)) {
- TRACE("no state clients registered");
+ TRACE("No state clients registered");
process_unlock();
lxc_monitor_send_state(name, state, handler->lxcpath);
return 0;
client = cur->elem;
if (!client->states[state]) {
- TRACE("state %s not registered for state client %d",
+ TRACE("State %s not registered for state client %d",
lxc_state2str(state), client->clientfd);
continue;
}
- TRACE("sending state %s to state client %d",
+ TRACE("Sending state %s to state client %d",
lxc_state2str(state), client->clientfd);
again:
goto again;
}
- ERROR("failed to send message to client");
+ ERROR("%s - Failed to send message to client",
+ strerror(errno));
}
/* kick client from list */
handler->state_socket_pair[1]);
}
- if (lxc_cmd_init(name, handler, lxcpath)) {
- ERROR("failed to set up command socket");
+ handler->conf->maincmd_fd = lxc_cmd_init(name, lxcpath, "command");
+ if (handler->conf->maincmd_fd < 0) {
+ ERROR("Failed to set up command socket");
goto on_error;
}
-
- TRACE("unix domain socket %d for command server is ready",
+ TRACE("Unix domain socket %d for command server is ready",
handler->conf->maincmd_fd);
return handler;