]> andersk Git - moira.git/blob - reg_svr/reg_svr.h
abb75cccbcff2b288530aa24c9ecacf378d4a0ec
[moira.git] / reg_svr / reg_svr.h
1 /*
2  *      $Source$
3  *      $Author$
4  *      $Header$
5  *
6  *      Copyright (C) 1987 by the Massachusetts Institute of Technology
7  *
8  *      Server for user registration with MOIRA and Kerberos.
9  *
10  *      This file contains all the information needed by all source
11  *      files for the user registration server.
12  */
13
14 #include <sys/types.h>
15 #include <ctype.h>
16 #include "ureg_err.h"
17 #include "ureg_proto.h"
18
19 #ifndef TRUE
20 #define TRUE 1
21 #endif
22
23 #ifndef FALSE
24 #define FALSE 0
25 #endif
26
27 #define FAIL_INST "reg_svr"     /* Instance for failure zephyrgrams */
28
29 #define CUR_UREG_VERSION 1      /* Version for the register protocol */
30 #define SUCCESS 0               /* General purpose success code */
31 #define FAILURE 1               /* To use when any non-zero number will work */
32 #define min(a,b) ((a) > (b) ? (b) : (a))
33 #define MIN_UNAME 3             /* Username must be between three and */
34 #define MAX_UNAME 8             /*    eight characters long. */
35 #define CRYPT_LEN 14            /* crypt() returns a 13 char string */
36 #define LOGIN_LEN MAX_UNAME + 1 /* Leave room for a null */
37 #define UID_LEN 7               /* Allow room for a 16 bit number */
38
39 extern char *whoami;            /* Name of program - used by libraries */
40 extern int errno;               /* Unix error number */
41
42 /* This structure holds information from the MOIRA database that will be
43    worth holding on to.  An instance of it appears in the formatted
44    packet structure. */
45 struct db_data
46 {
47   char mit_id[CRYPT_LEN];       /* Encrypted MIT ID */
48   int reg_status;               /* Registration status */
49   char uid[UID_LEN];            /* Reserved uid */
50   char login[LOGIN_LEN];        /* Login (username) */
51 };
52
53 /* This structure stores information sent over in the packet in a
54    more convenient format and also stores some information obtained
55    from the database that will be needed for each transaction.  It
56    initialized from format_pkt() and find_user(). */
57 struct msg
58 {
59   U_32BIT version;              /* User registration protocol version */
60   U_32BIT request;              /* Request */
61   char *first;                  /* First name */
62   char *last;                   /* Last name */
63   char *encrypted;              /* Encrypted information in packet */
64   int encrypted_len;            /* Length of encrypted information in packet */
65   char *leftover;               /* Leftover information sent in the packet */
66   int leftover_len;             /* Length of leftover information */
67   struct db_data db;            /* Information from the MOIRA database */
68 };
69
70 void failure_alert();           /* Log an unexplainable failure */
71 int parse_pkt();                /* Parse a packet from the client */
72 int format_pkt();               /* Prepare a packet to send to client*/
73 int verify_user();              /* Make sure user is allowed to register */
74 int reserve_user();             /* Reserve a login for this user */
75 int set_password();             /* Set this user's password */
76
77
78 /* For logging successful database transactions */
79 extern FILE *journal;
80
This page took 0.032237 seconds and 3 git commands to generate.