annotate netinstall/nio-ie5.cc @ 5124:623d57b7fbe8 ben-lisp-object

separate regular and disksave finalization, print method fixes. Create separate disksave method and make the finalize method only be for actual object finalization, not disksave finalization. Fix places where 0 was given in place of a printer -- print methods are mandatory, and internal objects formerly without a print method now must explicitly specify internal_object_printer(). Change the defn of CONSOLE_LIVE_P to avoid problems in some weird situations. -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-01-20 Ben Wing <ben@xemacs.org> * alloc.c: * alloc.c (very_old_free_lcrecord): * alloc.c (disksave_object_finalization_1): * alloc.c (make_lcrecord_list): * alloc.c (alloc_managed_lcrecord): * alloc.c (free_managed_lcrecord): * alloc.c (sweep_lcrecords_1): * buffer.c: * bytecode.c: * bytecode.c (Fcompiled_function_p): * chartab.c: * console-impl.h: * console-impl.h (CONSOLE_TYPE_P): * console.c: * console.c (set_quit_events): * data.c: * data.c (Fmake_ephemeron): * database.c: * database.c (finalize_database): * database.c (Fclose_database): * device-msw.c: * device-msw.c (finalize_devmode): * device-msw.c (allocate_devmode): * device.c: * elhash.c: * elhash.c (finalize_hash_table): * eval.c: * eval.c (bind_multiple_value_limits): * event-stream.c: * event-stream.c (finalize_command_builder): * events.c: * events.c (mark_event): * extents.c: * extents.c (finalize_extent_info): * extents.c (uninit_buffer_extents): * faces.c: * file-coding.c: * file-coding.c (finalize_coding_system): * file-coding.h: * file-coding.h (struct coding_system_methods): * file-coding.h (struct detector): * floatfns.c: * floatfns.c (extract_float): * fns.c: * fns.c (Fidentity): * font-mgr.c (finalize_fc_pattern): * font-mgr.c (finalize_fc_config): * frame.c: * glyphs.c: * glyphs.c (finalize_image_instance): * glyphs.c (unmap_subwindow_instance_cache_mapper): * gui.c: * gui.c (gui_error): * keymap.c: * lisp.h (struct Lisp_Symbol): * lrecord.h: * lrecord.h (struct lrecord_implementation): * lrecord.h (MC_ALLOC_CALL_FINALIZER): * lrecord.h (MC_ALLOC_CALL_FINALIZER_FOR_DISKSAVE): * lrecord.h (DEFINE_DUMPABLE_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_SIZABLE_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_SIZABLE_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_SIZABLE_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_INTERNAL_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_SIZABLE_INTERNAL_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_SIZABLE_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_SIZABLE_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_SIZABLE_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_INTERNAL_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_SIZABLE_INTERNAL_LISP_OBJECT): * lrecord.h (MAKE_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_MODULE_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_MODULE_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_MODULE_SIZABLE_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_MODULE_SIZABLE_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_MODULE_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_MODULE_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_MODULE_SIZABLE_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_MODULE_SIZABLE_GENERAL_LISP_OBJECT): * lrecord.h (MAKE_MODULE_LISP_OBJECT): * lstream.c: * lstream.c (finalize_lstream): * lstream.c (disksave_lstream): * marker.c: * marker.c (finalize_marker): * mule-charset.c (make_charset): * number.c: * objects.c: * objects.c (finalize_color_instance): * objects.c (finalize_font_instance): * opaque.c: * opaque.c (make_opaque_ptr): * process-nt.c: * process-nt.c (nt_finalize_process_data): * process-nt.c (nt_deactivate_process): * process.c: * process.c (finalize_process): * procimpl.h (struct process_methods): * scrollbar.c: * scrollbar.c (free_scrollbar_instance): * specifier.c (finalize_specifier): * symbols.c: * toolbar.c: * toolbar.c (Ftoolbar_button_p): * tooltalk.c: * ui-gtk.c: * ui-gtk.c (emacs_gtk_object_finalizer): * ui-gtk.c (allocate_emacs_gtk_boxed_data): * window.c: * window.c (finalize_window): * window.c (mark_window_as_deleted): Separate out regular and disksave finalization. Instead of a FOR_DISKSAVE argument to the finalizer, create a separate object method `disksaver'. Make `finalizer' have only one argument. Go through and separate out all finalize methods into finalize and disksave. Delete lots of thereby redundant disksave checking. Delete places that signal an error if we attempt to disksave -- all of these objects are non-dumpable and we will get an error from pdump anyway if we attempt to dump them. After this is done, only one object remains that has a disksave method -- lstream. Change DEFINE_*_LISP_OBJECT_WITH_PROPS to DEFINE_*_GENERAL_LISP_OBJECT, which is used for specifying either property methods or disksave methods (or in the future, any other less-used methods). Remove the for_disksave argument to finalize_process_data. Don't provide a disksaver for processes because no one currently needs it. Clean up various places where objects didn't provide a print method. It was made mandatory in previous changes, and all methods now either provide their own print method or use internal_object_printer or external_object_printer. Change the definition of CONSOLE_LIVE_P to use the contype enum rather than looking into the conmeths structure -- in some weird situations with dead objects, the conmeths structure is NULL, and printing such objects from debug_print() will crash if we try to look into the conmeths structure.
author Ben Wing <ben@xemacs.org>
date Wed, 20 Jan 2010 07:05:57 -0600
parents ce0b3f2eff35
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
1 /*
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
2 * Copyright (c) 2000, Red Hat, Inc.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
3 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
4 * This program is free software; you can redistribute it and/or modify
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
7 * (at your option) any later version.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
8 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
9 * A copy of the GNU General Public License can be found at
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
10 * http://www.gnu.org/
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
11 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
12 * Written by DJ Delorie <dj@cygnus.com>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
13 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
14 */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
15
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
16 /* The purpose of this file is to manage internet downloads using the
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
17 Internet Explorer version 5 DLLs. To use this method, the user
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
18 must already have installed and configured IE5. This module is
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
19 called from netio.cc, which is called from geturl.cc */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
20
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
21 #include "win32.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
22
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
23 #include "resource.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
24 #include "state.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
25 #include "dialog.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
26 #include "msg.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
27 #include "netio.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
28 #include "nio-ie5.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
29
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
30 static HINTERNET internet = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
31
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
32 NetIO_IE5::NetIO_IE5 (char *_url)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
33 : NetIO (_url)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
34 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
35 int resend = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
36
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
37 if (internet == 0)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
38 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
39 HINSTANCE h = LoadLibrary ("wininet.dll");
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
40 if (!h)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
41 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
42 note (IDS_WININET);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
43 connection = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
44 return;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
45 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
46 InternetAttemptConnect (0);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
47 internet = InternetOpen ("Cygwin Setup", INTERNET_OPEN_TYPE_PRECONFIG,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
48 NULL, NULL, 0);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
49 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
50
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
51 DWORD flags =
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
52 INTERNET_FLAG_DONT_CACHE |
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
53 INTERNET_FLAG_KEEP_CONNECTION |
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
54 INTERNET_FLAG_PRAGMA_NOCACHE |
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
55 INTERNET_FLAG_RELOAD |
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
56 INTERNET_FLAG_EXISTING_CONNECT |
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
57 INTERNET_FLAG_PASSIVE;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
58
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
59 connection = InternetOpenUrl (internet, url, NULL, 0, flags, 0);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
60
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
61 try_again:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
62
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
63 if (net_user && net_passwd)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
64 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
65 InternetSetOption (connection, INTERNET_OPTION_USERNAME,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
66 net_user, strlen (net_user));
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
67 InternetSetOption (connection, INTERNET_OPTION_PASSWORD,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
68 net_passwd, strlen (net_passwd));
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
69 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
70
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
71 if (net_proxy_user && net_proxy_passwd)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
72 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
73 InternetSetOption (connection, INTERNET_OPTION_PROXY_USERNAME,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
74 net_proxy_user, strlen (net_proxy_user));
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
75 InternetSetOption (connection, INTERNET_OPTION_PROXY_PASSWORD,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
76 net_proxy_passwd, strlen (net_proxy_passwd));
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
77 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
78
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
79 if (resend)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
80 if (!HttpSendRequest (connection, 0, 0, 0, 0))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
81 connection = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
82
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
83 if (!connection)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
84 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
85 if (GetLastError () == ERROR_INTERNET_EXTENDED_ERROR)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
86 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
87 char buf[2000];
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
88 DWORD e, l=sizeof (buf);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
89 InternetGetLastResponseInfo (&e, buf, &l);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
90 MessageBox (0, buf, "Internet Error", 0);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
91 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
92 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
93
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
94 DWORD type, type_s;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
95 type_s = sizeof (type);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
96 InternetQueryOption (connection, INTERNET_OPTION_HANDLE_TYPE,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
97 &type, &type_s);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
98
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
99 switch (type)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
100 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
101 case INTERNET_HANDLE_TYPE_HTTP_REQUEST:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
102 case INTERNET_HANDLE_TYPE_CONNECT_HTTP:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
103 type_s = sizeof (DWORD);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
104 if (HttpQueryInfo (connection,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
105 HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
106 &type, &type_s, NULL))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
107 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
108 if (type == 401) /* authorization required */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
109 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
110 flush_io();
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
111 get_auth ();
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
112 resend = 1;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
113 goto try_again;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
114 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
115 else if (type == 407) /* proxy authorization required */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
116 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
117 flush_io();
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
118 get_proxy_auth ();
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
119 resend = 1;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
120 goto try_again;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
121 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
122 else if (type >= 300)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
123 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
124 connection = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
125 return;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
126 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
127 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
128 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
129 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
130
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
131 void
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
132 NetIO_IE5::flush_io ()
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
133 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
134 DWORD actual = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
135 char buf[1024];
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
136 do {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
137 InternetReadFile (connection, buf, 1024, &actual);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
138 } while (actual > 0);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
139 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
140
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
141 NetIO_IE5::~NetIO_IE5 ()
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
142 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
143 if (connection)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
144 InternetCloseHandle (connection);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
145 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
146
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
147 int
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
148 NetIO_IE5::ok ()
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
149 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
150 return (connection == NULL) ? 0 : 1;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
151 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
152
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
153 int
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
154 NetIO_IE5::read (char *buf, int nbytes)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
155 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
156 DWORD actual;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
157 if (InternetReadFile (connection, buf, nbytes, &actual))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
158 return actual;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
159 return -1;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
160 }