void stop_server(void) { DEBUG("Stopping the server..."); if (sock_unix >= 0) { remove_fd_from_io_scheduler(&worker_unix, NULL); metautils_pclose(&sock_unix); unlink(unix_socket_path); } if (sock_inet >= 0) { remove_fd_from_io_scheduler(&worker_inet, NULL); metautils_pclose(&sock_inet); } DEBUG("The server is stopped."); }
void stop_server(void) { DEBUG("Stopping the server..."); if (usock>=0) { remove_fd_from_io_scheduler(&worker_unix, NULL); metautils_pclose(&usock); } if (sock_inet>=0) { remove_fd_from_io_scheduler(&worker_inet, NULL); metautils_pclose(&sock_inet); } unlink(AGENT_SOCK_PATH); DEBUG("The server is stopped."); }
/** * This function is passed as the worker callback but does nothing * else that closing the connection. At this point, the objective * has been reached. */ static int _check_tcp_service_worker_func(worker_t *worker, GError **error) { struct workerdata_checksrv_s *wdata; (void) error; wdata = worker->data.session; wdata->flag_connected = TRUE; remove_fd_from_io_scheduler(worker, NULL); worker->func = agent_worker_default_func; _check_tcp_service_worker_cleaner(worker); g_free(worker); return 1; }
int read_response_body(worker_t *worker, GError **error) { ssize_t rl; worker_data_t *data = NULL; http_session_t *http_session = NULL; TRACE("Executing read_response_body worker"); data = &(worker->data); http_session = (http_session_t*)data->session; if (data->done >= data->buffer_size) { /* All content was read */ http_session->body = g_strndup(data->buffer, data->buffer_size); DEBUG("HTTP response body : [%s]", http_session->body); /* Remove fd from sched to close connection */ remove_fd_from_io_scheduler(worker, error); /* Clean data */ CLEAR_WORKER_DATA(data); return(http_session->response_handler(worker, error)); } else { rl = read(data->fd, data->buffer + data->done, data->buffer_size - data->done); if (rl < 0) { GSETERROR(error, "Read on socket failed with error : %s", strerror(errno)); goto error_read; } if (rl == 0 && data->done < data->buffer_size) { GSETERROR(error, "Connection closed while parsing rawx status"); goto error_read; } data->done += rl; } return(1); error_read: return(http_session->error_handler(worker, error)); }