1/*
2 * $Id: aep.c,v 1.9 2009-10-13 22:55:37 didg Exp $
3 *
4 * Copyright (c) 1990,1993 Regents of The University of Michigan.
5 * All Rights Reserved. See COPYRIGHT.
6 */
7
8#ifdef HAVE_CONFIG_H
9#include "config.h"
10#endif /* HAVE_CONFIG_H */
11
12#include <string.h>
13#include <errno.h>
14
15#include <atalk/logger.h>
16#include <sys/types.h>
17#include <sys/socket.h>
18#include <netatalk/at.h>
19#include <atalk/aep.h>
20#include <atalk/ddp.h>
21
22#include "atserv.h"
23
24int aep_packet(
25    struct atport	*ap,
26    struct sockaddr_at	*from,
27    char		*data,
28    int			len)
29{
30    char		*end;
31
32    end = data + len;
33    if ( data + 2 > end || *data != DDPTYPE_AEP ||
34	    *( data + 1 ) != AEPOP_REQUEST ) {
35	LOG(log_info, logtype_atalkd, "aep_packet malformed packet" );
36	return 1;
37    }
38
39    *( data + 1 ) = AEPOP_REPLY;
40    if ( sendto( ap->ap_fd, data, len, 0, (struct sockaddr *)from,
41	    sizeof( struct sockaddr_at )) < 0 ) {
42	LOG(log_error, logtype_atalkd, "aep sendto: %s", strerror(errno) );
43	return 1;
44    }
45
46    return 0;
47}
48