[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CVS shishi/lib
From: |
shishi-commit |
Subject: |
CVS shishi/lib |
Date: |
Fri, 17 Sep 2004 15:20:33 +0200 |
Update of /home/cvs/shishi/lib
In directory dopio:/tmp/cvs-serv22279
Modified Files:
shishi.h.in principal.c krberror.c
Log Message:
(shishi_krberror_cname):
(shishi_krberror_sname): Allocate output.
(shishi_principal_name_realm_get): Remove.
--- /home/cvs/shishi/lib/shishi.h.in 2004/09/17 13:11:22 1.248
+++ /home/cvs/shishi/lib/shishi.h.in 2004/09/17 13:20:33 1.249
@@ -649,12 +649,6 @@
extern int shishi_principal_name_get (Shishi * handle, Shishi_asn1 namenode,
const char *namefield, char *out,
size_t * outlen);
-extern int shishi_principal_name_realm_get (Shishi * handle,
- Shishi_asn1 namenode,
- const char *namefield,
- Shishi_asn1 realmnode,
- const char *realmfield,
- char *out, size_t * outlen);
extern int shishi_principal_name_set (Shishi * handle,
Shishi_asn1 namenode,
const char *namefield,
@@ -1274,7 +1268,7 @@
const char *crealm);
extern int shishi_krberror_cname (Shishi * handle,
Shishi_asn1 krberror,
- char *out, size_t * outlen);
+ char **cname, size_t *cnamelen);
extern int shishi_krberror_set_cname (Shishi * handle,
Shishi_asn1 krberror,
Shishi_name_type name_type,
@@ -1292,7 +1286,7 @@
const char *realm);
extern int shishi_krberror_sname (Shishi * handle,
Shishi_asn1 krberror,
- char *out, size_t * outlen);
+ char **sname, size_t *snamelen);
extern int shishi_krberror_remove_sname (Shishi * handle,
Shishi_asn1 krberror);
extern int shishi_krberror_set_sname (Shishi * handle,
--- /home/cvs/shishi/lib/principal.c 2004/09/17 12:43:10 1.35
+++ /home/cvs/shishi/lib/principal.c 2004/09/17 13:20:33 1.36
@@ -406,58 +406,6 @@
return SHISHI_OK;
}
-int
-shishi_principal_name_realm_get (Shishi * handle,
- Shishi_asn1 namenode,
- const char *namefield,
- Shishi_asn1 realmnode,
- const char *realmfield,
- char *out, size_t * outlen)
-{
- int res;
- size_t totlen = 0, len;
-
- /* FIXME: allocate output instead of writing inline */
-
- totlen = *outlen;
- res = shishi_principal_name_get (handle, namenode, namefield, out, &totlen);
- if (res != SHISHI_OK)
- return res;
-
- if (realmnode == NULL && realmfield)
- {
- if (totlen + strlen ("@") + strlen (realmfield) > *outlen)
- return SHISHI_TOO_SMALL_BUFFER;
-
- memcpy (out + totlen, "@", strlen ("@"));
- totlen += strlen ("@");
- memcpy (out + totlen, realmfield, strlen (realmfield));
- totlen += strlen (realmfield);
- }
- else if (realmnode != NULL)
- {
- if (totlen + strlen ("@") > *outlen)
- return SHISHI_TOO_SMALL_BUFFER;
-
- memcpy (out + totlen, "@", strlen ("@"));
- totlen += strlen ("@");
-
- len = *outlen - totlen;
- res = shishi_asn1_read_inline (handle, realmnode, realmfield,
- &out[totlen], &len);
- if (res == SHISHI_ASN1_NO_ELEMENT)
- totlen--;
- else if (res != SHISHI_OK)
- return res;
- else
- totlen += len;
- }
-
- *outlen = totlen;
-
- return SHISHI_OK;
-}
-
/**
* shishi_principal_name_set:
* @handle: shishi handle as allocated by shishi_init().
--- /home/cvs/shishi/lib/krberror.c 2004/09/10 10:00:00 1.36
+++ /home/cvs/shishi/lib/krberror.c 2004/09/17 13:20:33 1.37
@@ -298,11 +298,12 @@
return rc;
}
- tmplen = sizeof (t);
- rc = shishi_krberror_cname (handle, krberror, t, &tmplen);
+ rc = shishi_krberror_cname (handle, krberror, &tmp, &tmplen);
if (rc != SHISHI_OK &&
rc != SHISHI_ASN1_NO_ELEMENT && rc != SHISHI_ASN1_NO_VALUE)
return rc;
+ if (rc == SHISHI_OK)
+ free (tmp);
if (rc == SHISHI_ASN1_NO_VALUE || (rc == SHISHI_OK && tmplen == 0))
{
rc = shishi_krberror_remove_cname (handle, krberror);
@@ -322,10 +323,11 @@
return rc;
}
- tmplen = sizeof (t);
- rc = shishi_krberror_sname (handle, krberror, t, &tmplen);
+ rc = shishi_krberror_sname (handle, krberror, &tmp, &tmplen);
if (rc != SHISHI_OK && rc != SHISHI_ASN1_NO_VALUE)
return rc;
+ if (rc == SHISHI_OK)
+ free (tmp);
if (rc == SHISHI_ASN1_NO_VALUE || tmplen == 0)
{
rc = shishi_krberror_remove_sname (handle, krberror);
@@ -472,9 +474,10 @@
* shishi_krberror_cname:
* @handle: shishi handle as allocated by shishi_init().
* @krberror: krberror as allocated by shishi_krberror().
- * @out: output buffer that holds client name in KRB-ERROR.
- * @outlen: on input, maximum size of output buffer,
- * on output, actual size of output buffer.
+ * @cname: pointer to newly allocated zero terminated string containing
+ * principal name. May be %NULL (to only populate @clientlen).
+ * @cnamelen: pointer to length of @cname on output, excluding terminating
+ * zero. May be %NULL (to only populate @client).
*
* Return client principal field in KRB-ERROR.
*
@@ -482,11 +485,12 @@
**/
int
shishi_krberror_cname (Shishi * handle,
- Shishi_asn1 krberror, char *out, size_t * outlen)
+ Shishi_asn1 krberror,
+ char **cname, size_t * cnamelen)
{
int rc;
- rc = shishi_principal_name_get (handle, krberror, "cname", out, outlen);
+ rc = shishi_principal_name (handle, krberror, "cname", cname, cnamelen);
if (rc != SHISHI_OK)
return rc;
@@ -609,9 +613,10 @@
* shishi_krberror_sname:
* @handle: shishi handle as allocated by shishi_init().
* @krberror: krberror as allocated by shishi_krberror().
- * @out: output buffer that holds server name in KRB-ERROR.
- * @outlen: on input, maximum size of output buffer,
- * on output, actual size of output buffer.
+ * @sname: pointer to newly allocated zero terminated string containing
+ * server name. May be %NULL (to only populate @clientlen).
+ * @snamelen: pointer to length of @sname on output, excluding terminating
+ * zero. May be %NULL (to only populate @client).
*
* Return server principal field in KRB-ERROR.
*
@@ -619,11 +624,12 @@
**/
int
shishi_krberror_sname (Shishi * handle,
- Shishi_asn1 krberror, char *out, size_t * outlen)
+ Shishi_asn1 krberror,
+ char **sname, size_t *snamelen)
{
int rc;
- rc = shishi_principal_name_get (handle, krberror, "sname", out, outlen);
+ rc = shishi_principal_name (handle, krberror, "sname", sname, snamelen);
if (rc != SHISHI_OK)
return rc;
- CVS shishi/lib, (continued)
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib,
shishi-commit <=
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17
- CVS shishi/lib, shishi-commit, 2004/09/17