SHOW:
|
|
- or go back to the newest paste.
| 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 Thu Jun 21 21:23:55 2012 |
| 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 dead session on error after x seconds |
| 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:\dir\14.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:\dir\14.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 Thu Jun 21 21:26:39 2012 |
| 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 dead session after:", 'r', 15, |
| 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 Thu Jun 21 21:31:11 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 | - gppi(sesskey, "TermHeight", 24, &cfg->height); | |
| 192 | + /***************Patch GNS3 PuTTY *******************/ | |
| 193 | + gppi(sesskey, "TermWidth", 110, &cfg->width); //default was 80 | |
| 194 | + gppi(sesskey, "TermHeight", 29, &cfg->height); //default was 24 | |
| 195 | + gppi(sesskey, "GNS3PushOneEnter", 0, &cfg->push_one_enter); //default is unused | |
| 196 | + gppi(sesskey, "GNS3NoMsgBoxError", 0, &cfg->no_annoying_msgbox); //default is unused | |
| 197 | + gppi(sesskey, "GNS3AutoReconnect", 0, &cfg->reconnect_after_error); //default is unused | |
| 198 | + /***************************************************/ | |
| 199 | gppfont(sesskey, "Font", &cfg->font); | |
| 200 | gppi(sesskey, "FontQuality", FQ_DEFAULT, &cfg->font_quality); | |
| 201 | gppi(sesskey, "FontVTMode", VT_UNICODE, (int *) &cfg->vtmode); | |
| 202 | diff -rup putty-src-orig\TELNET.C putty-src\TELNET.C | |
| 203 | --- putty-src-orig\TELNET.C Mon Nov 24 17:51:42 2008 | |
| 204 | +++ putty-src\TELNET.C Mon Jun 18 20:10:54 2012 | |
| 205 | @@ -765,6 +765,16 @@ static const char *telnet_init(void *fro | |
| 206 | */ | |
| 207 | update_specials_menu(telnet->frontend); | |
| 208 | ||
| 209 | + /***************Patch GNS3 PuTTY *******************/ | |
| 210 | + /* | |
| 211 | + * Push a enter key inside the telnet socket | |
| 212 | + */ | |
| 213 | + if (telnet->cfg.push_one_enter) {
| |
| 214 | + logevent(telnet->frontend, "client:\t *** Press a '\\r' inside the Telnet socket ***"); | |
| 215 | + telnet->bufsize = sk_write(telnet->s, "\r", 1); | |
| 216 | + } | |
| 217 | + /***************************************************/ | |
| 218 | + | |
| 219 | /* | |
| 220 | * loghost overrides realhost, if specified. | |
| 221 | */ | |
| 222 | diff -rup putty-src-orig\VERSION.C putty-src\VERSION.C | |
| 223 | --- putty-src-orig\VERSION.C Sat Nov 26 17:45:52 2011 | |
| 224 | - | +++ putty-src\VERSION.C Thu Jun 21 22:04:46 2012 |
| 224 | + | +++ putty-src\VERSION.C Fri Jun 22 20:46:10 2012 |
| 225 | @@ -34,9 +34,11 @@ char ver[] = "Custom build r" STR(SVN_RE | |
| 226 | char sshver[] = "PuTTY-Custom-r" STR(SVN_REV); | |
| 227 | ||
| 228 | #else | |
| 229 | - | |
| 230 | -char ver[] = "Unidentified build, " __DATE__ " " __TIME__; | |
| 231 | -char sshver[] = "PuTTY-Local: " __DATE__ " " __TIME__; | |
| 232 | +/***************Patch GNS3 PuTTY *******************/ | |
| 233 | - | +char ver[] = "GNS3 build 0.6.2, " __DATE__ " " __TIME__; |
| 233 | + | +char ver[] = "GNS3 build 0.62.1, " __DATE__ " " __TIME__; |
| 234 | - | +//char ver[] = "GNS3 build 0.6.2 [Standalone] , " __DATE__ " " __TIME__; |
| 234 | + | +//char ver[] = "GNS3 build 0.62.1 [Standalone] , " __DATE__ " " __TIME__; |
| 235 | - | +char sshver[] = "PuTTY-GNS3-0.6.2"; |
| 235 | + | +char sshver[] = "PuTTY-GNS3-0.62.1"; |
| 236 | +/***************************************************/ | |
| 237 | ||
| 238 | #endif | |
| 239 | ||
| 240 | diff -rup putty-src-orig\WINDOWS\PUTTY.RC putty-src\WINDOWS\Putty.rc | |
| 241 | --- putty-src-orig\WINDOWS\PUTTY.RC Tue Oct 04 15:13:28 2005 | |
| 242 | - | +++ putty-src\WINDOWS\Putty.rc Thu Jun 21 21:47:13 2012 |
| 242 | + | +++ putty-src\WINDOWS\Putty.rc Fri Jun 22 20:42:26 2012 |
| 243 | - | @@ -1,10 +1,245 @@ |
| 243 | + | @@ -1,10 +1,246 @@ |
| 244 | +// Microsoft Visual C++ generated resource script. | |
| 245 | +// | |
| 246 | +#include "resource.h" | |
| 247 | + | |
| 248 | +#define APSTUDIO_READONLY_SYMBOLS | |
| 249 | +///////////////////////////////////////////////////////////////////////////// | |
| 250 | +// | |
| 251 | +// Generated from the TEXTINCLUDE 2 resource. | |
| 252 | +// | |
| 253 | #include "rcstuff.h" | |
| 254 | +#include "win_res.h" | |
| 255 | + | |
| 256 | +///////////////////////////////////////////////////////////////////////////// | |
| 257 | +#undef APSTUDIO_READONLY_SYMBOLS | |
| 258 | + | |
| 259 | +///////////////////////////////////////////////////////////////////////////// | |
| 260 | +// English (U.S.) resources | |
| 261 | + | |
| 262 | +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) | |
| 263 | +#ifdef _WIN32 | |
| 264 | +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US | |
| 265 | +#pragma code_page(1252) | |
| 266 | +#endif //_WIN32 | |
| 267 | + | |
| 268 | +///////////////////////////////////////////////////////////////////////////// | |
| 269 | +// | |
| 270 | +// Icon | |
| 271 | +// | |
| 272 | + | |
| 273 | +// Icon with lowest ID value placed first to ensure application icon | |
| 274 | +// remains consistent on all systems. | |
| 275 | +IDI_MAINICON ICON "putty.ico" | |
| 276 | +IDI_CFGICON ICON "puttycfg.ico" | |
| 277 | + | |
| 278 | +///////////////////////////////////////////////////////////////////////////// | |
| 279 | +// | |
| 280 | +// Dialog | |
| 281 | +// | |
| 282 | + | |
| 283 | +IDD_ABOUTBOX DIALOGEX 140, 40, 309, 321 | |
| 284 | +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | | |
| 285 | + WS_SYSMENU | |
| 286 | +FONT 8, "MS Shell Dlg", 0, 0, 0x0 | |
| 287 | +BEGIN | |
| 288 | - | + DEFPUSHBUTTON "&Close",IDOK,243,303,48,14 |
| 288 | + | + DEFPUSHBUTTON "&Close",IDOK,253,303,48,14 |
| 289 | - | + PUSHBUTTON "View &Licence",IDA_LICENCE,11,303,70,14 |
| 289 | + | + PUSHBUTTON "View &Licence",IDA_LICENCE,6,303,70,14 |
| 290 | - | + PUSHBUTTON "Visit &Web Site",IDA_WEB,123,303,70,14 |
| 290 | + | + PUSHBUTTON "Visit &PuTTY Site",IDA_WEB,89,303,70,14 |
| 291 | - | + CTEXT "PuTTY",IDA_TEXT1,33,2,244,9 |
| 291 | + | + PUSHBUTTON "Visit &GNS3 Site",IDA_GNS3_WEB,171,303,70,14 |
| 292 | + CTEXT "PuTTY",IDA_TEXT1,33,1,244,9 | |
| 293 | - | + IDA_TEXT2,49,278,197,19 |
| 293 | + | |
| 294 | + IDA_TEXT2,49,280,197,19 | |
| 295 | - | + LTEXT "Usage [new options]:\nex: putty -wt R1 -gns3 5 -skin 3 -log ""C:\\Logs_Dir""\n\n-wt ""Title Bar"" #Change the title bar from command line\n*Disable remote title", |
| 295 | + | |
| 296 | - | + IDA_TEXT3,4,24,283,42 |
| 296 | + | + 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", |
| 297 | - | + LTEXT " -gns3 <NR> #Advance Putty options tunned for GNS3 usage\n *Don't close the window when the connection is closed\n *Disable warning message before closing the window\n *Disable beeps (Irritating!)\n *Allow Alt+F4 to close the window", |
| 297 | + | + IDA_TEXT3,4,23,283,47 |
| 298 | - | + IDA_TEXT4,1,67,283,41 |
| 298 | + | + 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", |
| 299 | + IDA_TEXT4,1,74,283,41 | |
| 300 | - | + IDA_TEXT6,1,107,283,41 |
| 300 | + | |
| 301 | - | + LTEXT " *Automatically reconnect a telnet/serial session on error after <NR> seconds (NEW!)\n NR = Number of seconds to wait before restarting a dead telnet/serial session\n NR = 0 means no automatically restart!", |
| 301 | + | + IDA_TEXT6,1,114,283,41 |
| 302 | - | + IDA_TEXT9,2,139,283,26 |
| 302 | + | + 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!", |
| 303 | + IDA_TEXT9,2,147,283,26 | |
| 304 | - | + IDA_TEXT10,3,221,284,33 |
| 304 | + | |
| 305 | + IDA_TEXT10,3,228,284,33 | |
| 306 | - | + IDA_TEXT11,2,260,283,11 |
| 306 | + | |
| 307 | + IDA_TEXT11,2,265,283,11 | |
| 308 | - | + IDA_TEXT5,3,167,283,48 |
| 308 | + | |
| 309 | + IDA_TEXT5,3,176,283,48 | |
| 310 | +END | |
| 311 | + | |
| 312 | +IDD_MAINBOX DIALOG 0, 0, 300, 252 | |
| 313 | +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | |
| 314 | +CAPTION "PuTTY Configuration" | |
| 315 | +CLASS "PuTTYConfigBox" | |
| 316 | +FONT 8, "MS Shell Dlg" | |
| 317 | +BEGIN | |
| 318 | +END | |
| 319 | + | |
| 320 | +IDD_LOGBOX DIALOGEX 100, 20, 300, 118 | |
| 321 | +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | | |
| 322 | + WS_SYSMENU | |
| 323 | +CAPTION "PuTTY Event Log" | |
| 324 | +FONT 8, "MS Shell Dlg", 0, 0, 0x0 | |
| 325 | +BEGIN | |
| 326 | + DEFPUSHBUTTON "&Close",IDOK,135,102,44,14 | |
| 327 | + PUSHBUTTON "C&opy",IDN_COPY,81,102,44,14 | |
| 328 | + LISTBOX IDN_LIST,3,3,294,95,LBS_HASSTRINGS | LBS_USETABSTOPS | | |
| 329 | + LBS_EXTENDEDSEL | WS_VSCROLL | |
| 330 | +END | |
| 331 | + | |
| 332 | +IDD_LICENCEBOX DIALOG 50, 50, 226, 263 | |
| 333 | +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | |
| 334 | +CAPTION "PuTTY Licence" | |
| 335 | +FONT 8, "MS Shell Dlg" | |
| 336 | +BEGIN | |
| 337 | + DEFPUSHBUTTON "OK",IDOK,98,243,44,14 | |
| 338 | + LTEXT "Copyright © 1997-2011 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,6,2,1 | |
| 393 | + PRODUCTVERSION 0,6,2,1 | |
| 394 | + FILEFLAGSMASK 0xbL | |
| 395 | +#ifdef _DEBUG | |
| 396 | + FILEFLAGS 0x9L | |
| 397 | +#else | |
| 398 | + FILEFLAGS 0x8L | |
| 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 "CompanyName", "Simon Tatham" | |
| 409 | + VALUE "FileDescription", "SSH, Telnet and Rlogin client - GNS3 Build" | |
| 410 | + VALUE "FileVersion", "0.62.1 GNS3 Build" | |
| 411 | + VALUE "InternalName", "PuTTY" | |
| 412 | + VALUE "LegalCopyright", "Copyright © 1997-2011 Simon Tatham." | |
| 413 | + VALUE "OriginalFilename", "PuTTY" | |
| 414 | + VALUE "PrivateBuild", "0.62.1 GNS3 Build" | |
| 415 | + VALUE "ProductName", "PuTTY suite" | |
| 416 | + VALUE "ProductVersion", "0.62.1" | |
| 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\WINDOW.C Thu Jun 21 01:21:25 2012 |
| 521 | + | |
| 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 20:15:26 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://forum.gns3.net/topic5016.html", | |
| 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 Fri Jun 22 20:38:17 2012 | |
| 552 | @@ -34,6 +34,9 @@ | |
| 553 | - | @@ -236,60 +246,100 @@ static void start_backend(void) |
| 553 | + | |
| 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 | - | @@ -320,6 +370,11 @@ static void close_session(void) |
| 696 | + | |
| 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 | - | @@ -795,6 +850,9 @@ int WINAPI WinMain(HINSTANCE inst, HINST |
| 708 | + | |
| 709 | + char morestuff[255], title[155]; | |
| 710 | ||
| 711 | - session_closed = TRUE; | |
| 712 | - sprintf(morestuff, "%.70s (inactive)", appname); | |
| 713 | - | + AppendMenu(m, MF_ENABLED, IDM_TOPMOST, "Always on &Top"); |
| 713 | + | |
| 714 | - set_title(NULL, morestuff); | |
| 715 | + session_closed = TRUE; | |
| 716 | + GetWindowText(hwnd, title, sizeof(title)); | |
| 717 | + sprintf(morestuff, "%s - (inactive)", title); | |
| 718 | - | @@ -1082,8 +1140,16 @@ void connection_fatal(void *frontend, ch |
| 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 | - | @@ -1969,9 +2035,15 @@ void notify_remote_exit(void *fe) |
| 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, "Always on To&p"); | |
| 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 | - | @@ -2027,6 +2099,18 @@ static LRESULT CALLBACK WndProc(HWND hwn |
| 756 | + | |
| 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 | - | @@ -2116,11 +2200,13 @@ static LRESULT CALLBACK WndProc(HWND hwn |
| 775 | + | |
| 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 | - | @@ -2320,6 +2406,11 @@ static LRESULT CALLBACK WndProc(HWND hwn |
| 792 | + | |
| 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 | - | @@ -4527,6 +4618,31 @@ void set_title(void *frontend, char *tit |
| 804 | + | |
| 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 | - | @@ -5504,6 +5620,21 @@ static void flip_full_screen() |
| 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,21 @@ 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 | + if (!(GetWindowLong(hwnd, GWL_EXSTYLE) & WS_EX_TOPMOST)){
| |
| 880 | + SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); | |
| 881 | + } | |
| 882 | + else{
| |
| 883 | + SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); | |
| 884 | + } | |
| 885 | +} | |
| 886 | +/***************************************************/ | |
| 887 | ||
| 888 | void frontend_keypress(void *handle) | |
| 889 | {
| |
| 890 | diff -rup putty-src-orig\WINDOWS\WINPGNTC.C putty-src\WINDOWS\WINPGNTC.C | |
| 891 | --- putty-src-orig\WINDOWS\WINPGNTC.C Wed Jun 08 21:47:08 2011 | |
| 892 | +++ putty-src\WINDOWS\WINPGNTC.C Wed Jun 13 22:16:15 2012 | |
| 893 | @@ -86,10 +86,13 @@ DECL_WINDOWS_FUNCTION(static, BOOL, Init | |
| 894 | (PSECURITY_DESCRIPTOR, DWORD)); | |
| 895 | DECL_WINDOWS_FUNCTION(static, BOOL, SetSecurityDescriptorOwner, | |
| 896 | (PSECURITY_DESCRIPTOR, PSID, BOOL)); | |
| 897 | -DECL_WINDOWS_FUNCTION(, DWORD, GetSecurityInfo, | |
| 898 | +/***************Patch GNS3 PuTTY *******************/ | |
| 899 | +// the word "static" was missing! | |
| 900 | +DECL_WINDOWS_FUNCTION(static, DWORD, GetSecurityInfo, | |
| 901 | (HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, | |
| 902 | PSID *, PSID *, PACL *, PACL *, | |
| 903 | PSECURITY_DESCRIPTOR *)); | |
| 904 | +/***************************************************/ | |
| 905 | int init_advapi(void) | |
| 906 | {
| |
| 907 | advapi = load_system32_dll("advapi32.dll");
| |
| 908 | @@ -100,6 +103,7 @@ int init_advapi(void) | |
| 909 | GET_WINDOWS_FUNCTION(advapi, InitializeSecurityDescriptor) && | |
| 910 | GET_WINDOWS_FUNCTION(advapi, SetSecurityDescriptorOwner); | |
| 911 | } | |
| 912 | + | |
| 913 | ||
| 914 | PSID get_user_sid(void) | |
| 915 | {
| |
| 916 | diff -rup putty-src-orig\WINDOWS\WINSER.C putty-src\WINDOWS\WINSER.C | |
| 917 | --- putty-src-orig\WINDOWS\WINSER.C Tue Aug 10 18:21:26 2010 | |
| 918 | +++ putty-src\WINDOWS\WINSER.C Tue Jun 19 23:54:04 2012 | |
| 919 | @@ -276,6 +276,14 @@ static const char *serial_init(void *fro | |
| 920 | */ | |
| 921 | update_specials_menu(serial->frontend); | |
| 922 | ||
| 923 | + | |
| 924 | + /***************Patch GNS3 PuTTY *******************/ | |
| 925 | + if (cfg->push_one_enter) {
| |
| 926 | + logevent(serial->frontend, "*** Press a '\\r' inside the serial port/pipe ***"); | |
| 927 | + serial->bufsize = handle_write(serial->out, "\r", 1); //press a enter on the serial | |
| 928 | + } | |
| 929 | + /***************************************************/ | |
| 930 | + | |
| 931 | return NULL; | |
| 932 | } |