Kaydet (Commit) b719b410 authored tarafından Gürer Özen's avatar Gürer Özen

lalalal

üst e6a4fe7f
......@@ -112,7 +112,7 @@ job_start_register(int node_no, const char *app, const char *csl_file)
free(cmd);
return -1;
}
proc_send(p, CMD_CALL, cmd, sz);
proc_send(p, CMD_REGISTER, cmd, sz);
free(cmd);
return 0;
}
......
......@@ -22,7 +22,7 @@ int
main(int argc, char *argv[])
{
struct ProcChild *p, *rpc;
// char *data;
struct reg_cmd *data;
int cmd;
int size;
......@@ -36,40 +36,17 @@ main(int argc, char *argv[])
while (1) {
if (1 == proc_listen(&p, &cmd, &size, 1)) {
printf("Child %d said %d, %d.\n", p->pid, cmd, size);
/* if (p == rpc) {
size = p->cmd.data_size - 4;
proc_get_data(p, &data);
p = proc_fork(job_start);
p->data = ((void **)data)[0];
proc_send_cmd(p, CMD_CALL, size);
proc_send_data(p, data + 4, size);
free(data);
} else {
switch(p->cmd.cmd) {
case CMD_CALL:
// another call from object
size = p->cmd.data_size;
proc_get_data(p, &data);
p = proc_fork(job_start);
p->data = NULL;
proc_send_cmd(p, CMD_CALL, size);
proc_send_data(p, data, size);
free(data);
break;
case CMD_RESULT:
if (p->data) {
char *b2;
proc_get_data(p, &data);
b2 = malloc(4 + p->cmd.data_size);
memcpy(b2 + 4, data, p->cmd.data_size);
*(unsigned int *)&b2[0] = (unsigned int) p->data;
proc_send_cmd(rpc, CMD_RESULT, p->cmd.data_size + 4);
proc_send_data(rpc, b2, 4 + p->cmd.data_size);
}
break;
}
} */
switch (cmd) {
case CMD_REGISTER:
proc_recv(p, &data, size);
printf("Register(%d, %s, %s)\n", data->node, data->data, &data->data[0] + data->app_len + 1);
job_start_register(data->node, data->data, &data->data[0] + data->app_len + 1);
break;
case CMD_REMOVE:
break;
case CMD_CALL:
break;
}
}
// puts("tick");
}
......
......@@ -96,6 +96,8 @@ rem_conn(struct connection *c)
static int
parse_rpc(struct connection *c)
{
struct reg_cmd *cmd;
size_t size;
char *t, *s;
int no;
......@@ -113,7 +115,14 @@ printf("RPC [%s]\n", c->buffer);
s = strchr(t, ' ');
if (!s) return -1;
*s = '\0';
printf("Register node %d app %s\n", no, t);
++s;
size = sizeof(struct reg_cmd) + strlen(t) + strlen(s);
cmd = malloc(size);
cmd->node = no;
cmd->app_len = strlen(t);
strcpy(&cmd->data[0], t);
strcpy(&cmd->data[0] + strlen(t) + 1, s);
proc_send(TO_PARENT, CMD_REGISTER, cmd, size);
return 0;
case '-':
case '$':
......@@ -121,9 +130,6 @@ printf("RPC [%s]\n", c->buffer);
return -1;
}
return 0;
// proc_send_cmd(TO_PARENT, CMD_CALL, 4 + len + 1);
// *(unsigned int *)&buffer[0] = (unsigned int) c;
// proc_send_data(TO_PARENT, buffer, 4 + len + 1);
}
static int
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment