1 |
/* |
/* |
2 |
rdesktop: A Remote Desktop Protocol client. |
rdesktop: A Remote Desktop Protocol client. |
3 |
Entrypoint and utility functions |
Entrypoint and utility functions |
4 |
Copyright (C) Matthew Chapman 1999-2001 |
Copyright (C) Matthew Chapman 1999-2002 |
5 |
|
|
6 |
This program is free software; you can redistribute it and/or modify |
This program is free software; you can redistribute it and/or modify |
7 |
it under the terms of the GNU General Public License as published by |
it under the terms of the GNU General Public License as published by |
34 |
char hostname[16]; |
char hostname[16]; |
35 |
char keymapname[16]; |
char keymapname[16]; |
36 |
int keylayout = 0x409; /* Defaults to US keyboard layout */ |
int keylayout = 0x409; /* Defaults to US keyboard layout */ |
37 |
int width; |
int width = 800; |
38 |
int height; |
int height = 600; |
39 |
int tcp_port_rdp = TCP_PORT_RDP; |
int tcp_port_rdp = TCP_PORT_RDP; |
40 |
BOOL bitmap_compression = True; |
BOOL bitmap_compression = True; |
41 |
BOOL sendmotion = True; |
BOOL sendmotion = True; |
50 |
static void |
static void |
51 |
usage(char *program) |
usage(char *program) |
52 |
{ |
{ |
53 |
|
fprintf(stderr, "rdesktop: A Remote Desktop Protocol client.\n"); |
54 |
|
fprintf(stderr, "Version " VERSION ". Copyright (C) 1999-2002 Matt Chapman.\n"); |
55 |
|
fprintf(stderr, "See http://www.rdesktop.org/ for more information.\n\n"); |
56 |
|
|
57 |
fprintf(stderr, "Usage: %s [options] server\n", program); |
fprintf(stderr, "Usage: %s [options] server\n", program); |
58 |
fprintf(stderr, " -u: user name\n"); |
fprintf(stderr, " -u: user name\n"); |
59 |
fprintf(stderr, " -d: domain\n"); |
fprintf(stderr, " -d: domain\n"); |
89 |
uint32 flags; |
uint32 flags; |
90 |
int c; |
int c; |
91 |
|
|
|
fprintf(stderr, "rdesktop: A Remote Desktop Protocol client.\n"); |
|
|
fprintf(stderr, "Version " VERSION ". Copyright (C) 1999-2001 Matt Chapman.\n"); |
|
|
fprintf(stderr, "See http://www.rdesktop.org/ for more information.\n\n"); |
|
|
|
|
92 |
flags = RDP_LOGON_NORMAL; |
flags = RDP_LOGON_NORMAL; |
93 |
domain[0] = password[0] = shell[0] = directory[0] = 0; |
domain[0] = password[0] = shell[0] = directory[0] = 0; |
94 |
strcpy(keymapname, "us"); |
strcpy(keymapname, "us"); |
116 |
case 'p': |
case 'p': |
117 |
STRNCPY(password, optarg, sizeof(password)); |
STRNCPY(password, optarg, sizeof(password)); |
118 |
flags |= RDP_LOGON_AUTO; |
flags |= RDP_LOGON_AUTO; |
119 |
|
p = optarg; |
120 |
|
while (*p) |
121 |
|
*(p++) = 'X'; |
122 |
break; |
break; |
123 |
|
|
124 |
case 'P': |
case 'P': |
237 |
STRNCPY(password, p, sizeof(password)); |
STRNCPY(password, p, sizeof(password)); |
238 |
} |
} |
239 |
|
|
|
if ((width == 0) || (height == 0)) |
|
|
{ |
|
|
width = 800; |
|
|
height = 600; |
|
|
} |
|
|
else |
|
|
{ |
|
|
/* make sure width is a multiple of 4 */ |
|
|
width = (width + 3) & ~3; |
|
|
} |
|
|
|
|
240 |
if (!strlen(title)) |
if (!strlen(title)) |
241 |
{ |
{ |
242 |
strcpy(title, "rdesktop - "); |
strcpy(title, "rdesktop - "); |
249 |
if (!rdp_connect(server, flags, domain, password, shell, directory)) |
if (!rdp_connect(server, flags, domain, password, shell, directory)) |
250 |
return 1; |
return 1; |
251 |
|
|
252 |
fprintf(stderr, "Connection successful.\n"); |
DEBUG(("Connection successful.\n")); |
253 |
|
|
254 |
if (ui_create_window()) |
if (ui_create_window()) |
255 |
{ |
{ |
257 |
ui_destroy_window(); |
ui_destroy_window(); |
258 |
} |
} |
259 |
|
|
260 |
fprintf(stderr, "Disconnecting...\n"); |
DEBUG(("Disconnecting...\n")); |
261 |
rdp_disconnect(); |
rdp_disconnect(); |
262 |
return 0; |
return 0; |
263 |
} |
} |
360 |
|
|
361 |
while (offset < len) |
while (offset < len) |
362 |
{ |
{ |
363 |
fprintf(stderr, "%04x ", offset); |
printf("%04x ", offset); |
364 |
thisline = len - offset; |
thisline = len - offset; |
365 |
if (thisline > 16) |
if (thisline > 16) |
366 |
thisline = 16; |
thisline = 16; |
367 |
|
|
368 |
for (i = 0; i < thisline; i++) |
for (i = 0; i < thisline; i++) |
369 |
fprintf(stderr, "%02x ", line[i]); |
printf("%02x ", line[i]); |
370 |
|
|
371 |
for (; i < 16; i++) |
for (; i < 16; i++) |
372 |
fprintf(stderr, " "); |
printf(" "); |
373 |
|
|
374 |
for (i = 0; i < thisline; i++) |
for (i = 0; i < thisline; i++) |
375 |
fprintf(stderr, "%c", (line[i] >= 0x20 && line[i] < 0x7f) ? line[i] : '.'); |
printf("%c", (line[i] >= 0x20 && line[i] < 0x7f) ? line[i] : '.'); |
376 |
|
|
377 |
fprintf(stderr, "\n"); |
printf("\n"); |
378 |
offset += thisline; |
offset += thisline; |
379 |
line += thisline; |
line += thisline; |
380 |
} |
} |
381 |
} |
} |
382 |
|
|
383 |
|
#ifdef SAVE_LICENCE |
384 |
int |
int |
385 |
load_licence(unsigned char **data) |
load_licence(unsigned char **data) |
386 |
{ |
{ |
434 |
write(fd, data, length); |
write(fd, data, length); |
435 |
close(fd); |
close(fd); |
436 |
} |
} |
437 |
|
#endif |