-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathlora241.h
687 lines (576 loc) · 14.2 KB
/
lora241.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
// LoraBBS Version 2.99 Free Edition
// Copyright (C) 1987-98 Marco Maccaferri
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
typedef unsigned int bit;
typedef unsigned short word;
typedef unsigned char byte;
typedef long dword;
#define TWIT 0x10
#define DISGRACE 0x20
#define LIMITED 0x30
#define NORMAL 0x40
#define WORTHY 0x50
#define PRIVIL 0x60
#define FAVORED 0x70
#define EXTRA 0x80
#define CLERK 0x90
#define ASSTSYSOP 0xA0
#define SYSOP 0xB0
struct _sys_msg {
char msg_name[70];
short msg_num;
char msg_path[40];
char origin[56];
bit echomail :1;
bit netmail :1;
bit fpublic :1;
bit fprivate :1;
bit anon_ok :1;
bit no_matrix :1;
bit squish :1;
bit kill_unlisted :1;
word msg_sig;
char echotag[32];
word pip_board;
byte quick_board;
byte msg_priv;
long msg_flags;
byte write_priv;
long write_flags;
byte use_alias;
short max_msgs;
short max_age;
short age_rcvd;
char forward1[80];
char forward2[80];
char forward3[80];
bit msg_restricted :1;
bit passthrough :1;
bit internet_mail :1;
byte areafix;
char qwk_name[14];
long afx_flags;
word gold_board;
bit sendonly :1;
bit receiveonly :1;
char filler1[26];
};
struct _sys_file {
char file_name[70];
short file_num;
char uppath[40];
char filepath[40];
char filelist[50];
bit freearea :1;
bit norm_req :1;
bit know_req :1;
bit prot_req :1;
bit nonews :1;
bit no_global_search :1;
bit no_filedate :1;
bit file_restricted :1;
word file_sig;
byte file_priv;
long file_flags;
byte download_priv;
long download_flags;
byte upload_priv;
long upload_flags;
byte list_priv;
long list_flags;
char filler2[10];
char short_name[13];
char filler3[8];
char tic_tag[32];
char tic_forward1[80];
char tic_forward2[80];
char tic_forward3[80];
byte tic_level;
long tic_flags;
bit cdrom :1;
char filler4[106];
};
#define MAT_CM 0x0001
#define MAT_DYNAM 0x0002
#define MAT_BBS 0x0004
#define MAT_NOREQ 0x0008
#define MAT_OUTONLY 0x0010
#define MAT_NOOUT 0x0020
#define MAT_FORCED 0x0040
#define MAT_LOCAL 0x0080
#define MAT_SKIP 0x0100
#define MAT_NOMAIL24 0x0200
#define MAT_NOOUTREQ 0x0400
#define MAT_NOCM 0x0800
#define MAT_RESERV 0x1000
#define MAT_RESYNC 0x2000
typedef struct _event {
short days;
short minute;
short length;
short errlevel[9];
short last_ran;
short behavior;
short echomail;
short wait_time;
short with_connect;
short no_connect;
short node_cost;
char cmd[32];
char month;
char day;
char err_extent[6][4];
short extra[1];
short res_zone;
short res_net;
short res_node;
short res_point;
char route_tag[16];
};
#define MAXLREAD 250
#define MAXDLREAD 20
#define MAXFLAGS 4
#define MAXCOUNTER 10
struct _lastread {
word area;
short msg_num;
};
struct _usr {
char name[36];
char handle[36];
char city[26];
struct _lastread lastread[MAXLREAD];
struct _lastread dynlastread[MAXDLREAD];
char pwd[16];
dword times;
word nulls;
word msg;
bit avatar :1;
bit color :1;
bit scanmail :1;
bit use_lore :1;
bit more :1;
bit ansi :1;
bit kludge :1;
bit formfeed :1;
bit hotkey :1;
bit tabs :1;
bit full_read :1;
bit badpwd :1;
bit usrhidden :1;
bit nokill :1;
bit ibmset :1;
bit deleted :1;
byte language;
byte priv;
long flags;
char ldate[20];
short time;
dword upld;
dword dnld;
short dnldl;
word n_upld;
word n_dnld;
word files;
word credit;
word dbase;
char signature[58];
char voicephone[20];
char dataphone[20];
char birthdate[10];
char subscrdate[10];
char firstdate[20];
char lastpwdchange[10];
long ptrquestion;
byte len;
byte width;
long id;
short msgposted;
char comment[80];
byte help;
word old_baud_rate;
byte counter[MAXCOUNTER];
word chat_minutes;
bit xfer_prior:1;
bit quiet :1;
bit nerd :1;
bit donotdisturb:1;
bit robbed :1;
bit novote :1;
bit havebox :1;
bit security :1;
char protocol;
char archiver;
struct _ovr_class_rec {
short max_time;
short max_call;
short max_dl;
word ratio;
word min_baud;
word min_file_baud;
word start_ratio;
} ovr_class;
short msg_sig;
word account;
word f_account;
short votes;
short file_sig;
long baud_rate;
bit dhotkey :1;
long alias_id;
char extradata[281];
};
#define LCONFIG_VERSION 3
#define MAXNL 20
#define MAXPACKER 20
#define MAX_LANG 20
#define MAX_ALIAS 20
struct class_rec {
short priv;
short max_time;
short max_call;
short max_dl;
short dl_300;
short dl_1200;
short dl_2400;
short dl_9600;
word ratio;
word min_baud;
word min_file_baud;
word start_ratio;
};
struct _alias {
short zone;
short net;
short node;
short point;
word fakenet;
char *domain;
};
struct _configuration {
short version;
char sys_path[40];
char log_name[40];
char log_style;
char sched_name[40];
char user_file[40];
char norm_filepath[40];
char know_filepath[40];
char prot_filepath[40];
char outbound[40];
char netmail_dir[40];
char bad_msgs[40];
char dupes[40];
char quick_msgpath[40];
char pip_msgpath[40];
char ipc_path[40];
char net_info[40];
char glob_text_path[40];
char menu_path[40];
char flag_dir[40];
long keycode;
char about[40];
char files[40];
short norm_max_kbytes;
short prot_max_kbytes;
short know_max_kbytes;
short norm_max_requests;
short prot_max_requests;
short know_max_requests;
char def_pack;
char enterbbs[70];
char banner[70];
char mail_only[70];
short com_port;
short old_speed;
char modem_busy[20];
char dial[20];
char init[40];
char term_init[40];
byte mustbezero;
byte echomail_exit;
byte netmail_exit;
byte both_exit;
long speed;
short modem_OK_errorlevel;
byte filler[10];
struct _altern_dial {
char prefix[20];
char suffix[20];
} altdial[10];
bit lock_baud :1;
bit ansilogon :2;
bit birthdate :1;
bit voicephone :1;
bit dataphone :1;
bit emsi :1;
bit ibmset :1;
bit wazoo :1;
bit msgtrack :1;
bit keeptransit :1;
bit hslink :1;
bit puma :1;
bit secure :1;
bit janus :1;
bit terminal :1;
bit fillerbug :1;
bit no_direct :1;
bit snooping :1;
bit snow_check :1;
bit unpack_norm :1;
bit unpack_know :1;
bit unpack_prot :1;
short blank_timer;
struct _language {
char txt_path[30];
char descr[24];
char basename[10];
} language[MAX_LANG];
char sysop[36];
char system_name[50];
char location[50];
char phone[32];
char flags[50];
struct _alias old_alias[20];
char newareas_create[50];
char newareas_link[50];
short line_offset;
short min_calls;
short vote_limit;
short target_up;
short target_down;
byte vote_priv;
byte max_readpriv;
word speed_graphics;
byte aftercaller_exit;
byte aftermail_exit;
short max_connects;
short max_noconnects;
byte logon_level;
long logon_flags;
char areachange_key[4];
char dateformat[20];
char timeformat[20];
char external_editor[50];
struct class_rec class[12];
char local_editor[50];
char QWKDir[40];
char BBSid[10];
word qwk_maxmsgs;
char galileo[30];
char norm_okfile[40];
char know_okfile[40];
char prot_okfile[40];
char reg_name[36];
long betakey;
struct _packers {
char id[10];
char packcmd[30];
char unpackcmd[30];
} packers[10];
struct _nl {
char list_name[14];
char diff_name[14];
char arc_name[14];
} old_nl[10];
bit ansigraphics :2;
bit avatargraphics :2;
bit hotkeys :2;
bit screenclears :2;
bit autozmodem :1;
bit avatar :1;
bit moreprompt :2;
bit mailcheck :2;
bit fullscrnedit :2;
bit fillerbits :2;
bit ask_protocol :1;
bit ask_packer :1;
bit put_uploader :1;
bit keep_dl_count :1;
bit use_areasbbs :1;
bit write_areasbbs :1;
short rookie_calls;
char pre_import[40];
char after_import[40];
char pre_export[40];
char after_export[40];
byte emulation;
char dl_path[40];
char ul_path[40];
bit manual_answer :1;
bit limited_hours :1;
bit solar :1;
bit areafix :1;
bit doflagfile :1;
bit multitask :1;
bit ask_alias :1;
bit random_birth :1;
short start_time;
short end_time;
char boxpath[40];
char dial_suffix[20];
char galileo_dial[40];
char galileo_suffix[40];
char galileo_init[40];
char areafix_help[40];
char alert_nodes[50];
char automaint[40];
byte min_login_level;
long min_login_flags;
byte min_login_age;
char resync_nodes[50];
char bbs_batch[40];
byte altx_errorlevel;
char fax_response[20];
byte fax_errorlevel;
char dl_counter_limits[4];
char areas_bbs[40];
byte afx_remote_maint;
byte afx_change_tag;
bit allow_rescan :1;
bit check_city :1;
bit check_echo_zone :1;
bit save_my_mail :1;
bit mail_method :2;
bit replace_tear :2;
char my_mail[40];
bit stripdash :1;
bit use_iemsi :1;
bit newmail_flash :1;
bit mymail_flash :1;
bit keep_empty :1;
bit show_missing :1;
bit random_redial :1;
char override_pwd[20];
char pre_pack[40];
char after_pack[40];
byte modem_timeout;
byte login_timeout;
byte inactivity_timeout;
struct _altern_prefix {
char flag[6];
char prefix[20];
} prefixdial[10];
char iemsi_handle[36];
char iemsi_pwd[20];
short iemsi_infotime;
bit iemsi_on :1;
bit iemsi_hotkeys :1;
bit iemsi_quiet :1;
bit iemsi_pausing :1;
bit iemsi_editor :1;
bit iemsi_news :1;
bit iemsi_newmail :1;
bit iemsi_newfiles :1;
bit iemsi_screenclr :1;
bit prot_xmodem :1;
bit prot_1kxmodem :1;
bit prot_zmodem :1;
bit prot_sealink :1;
bit tic_active :1;
bit tic_check_zone :1;
bit filebox :1;
char newkey_code[30];
char tearline[36];
char uucp_gatename[20];
short uucp_zone;
short uucp_net;
short uucp_node;
byte carrier_mask;
byte dcd_timeout;
struct {
char display[20];
short offset;
char ident[20];
} packid[10];
char quote_string[5];
char quote_header[50];
char tic_help[40];
char tic_alert_nodes[50];
char tic_newareas_create[50];
char tic_newareas_link[50];
byte tic_remote_maint;
byte tic_change_tag;
short uucp_point;
byte dial_timeout;
byte dial_pause;
bit newfilescheck :2;
bit mono_attr :1;
bit force_intl :1;
bit inp_dateformat :2;
bit single_pass :1;
bit cdrom_swap :1;
short ul_free_space;
char hangup_string[40];
char init2[40];
char init3[40];
short page_start[7];
short page_end[7];
char logbuffer;
char newareas_path[40];
char newareas_base;
char answer[40];
bit blanker_type :3;
bit tcpip :2;
bit export_internet:1;
char internet_gate;
char areafix_watch[50];
char tic_watch[50];
byte netmail;
byte echomail;
byte internet;
byte net_echo;
byte echo_internet;
byte net_internet;
byte echo_net_internet;
char upload_check[50];
unsigned long setup_pwd;
struct _alias alias[MAX_ALIAS];
struct _nl nl[MAXNL];
char filler_2 [565]; // Per arrivare a 8192 Bytes
};
typedef struct _nodeinfo {
short zone;
short net;
short node;
short point;
short afx_level;
char pw_session[20];
char pw_areafix[20];
char pw_tic[20];
char pw_packet[9];
short modem_type;
char phone[30];
short packer;
char sysop_name[36];
char system[36];
bit remap4d :1;
bit can_do_22pkt :1;
bit wazoo :1;
bit emsi :1;
bit janus :1;
bit pkt_create :2;
char aka;
short tic_level;
long afx_flags;
long tic_flags;
char tic_aka;
long baudrate;
char pw_inbound_packet[9];
char mailer_aka;
long min_baud_rate;
char filler[40];
};