Subversion Repositories Kolibri OS

Rev

Rev 4417 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3368 leency 1
//Leency & SoUrcerer, LGPL
2
 
3
//libraries
4509 leency 4
#define MEMSIZE 0x100000
4152 leency 5
#include "../lib/kolibri.h"
6
#include "../lib/strings.h"
7
#include "../lib/mem.h"
8
#include "../lib/dll.h"
9
#include "../lib/encoding.h"
10
#include "../lib/figures.h"
11
#include "../lib/file_system.h"
12
#include "../lib/list_box.h"
13
#include "../lib/socket_new.h"
4509 leency 14
#include "../lib/draw_buf.h"
15
#include "../lib/cursor.h"
3368 leency 16
//*.obj libraries
4152 leency 17
#include "../lib/lib.obj/box_lib.h"
18
#include "../lib/lib.obj/network.h"
19
#include "../lib/lib.obj/libio_lib.h"
20
#include "../lib/lib.obj/libimg_lib.h"
21
#include "../lib/lib.obj/netcode.h"
22
#include "../lib/lib.obj/iconv.h"
3368 leency 23
//images
4152 leency 24
byte letter_icons[sizeof(file "img/letter_icons.raw")] = FROM "img/letter_icons.raw";
25
#include "img/letter_icons.h"
3368 leency 26
 
27
//connection algorithm
28
enum {
29
	STOP,
4139 hidnplayr 30
	RESOLVE,
31
	OPEN_CONNECTION,
3368 leency 32
	GET_ANSWER_CONNECT,
33
	SEND_USER,
34
	GET_ANSWER_USER,
35
	SEND_PASS,
36
	GET_ANSWER_PASS,
37
	SEND_NLIST,
38
	GET_ANSWER_NLIST,
39
	SEND_NSTAT,
40
	GET_ANSWER_NSTAT,
41
	SEND_RETR,
4164 leency 42
	GET_ANSWER_RETR
3368 leency 43
};
44
 
45
//WindowDefinitions
46
#define WIN_W         600
47
#define WIN_H         440
48
#define WIN_MIN_W     500
49
#define WIN_MIN_H     380
4186 leency 50
#define LOGIN_HEADER   "Login - Email client Liza 0.9.3"
51
#define OPTIONS_HEADER "Options - Email client Liza 0.9.3"
52
#define MAILBOX_HEADER "Mail Box - Email client Liza 0.9.3"
4139 hidnplayr 53
#define BUFFERSIZE		512
3368 leency 54
proc_info Form;
55
system_colors sc;
56
#define LBUMP 0xFFFfff
57
 
58
//progress_bar definitions
59
char cur_st_percent;
60
dword cur_st_text;
61
 
62
//connection data
63
#define DEFAULT_POP_PORT 110;
64
char POP_server_path[128];
65
dword POP_server_port;
66
char login[128];
67
char request[256+22];
68
int request_len;
69
char connection_status;
4139 hidnplayr 70
dword socketnum;
3368 leency 71
 
4139 hidnplayr 72
sockaddr_in sockaddr;
73
 
3368 leency 74
int aim;
75
int ticks;
76
 
4139 hidnplayr 77
char immbuffer[BUFFERSIZE];
3368 leency 78
 
4164 leency 79
llist mail_list;
80
llist letter_view;
81
 
4509 leency 82
char version[]=" WebView 0.1";
83
#include "..\TWB\TWB.c"
84
 
3368 leency 85
#include "settings.c"
86
#include "login.c"
4164 leency 87
#include "letter_attr.c"
3368 leency 88
#include "mail_box.c"
89
#include "parselist.c"
90
 
4509 leency 91
void main() {
3368 leency 92
	mem_Init();
4509 leency 93
	CursorPointer.Load(#CursorFile);
94
	if (load_dll2(boxlib, #box_lib_init,0)!=0)	        notify("Error while loading library - box_lib.obj");
95
	if (load_dll2(network_lib, #network_lib_init,0)!=0)	notify("Error while loading library - network.obj");
96
	if (load_dll2(netcode_lib, #base64_encode,0)!=0)	notify("Error while loading library - netcode.obj");
97
	if (load_dll2(iconv_lib, #iconv_open,0)!=0)	      { notify("Error while loading library - iconv.obj"); use_iconv=2; }
98
	if (load_dll2(libio, #libio_init,1)!=0)             notify("Error while loading library - libio.obj");
99
	if (load_dll2(libimg, #libimg_init,1)!=0)           notify("Error while loading library - libimg.obj");
3368 leency 100
	OpenMailDat();
101
	SetEventMask(0x27);
102
	LoginBoxLoop();
103
}
104
 
105
 
4509 leency 106
int DefineWindow(dword wtitle) {
3368 leency 107
	sc.get();
108
	DefineAndDrawWindow(GetScreenWidth()-WIN_W/2,GetScreenHeight()-WIN_H/2, WIN_W, WIN_H, 0x73,sc.work);
109
	DrawTitle(wtitle);
110
	GetProcessInfo(#Form, SelfInfo);
111
	if (Form.status_window>2) return 0; //rolled_up
112
	if (Form.width < WIN_MIN_W) MoveSize(OLD,OLD,WIN_MIN_W,OLD);
113
	if (Form.height < WIN_MIN_H) MoveSize(OLD,OLD,OLD,WIN_MIN_H);
114
	return 1;
115
}
116
 
117
 
4509 leency 118
void OpenMailDat() {
3368 leency 119
	char read_data[512], pass_b64[256];
120
	ReadFile(0, 512, #read_data, "/sys/network/mail.dat");
121
	if (!read_data)
122
	{
4169 leency 123
		strcpy(#email_text, "testliza@ya.ru");
4164 leency 124
		strcpy(#pass_text, "kolibri");
3368 leency 125
	}
126
	else
127
	{
128
		strcpy(#pass_b64, #read_data+strchr(#read_data, '\n')+1);
129
		base64_decode stdcall (#pass_b64, #pass_text, strlen(#pass_b64));
130
		read_data[strchr(#read_data, '\n')-1] = NULL;
131
		strcpy(#email_text, #read_data);
132
	}
133
	pass_box.size = pass_box.pos = strlen(#pass_text);
134
	login_box.size = login_box.pos = strlen(#email_text);
135
}
136
 
4509 leency 137
void SaveAndExit() {
3368 leency 138
	char write_data[512], pass_b64[256];
4139 hidnplayr 139
	Close(socketnum);
3368 leency 140
	strcpy(#write_data, #email_text);
4153 leency 141
	chrcat(#write_data, '\n');
3368 leency 142
	base64_encode stdcall (#pass_text, #pass_b64, strlen(#pass_text));
143
	strcat(#write_data, #pass_b64);
144
	WriteFile(strlen(#write_data)+1, #write_data, "/sys/network/mail.dat");
145
	ExitProcess();
146
}
147
 
4169 leency 148
 
4509 leency 149
int GetRequest(dword command, text) {
4166 leency 150
	strcpy(#request, command);
151
	if (text)
152
	{
153
		chrcat(#request, ' ');
154
		strcat(#request, text);
155
	}
156
	strcat(#request, "\n");
157
	return strlen(#request);
158
}
3368 leency 159
 
4509 leency 160
void StopConnect(dword message) {
4166 leency 161
	if (message) notify(message);
162
	aim = STOP;
4169 leency 163
	Close(socketnum);
4166 leency 164
}
165
 
3368 leency 166
stop:
167