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