2016-03-22 01:48:59 +00:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <ctype.h>
|
2016-03-23 06:31:00 +00:00
|
|
|
#include <sys/stat.h>
|
2016-03-22 01:48:59 +00:00
|
|
|
#include "bbs.h"
|
|
|
|
|
|
|
|
extern struct bbs_config conf;
|
|
|
|
|
|
|
|
void main_menu(int socket, struct user_record *user) {
|
|
|
|
int doquit = 0;
|
|
|
|
char c;
|
|
|
|
char prompt[128];
|
2016-03-23 06:31:00 +00:00
|
|
|
char buffer[256];
|
|
|
|
int i;
|
|
|
|
struct stat s;
|
2016-03-22 01:48:59 +00:00
|
|
|
while (!doquit) {
|
|
|
|
s_displayansi(socket, "mainmenu");
|
|
|
|
|
|
|
|
|
2016-03-23 04:21:08 +00:00
|
|
|
sprintf(prompt, "\r\nTL: %dm :> ", user->timeleft);
|
2016-03-22 01:48:59 +00:00
|
|
|
s_putstring(socket, prompt);
|
|
|
|
|
|
|
|
c = s_getc(socket);
|
|
|
|
|
|
|
|
switch(tolower(c)) {
|
2016-03-25 10:21:28 +00:00
|
|
|
case 'l':
|
|
|
|
{
|
|
|
|
bbs_list(socket, user);
|
|
|
|
}
|
|
|
|
break;
|
2016-03-23 06:31:00 +00:00
|
|
|
case 'u':
|
|
|
|
{
|
|
|
|
list_users(socket, user);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 'b':
|
|
|
|
{
|
|
|
|
i = 0;
|
|
|
|
sprintf(buffer, "%s/bulletin%d.ans", conf.ansi_path, i);
|
|
|
|
|
|
|
|
while (stat(buffer, &s) == 0) {
|
|
|
|
sprintf(buffer, "bulletin%d", i);
|
|
|
|
s_displayansi(socket, buffer);
|
|
|
|
sprintf(buffer, "Press any key to continue...\r\n");
|
|
|
|
s_putstring(socket, buffer);
|
|
|
|
s_getc(socket);
|
|
|
|
i++;
|
|
|
|
sprintf(buffer, "%s/bulletin%d.ans", conf.ansi_path, i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
2016-03-23 05:21:53 +00:00
|
|
|
case '1':
|
|
|
|
{
|
|
|
|
display_last10_callers(socket, user, 0);
|
|
|
|
}
|
|
|
|
break;
|
2016-03-23 03:26:12 +00:00
|
|
|
case 'd':
|
|
|
|
{
|
|
|
|
doquit = door_menu(socket, user);
|
|
|
|
}
|
|
|
|
break;
|
2016-03-22 03:07:42 +00:00
|
|
|
case 'm':
|
|
|
|
{
|
|
|
|
doquit = mail_menu(socket, user);
|
|
|
|
}
|
|
|
|
break;
|
2016-03-22 01:48:59 +00:00
|
|
|
case 'g':
|
|
|
|
{
|
|
|
|
s_putstring(socket, "\r\nAre you sure you want to log off? (Y/N)");
|
|
|
|
c = s_getc(socket);
|
|
|
|
if (tolower(c) == 'y') {
|
|
|
|
doquit = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|