gsasl-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CVS gsasl/lib/external


From: gsasl-commit
Subject: CVS gsasl/lib/external
Date: Tue, 21 Sep 2004 02:19:03 +0200

Update of /home/cvs/gsasl/lib/external
In directory dopio:/tmp/cvs-serv16123

Modified Files:
        server.c 
Log Message:
Support authzid.


--- /home/cvs/gsasl/lib/external/server.c       2004/09/18 16:21:59     1.1
+++ /home/cvs/gsasl/lib/external/server.c       2004/09/21 00:19:03     1.2
@@ -34,8 +34,26 @@
                             const char *input, size_t input_len,
                             char **output, size_t * output_len)
 {
-  *output = NULL;
-  *output_len = 0;
+  if (input_len > 0)
+    {
+      char *p;
+
+      p = malloc (input_len + 1);
+      if (!p)
+       return GSASL_MALLOC_ERROR;
+      memcpy (p, input, input_len);
+      p[input_len] = '\0';
+
+      /* An authorization identity is a string of zero or more Unicode
+        [Unicode] coded characters.  The NUL <U+0000> character is not
+        permitted in authorization identities. */
+      if (input_len != strlen (p))
+       return GSASL_MECHANISM_PARSE_ERROR;
+
+      gsasl_property_set (sctx, GSASL_CLIENT_AUTHZID, p);
+
+      free (p);
+    }
 
   return gsasl_callback (sctx, GSASL_SERVER_EXTERNAL);
 }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]