int i2d_DIST_POINT_NAME(DIST_POINT_NAME *a, unsigned char **pp)
{
	M_ASN1_I2D_vars(a);

	if(a->fullname) {
		M_ASN1_I2D_len_IMP_opt (a->fullname, i2d_GENERAL_NAMES);
	} else {
		M_ASN1_I2D_len_IMP_SET_opt_type(X509_NAME_ENTRY,
				a->relativename, i2d_X509_NAME_ENTRY, 1);
	}

	/* Don't want a SEQUENCE so... */
	if(pp == NULL) return ret;
	p = *pp;

	if(a->fullname) {
		M_ASN1_I2D_put_IMP_opt (a->fullname, i2d_GENERAL_NAMES, 0);
	} else {
		M_ASN1_I2D_put_IMP_SET_opt_type(X509_NAME_ENTRY,
				a->relativename, i2d_X509_NAME_ENTRY, 1);
	}
	M_ASN1_I2D_finish();
}