head     1.1;
branch   1.1.1;
access   ;
symbols  pro:1.1.1.1 start:1.1.1;
locks    ; strict;
comment  @# @;


1.1
date     2008.10.01.02.27.54;  author kaurikim;  state Exp;
branches 1.1.1.1;
next     ;

1.1.1.1
date     2008.10.01.02.27.54;  author kaurikim;  state Exp;
branches ;
next     ;


desc
@@



1.1
log
@Initial revision
@
text
@include ../Make.defines

PROGS =	udpcli01 udpcli02 udpcli03 udpcli04 udpcli05 udpcli06

all:	${PROGS}

# Version in book.
udpcli01:	udpcli01.o dgclibcast1.o
		${CC} ${CFLAGS} -o $@@ udpcli01.o dgclibcast1.o ${LIBS}

# Incorrect version with alarm(1) and sleep(1) to tickle race condition.
udpcli02:	udpcli02.o dgclibcast2.o
		${CC} ${CFLAGS} -o $@@ udpcli02.o dgclibcast2.o ${LIBS}

# Incorrect version that blocks signals, but still has a race condition.
udpcli03:	udpcli03.o dgclibcast3.o
		${CC} ${CFLAGS} -o $@@ udpcli03.o dgclibcast3.o ${LIBS}

# Correct version using pselect().
udpcli04:	udpcli04.o dgclibcast4.o
		${CC} ${CFLAGS} -o $@@ udpcli04.o dgclibcast4.o ${LIBS}

# Correct version using sigsetjmp()/siglongjmp().
udpcli05:	udpcli05.o dgclibcast5.o
		${CC} ${CFLAGS} -o $@@ udpcli05.o dgclibcast5.o ${LIBS}

# Correct version using a pipe from signal handler to select().
udpcli06:	udpcli06.o dgclibcast6.o
		${CC} ${CFLAGS} -o $@@ udpcli06.o dgclibcast6.o ${LIBS}

clean:
		rm -f ${PROGS} ${CLEANFILES}
@


1.1.1.1
log
@unix network programming
@
text
@@
