move xdr function to kadmin/rpc.c
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24312 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		@@ -190,6 +190,22 @@ krb5_storage_set_eof_code(krb5_storage *sp, int code)
 | 
				
			|||||||
    sp->eof_code = code;
 | 
					    sp->eof_code = code;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Get the return code that will be used when end of storage is reached.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param sp the storage
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @return storage error code
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @ingroup krb5_storage
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int KRB5_LIB_FUNCTION
 | 
				
			||||||
 | 
					krb5_storage_get_eof_code(krb5_storage *sp)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    sp->eof_code = code;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
krb5_ssize_t KRB5_LIB_FUNCTION
 | 
					krb5_ssize_t KRB5_LIB_FUNCTION
 | 
				
			||||||
_krb5_put_int(void *buffer, unsigned long value, size_t size)
 | 
					_krb5_put_int(void *buffer, unsigned long value, size_t size)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -541,39 +557,6 @@ krb5_store_data(krb5_storage *sp,
 | 
				
			|||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Store a XDR opaque from the storage (data padded up a 4 byte
 | 
					 | 
				
			||||||
 * aligned offset).
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @param sp the storage buffer to write to
 | 
					 | 
				
			||||||
 * @param data the buffer to store.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @return 0 on success, a Kerberos 5 error code on failure.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @ingroup krb5_storage
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
krb5_error_code KRB5_LIB_FUNCTION
 | 
					 | 
				
			||||||
krb5_store_data_xdr(krb5_storage *sp,
 | 
					 | 
				
			||||||
		    krb5_data data)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    krb5_error_code ret;
 | 
					 | 
				
			||||||
    size_t res;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ret = krb5_store_data(sp, data);
 | 
					 | 
				
			||||||
    if (ret)
 | 
					 | 
				
			||||||
	return ret;
 | 
					 | 
				
			||||||
    res = 4 - (data.length % 4);
 | 
					 | 
				
			||||||
    if (res != 4) {
 | 
					 | 
				
			||||||
	static const char zero[4] = { 0, 0, 0, 0 };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	ret = sp->store(sp, zero, res);
 | 
					 | 
				
			||||||
	if(ret != res)
 | 
					 | 
				
			||||||
	    return (ret < 0)? errno : sp->eof_code;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Parse a data from the storage.
 | 
					 * Parse a data from the storage.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
@@ -606,41 +589,6 @@ krb5_ret_data(krb5_storage *sp,
 | 
				
			|||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Parse a XDR opaque from the storage (data padded up a 4 byte
 | 
					 | 
				
			||||||
 * aligned offset).
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @param sp the storage buffer to read from
 | 
					 | 
				
			||||||
 * @param data the buffer to parse.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @return 0 on success, a Kerberos 5 error code on failure.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @ingroup krb5_storage
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
krb5_error_code KRB5_LIB_FUNCTION
 | 
					 | 
				
			||||||
krb5_ret_data_xdr(krb5_storage *sp,
 | 
					 | 
				
			||||||
		  krb5_data *data)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    krb5_error_code ret;
 | 
					 | 
				
			||||||
    ret = krb5_ret_data(sp, data);
 | 
					 | 
				
			||||||
    if (ret)
 | 
					 | 
				
			||||||
	return ret;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if ((data->length % 4) != 0) {
 | 
					 | 
				
			||||||
	char buf[4];
 | 
					 | 
				
			||||||
	size_t res;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	res = 4 - (data->length % 4);
 | 
					 | 
				
			||||||
	if (res != 4) {
 | 
					 | 
				
			||||||
	    ret = sp->fetch(sp, buf, res);
 | 
					 | 
				
			||||||
	    if(ret != res)
 | 
					 | 
				
			||||||
		return (ret < 0)? errno : sp->eof_code;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
krb5_error_code KRB5_LIB_FUNCTION
 | 
					krb5_error_code KRB5_LIB_FUNCTION
 | 
				
			||||||
krb5_store_string(krb5_storage *sp, const char *s)
 | 
					krb5_store_string(krb5_storage *sp, const char *s)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user