feat: Worker tells Host to remove itself from active port list when done
This commit is contained in:
parent
45378a6df7
commit
56f6c65a19
29
main.c
29
main.c
|
@ -5,6 +5,7 @@
|
|||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
@ -26,6 +27,32 @@ int SetupServer(int* socket_fd, int port) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int RemoveServer(int port) {
|
||||
int socket_fd = socket(AF_INET, SOCK_STREAM, 0);
|
||||
struct sockaddr_in server_addr;
|
||||
server_addr.sin_family = AF_INET;
|
||||
server_addr.sin_port = htons(1337);
|
||||
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
|
||||
int connected = connect(socket_fd, (struct sockaddr*)&server_addr, sizeof(server_addr));
|
||||
if(connected < 0) {
|
||||
printf("Connect error: %s (%i)\n", strerror(errno), errno);
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf("Removing Server\n");
|
||||
char data[5];
|
||||
char flag = 0x1;
|
||||
u_int32_t nport = htonl(port);
|
||||
memcpy(data, &flag, sizeof(char));
|
||||
memcpy(data+1, &nport, sizeof(u_int32_t));
|
||||
int bytes_sent = send(socket_fd, data, sizeof(data), 0);
|
||||
if(bytes_sent == -1) {
|
||||
printf("Send error: %s (%i)\n", strerror(errno), errno);
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int StartEnv(int port) {
|
||||
int socket_fd;
|
||||
int setup = SetupServer(&socket_fd, port);
|
||||
|
@ -49,7 +76,6 @@ int StartEnv(int port) {
|
|||
bytes_received = recv(client_sock, buffer, sizeof(buffer), 0);
|
||||
if(bytes_received < 0) {
|
||||
printf("Receive Error: %s (%d)\n", strerror(errno), errno);
|
||||
break;
|
||||
} else if(bytes_received == 0) {
|
||||
break;
|
||||
}
|
||||
|
@ -79,6 +105,7 @@ int StartEnv(int port) {
|
|||
send(client_sock, data, obs_size, 0);
|
||||
}
|
||||
}
|
||||
RemoveServer(port);
|
||||
shutdown(client_sock, SHUT_RDWR);
|
||||
close(client_sock);
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue