2 * Copyright (c) 1997 Adrian Sun (asun@zoology.washington.edu)
3 * All Rights Reserved. See COPYRIGHT.
12 #include <atalk/afp.h>
16 #define MAXMESGSIZE 199
18 /* this is only used by afpd children, so it's okay. */
19 static char servermesg[MAXMESGSIZE] = "";
21 void setmessage(const char *message)
23 strncpy(servermesg, message, MAXMESGSIZE);
26 int afp_getsrvrmesg(obj, ibuf, ibuflen, rbuf, rbuflen)
29 int ibuflen, *rbuflen;
32 u_int16_t type, bitmap;
34 memcpy(&type, ibuf + 2, sizeof(type));
35 memcpy(&bitmap, ibuf + 4, sizeof(bitmap));
37 switch (ntohs(type)) {
38 case AFPMESG_LOGIN: /* login */
39 message = obj->options.loginmesg;
41 case AFPMESG_SERVER: /* server */
50 * message type: 2 bytes
52 * message length: 1 byte
53 * message: up to 199 bytes
55 memcpy(rbuf, &type, sizeof(type));
57 memcpy(rbuf, &bitmap, sizeof(bitmap));
58 rbuf += sizeof(bitmap);
59 *rbuflen = strlen(message);
60 if (*rbuflen > MAXMESGSIZE)
61 *rbuflen = MAXMESGSIZE;
63 memcpy(rbuf, message, *rbuflen);