]> arthur.barton.de Git - netatalk.git/blob - etc/atalkd/aep.c
1b681548fbd455c9887fabcbe9a00f3327e2d434
[netatalk.git] / etc / atalkd / aep.c
1 /*
2  * $Id: aep.c,v 1.5 2001-12-10 20:16:54 srittau 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 <sys/syslog.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
24 int aep_packet( ap, from, data, len )
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         syslog( LOG_INFO, "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         syslog( LOG_ERR, "aep sendto: %s", strerror(errno) );
43         return 1;
44     }
45
46     return 0;
47 }