From 6563259c7f0d1db37e46aa0bc3b7f9d086f27dc0 Mon Sep 17 00:00:00 2001 From: Erik Alexandre Pucci <eap08@c3sl.ufpr.br> Date: Fri, 19 Mar 2010 10:11:31 -0300 Subject: [PATCH] client.c: Added more server responses checks check_version() verifies more server responses: - If versionFromServer is NULL; - If the server read an invalid version file (versionFromServer contains "Invalid version"); - And if the server could not find the version file (versionFromServer contains "Version file not found"). Signed-off-by: Erik Alexandre Pucci <eap08@c3sl.ufpr.br> Acked-by: Diego Giovane Pasqualin <dgp06@c3sl.ufpr.br> Signed-off-by: Danilo K. S. Yorinori <danilok@c3sl.ufpr.br> --- src/client.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/client.c b/src/client.c index 4a1ee5e..5016cbf 100644 --- a/src/client.c +++ b/src/client.c @@ -32,6 +32,9 @@ * 4) Client out-of-date * 5) Server returned an error * 6) Unexpected server result + * 7) Server returned an empty version string + * 8) Server returned an invalid version string + * 9) Server did not find the version file */ int main(int argc, char **argv) { @@ -204,8 +207,27 @@ void check_version(struct soap *soap, char *url, char *clientVersion) printf("Version from server: %s\n", versionFromServer); } + /* Check server version string for errors */ + if (versionFromServer == NULL) + { + fprintf(stderr, "Server returned an empty version string.\n"); + /* Empty version */ + exit(7); + } + else if (strcmp(versionFromServer, "Invalid version") == 0) + { + fprintf(stderr, "Server returned an invalid version string.\n"); + /* Invalid version */ + exit(8); + } + else if (strcmp(versionFromServer, "Version file not found") == 0) + { + fprintf(stderr, "Server did not find the version file.\n"); + /* Version file not found (server) */ + exit(9); + } /* Compare client and server versions */ - if (strcmp(clientVersion, versionFromServer) != 0) + else if (strcmp(clientVersion, versionFromServer) != 0) { fprintf(stderr, "Client version out-of-date. Update client.\n"); /* Client out-of-date version */ -- GitLab