-/*
- * $Id: ad_date.c,v 1.3 2001-06-29 14:14:46 rufustfirefly Exp $
- */
-
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif /* HAVE_CONFIG_H */
-#include <stdio.h>
-#include <stdlib.h>
#include <string.h>
-
+#include <arpa/inet.h>
#include <atalk/adouble.h>
-int ad_setdate(const struct adouble *ad,
- unsigned int dateoff, u_int32_t date)
+int ad_setdate(struct adouble *ad,
+ unsigned int dateoff, uint32_t date)
{
- int xlate = (dateoff & AD_DATE_UNIX);
+ int xlate = (dateoff & AD_DATE_UNIX);
- dateoff &= AD_DATE_MASK;
- if (xlate)
- date = AD_DATE_FROM_UNIX(date);
+ dateoff &= AD_DATE_MASK;
+ if (xlate)
+ date = AD_DATE_FROM_UNIX(date);
- if (ad->ad_version == AD_VERSION1) {
- if (dateoff > AD_DATE_BACKUP)
- return -1;
- memcpy(ad_entry(ad, ADEID_FILEI) + dateoff, &date, sizeof(date));
+ if (!ad_getentryoff(ad, ADEID_FILEDATESI))
+ return -1;
- } else if (ad->ad_version == AD_VERSION2) {
if (dateoff > AD_DATE_ACCESS)
- return -1;
+ return -1;
memcpy(ad_entry(ad, ADEID_FILEDATESI) + dateoff, &date, sizeof(date));
- } else
- return -1;
-
- return 0;
+ return 0;
}
int ad_getdate(const struct adouble *ad,
- unsigned int dateoff, u_int32_t *date)
+ unsigned int dateoff, uint32_t *date)
{
- int xlate = (dateoff & AD_DATE_UNIX);
+ int xlate = (dateoff & AD_DATE_UNIX);
- dateoff &= AD_DATE_MASK;
- if (ad->ad_version == AD_VERSION1) {
- if (dateoff > AD_DATE_BACKUP)
- return -1;
- memcpy(date, ad_entry(ad, ADEID_FILEI) + dateoff, sizeof(u_int32_t));
+ dateoff &= AD_DATE_MASK;
+ if (!ad_getentryoff(ad, ADEID_FILEDATESI))
+ return -1;
- } else if (ad->ad_version == AD_VERSION2) {
if (dateoff > AD_DATE_ACCESS)
- return -1;
- memcpy(date, ad_entry(ad, ADEID_FILEDATESI) + dateoff, sizeof(u_int32_t));
-
- } else
- return -1;
+ return -1;
+ memcpy(date, ad_entry(ad, ADEID_FILEDATESI) + dateoff, sizeof(uint32_t));
- if (xlate)
- *date = AD_DATE_TO_UNIX(*date);
- return 0;
+ if (xlate)
+ *date = AD_DATE_TO_UNIX(*date);
+ return 0;
}