Browse Source

issuer join process fix

master
Michael Preisach 4 years ago
parent
commit
537f545f20
  1. 25
      issuer.c
  2. 2
      server.c

25
issuer.c

@ -52,8 +52,10 @@ int process_issuer(char *buffer) {
case JOINPROCEED:
bzero(buffer, MAX_BUFSIZE);
issuer.state = READY;
ret = 1;
break;
default:
printf("nothing to confirm\n");
bzero(buffer, MAX_BUFSIZE);
strncpy(buffer, "ERR\n", 4);
break;
@ -69,7 +71,20 @@ int process_issuer(char *buffer) {
printf("ignoring command\n");
break;
}
} else if (0 == strncasecmp("RESET", buffer, 4)) {
} else if (0 == strncasecmp("ABORT", buffer, 5)) {
switch (issuer.state) {
case JOINSTART:
case JOINPROCEED:
printf("aborting join\n");
issuer.state = READY;
break;
default:
printf("nothing to abort\n");
bzero(buffer, MAX_BUFSIZE);
strncpy(buffer, "ERR\n", 4);
break;
}
} else if (0 == strncasecmp("RESET", buffer, 5)) {
switch (issuer.state) {
case READY:
case JOINSTART:
@ -128,13 +143,11 @@ int process_issuer(char *buffer) {
break;
}
} else if (0 == strncasecmp("EXIT", buffer, 4)) {
printf("exiting...\n");
printf("closing client session\n");
bzero(buffer, MAX_BUFSIZE);
strncpy(buffer, "OK\n", 3);
ret = 1;
} else if (0 == strncasecmp("SHUTDOWN", buffer, 8)) {
bzero(buffer, MAX_BUFSIZE);
strncpy(buffer, "OK\n", 3);
ret = 2;
} else {
printf("unknown command\n");
@ -143,7 +156,9 @@ int process_issuer(char *buffer) {
ret = 0;
}
printf("< ISSUER: %s\n", buffer);
if(0 == ret) {
printf("< ISSUER: %s\n", buffer);
}
return ret;
}

2
server.c

@ -64,7 +64,7 @@ int server_start(conn_handler handler, int16_t port) {
ret = handler(buffer);
}
if (0 <= ret && 0 >= write(clientfd, buffer, strlen(buffer))) {
if (0 == ret && 0 >= write(clientfd, buffer, strlen(buffer))) {
printf("server_start: cannot write to socket\n");
ret = 1;
}

Loading…
Cancel
Save