* protect-tool.c: New option --enable-status-msg.
[gnupg.git] / sm / server.c
index 54b220d..e73efe4 100644 (file)
@@ -172,7 +172,8 @@ option_handler (ASSUAN_CONTEXT ctx, const char *key, const char *value)
     }
   else if (!strcmp (key, "with-validation"))
     {
-      ctrl->with_validation = !!*value;
+      int i = *value? atoi (value) : 0;
+      ctrl->with_validation = i;
     }
   else
     return ASSUAN_Invalid_Option;
@@ -650,6 +651,7 @@ do_listkeys (ASSUAN_CONTEXT ctx, char *line, int mode)
   char *p;
   STRLIST list, sl;
   unsigned int listmode;
+  gpg_error_t err;
 
   if (!fp)
     return set_error (General_Error, "no data stream");
@@ -683,9 +685,9 @@ do_listkeys (ASSUAN_CONTEXT ctx, char *line, int mode)
     listmode |= (1<<6);
   if (ctrl->server_local->list_external)
     listmode |= (1<<7);
-  gpgsm_list_keys (assuan_get_pointer (ctx), list, fp, listmode);
+  err = gpgsm_list_keys (assuan_get_pointer (ctx), list, fp, listmode);
   free_strlist (list);
-  return 0;
+  return map_to_assuan_status (err);
 }
 
 static int 
@@ -865,6 +867,7 @@ get_status_string ( int no )
     case STATUS_ENTER  : s = "ENTER"; break;
     case STATUS_LEAVE  : s = "LEAVE"; break;
     case STATUS_ABORT  : s = "ABORT"; break;
+    case STATUS_NEWSIG : s = "NEWSIG"; break;
     case STATUS_GOODSIG: s = "GOODSIG"; break;
     case STATUS_SIGEXPIRED: s = "SIGEXPIRED"; break;
     case STATUS_KEYREVOKED: s = "KEYREVOKED"; break;