|
|
|
@ -130,7 +130,7 @@ void cmd_parse(char *cmd) {
|
|
|
|
|
char function[CMD_MAXSIZE + PREFIX_MAXSIZE]; |
|
|
|
|
|
|
|
|
|
*strchr(cmd, '\n') = '\0'; |
|
|
|
|
printf("DEBUG: Received command: %s\n", cmd); |
|
|
|
|
// printf("DEBUG: Received command: %s\n", cmd);
|
|
|
|
|
fflush(stdout); |
|
|
|
|
|
|
|
|
|
sp = strtok(cmd, " \t\r"); |
|
|
|
@ -143,7 +143,7 @@ void cmd_parse(char *cmd) {
|
|
|
|
|
strcpy(function, cmd_prefix); |
|
|
|
|
strncat(function, cmd, CMD_MAXSIZE); |
|
|
|
|
|
|
|
|
|
printf("DEBUG: function: %s, arg %d\n", function, arg); |
|
|
|
|
// printf("DEBUG: function: %s, arg %d\n", function, arg);
|
|
|
|
|
fflush(stdout); |
|
|
|
|
if (vm_spawn_args(function, 1, arg)) { |
|
|
|
|
/* Write an ack here, once a proper function exists */ |
|
|
|
@ -154,7 +154,7 @@ void cmd_parse(char *cmd) {
|
|
|
|
|
write(cmd_active, "ERROR\n", strlen("ERROR\n")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
printf("Received command: %s\n", cmd); |
|
|
|
|
// printf("Received command: %s\n", cmd);
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int cmdsocket_read(void) |
|
|
|
@ -202,3 +202,31 @@ int cmdsocket_read(void)
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Returns offset to restart at. If off == len, then we have finished. |
|
|
|
|
* If the return value is the same as off passed in, then the caller |
|
|
|
|
* should sleep. |
|
|
|
|
*/ |
|
|
|
|
int cmdsocket_write(char *buffer, int len, int off) |
|
|
|
|
{ |
|
|
|
|
// printf("cmdsocket_write called with %p, %d, %d\n", buffer, len, off);
|
|
|
|
|
if (!cmdsocket_initialised) |
|
|
|
|
return 0; |
|
|
|
|
if (!cmd_active) |
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
|
while (off < len) { |
|
|
|
|
int r; |
|
|
|
|
r = write(cmd_active, buffer + off, len - off); |
|
|
|
|
if (r == -1) { |
|
|
|
|
if (errno == EAGAIN) |
|
|
|
|
return off; |
|
|
|
|
warn("error writing packet"); |
|
|
|
|
} |
|
|
|
|
if (r == 0) |
|
|
|
|
return off; |
|
|
|
|
off += r; |
|
|
|
|
} |
|
|
|
|
return off; |
|
|
|
|
} |
|
|
|
|