|
|
1.1 root 1: /*
2: * $Source: /usr/src/kerberosIV/krb/RCS/mk_err.c,v $
3: * $Author: kfall $
4: *
5: * Copyright 1985, 1986, 1987, 1988 by the Massachusetts Institute
6: * of Technology.
7: *
8: * For copying and distribution information, please see the file
9: * <mit-copyright.h>.
10: */
11:
12: #ifndef lint
13: static char *rcsid_mk_err_c =
14: "$Header: /usr/src/kerberosIV/krb/RCS/mk_err.c,v 4.5 90/06/25 20:56:53 kfall Exp $";
15: #endif /* lint */
16:
17: #include <mit-copyright.h>
18: #include <sys/types.h>
19: #include <des.h>
20: #include <krb.h>
21: #include <prot.h>
22: #include <strings.h>
23:
24: /*
25: * This routine creates a general purpose error reply message. It
26: * doesn't use KTEXT because application protocol may have long
27: * messages, and may want this part of buffer contiguous to other
28: * stuff.
29: *
30: * The error reply is built in "p", using the error code "e" and
31: * error text "e_string" given. The length of the error reply is
32: * returned.
33: *
34: * The error reply is in the following format:
35: *
36: * unsigned char KRB_PROT_VERSION protocol version no.
37: * unsigned char AUTH_MSG_APPL_ERR message type
38: * (least significant
39: * bit of above) HOST_BYTE_ORDER local byte order
40: * 4 bytes e given error code
41: * string e_string given error text
42: */
43:
44: long krb_mk_err(p,e,e_string)
45: u_char *p; /* Where to build error packet */
46: long e; /* Error code */
47: char *e_string; /* Text of error */
48: {
49: u_char *start;
50:
51: start = p;
52:
53: /* Create fixed part of packet */
54: *p++ = (unsigned char) KRB_PROT_VERSION;
55: *p = (unsigned char) AUTH_MSG_APPL_ERR;
56: *p++ |= HOST_BYTE_ORDER;
57:
58: /* Add the basic info */
59: bcopy((char *)&e,(char *)p,4); /* err code */
60: p += sizeof(e);
61: (void) strcpy((char *)p,e_string); /* err text */
62: p += strlen(e_string);
63:
64: /* And return the length */
65: return p-start;
66: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.