/[rdesktop]/sourceforge.net/trunk/rdesktop/rdesktop.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /sourceforge.net/trunk/rdesktop/rdesktop.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 96 by astrand, Fri Aug 9 09:11:01 2002 UTC revision 160 by matthewc, Sun Sep 15 12:42:26 2002 UTC
# Line 1  Line 1 
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
8     the Free Software Foundation; either version 2 of the License, or     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.     (at your option) any later version.
10      
11     This program is distributed in the hope that it will be useful,     This program is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.     GNU General Public License for more details.
15      
16     You should have received a copy of the GNU General Public License     You should have received a copy of the GNU General Public License
17     along with this program; if not, write to the Free Software     along with this program; if not, write to the Free Software
18     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
# Line 29  Line 29 
29  #include <sys/times.h>          /* times */  #include <sys/times.h>          /* times */
30  #include "rdesktop.h"  #include "rdesktop.h"
31    
32    char title[32] = "";
33  char username[16];  char username[16];
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;
# Line 49  BOOL grab_keyboard = True; Line 50  BOOL grab_keyboard = True;
50  static void  static void
51  usage(char *program)  usage(char *program)
52  {  {
53          printf("Usage: %s [options] server\n", program);          fprintf(stderr, "rdesktop: A Remote Desktop Protocol client.\n");
54          printf("   -u: user name\n");          fprintf(stderr, "Version " VERSION ". Copyright (C) 1999-2002 Matt Chapman.\n");
55          printf("   -d: domain\n");          fprintf(stderr, "See http://www.rdesktop.org/ for more information.\n\n");
56          printf("   -s: shell\n");  
57          printf("   -c: working directory\n");          fprintf(stderr, "Usage: %s [options] server\n", program);
58          printf("   -p: password (autologon)\n");          fprintf(stderr, "   -u: user name\n");
59          printf("   -P: askpass-program (autologon)\n");          fprintf(stderr, "   -d: domain\n");
60          printf("   -n: client hostname\n");          fprintf(stderr, "   -s: shell\n");
61          printf("   -k: keyboard layout on terminal server (us,sv,gr etc.)\n");          fprintf(stderr, "   -c: working directory\n");
62          printf("   -g: desktop geometry (WxH)\n");          fprintf(stderr, "   -p: password (autologon)\n");
63          printf("   -f: full-screen mode\n");          fprintf(stderr, "   -P: askpass-program (autologon)\n");
64          printf("   -b: force bitmap updates\n");          fprintf(stderr, "   -n: client hostname\n");
65          printf("   -e: disable encryption (French TS)\n");          fprintf(stderr, "   -k: keyboard layout on terminal server (us,sv,gr etc.)\n");
66          printf("   -m: do not send motion events\n");          fprintf(stderr, "   -g: desktop geometry (WxH)\n");
67          printf("   -l: do not request licence\n");          fprintf(stderr, "   -f: full-screen mode\n");
68          printf("   -t: rdp tcp port\n");          fprintf(stderr, "   -b: force bitmap updates\n");
69          printf("   -K: keep window manager key bindings\n");          fprintf(stderr, "   -e: disable encryption (French TS)\n");
70            fprintf(stderr, "   -m: do not send motion events\n");
71            fprintf(stderr, "   -l: do not request licence\n");
72            fprintf(stderr, "   -t: rdp tcp port\n");
73            fprintf(stderr, "   -K: keep window manager key bindings\n");
74            fprintf(stderr, "   -w: window title\n");
75  }  }
76    
77  /* Client program */  /* Client program */
# Line 78  main(int argc, char *argv[]) Line 84  main(int argc, char *argv[])
84          char *askpass_result;          char *askpass_result;
85          char shell[32];          char shell[32];
86          char directory[32];          char directory[32];
         char title[32];  
87          struct passwd *pw;          struct passwd *pw;
88          char *server, *p;          char *server, *p;
89          uint32 flags;          uint32 flags;
90          int c;          int c;
91    
         printf("rdesktop: A Remote Desktop Protocol client.\n");  
         printf("Version " VERSION ". Copyright (C) 1999-2001 Matt Chapman.\n");  
         printf("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");
