Call a function to cleanup various sockets properly.

This commit is contained in:
Daniel O'Connor 2012-06-24 14:24:58 +09:30
parent aac5a4c275
commit 4861ff9252
4 changed files with 18 additions and 8 deletions

View File

@ -109,6 +109,12 @@ monitor_setup_sockets(void) {
return -1;
}
void
monitor_cleanup_sockets(void) {
socket_done(confValueGet("monitor.socket", DEFAULT_MONITOR_SOCKET_NAME));
}
int monitor_get_fds(struct pollfd *fds,int *fdcount,int fdmax)
{
/* Make sure sockets are open */

View File

@ -1175,10 +1175,15 @@ int overlay_mdp_client_init()
return -1;
}
void
overlay_mdp_server_done(void) {
socket_done(confValueGet("mdp.socket", DEFAULT_MDP_SOCKET_NAME));
}
int
overlay_mdp_client_done(void) {
overlay_mdp_frame mdp;
if (mdp_client_socket != -1) {
/* Tell MDP server to release all our bindings */
mdp.packetTypeAndFlags=MDP_GOODBYE;

View File

@ -1317,6 +1317,7 @@ int keyring_mapping_request(keyring_file *k,overlay_mdp_frame *req);
extern int mdp_client_socket;
int overlay_mdp_client_init();
int overlay_mdp_client_done();
void overlay_mdp_server_done();
int overlay_mdp_client_poll(long long timeout_ms);
int overlay_mdp_recv(overlay_mdp_frame *mdp,int *ttl);
int overlay_mdp_send(overlay_mdp_frame *mdp,int flags,int timeout_ms);
@ -1481,6 +1482,7 @@ int app_monitor_cli(int argc, const char *const *argv, struct command_line_optio
int monitor_get_fds(struct pollfd *fds,int *fdcount,int fdmax);
int monitor_setup_sockets();
void monitor_cleanup_sockets(void);
int monitor_poll();
int monitor_get_fds(struct pollfd *fds,int *fdcount,int fdmax);
int monitor_call_status(vomp_call_state *call);

View File

@ -289,13 +289,10 @@ void serverCleanUp()
char filename[1024];
if (FORM_SERVAL_INSTANCE_PATH(filename, PIDFILE_NAME))
unlink(filename);
if (mdp_client_socket==-1) {
if (FORM_SERVAL_INSTANCE_PATH(filename, "mdp.socket")) {
unlink(filename);
}
} else {
overlay_mdp_client_done();
}
overlay_mdp_server_done();
overlay_mdp_client_done();
monitor_cleanup_sockets();
}
static void signame(char *buf, size_t len, int signal)