]> git.lizzy.rs Git - plan9front.git/blob - sys/src/libauthsrv/convM2TR.c
d6491705bcd6e949c260d215fbc9af8663420506
[plan9front.git] / sys / src / libauthsrv / convM2TR.c
1 #include <u.h>
2 #include <libc.h>
3 #include <authsrv.h>
4
5 #define CHAR(x)         f->x = *p++
6 #define SHORT(x)        f->x = (p[0] | (p[1]<<8)); p += 2
7 #define VLONG(q)        q = (p[0] | (p[1]<<8) | (p[2]<<16) | (p[3]<<24)); p += 4
8 #define LONG(x)         VLONG(f->x)
9 #define STRING(x,n)     memmove(f->x, p, n); p += n
10
11 int
12 convM2TR(char *ap, int n, Ticketreq *f)
13 {
14         uchar *p;
15
16         memset(f, 0, sizeof(Ticketreq));
17         if(n < TICKREQLEN)
18                 return -TICKREQLEN;
19
20         p = (uchar*)ap;
21         CHAR(type);
22         STRING(authid, ANAMELEN);
23         f->authid[ANAMELEN-1] = 0;
24         STRING(authdom, DOMLEN);
25         f->authdom[DOMLEN-1] = 0;
26         STRING(chal, CHALLEN);
27         STRING(hostid, ANAMELEN);
28         f->hostid[ANAMELEN-1] = 0;
29         STRING(uid, ANAMELEN);
30         f->uid[ANAMELEN-1] = 0;
31         n = p - (uchar*)ap;
32         return n;
33 }