95    
96          while ((c = getopt(argc, argv, "u:d:s:c:p:P:n:k:g:t:fbemlKh?")) != -1)          while ((c = getopt(argc, argv, "u:d:s:c:p:P:n:k:g:t:fbemlKw:h?")) != -1)
97          {          {
98                  switch (c)                  switch (c)
99                  {                  {
# Line 175  main(int argc, char *argv[]) Line 176  main(int argc, char *argv[])
176                                  grab_keyboard = False;                                  grab_keyboard = False;
177                                  break;                                  break;
178    
179                            case 'w':
180                                    strncpy(title, optarg, sizeof(title));
181                                    break;
182    
183                          case 'h':                          case 'h':
184                          case '?':                          case '?':
185                          default:                          default:
# Line 229  main(int argc, char *argv[]) Line 234  main(int argc, char *argv[])
234                  STRNCPY(password, p, sizeof(password));                  STRNCPY(password, p, sizeof(password));
235          }          }
236    
237          if ((width == 0) || (height == 0))          if (!strlen(title))
238          {          {
239                  width = 800;                  strcpy(title, "rdesktop - ");
240                  height = 600;                  strncat(title, server, sizeof(title) - sizeof("rdesktop - "));
241          }          }
242    
         strcpy(title, "rdesktop - ");  
         strncat(title, server, sizeof(title) - sizeof("rdesktop - "));  
   
         xkeymap_init1();  
243          if (!ui_init())          if (!ui_init())
244                  return 1;                  return 1;
245    
246          if (!rdp_connect(server, flags, domain, password, shell, directory))          if (!rdp_connect(server, flags, domain, password, shell, directory))
247                  return 1;                  return 1;
248    
249          printf("Connection successful.\n");          DEBUG(("Connection successful.\n"));
250    
251          if (ui_create_window(title))          if (ui_create_window())
252          {          {
253                  rdp_main_loop();                  rdp_main_loop();
254                  ui_destroy_window();                  ui_destroy_window();
255          }          }
256    
257          printf("Disconnecting...\n");          DEBUG(("Disconnecting...\n"));
258          rdp_disconnect();          rdp_disconnect();
259          return 0;          return 0;
260  }  }
# Line 356  hexdump(unsigned char *p, unsigned int l Line 357  hexdump(unsigned char *p, unsigned int l
357    
358          while (offset < len)          while (offset < len)
359          {          {
360                  printf("%04x ", offset);                  fprintf(stderr, "%04x ", offset);
361                  thisline = len - offset;                  thisline = len - offset;
362                  if (thisline > 16)                  if (thisline > 16)
363                          thisline = 16;                          thisline = 16;
364    
365                  for (i = 0; i < thisline; i++)                  for (i = 0; i < thisline; i++)
366                          printf("%02x ", line[i]);                          fprintf(stderr, "%02x ", line[i]);
367    
368                  for (; i < 16; i++)                  for (; i < 16; i++)
369                          printf("   ");                          fprintf(stderr, "   ");
370    
371                  for (i = 0; i < thisline; i++)                  for (i = 0; i < thisline; i++)
372                          printf("%c", (line[i] >= 0x20 && line[i] < 0x7f) ? line[i] : '.');                          fprintf(stderr, "%c", (line[i] >= 0x20 && line[i] < 0x7f) ? line[i] : '.');
373    
374                  printf("\n");                  fprintf(stderr, "\n");
375                  offset += thisline;                  offset += thisline;
376                  line += thisline;                  line += thisline;
377          }          }
378  }  }
379    
380    #ifdef SAVE_LICENCE
381  int  int
382  load_licence(unsigned char **data)  load_licence(unsigned char **data)
383  {  {
# Line 429  save_licence(unsigned char *data, int le Line 431  save_licence(unsigned char *data, int le
431          write(fd, data, length);          write(fd, data, length);
432          close(fd);          close(fd);
433  }  }
434    #endif

Legend:
Removed from v.96  
changed lines
  Added in v.160

  ViewVC Help
Powered by ViewVC 1.1.26