|
@@ -21,7 +21,7 @@
|
|
|
int myco_agent_register(const char *agent_name) {
|
|
|
int agent_message_queue_id;
|
|
|
int global_message_queue_id;
|
|
|
- message msg;
|
|
|
+ message msg = {};
|
|
|
|
|
|
sprintf(msg.agent_name, "%s", agent_name);
|
|
|
|
|
@@ -37,14 +37,14 @@ int myco_agent_register(const char *agent_name) {
|
|
|
}
|
|
|
if (strncmp(msg.message, "SUCCESS:", 8) != 0) {
|
|
|
myco_remove_message_queue(agent_message_queue_id);
|
|
|
- return -1;
|
|
|
+ exit(EXIT_FAILURE);
|
|
|
}
|
|
|
|
|
|
return agent_message_queue_id;
|
|
|
}
|
|
|
|
|
|
int myco_agent_unregister (const char *agent_name, int agent_message_queue_id) {
|
|
|
- message msg;
|
|
|
+ message msg = {};
|
|
|
msg.agent_message_queue_id = agent_message_queue_id;
|
|
|
sprintf(msg.agent_name, "%s", agent_name);
|
|
|
sprintf(msg.message, "UNREGISTER AGENT");
|
|
@@ -69,7 +69,7 @@ void *myco_agent_register_resource (int agent_message_queue_id, const char *agen
|
|
|
int r = ftruncate(file_descriptor, size);
|
|
|
void *pointer = mmap(0, size, PROT_READ | PROT_WRITE, MAP_SHARED, file_descriptor, 0);
|
|
|
|
|
|
- message msg;
|
|
|
+ message msg = {};
|
|
|
msg.agent_message_queue_id = agent_message_queue_id;
|
|
|
sprintf(msg.agent_name, "%s", agent_name);
|
|
|
sprintf(msg.resource_name, "%s", resource_name);
|
|
@@ -93,7 +93,7 @@ void *myco_agent_register_resource (int agent_message_queue_id, const char *agen
|
|
|
}
|
|
|
|
|
|
int myco_agent_unregister_resource (int agent_message_queue_id, const char *resource_name) {
|
|
|
- message msg;
|
|
|
+ message msg = {};
|
|
|
msg.agent_message_queue_id = agent_message_queue_id;
|
|
|
sprintf(msg.resource_name, "%s", resource_name);
|
|
|
sprintf(msg.message, "UNREGISTER RESOURCE");
|
|
@@ -114,7 +114,7 @@ int myco_agent_unregister_resource (int agent_message_queue_id, const char *reso
|
|
|
}
|
|
|
|
|
|
int myco_agent_lock_resource (int agent_message_queue_id, const char *agent_name, const char *resource_name) {
|
|
|
- message msg;
|
|
|
+ message msg = {};
|
|
|
msg.agent_message_queue_id = agent_message_queue_id;
|
|
|
sprintf(msg.resource_name, "%s", resource_name);
|
|
|
sprintf(msg.agent_name, "%s", agent_name);
|
|
@@ -134,7 +134,7 @@ int myco_agent_lock_resource (int agent_message_queue_id, const char *agent_name
|
|
|
}
|
|
|
|
|
|
int myco_agent_release_resource (int agent_message_queue_id, const char *agent_name, const char *resource_name, void *resource_pointer, int resource_size) {
|
|
|
- message msg;
|
|
|
+ message msg = {};
|
|
|
msg.agent_message_queue_id = agent_message_queue_id;
|
|
|
sprintf(msg.resource_name, "%s", resource_name);
|
|
|
sprintf(msg.agent_name, "%s", agent_name);
|
|
@@ -156,7 +156,7 @@ int myco_agent_release_resource (int agent_message_queue_id, const char *agent_n
|
|
|
}
|
|
|
|
|
|
int myco_agent_unlock_resource (int agent_message_queue_id, const char *agent_name, const char *resource_name) {
|
|
|
- message msg;
|
|
|
+ message msg = {};
|
|
|
msg.agent_message_queue_id = agent_message_queue_id;
|
|
|
sprintf(msg.resource_name, "%s", resource_name);
|
|
|
sprintf(msg.agent_name, "%s", agent_name);
|
|
@@ -177,7 +177,7 @@ int myco_agent_unlock_resource (int agent_message_queue_id, const char *agent_na
|
|
|
|
|
|
struct resource myco_agent_request_resource(int agent_message_queue_id, char *agent_name, char *resource_name) {
|
|
|
struct resource myresource;
|
|
|
- message msg;
|
|
|
+ message msg = {};
|
|
|
msg.agent_message_queue_id = agent_message_queue_id;
|
|
|
sprintf(msg.resource_name, "%s", resource_name);
|
|
|
sprintf(msg.agent_name, "%s", agent_name);
|
|
@@ -209,7 +209,7 @@ int myco_agent_request_resource_list(int agent_message_queue_id) {
|
|
|
char *resource_pointer;
|
|
|
char *split;
|
|
|
|
|
|
- message msg;
|
|
|
+ message msg = {};
|
|
|
msg.agent_message_queue_id = agent_message_queue_id;
|
|
|
sprintf(msg.message, "REQUEST LIST");
|
|
|
msg.resource_size = 0;
|
|
@@ -248,7 +248,7 @@ int myco_agent_request_resource_list(int agent_message_queue_id) {
|
|
|
}
|
|
|
|
|
|
int myco_agent_write_remote_resource(int agent_message_queue_id, char *resource_name, void *pointer, int size, int force) {
|
|
|
- message msg;
|
|
|
+ message msg = {};
|
|
|
msg.agent_message_queue_id = agent_message_queue_id;
|
|
|
sprintf(msg.resource_name, "%s", resource_name);
|
|
|
if (force == 1) {
|
|
@@ -271,19 +271,23 @@ int myco_agent_write_remote_resource(int agent_message_queue_id, char *resource_
|
|
|
myco_write_memory(msg.sender_pid, msg.resource_pointer, msg.resource_size, pointer, size);
|
|
|
}
|
|
|
|
|
|
+ if (strncmp(msg.message, "SUCCESS: version updated, sending information for resource", 20) == 0) {
|
|
|
+ myco_write_memory(msg.sender_pid, msg.resource_pointer, msg.resource_size, pointer, size);
|
|
|
+ }
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
struct resource myco_agent_read_remote_resource(int agent_message_queue_id, char *resource_name) {
|
|
|
struct resource myresource;
|
|
|
- message msg;
|
|
|
+ message msg = {};
|
|
|
msg.agent_message_queue_id = agent_message_queue_id;
|
|
|
sprintf(msg.resource_name, "%s", resource_name);
|
|
|
sprintf(msg.message, "READ REMOTE RESOURCE");
|
|
|
|
|
|
msg = myco_send_and_receive(msg, myco_get_global_message_queue(), agent_message_queue_id);
|
|
|
|
|
|
- if(DEBUG) {
|
|
|
+ if (DEBUG) {
|
|
|
printf("%s", msg.message);
|
|
|
}
|
|
|
|