[Opensrf-commits] r1057 - trunk/src/srfsh
svn at svn.open-ils.org
svn at svn.open-ils.org
Mon Jul 23 13:45:29 EDT 2007
Author: miker
Date: 2007-07-23 13:44:46 -0400 (Mon, 23 Jul 2007)
New Revision: 1057
Modified:
trunk/src/srfsh/srfsh.c
Log:
Patch from Scott McKellar providing:
1. In handle_print(), I added the ability to display the value of
raw_print. If we can display pretty_print, we should be able to
display raw_print.
2. In a couple of places we display the value of login_session.
However if we aren't logged in, we end up passing NULL to printf(),
thereby invoking undefined behavior. Apparently glibc responds by
printing "(null)". I contrived explicitly to print "(none)" rather
than rely on glibc.
3. Since login_session is assigned from strdup() if not NULL, I added
a free() for it in a couple of places: one at the end of main(), and
one just before the assignment from strdup().
Modified: trunk/src/srfsh/srfsh.c
===================================================================
--- trunk/src/srfsh/srfsh.c 2007-07-22 22:06:49 UTC (rev 1056)
+++ trunk/src/srfsh/srfsh.c 2007-07-23 17:44:46 UTC (rev 1057)
@@ -182,6 +182,7 @@
write_history(history_file);
free(request);
+ free(login_session);
osrf_system_shutdown();
return 0;
@@ -394,12 +395,15 @@
jsonObjectGetKey(jsonObjectGetKey(x,"payload"), "authtoken"));
authtime = jsonObjectGetNumber(
jsonObjectGetKey(jsonObjectGetKey(x,"payload"), "authtime"));
- if(authtoken) login_session = strdup(authtoken);
- else login_session = NULL;
+ if(authtoken) {
+ free(login_session);
+ login_session = strdup(authtoken);
+ } else login_session = NULL;
}
else login_session = NULL;
- printf("Login Session: %s. Session timeout: %f\n", login_session, authtime );
+ printf("Login Session: %s. Session timeout: %f\n",
+ (login_session ? login_session : "(none)"), authtime );
return 1;
@@ -463,8 +467,19 @@
}
}
+ if(!strcmp(variable,"raw_print")) {
+ if(raw_print) {
+ printf("raw_print = true\n");
+ return 1;
+ } else {
+ printf("raw_print = false\n");
+ return 1;
+ }
+ }
+
if(!strcmp(variable,"login")) {
- printf("login session = %s\n", login_session );
+ printf("login session = %s\n",
+ login_session ? login_session : "(none)" );
return 1;
}
More information about the opensrf-commits
mailing list