DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T p

⟦20e87998f⟧ TextFile

    Length: 1521 (0x5f1)
    Types: TextFile
    Names: »psap2dse.c«

Derivation

└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
    └─⟦041b9c0f8⟧ »EurOpenD22/isode/pepsy.system-6.0.Z« 
        └─⟦d49939f05⟧ 
            └─⟦6a28ec38e⟧ »pepsy.tar« 
                └─⟦this⟧ »acsap/psap2dse.c« 

TextFile

/* Copyright 1989 CSIRO Division of Information Technology 
 * May be given away but not sold for profit - See Copyright file for details
 */
/*
 * Routine to convert a PSAPaddr structure into type_DSE_PSAPaddr structure
 * which pepsy generated encoder accepts
 */
#include <stdio.h>
#include "psap.h"
#include "isoaddrs.h"
#include "tailor.h"
#include "DSE-types.h"

#define advise	PY_advise

#define	new(x)		(x *) malloc(sizeof (x))

struct type_DSE_PSAPaddr *
psap2dse(psap)
struct PSAPaddr	*psap;
{
    struct type_DSE_PSAPaddr *dse;
    register struct NSAPaddr *na, *ca;
    struct member_DSE_0 *nDSE, *oDSE;
    int	n;

    if ((dse = new(struct type_DSE_PSAPaddr)) == NULL)
	return (NULL);

    if (psap->pa_selectlen > 0)
	dse->pSelector = str2qb(psap->pa_selector, psap->pa_selectlen, 1);
    
    if (psap->pa_addr.sa_selectlen > 0)
	dse->sSelector = str2qb(psap->pa_addr.sa_selector,
	    psap->pa_addr.sa_selectlen, 1);
    
    if (psap->pa_addr.sa_addr.ta_selectlen > 0)
	dse->tSelector = str2qb(psap->pa_addr.sa_addr.ta_selector,
	    psap->pa_addr.sa_addr.ta_selectlen, 1);

    na = psap->pa_addr.sa_addr.ta_addrs;
    oDSE = NULL;
    for (n = psap->pa_addr.sa_addr.ta_naddr; n > 0; na++, n--) {
	if ((nDSE = new(struct member_DSE_0)) == NULL) 
		return (NULL);

	if ((ca = na2norm (na)) == NULLNA) {
	    advise (NULLCP, "unable to normalize address"); /* ?? */
	    return NULL;
	}

	nDSE->member_DSE_1 = str2qb(ca->na_address, ca->na_addrlen, 1);
	nDSE->next = oDSE;
    }
    
    return (dse);
}