]> cygwin.com Git - cygwin-apps/setup.git/blobdiff - netio.cc
Merged across diffs between setup_crypto_branch_branchpoint and
[cygwin-apps/setup.git] / netio.cc
index e76f0c956f9fe8e73e0d61f21ac0d206627c996c..e78724185445bfc0a784a32d801019717d2e4ab4 100644 (file)
--- a/netio.cc
+++ b/netio.cc
    methods known to setup.  To add a new method, create a pair of
    nio-*.[ch] files and add the logic to NetIO::open here */
 
-static char *cvsid = "\n%%% $Id$\n";
+#if 0
+static const char *cvsid =
+  "\n%%% $Id$\n";
+#endif
+
+#include "netio.h"
+
+#include "LogSingleton.h"
 
-#include "win32.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -27,41 +33,48 @@ static char *cvsid = "\n%%% $Id$\n";
 #include "resource.h"
 #include "state.h"
 #include "msg.h"
-#include "netio.h"
 #include "nio-file.h"
 #include "nio-ie5.h"
 #include "nio-http.h"
 #include "nio-ftp.h"
 #include "dialog.h"
-#include "log.h"
 
-#include "port.h"
+int NetIO::net_method;
+char *NetIO::net_proxy_host;
+int NetIO::net_proxy_port;
+
+char *NetIO::net_user;
+char *NetIO::net_passwd;
+char *NetIO::net_proxy_user;
+char *NetIO::net_proxy_passwd;
+char *NetIO::net_ftp_user;
+char *NetIO::net_ftp_passwd;
 
-NetIO::NetIO (char *Purl, BOOL allow_ftp_auth)
+NetIO::NetIO (char const *Purl)
 {
   set_url (Purl);
-  ftp_auth = allow_ftp_auth;
 }
 
 NetIO::~NetIO ()
 {
   if (url)
-    free (url);
+    delete[] url;
   if (proto)
-    free (proto);
+    delete[] proto;
   if (host)
-    free (host);
+    delete[] host;
   if (path)
-    free (path);
+    delete[] path;
 }
 
 void
-NetIO::set_url (char *Purl)
+NetIO::set_url (char const *Purl)
 {
   char *bp, *ep, c;
 
   file_size = 0;
-  url = _strdup (Purl);
+  url = new char[strlen (Purl) + 1];
+  strcpy (url, Purl);
   proto = 0;
   host = 0;
   port = 0;
@@ -71,29 +84,34 @@ NetIO::set_url (char *Purl)
   ep = strstr (bp, "://");
   if (!ep)
     {
-      path = url;
+      path = strdup (url);
       return;
     }
 
   *ep = 0;
-  proto = _strdup (bp);
+  proto = new char [strlen (bp)+1];
+  strcpy (proto, bp);
   *ep = ':';
-  bp = ep+3;
+  bp = ep + 3;
 
   ep = bp + strcspn (bp, ":/");
   c = *ep;
   *ep = 0;
-  host = _strdup (bp);
+  host = new char [strlen (bp) + 1];
+  strcpy (host, bp);
   *ep = c;
 
   if (*ep == ':')
     {
-      port = atoi (ep+1);
+      port = atoi (ep + 1);
       ep = strchr (ep, '/');
     }
 
   if (*ep)
-    path = _strdup (ep);
+    {
+      path = new char [strlen (ep)+1];
+      strcpy (path, ep);
+    }
 }
 
 int
@@ -109,10 +127,12 @@ NetIO::read (char *buf, int nbytes)
 }
 
 NetIO *
