Browse Source

protocol fixes

master
Michael Preisach 4 years ago
parent
commit
bf7835a409
  1. 27
      issuer.c

27
issuer.c

@ -64,13 +64,15 @@ int process_issuer(char *buffer) {
issuer.state = READY; issuer.state = READY;
break; break;
default: default:
bzero(buffer, MAX_BUFSIZE); issuer.state = READY;
strncpy(buffer, "ERR\n", 4); printf("ignoring command\n");
break; break;
} }
} else if (0 == strncasecmp("RESET", buffer, 4)) { } else if (0 == strncasecmp("RESET", buffer, 4)) {
switch (issuer.state) { switch (issuer.state) {
case READY: case READY:
case JOINSTART:
case JOINPROCEED:
printf("generate new issuer identity\n"); printf("generate new issuer identity\n");
if (0 == issuer_setup(buffer)) { if (0 == issuer_setup(buffer)) {
issuer.state = READY; issuer.state = READY;
@ -78,11 +80,9 @@ int process_issuer(char *buffer) {
printf("issuer setup failed\n"); printf("issuer setup failed\n");
return 2; return 2;
} }
if(0 == issuer_joinstart(buffer)) {
issuer.state = JOINSTART;
}
break; break;
default: default:
printf("Reset not possible\n");
bzero(buffer, MAX_BUFSIZE); bzero(buffer, MAX_BUFSIZE);
strncpy(buffer, "ERR\n", 4); strncpy(buffer, "ERR\n", 4);
break; break;
@ -95,7 +95,7 @@ int process_issuer(char *buffer) {
} }
break; break;
default: default:
issuer.state = READY; printf("Issuer not ready for join\n");
bzero(buffer, MAX_BUFSIZE); bzero(buffer, MAX_BUFSIZE);
strncpy(buffer, "ERR\n", 4); strncpy(buffer, "ERR\n", 4);
break; break;
@ -104,11 +104,11 @@ int process_issuer(char *buffer) {
switch (issuer.state) { switch (issuer.state) {
case JOINSTART: case JOINSTART:
if(0 == issuer_joinproceed(buffer)) { if(0 == issuer_joinproceed(buffer)) {
issuer.state = READY; issuer.state = JOINPROCEED;
} }
break; break;
default: default:
issuer.state = READY; printf("Issuer not ready for append\n");
bzero(buffer, MAX_BUFSIZE); bzero(buffer, MAX_BUFSIZE);
strncpy(buffer, "ERR\n", 4); strncpy(buffer, "ERR\n", 4);
break; break;
@ -116,16 +116,18 @@ int process_issuer(char *buffer) {
} else if (0 == strncasecmp("PUBLISH", buffer, 7)) { } else if (0 == strncasecmp("PUBLISH", buffer, 7)) {
switch (issuer.state) { switch (issuer.state) {
case READY: case READY:
case JOINPROCEED:
case JOINSTART:
issuer_publish(buffer); issuer_publish(buffer);
issuer.state = READY;
break; break;
default: default:
printf("There are no keys to publish\n");
bzero(buffer, MAX_BUFSIZE); bzero(buffer, MAX_BUFSIZE);
strncpy(buffer, "ERR\n", 4); strncpy(buffer, "ERR\n", 4);
break; break;
} }
} else if (0 == strncasecmp("EXIT", buffer, 4)) { } else if (0 == strncasecmp("EXIT", buffer, 4)) {
printf("exit()\n"); printf("exiting...\n");
bzero(buffer, MAX_BUFSIZE); bzero(buffer, MAX_BUFSIZE);
strncpy(buffer, "OK\n", 3); strncpy(buffer, "OK\n", 3);
ret = 1; ret = 1;
@ -134,14 +136,13 @@ int process_issuer(char *buffer) {
strncpy(buffer, "OK\n", 3); strncpy(buffer, "OK\n", 3);
ret = 2; ret = 2;
} else { } else {
printf("error()\n"); printf("unknown command\n");
bzero(buffer, MAX_BUFSIZE); bzero(buffer, MAX_BUFSIZE);
strncpy(buffer, "ERR\n", 4); strncpy(buffer, "ERR\n", 4);
issuer.state = READY;
ret = 0; ret = 0;
} }
printf("< ISSUER: %s", buffer); printf("< ISSUER: %s\n", buffer);
return ret; return ret;
} }

Loading…
Cancel
Save