From 6bb57da0b30b3da4de2b3b304796b664e4985a8e Mon Sep 17 00:00:00 2001 From: jl4589 <jl4589@drexel.edu> Date: Thu, 13 Mar 2025 17:40:48 -0400 Subject: [PATCH] MINOR BUG FIXES IN MAKE --- Assignment-06/starter/rsh_server.c | 17 ++++++----------- Assignment-06/starter/rshlib.h | 2 +- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/Assignment-06/starter/rsh_server.c b/Assignment-06/starter/rsh_server.c index e4aa720..8191051 100644 --- a/Assignment-06/starter/rsh_server.c +++ b/Assignment-06/starter/rsh_server.c @@ -249,6 +249,7 @@ int process_cli_requests(int svr_socket) { } + /* * exec_client_requests(cli_socket) * cli_socket: The server-side socket that is connected to the client @@ -291,22 +292,20 @@ int process_cli_requests(int svr_socket) { * or receive errors. */ + void *exec_client_requests(void *socket_handle) { int cli_socket = *((int *)socket_handle); char cmd_buff[RDSH_COMM_BUFF_SZ]; ssize_t recv_bytes; - int rc = OK; - printf("SERVER: New client connected. Socket: %d\n", cli_socket); + printf("SERVER: Handling client request. Socket: %d\n", cli_socket); - // Receive the command from the client recv_bytes = recv(cli_socket, cmd_buff, sizeof(cmd_buff), 0); if (recv_bytes <= 0) { perror("SERVER: recv failed"); close(cli_socket); pthread_exit(NULL); } - cmd_buff[recv_bytes] = '\0'; printf("SERVER: Received command: %s\n", cmd_buff); @@ -320,7 +319,7 @@ void *exec_client_requests(void *socket_handle) { pthread_exit(NULL); } - rc = rsh_execute_pipeline(cli_socket, &cmd_list); + rsh_execute_pipeline(cli_socket, &cmd_list); for (int i = 0; i < cmd_list.num; i++) { free(cmd_list.commands[i]._cmd_buffer); @@ -363,8 +362,8 @@ void *exec_client_requests(void *socket_handle) { pthread_exit(NULL); } else if (pid == 0) { // Child process: execute the command - dup2(cli_socket, STDOUT_FILENO); // Redirect stdout to client socket - dup2(cli_socket, STDERR_FILENO); // Redirect stderr to client socket + dup2(cli_socket, STDOUT_FILENO); + dup2(cli_socket, STDERR_FILENO); execvp(cmd.argv[0], cmd.argv); perror("SERVER: execvp failed"); exit(EXIT_FAILURE); @@ -390,10 +389,6 @@ void *exec_client_requests(void *socket_handle) { } - - - - /* * send_message_eof(cli_socket) * cli_socket: The server-side socket that is connected to the client diff --git a/Assignment-06/starter/rshlib.h b/Assignment-06/starter/rshlib.h index 927594e..ce86353 100644 --- a/Assignment-06/starter/rshlib.h +++ b/Assignment-06/starter/rshlib.h @@ -65,7 +65,7 @@ int stop_server(int svr_socket); int send_message_eof(int cli_socket); int send_message_string(int cli_socket, char *buff); int process_cli_requests(int svr_socket); -int exec_client_requests(int cli_socket); +int *exec_client_requests(int cli_socket); int rsh_execute_pipeline(int socket_fd, command_list_t *clist); Built_In_Cmds rsh_match_command(const char *input); -- GitLab