-NetIO::open (char *url, BOOL allow_ftp_auth)
+NetIO::open (char const *url)
 {
   NetIO *rv = 0;
-  enum {http, ftp, file} proto;
+  enum
+  { http, ftp, file }
+  proto;
   if (strncmp (url, "http://", 7) == 0)
     proto = http;
   else if (strncmp (url, "ftp://", 6) == 0)
@@ -125,7 +145,7 @@ NetIO::open (char *url, BOOL allow_ftp_auth)
   else if (net_method == IDC_NET_IE5)
     rv = new NetIO_IE5 (url);
   else if (net_method == IDC_NET_PROXY)
-    rv = new NetIO_HTTP (url, allow_ftp_auth);
+    rv = new NetIO_HTTP (url);
   else if (net_method == IDC_NET_DIRECT)
     {
       switch (proto)
@@ -134,7 +154,10 @@ NetIO::open (char *url, BOOL allow_ftp_auth)
          rv = new NetIO_HTTP (url);
          break;
        case ftp:
-         rv = new NetIO_FTP (url, allow_ftp_auth);
+         rv = new NetIO_FTP (url);
+         break;
+       case file:
+         rv = new NetIO_File (url);
          break;
        }
     }
@@ -156,7 +179,7 @@ static void
 check_if_enable_ok (HWND h)
 {
   int e = 0;
-  if (*user && *passwd)
+  if (*user)
     e = 1;
   EnableWindow (GetDlgItem (h, IDOK), e);
 }
@@ -176,6 +199,10 @@ save_dialog (HWND h)
 {
   *user = eget (h, IDC_NET_USER, *user);
   *passwd = eget (h, IDC_NET_PASSWD, *passwd);
+  if (! *passwd) {
+    *passwd = new char[1];
+    passwd[0] = '\0';
+  }
 }
 
 static BOOL
@@ -200,9 +227,10 @@ auth_cmd (HWND h, int id, HWND hwndctl, UINT code)
 
     case IDCANCEL:
       EndDialog (h, 1);
-      exit_setup (1);
+      LogSingleton::GetInstance().exit (1);
       break;
     }
+  return 0;
 }
 
 static BOOL CALLBACK
@@ -214,49 +242,50 @@ auth_proc (HWND h, UINT message, WPARAM wParam, LPARAM lParam)
       load_dialog (h);
       return FALSE;
     case WM_COMMAND:
-      return HANDLE_WM_COMMAND (h, wParam, lParam, auth_cmd);
+      auth_cmd (h, LOWORD(wParam), (HWND)lParam, HIWORD(wParam));
+      return 0;
     }
   return FALSE;
 }
 
 static int
-auth_common (HINSTANCE h, int id)
+auth_common (HINSTANCE h, int id, HWND owner)
 {
-  return DialogBox (h, MAKEINTRESOURCE (id), 0, auth_proc);
+  return DialogBox (h, MAKEINTRESOURCE (id), owner, auth_proc);
 }
 
 int
-NetIO::get_auth ()
+NetIO::get_auth (HWND owner)
 {
   user = &net_user;
   passwd = &net_passwd;
-  return auth_common (hinstance, IDD_NET_AUTH);
+  return auth_common (hinstance, IDD_NET_AUTH, owner);
 }
 
 int
-NetIO::get_proxy_auth ()
+NetIO::get_proxy_auth (HWND owner)
 {
   user = &net_proxy_user;
   passwd = &net_proxy_passwd;
-  return auth_common (hinstance, IDD_PROXY_AUTH);
+  return auth_common (hinstance, IDD_PROXY_AUTH, owner);
 }
 
 int
-NetIO::get_ftp_auth ()
+NetIO::get_ftp_auth (HWND owner)
 {
   if (net_ftp_user)
     {
-      free (net_ftp_user);
+      delete[] net_ftp_user;
       net_ftp_user = NULL;
     }
   if (net_ftp_passwd)
     {
-      free (net_ftp_passwd);
+      delete[] net_ftp_passwd;
       net_ftp_passwd = NULL;
     }
   if (!ftp_auth)
     return IDCANCEL;
   user = &net_ftp_user;
   passwd = &net_ftp_passwd;
-  return auth_common (hinstance, IDD_FTP_AUTH);
+  return auth_common (hinstance, IDD_FTP_AUTH, owner);
 }
This page took 0.032384 seconds and 5 git commands to generate.