|
@@ -23,55 +23,59 @@
|
|
|
#include <stdio.h>
|
|
|
#include <string.h>
|
|
|
|
|
|
-// Request(local pointer, remote pointer, size)
|
|
|
-// make ping pong example
|
|
|
-myco_network_fetch_resource(void *local_pointer, pid_t local_pid, int size) {
|
|
|
- printf("\nTransferring data over network!\n");
|
|
|
+#define BUF 1024
|
|
|
+int myco_network_fetch_resource(void *local_pointer, pid_t local_pid, int resource_size) {
|
|
|
+ printf("\nTransferring data over network!\n");
|
|
|
|
|
|
- // Create local memory for transfer
|
|
|
- void *resource_pointer = malloc(size);
|
|
|
|
|
|
- // Create socket for transfer
|
|
|
- int create_socket, new_socket;
|
|
|
- socklen_t addrlen;
|
|
|
- char *buffer = malloc (size);
|
|
|
- //ssize_t size;
|
|
|
- struct sockaddr_in address;
|
|
|
- const int y = 1;
|
|
|
- char *command;
|
|
|
- char *agent;
|
|
|
- char *resource;
|
|
|
+ int port = 15001;
|
|
|
+ int create_socket, new_socket;
|
|
|
+ socklen_t addrlen;
|
|
|
+ char *buffer = malloc (BUF);
|
|
|
+ ssize_t size;
|
|
|
+ struct sockaddr_in address;
|
|
|
+ const int y = 1;
|
|
|
+ char *command;
|
|
|
+ char *agent;
|
|
|
+ char *resource;
|
|
|
|
|
|
- printf ("\e[2J");
|
|
|
- create_socket = socket (AF_INET, SOCK_STREAM, 0);
|
|
|
- setsockopt(create_socket, SOL_SOCKET,
|
|
|
- SO_REUSEADDR, &y, sizeof(int));
|
|
|
- address.sin_family = AF_INET;
|
|
|
- address.sin_addr.s_addr = INADDR_ANY;
|
|
|
- address.sin_port = htons (15001);
|
|
|
- if (bind ( create_socket,
|
|
|
- (struct sockaddr *) &address,
|
|
|
- sizeof (address)) != 0) {
|
|
|
- printf( "Port already taken!\n");
|
|
|
- }
|
|
|
- listen (create_socket, 5);
|
|
|
- addrlen = sizeof (struct sockaddr_in);
|
|
|
+ create_socket=socket (AF_INET, SOCK_STREAM, 0);
|
|
|
+ setsockopt( create_socket, SOL_SOCKET,
|
|
|
+ SO_REUSEADDR, &y, sizeof(int));
|
|
|
+ address.sin_family = AF_INET;
|
|
|
+ address.sin_addr.s_addr = INADDR_ANY;
|
|
|
+ address.sin_port = htons (port);
|
|
|
+ if (bind ( create_socket,
|
|
|
+ (struct sockaddr *) &address,
|
|
|
+ sizeof (address)) != 0) {
|
|
|
+ printf( "Port already taken!\n");
|
|
|
+ }
|
|
|
+ listen (create_socket, 5);
|
|
|
+ addrlen = sizeof (struct sockaddr_in);
|
|
|
+ while (1) {
|
|
|
+ new_socket = accept (create_socket, (struct sockaddr *) &address, &addrlen);
|
|
|
+ printf("DEBUG\n");
|
|
|
+ if (new_socket > 0)
|
|
|
+ inet_ntoa (address.sin_addr);
|
|
|
+ do {
|
|
|
+ size = recv (new_socket, buffer, BUF-1, 0);
|
|
|
+ if( size > 0)
|
|
|
+ buffer[size] = '\0';
|
|
|
|
|
|
- // Receive data
|
|
|
- printf("Waiting to receive data.\n");
|
|
|
- while (1) {
|
|
|
- ssize_t received = recv(create_socket, buffer, size, 0);
|
|
|
- printf("Received %s\n", buffer);
|
|
|
- }
|
|
|
-
|
|
|
- // Read memory over network
|
|
|
+ printf ("DEBUG: %s\n", buffer);
|
|
|
|
|
|
+ } while (strcmp (buffer, "quit\n") != 0);
|
|
|
+ close (new_socket);
|
|
|
+ }
|
|
|
+ close (create_socket);
|
|
|
|
|
|
- // Write memory to Agent
|
|
|
- if (myco_write_memory(local_pid, local_pointer, size, (void *)resource_pointer, size) == -1) {
|
|
|
- printf("ERROR: %s\n", strerror(errno));
|
|
|
- return -1;
|
|
|
- }
|
|
|
+ /*
|
|
|
+ // Write memory to Agent
|
|
|
+ if (myco_write_memory(local_pid, local_pointer, size, (void *)resource_pointer, size) == -1) {
|
|
|
+ printf("ERROR: %s\n", strerror(errno));
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ */
|
|
|
|
|
|
- return 0;
|
|
|
+ return 0;
|
|
|
}
|