/**************************************************************************** * lsrv_funcs1.c * functions for the license server */ #include #include #include #include #include #include #include #define SERVER_PORTNUM 2020 /* Our server's port number */ #define MSGLEN 128 /* Size of our datagrams */ #define TICKET_AVAIL 0 /* Slot is available for use */ #define MAXUSERS 3 /* Only 3 users for us */ #define oops(x) { perror(x); exit(-1); } /**************************************************************************** * Important variables */ int ticket_array[MAXUSERS]; /* Our ticket array */ int sd = -1; /* Our socket */ int num_tickets_out = 0; /* Number of tickets outstanding */ char *do_hello(); char *do_goodbye(); /**************************************************************************** * setup() - initialize license server */ setup() { sd = make_dgram_server_socket(SERVER_PORTNUM); if ( sd == -1 ) oops("make socket"); free_all_tickets(); return sd; } free_all_tickets() { int i; for(i=0; i= MAXUSERS) return("FAIL no tickets available"); /* else find a free ticket and give it to client */ for(x = 0; xsin_addr), ntohs(clientp->sin_port) ); putc('\n', stderr); }