#include "unp.h"
void
loop(int sockfd, socklen_t salen)
{
char buf[MAXLINE+1];
socklen_t len;
ssize_t n;
struct sockaddr *sa;
struct sap_packet {
uint32_t sap_header;
uint32_t sap_src;
char sap_data[1];
} *sapptr;
sa = Malloc(salen);
for ( ; ; ) {
len = salen;
n = Recvfrom(sockfd, buf, MAXLINE, 0, sa, &len);
buf[n] = 0; /* null terminate */
sapptr = (struct sap_packet *) buf;
if ( (n -= 2 * sizeof(uint32_t)) <= 0)
err_quit("n = %d", n);
printf("From %s\n%s\n", Sock_ntop(sa, len), sapptr->sap_data);
}
}
syntax highlighted by Code2HTML, v. 0.9.1