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