agent: unknown flags on ssh signing requests cause an error.
[gnupg.git] / g13 / sh-cmd.c
index 6a4a7d8..791e3b7 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -27,7 +27,8 @@
 
 #include "g13-syshelp.h"
 #include <assuan.h>
-#include "i18n.h"
+#include "../common/i18n.h"
+#include "../common/asshelp.h"
 #include "keyblob.h"
 
 
@@ -35,7 +36,7 @@
    the CTRL object of each connection.  */
 struct server_local_s
 {
-  /* The Assuan contect we are working on.  */
+  /* The Assuan context we are working on.  */
   assuan_context_t assuan_ctx;
 
   /* The malloced name of the device.  */
@@ -162,7 +163,7 @@ static const char hlp_finddevice[] =
   "\n"
   "Find the device matching NAME.  NAME be any identifier from\n"
   "g13tab permissible for the user.  The corresponding block\n"
-  "device is retruned using a status line.";
+  "device is returned using a status line.";
 static gpg_error_t
 cmd_finddevice (assuan_context_t ctx, char *line)
 {
@@ -904,34 +905,13 @@ sh_encrypt_keyblob (ctrl_t ctrl, const void *keyblob, size_t keybloblen,
 gpg_error_t
 g13_status (ctrl_t ctrl, int no, ...)
 {
-  gpg_error_t err = 0;
+  gpg_error_t err;
   va_list arg_ptr;
-  const char *text;
 
   va_start (arg_ptr, no);
 
-  if (1)
-    {
-      assuan_context_t ctx = ctrl->server_local->assuan_ctx;
-      char buf[950], *p;
-      size_t n;
-
-      p = buf;
-      n = 0;
-      while ( (text = va_arg (arg_ptr, const char *)) )
-        {
-          if (n)
-            {
-              *p++ = ' ';
-              n++;
-            }
-          for ( ; *text && n < DIM (buf)-2; n++)
-            *p++ = *text++;
-        }
-      *p = 0;
-      err = assuan_write_status (ctx, get_status_string (no), buf);
-    }
-
+  err = vprint_assuan_status_strings (ctrl->server_local->assuan_ctx,
+                                      get_status_string (no), arg_ptr);
   va_end (arg_ptr);
   return err;
 }