Advertisement
Guest User

PuTTY Patch - GNS3 Build

a guest
Jun 30th, 2012
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. diff -rup putty-src-orig\CMDLINE.C putty-src\CMDLINE.C
  2. --- putty-src-orig\CMDLINE.C    Thu Dec 23 17:32:28 2010
  3. +++ putty-src\CMDLINE.C Fri Jun 22 20:23:55 2012
  4. @@ -6,6 +6,9 @@
  5.  #include <stdio.h>
  6.  #include <assert.h>
  7.  #include <stdlib.h>
  8. +/***************Patch GNS3 PuTTY *******************/
  9. +#include <time.h>
  10. +/***************************************************/
  11.  #include "putty.h"
  12.  
  13.  /*
  14. @@ -165,6 +168,12 @@ static int cmdline_check_unavailable(int
  15.  int cmdline_process_param(char *p, char *value, int need_save, Config *cfg)
  16.  {
  17.      int ret = 0;
  18. +   /***************Patch GNS3 PuTTY *******************/
  19. +    char       buf[80];
  20. +    time_t     now = time(0);
  21. +    struct tm  tstruct;
  22. +    tstruct = *localtime(&now);
  23. +   /***************************************************/
  24.  
  25.      if (!strcmp(p, "-load")) {
  26.     RETURN(2);
  27. @@ -226,6 +235,73 @@ int cmdline_process_param(char *p, char
  28.     strncpy(cfg->username, value, sizeof(cfg->username));
  29.     cfg->username[sizeof(cfg->username) - 1] = '\0';
  30.      }
  31. +   /***************Patch GNS3 PuTTY *******************/
  32. +    if (!strcmp(p, "-wt")) {
  33. +    RETURN(2);
  34. +    SAVEABLE(0);
  35. +    strncpy(cfg->wintitle, value, sizeof(cfg->wintitle));
  36. +    cfg->wintitle[sizeof(cfg->wintitle) - 1] = '\0';
  37. +    cfg->no_remote_wintitle = 1; //No remote title
  38. +   cfg->win_name_always    = 1; //Don't change the title when is minimized
  39. +    }
  40. +   if (!strcmp(p, "-gns3")) {
  41. +   RETURN(2);
  42. +   SAVEABLE(0);
  43. +   cfg->close_on_exit      = 1; //Never, Don't close the window
  44. +   cfg->warn_on_close      = 0; //No warn before closing the window
  45. +   cfg->beep               = 0; //No beeps (Iritating!)
  46. +   cfg->alt_f4             = 1; //Allow Alt+F4 to close the window
  47. +   cfg->alt_space          = 1; //Allow Alt+Space to display the system menu
  48. +   cfg->blinktext          = 1; //Allow text blinking effect
  49. +   cfg->no_remote_resize   = 1; //No remote resize
  50. +   cfg->savelines          = 2500; //Scroll Lines Buffer
  51. +   cfg->push_one_enter     = 1; //Push a enter key on telnet/serial console
  52. +   cfg->no_annoying_msgbox = 1; //Replace MsgBox errors with a message in the title
  53. +   cfg->reconnect_after_error = atoi(value); //Automatically reconnect a inactive session on error after x seconds
  54. +   }
  55. +    if (!strcmp(p, "-skin")) {
  56. +    RETURN(2);
  57. +    SAVEABLE(0);
  58. +   switch(atoi(value))
  59. +       {
  60. +       case 1: //night theme
  61. +           cfg->colours[0][0] = 15;  cfg->colours[0][1] = 15;  cfg->colours[0][2] = 15;  //Defauld Foreground
  62. +           cfg->colours[2][0] = 255; cfg->colours[2][1] = 255; cfg->colours[2][2] = 255; //Defauld Background
  63. +           break;
  64. +       case 2: //desert theme
  65. +           cfg->colours[0][0] = 255; cfg->colours[0][1] = 255; cfg->colours[0][2] = 255; //Defauld Foreground
  66. +           cfg->colours[2][0] = 51;  cfg->colours[2][1] = 51;  cfg->colours[2][2] = 51;  //Defauld Background
  67. +           break;
  68. +       case 3: //matrix theme
  69. +           cfg->colours[0][0] = 27;  cfg->colours[0][1] = 255; cfg->colours[0][2] = 27;  //Defauld Foreground
  70. +           cfg->colours[2][0] = 30;  cfg->colours[2][1] = 30;  cfg->colours[2][2] = 30;  //Defauld Background
  71. +           break;
  72. +       case 4: //Gold theme
  73. +           cfg->colours[0][0] = 255; cfg->colours[0][1] = 190; cfg->colours[0][2] = 27;  //Defauld Foreground
  74. +           cfg->colours[2][0] = 51;  cfg->colours[2][1] = 51;  cfg->colours[2][2] = 51;  //Defauld Background
  75. +           break;
  76. +       default: //default theme
  77. +           cfg->colours[0][0] = 187; cfg->colours[0][1] = 187; cfg->colours[0][2] = 187; //Defauld Foreground
  78. +           cfg->colours[2][0] = 0;   cfg->colours[2][1] = 0;   cfg->colours[2][2] = 0;   //Defauld Background
  79. +           break;
  80. +       }
  81. +   }
  82. +   if (!strcmp(p, "-log")) { //don't use "/, \, |, *, ?, <, >, :" in -wt variable! :D
  83. +    RETURN(2);
  84. +    SAVEABLE(0);
  85. +    strftime(buf, sizeof(buf), "%d.%b.%y_%H.%M.%S", &tstruct);
  86. +   if(!strlen(cfg->wintitle)){
  87. +       sprintf(cfg->logfilename.path, "%s\\%s_%s.log\0", value, buf, cfg->host);     // ex: C:\dir4.Jun.12_21.40.29_127.0.0.1.log
  88. +       }
  89. +   else{
  90. +       sprintf(cfg->logfilename.path, "%s\\%s_%s.log\0", value, buf, cfg->wintitle); // ex: C:\dir4.Jun.12_21.40.29_R1.log
  91. +   }
  92. +   cfg->logtype  = 1; //printable output
  93. +    cfg->logflush = 1; //flush log file
  94. +    cfg->logxfovr = 0; //append (anyway the log is created with the current date/time and will be imposible to have a append event)
  95. +    }
  96. +   /***************************************************/
  97. +
  98.      if (!strcmp(p, "-loghost")) {
  99.     RETURN(2);
  100.     UNAVAILABLE_IN(TOOLTYPE_NONNETWORK);
  101. diff -rup putty-src-orig\CONFIG.C putty-src\CONFIG.C
  102. --- putty-src-orig\CONFIG.C Fri Jan 14 19:57:00 2011
  103. +++ putty-src\CONFIG.C  Fri Jun 22 19:39:52 2012
  104. @@ -2385,4 +2385,34 @@ void setup_config_box(struct controlbox
  105.               sshbug_handler, I(offsetof(Config,sshbug_maxpkt2)));
  106.     }
  107.      }
  108. +   /***************Patch GNS3 PuTTY *******************/
  109. +    /*
  110. +     * The GNS3 panel.
  111. +     */
  112. +    str = dupprintf("Advanced options for GNS3 usage", appname);
  113. +    ctrl_settitle(b, "GNS3", str);
  114. +    sfree(str);
  115. +  
  116. +   s = ctrl_getset(b, "GNS3", "adv-options1", NULL);
  117. +    ctrl_radiobuttons(s, "Push a enter key inside a telnet/serial console:", 'p', 2,
  118. +             HELPCTX(no_help),
  119. +             dlg_stdradiobutton_handler,
  120. +             I(offsetof(Config, push_one_enter)),
  121. +             "Yes", I(1),
  122. +             "No", I(0),
  123. +             NULL);
  124. +   s = ctrl_getset(b, "GNS3", "adv-options2", NULL);
  125. +    ctrl_radiobuttons(s, "Replace all MsgBox errors with a message in title bar:", 'm', 2,
  126. +             HELPCTX(no_help),
  127. +             dlg_stdradiobutton_handler,
  128. +             I(offsetof(Config, no_annoying_msgbox)),
  129. +             "Yes", I(1),
  130. +             "No", I(0),
  131. +             NULL);
  132. +   s = ctrl_getset(b, "GNS3", "adv-options3", "Seconds between auto-restarts (0 to turn off)");
  133. +    ctrl_editbox(s, "Automatically reconnect a inactive session after:", 'r', 11,
  134. +             HELPCTX(no_help),
  135. +             dlg_stdeditbox_handler, I(offsetof(Config,reconnect_after_error)),
  136. +            I(-1));
  137. +   /***************************************************/
  138.  }
  139. diff -rup putty-src-orig\PUTTY.H putty-src\PUTTY.H
  140. --- putty-src-orig\PUTTY.H  Sat Jun 25 18:37:32 2011
  141. +++ putty-src\PUTTY.H   Tue Jun 19 23:56:46 2012
  142. @@ -1,5 +1,6 @@
  143.  #ifndef PUTTY_PUTTY_H
  144.  #define PUTTY_PUTTY_H
  145. +#define SECURITY_WIN32
  146.  
  147.  #include <stddef.h>               /* for wchar_t */
  148.  
  149. @@ -523,6 +524,11 @@ struct config_tag {
  150.      char ssh_nc_host[512];        /* host to connect to in `nc' mode */
  151.      int ssh_nc_port;              /* port to connect to in `nc' mode */
  152.      /* Telnet options */
  153. +   /***************Patch GNS3 PuTTY *******************/
  154. +   int push_one_enter;            /* used to pust a '\r' inside the socket */
  155. +   int no_annoying_msgbox;        /* used to replace msgbox errors with messages in title window */
  156. +   int reconnect_after_error;     /* used to automatically reconnect a telnet/serial session on error after x seconds */
  157. +   /***************************************************/
  158.      char termtype[32];
  159.      char termspeed[32];
  160.      char ttymodes[768];               /* MODE\tVvalue\0MODE\tA\0\0 */
  161. @@ -773,6 +779,9 @@ int char_width(Context ctx, int uc);
  162.  void do_scroll(Context, int, int, int);
  163.  #endif
  164.  void set_title(void *frontend, char *);
  165. +/***************Patch GNS3 PuTTY *******************/
  166. +void set_title_plus_error(void *frontend, char *error);
  167. +/***************************************************/
  168.  void set_icon(void *frontend, char *);
  169.  void set_sbar(void *frontend, int, int, int);
  170.  Context get_ctx(void *frontend);
  171. diff -rup putty-src-orig\SETTINGS.C putty-src\SETTINGS.C
  172. --- putty-src-orig\SETTINGS.C   Tue Sep 13 08:35:56 2011
  173. +++ putty-src\SETTINGS.C    Sat Jun 30 15:20:53 2012
  174. @@ -475,6 +475,11 @@ void save_open_settings(void *sesskey, C
  175.      write_setting_s(sesskey, "WinTitle", cfg->wintitle);
  176.      write_setting_i(sesskey, "TermWidth", cfg->width);
  177.      write_setting_i(sesskey, "TermHeight", cfg->height);
  178. +   /***************Patch GNS3 PuTTY *******************/
  179. +    write_setting_i(sesskey, "GNS3PushOneEnter", cfg->push_one_enter); //Save the values in regs :D
  180. +    write_setting_i(sesskey, "GNS3NoMsgBoxError", cfg->no_annoying_msgbox);
  181. +    write_setting_i(sesskey, "GNS3AutoReconnect", cfg->reconnect_after_error);
  182. +   /***************************************************/
  183.      write_setting_fontspec(sesskey, "Font", cfg->font);
  184.      write_setting_i(sesskey, "FontQuality", cfg->font_quality);
  185.      write_setting_i(sesskey, "FontVTMode", cfg->vtmode);
  186. @@ -792,8 +797,13 @@ void load_open_settings(void *sesskey, C
  187.      gppi(sesskey, "DisableBidi", 0, &cfg->bidi);
  188.      gppi(sesskey, "WinNameAlways", 1, &cfg->win_name_always);
  189.      gpps(sesskey, "WinTitle", "", cfg->wintitle, sizeof(cfg->wintitle));
  190. -    gppi(sesskey, "TermWidth", 80, &cfg->width);
  191. +   /***************Patch GNS3 PuTTY *******************/
  192. +    gppi(sesskey, "TermWidth", 110, &cfg->width); //default was 80
  193.      gppi(sesskey, "TermHeight", 24, &cfg->height);
  194. +    gppi(sesskey, "GNS3PushOneEnter", 0, &cfg->push_one_enter); //default is unused
  195. +    gppi(sesskey, "GNS3NoMsgBoxError", 0, &cfg->no_annoying_msgbox); //default is unused
  196. +    gppi(sesskey, "GNS3AutoReconnect", 0, &cfg->reconnect_after_error); //default is unused
  197. +   /***************************************************/
  198.      gppfont(sesskey, "Font", &cfg->font);
  199.      gppi(sesskey, "FontQuality", FQ_DEFAULT, &cfg->font_quality);
  200.      gppi(sesskey, "FontVTMode", VT_UNICODE, (int *) &cfg->vtmode);
  201. diff -rup putty-src-orig\TELNET.C putty-src\TELNET.C
  202. --- putty-src-orig\TELNET.C Mon Nov 24 17:51:42 2008
  203. +++ putty-src\TELNET.C  Mon Jun 18 20:10:54 2012
  204. @@ -765,6 +765,16 @@ static const char *telnet_init(void *fro
  205.       */
  206.      update_specials_menu(telnet->frontend);
  207.  
  208. +   /***************Patch GNS3 PuTTY *******************/
  209. +   /*
  210. +    * Push a enter key inside the telnet socket
  211. +    */
  212. +    if (telnet->cfg.push_one_enter) {
  213. +    logevent(telnet->frontend, "client:\t *** Press a '\\r' inside the Telnet socket ***");
  214. +   telnet->bufsize = sk_write(telnet->s, "\r", 1);
  215. +   }
  216. +   /***************************************************/
  217. +
  218.      /*
  219.       * loghost overrides realhost, if specified.
  220.       */
  221. diff -rup putty-src-orig\VERSION.C putty-src\VERSION.C
  222. --- putty-src-orig\VERSION.C    Sat Nov 26 17:45:52 2011
  223. +++ putty-src\VERSION.C Sat Jun 30 16:05:11 2012
  224. @@ -34,9 +34,11 @@ char ver[] = "Custom build r" STR(SVN_RE
  225.  char sshver[] = "PuTTY-Custom-r" STR(SVN_REV);
  226.  
  227.  #else
  228. -
  229. -char ver[] = "Unidentified build, " __DATE__ " " __TIME__;
  230. -char sshver[] = "PuTTY-Local: " __DATE__ " " __TIME__;
  231. +/***************Patch GNS3 PuTTY *******************/
  232. +char ver[] = "GNS3 build 0.62.1, " __DATE__ " " __TIME__;
  233. +//char ver[] = "GNS3 build 0.62.1 [Standalone] , " __DATE__ " " __TIME__;
  234. +char sshver[] = "PuTTY-GNS3-0.62.1";
  235. +/***************************************************/
  236.  
  237.  #endif
  238.  
  239. diff -rup putty-src-orig\WINDOWS\PUTTY.RC putty-src\WINDOWS\Putty.rc
  240. --- putty-src-orig\WINDOWS\PUTTY.RC Tue Oct 04 15:13:28 2005
  241. +++ putty-src\WINDOWS\Putty.rc  Sat Jun 30 16:03:07 2012
  242. @@ -1,10 +1,247 @@
  243. +// Microsoft Visual C++ generated resource script.
  244. +//
  245. +#include "resource.h"
  246. +
  247. +#define APSTUDIO_READONLY_SYMBOLS
  248. +/////////////////////////////////////////////////////////////////////////////
  249. +//
  250. +// Generated from the TEXTINCLUDE 2 resource.
  251. +//
  252.  #include "rcstuff.h"
  253. +#include "win_res.h"
  254. +
  255. +/////////////////////////////////////////////////////////////////////////////
  256. +#undef APSTUDIO_READONLY_SYMBOLS
  257. +
  258. +/////////////////////////////////////////////////////////////////////////////
  259. +// English (U.S.) resources
  260. +
  261. +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
  262. +#ifdef _WIN32
  263. +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
  264. +#pragma code_page(1252)
  265. +#endif //_WIN32
  266. +
  267. +/////////////////////////////////////////////////////////////////////////////
  268. +//
  269. +// Icon
  270. +//
  271. +
  272. +// Icon with lowest ID value placed first to ensure application icon
  273. +// remains consistent on all systems.
  274. +IDI_MAINICON            ICON                    "putty.ico"
  275. +IDI_CFGICON             ICON                    "puttycfg.ico"
  276. +
  277. +/////////////////////////////////////////////////////////////////////////////
  278. +//
  279. +// Dialog
  280. +//
  281. +
  282. +IDD_ABOUTBOX DIALOGEX 140, 40, 309, 321
  283. +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
  284. +    WS_SYSMENU
  285. +FONT 8, "MS Shell Dlg", 0, 0, 0x0
  286. +BEGIN
  287. +    DEFPUSHBUTTON   "&Close",IDOK,253,303,48,14
  288. +    PUSHBUTTON      "View &Licence",IDA_LICENCE,6,303,70,14
  289. +    PUSHBUTTON      "Visit &PuTTY Site",IDA_WEB,89,303,70,14
  290. +    PUSHBUTTON      "Visit &GNS3 Site",IDA_GNS3_WEB,171,303,70,14
  291. +    CTEXT           "PuTTY",IDA_TEXT1,33,1,244,9
  292. +    CTEXT           "© 1997-2011 Simon Tatham. All rights reserved.\nModified by Piroi Ninel for the GNS3 project",
  293. +                    IDA_TEXT2,49,280,197,19
  294. +    CTEXT           " Version Number",IDA_VERSION,16,13,283,10
  295. +    LTEXT           "Usage [new options]:\nCLI:    putty -wt   R1   -gns3 5 -skin 3 -log ""C:\\Logs_Dir""\nGNS3: putty -wt ""%d"" -gns3 5 -skin 4 -telnet %h %p\n\n-wt ""New Title""  #Change the window title from command line\n*Will disable remote title",
  296. +                    IDA_TEXT3,4,23,283,47
  297. +    LTEXT           " -gns3 <NR>     #Advanced PuTTY options tunned for GNS3 usage\n *Don't close the window when the connection is down\n *Disable warning message before closing the window\n *Disable beeps (Irritating!)\n *Allow Alt+F4 to close the window",
  298. +                    IDA_TEXT4,1,74,283,41
  299. +    LTEXT           " *Disable remote resize\n *Configure scroll lines to 2500 (default was 200)\n *Push a enter key on telnet/serial console (NEW!)\n *Replace all MessageBox errors with a message in the title bar (NEW!)",
  300. +                    IDA_TEXT6,1,114,283,41
  301. +    LTEXT           " *Automatically reconnect a inactive session on error after <NR> seconds (NEW!)\n    NR = Number of seconds to wait before restarting a inactive session\n    NR = 0 means no automatically restart!",
  302. +                    IDA_TEXT9,2,147,283,26
  303. +    LTEXT           "-log ""<DIR_PATH>"" #Enable logging to files (.log). Use it after the ""-wt"" option in CLI.\n*Will log all printable output\n*Ex: <DIR_PATH>\4.Jun.12_21.48.17_R1.log\n*Warning: Do not use '/, \\, |, *, ?, <, >, "", :' in -wt variable!",
  304. +                    IDA_TEXT10,3,228,284,33
  305. +    LTEXT           " * Toggle ""Always on top"" mode from menu (Right click on title bar)",
  306. +                    IDA_TEXT11,2,265,283,11
  307. +    LTEXT           "-skin <NR>      #Apply a color theme from 4 hard-coded options\n 1 - Night mode\n 2 - Desert theme\n 3 - Matrix theme :)\n 4 - Gold theme\n X - Default theme",
  308. +                    IDA_TEXT5,3,176,283,48
  309. +END
  310. +
  311. +IDD_MAINBOX DIALOG  0, 0, 300, 252
  312. +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
  313. +CAPTION "PuTTY Configuration"
  314. +CLASS "PuTTYConfigBox"
  315. +FONT 8, "MS Shell Dlg"
  316. +BEGIN
  317. +END
  318. +
  319. +IDD_LOGBOX DIALOGEX 100, 20, 300, 118
  320. +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
  321. +    WS_SYSMENU
  322. +CAPTION "PuTTY Event Log"
  323. +FONT 8, "MS Shell Dlg", 0, 0, 0x0
  324. +BEGIN
  325. +    DEFPUSHBUTTON   "&Close",IDOK,135,102,44,14
  326. +    PUSHBUTTON      "C&opy",IDN_COPY,81,102,44,14
  327. +    LISTBOX         IDN_LIST,3,3,294,95,LBS_HASSTRINGS | LBS_USETABSTOPS |
  328. +                    LBS_EXTENDEDSEL | WS_VSCROLL
  329. +END
  330. +
  331. +IDD_LICENCEBOX DIALOGEX 50, 50, 226, 263
  332. +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
  333. +    WS_SYSMENU
  334. +CAPTION "PuTTY Licence"
  335. +FONT 8, "MS Shell Dlg", 0, 0, 0x0
  336. +BEGIN
  337. +    DEFPUSHBUTTON   "OK",IDOK,98,243,44,14
  338. +    LTEXT           "Copyright © 1997-2012 Simon Tatham",1000,10,10,206,8
  339. +    LTEXT           "Portions copyright Robert de Bath, Joris van Rantwijk, Delian",
  340. +                    1001,10,26,206,8
  341. +    LTEXT           "Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas",
  342. +                    1002,10,34,206,8
  343. +    LTEXT           "Barry, Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa,",
  344. +                    1003,10,42,206,8
  345. +    LTEXT           "Markus Kuhn, Colin Watson, and CORE SDI S.A.",1004,10,
  346. +                    50,206,8
  347. +    LTEXT           "Permission is hereby granted, free of charge, to any person",
  348. +                    1005,10,66,206,8
  349. +    LTEXT           "obtaining a copy of this software and associated documentation",
  350. +                    1006,10,74,206,8
  351. +    LTEXT           "files (the ""Software""), to deal in the Software without restriction,",
  352. +                    1007,10,82,206,8
  353. +    LTEXT           "including without limitation the rights to use, copy, modify, merge,",
  354. +                    1008,10,90,206,8
  355. +    LTEXT           "publish, distribute, sublicense, and/or sell copies of the Software,",
  356. +                    1009,10,98,206,8
  357. +    LTEXT           "and to permit persons to whom the Software is furnished to do so,",
  358. +                    1010,10,106,206,8
  359. +    LTEXT           "subject to the following conditions:",1011,10,114,206,8
  360. +    LTEXT           "The above copyright notice and this permission notice shall be",
  361. +                    1012,10,130,206,8
  362. +    LTEXT           "included in all copies or substantial portions of the Software.",
  363. +                    1013,10,138,206,8
  364. +    LTEXT           "THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT",1014,10,
  365. +                    154,206,8
  366. +    LTEXT           "WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,",1015,10,162,
  367. +                    206,8
  368. +    LTEXT           "INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF",1016,10,
  369. +                    170,206,8
  370. +    LTEXT           "MERCHANTABILITY, FITNESS FOR A PARTICULAR",1017,10,178,
  371. +                    206,8
  372. +    LTEXT           "PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE",
  373. +                    1018,10,186,206,8
  374. +    LTEXT           "COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES",
  375. +                    1019,10,194,206,8
  376. +    LTEXT           "OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,",
  377. +                    1020,10,202,206,8
  378. +    LTEXT           "TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN",1021,10,
  379. +                    210,206,8
  380. +    LTEXT           "CONNECTION WITH THE SOFTWARE OR THE USE OR",1022,10,218,
  381. +                    206,8
  382. +    LTEXT           "OTHER DEALINGS IN THE SOFTWARE.",1023,10,226,206,8
  383. +END
  384. +
  385. +
  386. +/////////////////////////////////////////////////////////////////////////////
  387. +//
  388. +// Version
  389. +//
  390. +
  391. +VS_VERSION_INFO VERSIONINFO
  392. + FILEVERSION 0,62,1,0
  393. + PRODUCTVERSION 0,62,1,0
  394. + FILEFLAGSMASK 0x3L
  395. +#ifdef _DEBUG
  396. + FILEFLAGS 0x1L
  397. +#else
  398. + FILEFLAGS 0x0L
  399. +#endif
  400. + FILEOS 0x4L
  401. + FILETYPE 0x1L
  402. + FILESUBTYPE 0x0L
  403. +BEGIN
  404. +    BLOCK "StringFileInfo"
  405. +    BEGIN
  406. +        BLOCK "080904b0"
  407. +        BEGIN
  408. +            VALUE "Comments", "Modified by Piroi Ninel for the GNS3 project."
  409. +            VALUE "CompanyName", "Simon Tatham"
  410. +            VALUE "FileDescription", "SSH, Telnet and Rlogin client, GNS3 Build"
  411. +            VALUE "FileVersion", "Release 0.62.1, GNS3 Build"
  412. +            VALUE "InternalName", "PuTTY"
  413. +            VALUE "LegalCopyright", "Copyright © 1997-2012 Simon Tatham."
  414. +            VALUE "OriginalFilename", "PuTTY"
  415. +            VALUE "ProductName", "PuTTY suite"
  416. +            VALUE "ProductVersion", "Release 0.62.1, GNS3 Build"
  417. +        END
  418. +    END
  419. +    BLOCK "VarFileInfo"
  420. +    BEGIN
  421. +        VALUE "Translation", 0x809, 1200
  422. +    END
  423. +END
  424. +
  425. +
  426. +/////////////////////////////////////////////////////////////////////////////
  427. +//
  428. +// RT_MANIFEST
  429. +//
  430. +
  431. +1                       RT_MANIFEST             "putty.mft"
  432. +
  433. +#ifdef APSTUDIO_INVOKED
  434. +/////////////////////////////////////////////////////////////////////////////
  435. +//
  436. +// TEXTINCLUDE
  437. +//
  438. +
  439. +1 TEXTINCLUDE
  440. +BEGIN
  441. +    "resource.h\0"
  442. +END
  443. +
  444. +2 TEXTINCLUDE
  445. +BEGIN
  446. +    "#include ""rcstuff.h""\r\n"
  447. +    "#include ""win_res.h""\r\n"
  448. +    "\0"
  449. +END
  450. +
  451. +3 TEXTINCLUDE
  452. +BEGIN
  453. +    "\r\n"
  454. +    "\0"
  455. +END
  456. +
  457. +#endif    // APSTUDIO_INVOKED
  458. +
  459. +
  460. +/////////////////////////////////////////////////////////////////////////////
  461. +//
  462. +// DESIGNINFO
  463. +//
  464. +
  465. +#ifdef APSTUDIO_INVOKED
  466. +GUIDELINES DESIGNINFO
  467. +BEGIN
  468. +    IDD_ABOUTBOX, DIALOG
  469. +    BEGIN
  470. +        BOTTOMMARGIN, 317
  471. +    END
  472. +END
  473. +#endif    // APSTUDIO_INVOKED
  474. +
  475. +#endif    // English (U.S.) resources
  476. +/////////////////////////////////////////////////////////////////////////////
  477. +
  478. +
  479. +
  480. +#ifndef APSTUDIO_INVOKED
  481. +/////////////////////////////////////////////////////////////////////////////
  482. +//
  483. +// Generated from the TEXTINCLUDE 3 resource.
  484. +//
  485.  
  486. -#define APPNAME "PuTTY"
  487. -#define APPDESC "SSH, Telnet and Rlogin client"
  488.  
  489. -#include "win_res.rc2"
  490. +/////////////////////////////////////////////////////////////////////////////
  491. +#endif    // not APSTUDIO_INVOKED
  492.  
  493. -#ifndef NO_MANIFESTS
  494. -1 RT_MANIFEST "putty.mft"
  495. -#endif /* NO_MANIFESTS */
  496. diff -rup putty-src-orig\WINDOWS\VERSION.RC2 putty-src\WINDOWS\VERSION.RC2
  497. --- putty-src-orig\WINDOWS\VERSION.RC2  Sat Dec 10 12:08:10 2011
  498. +++ putty-src\WINDOWS\VERSION.RC2   Mon Jun 18 22:10:39 2012
  499. @@ -79,7 +79,7 @@
  500.  
  501.  /* We can't reliably get the same date and time as version.c, so
  502.   * we won't bother trying. */
  503. -#define VERSION_TEXT "Unidentified build"
  504. +#define VERSION_TEXT "0.62.1 GNS3 Build"
  505.  #define BINARY_VERSION 0,0,0,0
  506.  
  507.  #endif
  508. diff -rup putty-src-orig\WINDOWS\WIN_RES.H putty-src\WINDOWS\WIN_RES.H
  509. --- putty-src-orig\WINDOWS\WIN_RES.H    Sun Apr 23 19:26:04 2006
  510. +++ putty-src\WINDOWS\WIN_RES.H Fri Jun 22 20:10:56 2012
  511. @@ -23,6 +23,7 @@
  512.  #define IDA_TEXT2       1004
  513.  #define IDA_LICENCE     1005
  514.  #define IDA_WEB         1006
  515. +#define IDA_GNS3_WEB    1007
  516.  
  517.  #define IDC_TAB         1001
  518.  #define IDC_TABSTATIC1  1002
  519. diff -rup putty-src-orig\WINDOWS\WIN_RES.RC2 putty-src\WINDOWS\WIN_RES.RC2
  520. --- putty-src-orig\WINDOWS\WIN_RES.RC2  Wed Jan 05 12:01:00 2011
  521. +++ putty-src\WINDOWS\WIN_RES.RC2   Mon May 07 22:28:03 2012
  522. @@ -25,7 +25,7 @@ BEGIN
  523.      PUSHBUTTON "View &Licence", IDA_LICENCE, 6, 52, 70, 14
  524.      PUSHBUTTON "Visit &Web Site", IDA_WEB, 84, 52, 70, 14
  525.      CTEXT "PuTTY", IDA_TEXT1, 10, 6, 194, 8
  526. -    CTEXT "", IDA_VERSION, 10, 16, 194, 16
  527. +    CTEXT "0.62.1 GNS3 Build", IDA_VERSION, 10, 16, 194, 16
  528.      CTEXT "\251 1997-2011 Simon Tatham. All rights reserved.",
  529.            IDA_TEXT2, 10, 34, 194, 16
  530.  END
  531. diff -rup putty-src-orig\WINDOWS\WINDLG.C putty-src\WINDOWS\WINDLG.C
  532. --- putty-src-orig\WINDOWS\WINDLG.C Wed Dec 29 14:11:26 2010
  533. +++ putty-src\WINDOWS\WINDLG.C  Fri Jun 22 21:33:07 2012
  534. @@ -220,6 +220,14 @@ static int CALLBACK AboutProc(HWND hwnd,
  535.              "http://www.chiark.greenend.org.uk/~sgtatham/putty/",
  536.              0, 0, SW_SHOWDEFAULT);
  537.         return 0;
  538. +   /***************Patch GNS3 PuTTY *******************/
  539. +     case IDA_GNS3_WEB:
  540. +       /* Load web browser */
  541. +       ShellExecute(hwnd, "open",
  542. +            "http://www.gns3.net/putty/",
  543. +            0, 0, SW_SHOWDEFAULT);
  544. +       return 0;
  545. +   /***************************************************/
  546.     }
  547.     return 0;
  548.        case WM_CLOSE:
  549. diff -rup putty-src-orig\WINDOWS\WINDOW.C putty-src\WINDOWS\WINDOW.C
  550. --- putty-src-orig\WINDOWS\WINDOW.C Sat Jul 16 12:26:20 2011
  551. +++ putty-src\WINDOWS\WINDOW.C  Sat Jun 30 16:07:49 2012
  552. @@ -34,6 +34,9 @@
  553.   * attempt to store information in them. Hence all these identifiers have
  554.   * the low 4 bits clear. Also, identifiers should < 0xF000. */
  555.  
  556. +/***************Patch GNS3 PuTTY *******************/
  557. +#define IDM_TOPMOST   0x0210
  558. +/***************************************************/
  559.  #define IDM_SHOWLOG   0x0010
  560.  #define IDM_NEWSESS   0x0020
  561.  #define IDM_DUPSESS   0x0030
  562. @@ -76,6 +79,10 @@
  563.  #define WHEEL_DELTA 120
  564.  #endif
  565.  
  566. +/***************Patch GNS3 PuTTY *******************/
  567. +HANDLE hThread1;
  568. +/***************************************************/
  569. +
  570.  static Mouse_Button translate_button(Mouse_Button button);
  571.  static LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
  572.  static int TranslateKey(UINT message, WPARAM wParam, LPARAM lParam,
  573. @@ -94,6 +101,9 @@ static int is_full_screen(void);
  574.  static void make_full_screen(void);
  575.  static void clear_full_screen(void);
  576.  static void flip_full_screen(void);
  577. +/***************Patch GNS3 PuTTY *******************/
  578. +static void flip_top_most(void);
  579. +/***************************************************/
  580.  static int process_clipdata(HGLOBAL clipdata, int unicode);
  581.  
  582.  /* Window layout information */
  583. @@ -236,60 +246,101 @@ static void start_backend(void)
  584.                cfg.host, cfg.port, &realhost, cfg.tcp_nodelay,
  585.                cfg.tcp_keepalives);
  586.      back->provide_logctx(backhandle, logctx);
  587. +   /***************Patch GNS3 PuTTY *******************/
  588.      if (error) {
  589. -   char *str = dupprintf("%s Error", appname);
  590. -   sprintf(msg, "Unable to open connection to\n"
  591. -       "%.800s\n" "%s", cfg_dest(&cfg), error);
  592. -   MessageBox(NULL, msg, str, MB_ICONERROR | MB_OK);
  593. -   sfree(str);
  594. -   exit(0);
  595. -    }
  596. -    window_name = icon_name = NULL;
  597. -    if (*cfg.wintitle) {
  598. -   title = cfg.wintitle;
  599. -    } else {
  600. -   sprintf(msg, "%s - %s", realhost, appname);
  601. -   title = msg;
  602. -    }
  603. -    sfree(realhost);
  604. -    set_title(NULL, title);
  605. -    set_icon(NULL, title);
  606. +       char *str = dupprintf("%s Error", appname);
  607. +  
  608. +       if(cfg.no_annoying_msgbox) {
  609. +           sprintf(msg, "Unable to open: %.800s", cfg_dest(&cfg));
  610. +           set_title_plus_error(NULL, msg);
  611. +           logevent(NULL, msg);
  612. +       }else{
  613. +           sprintf(msg, "Unable to open connection to\n%.800s\n%s", cfg_dest(&cfg), error);
  614. +           MessageBox(NULL, msg, str, MB_ICONERROR | MB_OK);
  615. +           exit(0);
  616. +       }
  617.  
  618. -    /*
  619. -     * Connect the terminal to the backend for resize purposes.
  620. -     */
  621. -    term_provide_resize_fn(term, back->size, backhandle);
  622. +       sfree(str);
  623. +       must_close_session = TRUE;
  624. +       session_closed = TRUE;
  625.  
  626. -    /*
  627. -     * Set up a line discipline.
  628. -     */
  629. -    ldisc = ldisc_create(&cfg, term, back, backhandle, NULL);
  630. +   } else {
  631. +  
  632. +       window_name = icon_name = NULL;
  633. +       if (*cfg.wintitle) {
  634. +       title = cfg.wintitle;
  635. +       } else {
  636. +       sprintf(msg, "%s - %s", realhost, appname);
  637. +       title = msg;
  638. +       }
  639. +       sfree(realhost);
  640. +       set_title(NULL, title);
  641. +       set_icon(NULL, title);
  642.  
  643. -    /*
  644. -     * Destroy the Restart Session menu item. (This will return
  645. -     * failure if it's already absent, as it will be the very first
  646. -     * time we call this function. We ignore that, because as long
  647. -     * as the menu item ends up not being there, we don't care
  648. -     * whether it was us who removed it or not!)
  649. -     */
  650. -    for (i = 0; i < lenof(popup_menus); i++) {
  651. -   DeleteMenu(popup_menus[i].menu, IDM_RESTART, MF_BYCOMMAND);
  652. -    }
  653. +       /*
  654. +        * Connect the terminal to the backend for resize purposes.
  655. +        */
  656. +       term_provide_resize_fn(term, back->size, backhandle);
  657.  
  658. -    must_close_session = FALSE;
  659. -    session_closed = FALSE;
  660. +       /*
  661. +        * Set up a line discipline.
  662. +        */
  663. +       ldisc = ldisc_create(&cfg, term, back, backhandle, NULL);
  664. +
  665. +       /*
  666. +        * Destroy the Restart Session menu item. (This will return
  667. +        * failure if it's already absent, as it will be the very first
  668. +        * time we call this function. We ignore that, because as long
  669. +        * as the menu item ends up not being there, we don't care
  670. +        * whether it was us who removed it or not!)
  671. +        */
  672. +       for (i = 0; i < lenof(popup_menus); i++) {
  673. +       DeleteMenu(popup_menus[i].menu, IDM_RESTART, MF_BYCOMMAND);
  674. +       }
  675. +
  676. +       must_close_session = FALSE;
  677. +       session_closed = FALSE;
  678. +   }
  679. +   /**************************************************/
  680. +}
  681. +
  682. +/***************Patch GNS3 PuTTY *******************/
  683. +void WINAPI TimerRoutine(void)
  684. +{
  685. +   int i;
  686. +   char morestuff[255], title[155];
  687. +   GetWindowText(hwnd, title, sizeof(title));
  688. +   for (i = cfg.reconnect_after_error; i >= 1; i--) {
  689. +       sprintf(morestuff, "%s - [Restart in %ds]", title, i);
  690. +       set_title(NULL, morestuff);
  691. +       set_icon(NULL, morestuff);
  692. +       Sleep(1000);
  693. +       }
  694. +
  695. +   sprintf(morestuff, "%s - [Restarting...]", title, i);
  696. +   set_title(NULL, morestuff);
  697. +   set_icon(NULL, morestuff);
  698. +   Sleep(250);
  699. +
  700. +   PostMessage(hwnd, IDM_RESTART, 0, 0);
  701.  }
  702. +/**************************************************/
  703.  
  704.  static void close_session(void)
  705.  {
  706. -    char morestuff[100];
  707.      int i;
  708. +   /***************Patch GNS3 PuTTY *******************/
  709. +    char morestuff[255], title[155];
  710.  
  711. -    session_closed = TRUE;
  712. -    sprintf(morestuff, "%.70s (inactive)", appname);
  713. -    set_icon(NULL, morestuff);
  714. -    set_title(NULL, morestuff);
  715. +   session_closed = TRUE;
  716. +   GetWindowText(hwnd, title, sizeof(title));
  717. +    sprintf(morestuff, "%s - (inactive)", title);
  718.  
  719. +    set_icon(NULL, morestuff);
  720. +   set_title(NULL, morestuff);
  721. +   //SetSysColors(2, COLOR_WINDOW, RGB(0x255, 0x0, 0x0));
  722. +   /***************************************************/
  723. +  
  724.      if (ldisc) {
  725.     ldisc_free(ldisc);
  726.     ldisc = NULL;
  727. @@ -320,6 +371,11 @@ static void close_session(void)
  728.       * window title change above.
  729.       */
  730.      must_close_session = FALSE;
  731. +   /***************Patch GNS3 PuTTY *******************/  
  732. +   if(cfg.reconnect_after_error) {
  733. +       hThread1 = CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE)TimerRoutine, NULL, 0, NULL);
  734. +   }
  735. +   /***************************************************/
  736.  }
  737.  
  738.  int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)
  739. @@ -795,6 +851,9 @@ int WINAPI WinMain(HINSTANCE inst, HINST
  740.         AppendMenu(m, MF_SEPARATOR, 0, 0);
  741.         AppendMenu(m, (cfg.resize_action == RESIZE_DISABLED) ?
  742.                MF_GRAYED : MF_ENABLED, IDM_FULLSCREEN, "&Full Screen");
  743. +       /***************Patch GNS3 PuTTY *******************/
  744. +       AppendMenu(m, MF_ENABLED, IDM_TOPMOST, "Alwa&ys on Top");
  745. +       /***************************************************/
  746.         AppendMenu(m, MF_SEPARATOR, 0, 0);
  747.         if (has_help())
  748.         AppendMenu(m, MF_ENABLED, IDM_HELP, "&Help");
  749. @@ -1082,8 +1141,16 @@ void connection_fatal(void *frontend, ch
  750.      va_start(ap, fmt);
  751.      stuff = dupvprintf(fmt, ap);
  752.      va_end(ap);
  753. -    sprintf(morestuff, "%.70s Fatal Error", appname);
  754. -    MessageBox(hwnd, stuff, morestuff, MB_ICONERROR | MB_OK);
  755. +
  756. +   /***************Patch GNS3 PuTTY *******************/
  757. +   if(cfg.no_annoying_msgbox) {
  758. +       set_title_plus_error(NULL, stuff);
  759. +   }else{
  760. +       sprintf(morestuff, "%.70s Fatal Error", appname);
  761. +       MessageBox(hwnd, stuff, morestuff, MB_ICONERROR | MB_OK);
  762. +   }
  763. +   /***************************************************/
  764. +
  765.      sfree(stuff);
  766.  
  767.      if (cfg.close_on_exit == FORCE_ON)
  768. @@ -1969,9 +2036,16 @@ void notify_remote_exit(void *fe)
  769.         /* exitcode == INT_MAX indicates that the connection was closed
  770.          * by a fatal error, so an error box will be coming our way and
  771.          * we should not generate this informational one. */
  772. -       if (exitcode != INT_MAX)
  773. -       MessageBox(hwnd, "Connection closed by remote host",
  774. -              appname, MB_OK | MB_ICONINFORMATION);
  775. +       /***************Patch GNS3 PuTTY *******************/
  776. +       if (exitcode != INT_MAX) {
  777. +           if(cfg.no_annoying_msgbox) {
  778. +               set_title_plus_error(NULL, "Connection closed by remote host");
  779. +               logevent(NULL, "Connection closed by remote host");
  780. +           }else{
  781. +               MessageBox(hwnd, "Connection closed by remote host", appname, MB_OK | MB_ICONINFORMATION);
  782. +           }
  783. +       }
  784. +       /***************************************************/
  785.     }
  786.      }
  787.  }
  788. @@ -2027,6 +2101,18 @@ static LRESULT CALLBACK WndProc(HWND hwn
  789.     show_mouseptr(1);
  790.     PostQuitMessage(0);
  791.     return 0;
  792. +   /***************Patch GNS3 PuTTY *******************/
  793. +     case IDM_RESTART:
  794. +       if (!back) {
  795. +           char morestuff[200];
  796. +           sprintf(morestuff, "----- Session auto-restarted on error (every %ds) -----", cfg.reconnect_after_error);
  797. +           logevent(NULL, morestuff);
  798. +
  799. +           if (cfg.protocol != PROT_SERIAL) { term_pwron(term, FALSE); }
  800. +           start_backend();
  801. +       }
  802. +       break;
  803. +   /***************************************************/
  804.        case WM_INITMENUPOPUP:
  805.     if ((HMENU)wParam == savedsess_menu) {
  806.         /* About to pop up Saved Sessions sub-menu.
  807. @@ -2116,11 +2202,13 @@ static LRESULT CALLBACK WndProc(HWND hwn
  808.         break;
  809.       case IDM_RESTART:
  810.         if (!back) {
  811. -       logevent(NULL, "----- Session restarted -----");
  812. -       term_pwron(term, FALSE);
  813. +       /***************Patch GNS3 PuTTY *******************/
  814. +       logevent(NULL, "----- Session restarted manually -----");
  815. +       if (hThread1 != NULL) TerminateThread(hThread1, 0);
  816. +       if (cfg.protocol != PROT_SERIAL) { term_pwron(term, FALSE); }
  817. +       /***************************************************/
  818.         start_backend();
  819.         }
  820. -
  821.         break;
  822.       case IDM_RECONF:
  823.         {
  824. @@ -2320,6 +2408,11 @@ static LRESULT CALLBACK WndProc(HWND hwn
  825.       case IDM_FULLSCREEN:
  826.         flip_full_screen();
  827.         break;
  828. +   /***************Patch GNS3 PuTTY *******************/
  829. +     case IDM_TOPMOST:
  830. +       flip_top_most();
  831. +       break;
  832. +   /***************************************************/
  833.       default:
  834.         if (wParam >= IDM_SAVED_MIN && wParam < IDM_SAVED_MAX) {
  835.         SendMessage(hwnd, WM_SYSCOMMAND, IDM_SAVEDSESS, wParam);
  836. @@ -4527,6 +4620,31 @@ void set_title(void *frontend, char *tit
  837.     SetWindowText(hwnd, title);
  838.  }
  839.  
  840. +/***************Patch GNS3 PuTTY *******************/
  841. +void set_title_plus_error(void *frontend, char *error)
  842. +{
  843. +    char title[512];
  844. +  
  845. +   if (strlen(cfg.wintitle) >= 1) {
  846. +       if (cfg.protocol == PROT_SERIAL) {
  847. +           sprintf(title, "Serial Error (%s) - %s!\0", cfg.wintitle, error); //serial with title
  848. +       } else {
  849. +           sprintf(title, "%s:%d (%s) - %s!\0", cfg.host, cfg.port, cfg.wintitle, error); //telnet with title
  850. +       }
  851. +   } else {
  852. +       if (cfg.protocol == PROT_SERIAL) {
  853. +           sprintf(title, "Serial Error - %s!\0", error); //serial without title
  854. +       } else {
  855. +           sprintf(title, "%s:%d - %s!\0",      cfg.host, cfg.port, error); //telnet without title
  856. +       }
  857. +   }
  858. + sfree(window_name);
  859. + window_name = snewn(1 + strlen(title), char);
  860. + strcpy(window_name, title);
  861. + SetWindowText(hwnd, title);
  862. +}
  863. +/***************************************************/
  864. +
  865.  void set_icon(void *frontend, char *title)
  866.  {
  867.      sfree(icon_name);
  868. @@ -5504,6 +5622,24 @@ static void flip_full_screen()
  869.     ShowWindow(hwnd, SW_MAXIMIZE);
  870.      }
  871.  }
  872. +
  873. +/***************Patch GNS3 PuTTY *******************/
  874. +/*
  875. + * Toggle always on top mode.
  876. + */
  877. +static void flip_top_most()
  878. +{
  879. +int i;
  880. +   if (!(GetWindowLong(hwnd, GWL_EXSTYLE) & WS_EX_TOPMOST)){
  881. +       SetWindowPos(hwnd, HWND_TOPMOST,   0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
  882. +       for (i = 0; i < lenof(popup_menus); i++) CheckMenuItem(popup_menus[i].menu, IDM_TOPMOST, MF_CHECKED); //Tick the menu item in the System and context menus.
  883. +    }
  884. +   else{
  885. +       SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
  886. +       for (i = 0; i < lenof(popup_menus); i++) CheckMenuItem(popup_menus[i].menu, IDM_TOPMOST, MF_UNCHECKED); //Untick the menu item in the System and context menus.
  887. +   }
  888. +}
  889. +/***************************************************/
  890.  
  891.  void frontend_keypress(void *handle)
  892.  {
  893. diff -rup putty-src-orig\WINDOWS\WINPGNTC.C putty-src\WINDOWS\WINPGNTC.C
  894. --- putty-src-orig\WINDOWS\WINPGNTC.C   Wed Jun 08 21:47:08 2011
  895. +++ putty-src\WINDOWS\WINPGNTC.C    Wed Jun 13 22:16:15 2012
  896. @@ -86,10 +86,13 @@ DECL_WINDOWS_FUNCTION(static, BOOL, Init
  897.               (PSECURITY_DESCRIPTOR, DWORD));
  898.  DECL_WINDOWS_FUNCTION(static, BOOL, SetSecurityDescriptorOwner,
  899.               (PSECURITY_DESCRIPTOR, PSID, BOOL));
  900. -DECL_WINDOWS_FUNCTION(, DWORD, GetSecurityInfo,
  901. +/***************Patch GNS3 PuTTY *******************/
  902. +// the word "static" was missing!
  903. +DECL_WINDOWS_FUNCTION(static, DWORD, GetSecurityInfo,
  904.               (HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
  905.                PSID *, PSID *, PACL *, PACL *,
  906.                PSECURITY_DESCRIPTOR *));
  907. +/***************************************************/
  908.  int init_advapi(void)
  909.  {
  910.      advapi = load_system32_dll("advapi32.dll");
  911. @@ -100,6 +103,7 @@ int init_advapi(void)
  912.     GET_WINDOWS_FUNCTION(advapi, InitializeSecurityDescriptor) &&
  913.     GET_WINDOWS_FUNCTION(advapi, SetSecurityDescriptorOwner);
  914.  }
  915. +
  916.  
  917.  PSID get_user_sid(void)
  918.  {
  919. diff -rup putty-src-orig\WINDOWS\WINSER.C putty-src\WINDOWS\WINSER.C
  920. --- putty-src-orig\WINDOWS\WINSER.C Tue Aug 10 18:21:26 2010
  921. +++ putty-src\WINDOWS\WINSER.C  Tue Jun 19 23:54:04 2012
  922. @@ -276,6 +276,14 @@ static const char *serial_init(void *fro
  923.       */
  924.      update_specials_menu(serial->frontend);
  925.  
  926. +  
  927. +   /***************Patch GNS3 PuTTY *******************/
  928. +   if (cfg->push_one_enter) { 
  929. +       logevent(serial->frontend, "*** Press a '\\r' inside the serial port/pipe ***");
  930. +       serial->bufsize = handle_write(serial->out, "\r", 1); //press a enter on the serial
  931. +   }
  932. +   /***************************************************/
  933. +
  934.      return NULL;
  935.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement