
/*
 *  DAccept.C
 */

#include "lib.h"

PORT *
DAccept(lisport)
PORT *lisport;
{
    IOSTD *ior;
    CHANN *chan = NULL;

    while (!chan && (ior = (IOSTD *)GetMsg(lisport))) {
	switch(ior->io_Command) {
	case DNCMD_SOPEN:
	    chan = (CHANN *)MakeChannel(ior, NULL);
	    break;
	default:
	    ior->io_Error = 1;
	    break;
	}
	ReplyMsg((MSG *)ior);
    }
    if (lisport->mp_MsgList.lh_Head != (NODE *)&lisport->mp_MsgList.lh_Tail)
	SetSignal(1 << lisport->mp_SigBit, 1 << lisport->mp_SigBit);
    return((PORT *)chan);
}

