|
1 ESOCK E32 Sockets server |
|
2 |
|
3 8. Nov 2003. |
|
4 ============ |
|
5 |
|
6 ¨ ESock implements the functionality required by a CPM, e.g. meeting rendezvous at |
|
7 start-up and supporting the messages required by the framework (see R0). Also |
|
8 it doesnt shut down automatically but rather on request from the RootServer. |
|
9 ¨ ESock now supports MBufs for data transfer to protocol SAP implementations |
|
10 over the PRT interface (CServProviderBase). The descriptor based Write() and |
|
11 GetData() functions are deprecated. |
|
12 ¨ ESock now understands the BindFrom parameter in .ESK files. Allows a protocol |
|
13 configuration to specify its binding below another protocol. This avoids the need |
|
14 for it appearing in the upper protocol's configuration file, making such protocols |
|
15 more modular. |
|
16 ¨ New feature: Datagram Continuation, the ability to read a datagram in parts. With |
|
17 PRT v1 when an application reads a datagram using RSocket::recv() ESock calls GetData() |
|
18 upon the SAP for the exact amount of data requested by the client. If the datagram is |
|
19 bigger than the requested amount the PRT will truncate it and return the requested amount |
|
20 of octets. It is up to the client to know whether the data was truncated. This leads to some |
|
21 clients having to maintain absurdly large transfer buffers to cope with out-lier cases. |
|
22 With PRTs implementing PRT1.5, ESock calls GetData() with a carefully oversized length |
|
23 parameter, with the intent that the SAP delivers the entire datagram RMBufChain. A client |
|
24 request to read the datagram which includes a TSockXfrLength parameter, eg |
|
25 RSocket::Recv(TDes8& aDesc,TUint flags,TRequestStatus& aStatus,TSockXfrLength& aLen), |
|
26 then completes with the remaining unread octets of the datagram in the TSockXfrLength. |
|
27 The client can then read the remaining octets by further reads with the 'KSockReadContinuation' |
|
28 flag OR'd into the flags field. Remaining octets are discarded upon the next read without the |
|
29 KSockReadContinuation flag set. |
|
30 Notes: |
|
31 (1) This only works with PRT1.5 protocols. |
|
32 (2) Clients who do not set the KSockReadContinuation flag experience the original behaviour that overflows are discarded |
|
33 (3) Clients who need to treat datagrams as a "stream" can always set KSockReadContinuation as in the absence of remaining data a new GetData is performed. |
|
34 ¨ The MBuf Manager has been moved from ESock/MBufMgr to MBufMgr. All classes previously living |
|
35 in the NIFMAN component, implementing extra functionality for MBufs have been moved to the |
|
36 new MBufMgr component. Components needing this should link to the mbufmgr.dll library. |
|
37 ¨ ESock has been split into a client DLL (esock.dll) and a server DLL (esocksvr.dll). |
|
38 ¨ ESock is now using the Secure IPC framework. E.g. CServer2, RMessage2 and TIpcArgs. |
|
39 |
|
40 29. Nov 2001 (alfredh) |
|
41 ====================== |
|
42 |
|
43 Defect fixes: |
|
44 |
|
45 KUN-54UMKA "CSocket::Ioctl() panics when calling second Ioctl if first one leaves" |
|
46 |
|
47 Problem fixed in ssock/ss_sock.cpp - now setting flag 'ioctl block' *after* a |
|
48 successful memory allocation. This defect was found using SmsStack reg tests. |
|
49 Verified on WINS and ARM4 (assabet board) |
|
50 Also increased the stacksize for tcesock.exe to 0x10000 so I could run on assabet. |
|
51 |
|
52 |
|
53 Version 2.1 (651) |
|
54 ============== |
|
55 Merged in the changes to the test codes the projects now output logs |
|
56 |
|
57 - TCESOCK logs to \epoc32\wins\c\esoctest.txt under wins and on c:\esoctest.txt under thumb |
|
58 - TIPC logs to \epoc32\wins\c\ipctest.txt under wins and on c:\ipctest.txt under thumb |
|
59 - TSHUT logs to \epoc32\wins\c\tshutest.txt under wins and on c:\tshutest.txt under thumb |
|
60 |
|
61 |
|
62 |
|
63 Version 2.0 (650) |
|
64 ================= |
|
65 |
|
66 First release onto mainline share. Identical to version 555 on ER5u share. |
|
67 |
|
68 Version 1.0 (555) |
|
69 ================= |
|
70 - Previous fix for (EDNPGAL-4B4GEJ in ER5u) was broken and removed in ESOCK 554. The |
|
71 correct fix has now been added to this release (ESOCK 555) |
|
72 |
|
73 Version 1.0 (554) |
|
74 ================= |
|
75 |
|
76 - defect fix for EDNDHAR-4BXLU6 (Web hits a SocketServer USER 47 Panic on receiving data) |
|
77 in ER5u Defects. Involved removing the so-called defect fix that was put in ESOCK 552, for |
|
78 "Large TCPIP packets seem to be lost". |
|
79 |
|
80 Version 1.0 (553) |
|
81 ================= |
|
82 |
|
83 -EPOC Connect was broken by 552 by the omission of the construction of a hard-coded |
|
84 ESOCK.INI for the WINC build. This has been rectified. |
|
85 |
|
86 |
|
87 Version 1.0 (552) |
|
88 ================= |
|
89 |
|
90 - Minor code changes to eliminate MSVC6 warnings. |
|
91 - defect fix for "Large TCPIP packets Seem to be Lost" (EDNPGAL-4B4GEJ in ER5u). |
|
92 This fix works for WINS but does not fix the defect on ARM. This is still under |
|
93 investigation. |
|
94 - defect fix for "Need to remove all references to EPOC registry" - (EDNDMAY-49CE4E in ER5u |
|
95 defects). Removed sections of code which used it (all in WINC build). |
|
96 - defect fix for "Need to remove calls to deprecated functions" (EDNDMAY-49CDVT in ER5u defects). |
|
97 Removed two lines which call RThread::SetNotifyIfDie() and RThread::SetMark(). |
|
98 |
|
99 |
|
100 |
|
101 Version 1.0 (550) |
|
102 ================= |
|
103 |
|
104 - Split Nifman from Esock. |
|
105 - Removed all narrow-specific stuff from MNT.CMD and EBLD.BAT. |
|
106 - Removed narrow def files. |
|
107 - Did some general tidying up of header files. |
|
108 |
|
109 Version 1.0(510) |
|
110 ================ |
|
111 - Fixed (another) defect in Nifman code for restarting the thread |
|
112 (ER5 Defect Database EDNKPIA-465MLC) |
|
113 |
|
114 Version 1.0(509) |
|
115 ================ |
|
116 - Changed the Nifman code for restarting the thread |
|
117 |
|
118 Version 1.0(508) |
|
119 ================ |
|
120 - Re systemised the ESock thread |
|
121 |
|
122 Version 1.0(507) |
|
123 ================ |
|
124 - Added EBLD.BAT |
|
125 - Change in CS_CLI.CPP RSocket::GetOpt |
|
126 |
|
127 Version 1.0(506) |
|
128 ================ |
|
129 - Boilerplated source files |
|
130 - Changed esock to run as non-system thread |
|
131 - edit mnt to use evalid.bat for validation |
|
132 |
|
133 Version 1.0(505) |
|
134 ================ |
|
135 -defect fix |
|
136 Transfer socket failed with an socket openned in passive mode |
|
137 defect reference: SW1-322 |
|
138 |
|
139 Version 1.0(504) |
|
140 ================ |
|
141 - Fixed a defect which meant that debug protocols would not run |
|
142 with a release ESOCK. |
|
143 |
|
144 Version 1.0(503) |
|
145 ================ |
|
146 - debug/Rel stuff |
|
147 - Unicode UID, added a ROM directory |
|
148 |
|
149 Version 1.0(502) |
|
150 ================ |
|
151 - VC5 |
|
152 |
|
153 Version 1.0(501) |
|
154 ================ |
|
155 - Fixed the handling of UNICODE ini files. |
|
156 - This was tested on a RACK. |
|
157 |
|
158 Version 1.0(500) |
|
159 ================ |
|
160 - Finished MAKMAKE stuff including testcode |
|
161 - Mad proofed the Nif interface |
|
162 - First release for ER5 |
|
163 |
|
164 Version 1.0(093) |
|
165 ================ |
|
166 - Changed ESOCK tom use MAKMAKE |
|
167 |
|
168 Version 1.0(92) |
|
169 ================ |
|
170 - Changed Nifman to depend on the CommDB header file rather than using the |
|
171 definitions for datbase fields in nifvar.h |
|
172 - Changed MS CallBack codes to be >1000 rather than -ve as -ve values cannot |
|
173 be stored in the database |
|
174 |
|
175 |
|
176 Version 1.0(91) |
|
177 ================ |
|
178 - Fixed a defect in the MBuf code, didn't ulink when removing a buffer |
|
179 from a chain. |
|
180 - Changed the Nif Interface for reading descriptors |
|
181 |
|
182 |
|
183 Version 1.0(90) |
|
184 ================ |
|
185 - Modifications for callback. BC across the ESOCK i/f but not the NifMan |
|
186 interface, so a new agent is required. I.e. a kipper (Netdial2) which |
|
187 supports callback. |
|
188 |
|
189 |
|
190 Version 1.0(072) |
|
191 ================ |
|
192 |
|
193 - Fixed WINC build because make files did not have the __WINS__ macro in them |
|
194 |
|
195 - Added test code for WINC to tcesock.exe |
|
196 |
|
197 |
|
198 Version 1.0(071) |
|
199 ================ |
|
200 |
|
201 - MARM debug build is now BC with MARM release as per E32 125. |
|
202 |
|
203 - Updated obey files. |
|
204 |
|
205 - Incrementeted build number to 071. |
|
206 |
|
207 - Made changes to support PLP over TCPIP, i.e. allowing INI file to be |
|
208 loaded from the MS Windows in WINC builds. |
|
209 |
|
210 - Work around in place of E32 WINC/WINS/WIndows 95 TLS defect by using Windows |
|
211 TLS instead of EPOC32 TLS |
|
212 |
|
213 Version 1.0 (400) |
|
214 ================= |
|
215 |
|
216 - R4 release. Standard set of R4 dependencies. |
|
217 |
|
218 - Standardised MNT verbs. Can now build project on a clean drive using |
|
219 BLDFROMNOTHING. |
|
220 |
|
221 Version 1.0(070) |
|
222 ================ |
|
223 |
|
224 ESOCK.DLL is BC with Protea v.100 and beyond (nonunicode) |
|
225 NIFMAN.DLL is BC with build 066 (nonunicode) |
|
226 UNICODE ESOCK.DLL and UNICODE NIFMAN.DLL not BC with previous releases |
|
227 Not SC with previous releases due to changes in TDes8 v.s TDes declarations |
|
228 |
|
229 |
|
230 General changes |
|
231 - Updated all build scripts to build and get UNICODE components |
|
232 - Ran all test code in UNICODE on WINS and MARM rom on a rack D |
|
233 |
|
234 Changes to NIFMAN.DLL |
|
235 - Introduced freeze files for UNICODE WINS and MARM |
|
236 - MNifIfNotify::Authenticate() now takes TDes arguments as oppose to TDes8 |
|
237 - Changed NIFMAN::SetSocketState() to return KErrUnsupported if it is given an |
|
238 unrecognised |
|
239 - CNifAgentBase::Authenticate() now takes TDes arguments as oppose to TDes8 |
|
240 - Changed INI file reading code to interpret ini files with leading FFFE bytes as UNICODE. |
|
241 |
|
242 |
|
243 ESOCK.DLL |
|
244 - Frozen def file changed for UNICODE WINS and MARM |
|
245 - RServiceResolver::GetByName() & GetByNumber now take a TDesC argument as oppose to TDes8 |
|
246 - THostName definition changed to TBuf<0x40> rather than TBuf8<0x40> |
|
247 - TServiceName definition changed to TBuf<0x20> rather than TBuf8<0x20> |
|
248 - Added wide IPC Read/Write functions to server side |
|
249 - Changed server side buffer to THostName rather than TBuf8<30> for SetHostName call |
|
250 There is a potential defect here which limits host name size of only 30 characters |
|
251 - Changed INI file reading code to interpret ini files with leading FFFE bytes as UNICODE. |
|
252 - Changed Changed CHostResolvProvdBase and CServiceResolvProvdBase functions to |
|
253 use TDes instead of TDes8 declarations |
|
254 - Had to increase the stack size to pass the nifman tests, so it is now KDefaultStackSize*sizeof(TText) |
|
255 - Fixed SW1-836 RSocket::Write does not pass flags through on stream sends because of type 'o' |
|
256 - Fixed SW1-851 Double clean up stack push for protocol family reference |
|
257 - Added KSocketInternalWriteBit & KSocketInternalReadBit for protected Send/Recv flags |
|
258 |
|
259 |
|
260 Version 1.0(069) |
|
261 ================ |
|
262 |
|
263 No source code changes but released with documentation under version control |
|
264 |
|
265 |
|
266 Version 1.0(068) |
|
267 ================ |
|
268 |
|
269 ESOCK.DLL is BC with Protea v.100 and beyond |
|
270 NIFMAN.DLL is BC with build 066 |
|
271 |
|
272 -Changed version numbers returned by RNif class to be teh same as ESOCK |
|
273 |
|
274 -Added functionality to Nif::SetSocketState() to set the ESOCK socket internal |
|
275 buffer size. ENifBuffers512 sets the buffers to 512 bytes, ENifBuffers1024 to 1024 |
|
276 and ENifBuffers2048 to 2048. |
|
277 |
|
278 -Incremented build number |
|
279 |
|
280 Version 1.0(067) |
|
281 ================ |
|
282 |
|
283 ESOCK.DLL is BC with Protea v.100 and beyond |
|
284 NIFMAN.DLL is BC with build 066 |
|
285 |
|
286 -Fixed SW1-203 'Possible panic if immediate restart after disconnect' |
|
287 |
|
288 -Fixed SW1-204 'Stage transition from Uninitialised to Unconnected not picked up by RNifMonitor' |
|
289 |
|
290 -Added iState==EDisconnecting __ASSERT_debug to NIFMAN DisconnectComplete() upcall |
|
291 |
|
292 |
|
293 Version 1.0(066) |
|
294 ================ |
|
295 |
|
296 ESOCK.DLL is BC with Protea v.100 and beyond |
|
297 NIFMAN.DLL is BC with build 063 with exception of added functions |
|
298 |
|
299 Changes to NIFMAN |
|
300 |
|
301 -Added derived class RNifMonitor. RNifMonitor::Open() opens a session to the NIFMAN |
|
302 server. It is similar to a RNif session however the corresponding agent is not |
|
303 loaded nor is it referenced. The only supported commands for RNifMonitor are: |
|
304 Progress(), LastProgressError(), ProgressNotification(), CancelProgressNotification(). |
|
305 Other RNif functions will return KErrNotSupported. These changes are a response |
|
306 to SW1-195. |
|
307 |
|
308 -Changed TPtrC(0,0) default arguments to TPtr() as per SW1-194 |
|
309 |
|
310 -Changed KNifOptLevel constant declaration from 401 to 0x191 to be consistent with other |
|
311 hex declarations |
|
312 |
|
313 -Added constants KAgentUninitialised=0 and KAgentUnconnected=1 and removed |
|
314 KMinAgentProgress=0. This is all about allowing NIFMAN to give consistant updates |
|
315 through the RNifMonitor class. KAgentUninitalised is the default stage whenever |
|
316 a monitor session connects and there is no agent. As soon as an agent appears |
|
317 the stage will change to KAgentUnconnected. When the agent eventually unloads |
|
318 the stage will change back to KAgentUinitialised. These stages are consistient with |
|
319 NTRAS and NETDIAL agents, plus it means the stage will be updated correctly in the |
|
320 final instance. |
|
321 |
|
322 -Moved the last progress error variable storage from the agent reference into the |
|
323 sessions. This means a session must be active to get a last error. Calling |
|
324 LastProgressError() will now clear the last error from the particular session. |
|
325 |
|
326 -Made various changes on the NIFMAN server side to support RNifMonitor class. The |
|
327 main changes involved ensuring the monitor sessions are updated when agents are born |
|
328 /killed. |
|
329 |
|
330 -Changed RNif client side code to make better code reuse when opening sessions. |
|
331 |
|
332 -Added test code for RNifMonitor class and progress update changes. |
|
333 |
|
334 |
|
335 Changes to ESOCK |
|
336 -Incremented build numbers |
|
337 |
|
338 |
|
339 Version 1.0(065) |
|
340 ================ |
|
341 |
|
342 ESOCK.DLL is BC with Protea v.100 and beyond |
|
343 NIFMAN.DLL is BC with build 063 |
|
344 |
|
345 Changes to NIFMAN |
|
346 -A new variable has been added "Timeout\StopIfNoClient". If this variable is true or |
|
347 the variable is not found then the interface will be stopped immediately if is is not |
|
348 yet established and there are no network users, (i.e. internet protocol using socket |
|
349 server sessions) |
|
350 |
|
351 -A new variable has been added "Timeout\\ReconnectIfNoClient". If this variable is not |
|
352 found or is false then the reconnect dialog will not be requested if there |
|
353 are no network users |
|
354 |
|
355 Changes to ESOCK |
|
356 -Incremented build numbers |
|
357 |
|
358 |
|
359 Version 1.0(064) |
|
360 ================ |
|
361 |
|
362 ESOCK.DLL is BC with Protea v.100 and beyond |
|
363 NIFMAN.DLL is BC with build 060 with exception of added functions |
|
364 |
|
365 Changes to NIFMAN |
|
366 -EsWatch thread now creates a reference to the nifman library in its |
|
367 entry point. This avoids exceptions because esock dynamically loads nifman |
|
368 |
|
369 -EsWatch now looks at the thread exit type in addition to the logon |
|
370 completion code |
|
371 |
|
372 Changes to ESOCK |
|
373 -Incremented build numbers |
|
374 |
|
375 Version 1.0(063) |
|
376 ================ |
|
377 |
|
378 ESOCK.DLL is BC with Protea v.100 and beyond |
|
379 NIFMAN.DLL is BC with build 060 with exception of added functions |
|
380 |
|
381 Changes to NIFMAN |
|
382 -Added following functions to get progress information and to stop network interfaces |
|
383 Nif::ProgressL(TNifProgress& aProgress, const TDesC& aName) |
|
384 Nif::Stop(TAny* aId, CNifIfBase* aIf) |
|
385 Nif::ProgressL(TNifProgress& aProgress, TAny* aId, CNifIfBase* aIf) |
|
386 -Added constant KNifOptInterfaceProgress=3, for protocols to implement as a GetOpt |
|
387 -Added test code as appropriate |
|
388 |
|
389 |
|
390 Changes to ESOCK |
|
391 -Incremented build number |
|
392 |
|
393 Version 1.0(062) |
|
394 ================ |
|
395 |
|
396 ESOCK.DLL is BC with Protea v.100 and beyond |
|
397 NIFMAN.DLL is BC with build 060 |
|
398 |
|
399 Changes to NIFMAN |
|
400 -Fixed SW1-137 'Network timeouts don't allow zero seconds' |
|
401 If 0 is returned from the database the timeout is set to the minumum 1 |
|
402 If any negative number is returned by the database the timeout is infinite |
|
403 If the database does not support the timeout values the timeout is infinite |
|
404 |
|
405 -Fixed SW1-81 'PC.PRT can panic the Socket Server' |
|
406 If the port number is out of range KErrTooBig is returned |
|
407 |
|
408 Changes to ESOCK |
|
409 -Incremented build number |
|
410 |
|
411 |
|
412 Version 1.0(061) |
|
413 ================ |
|
414 |
|
415 ESOCK.DLL is BC with Protea v.100 and beyond |
|
416 NIFMAN.DLL is BC with build 060 |
|
417 |
|
418 Changes to NIFMAN |
|
419 -Changed function name CNifFactory::ConstructL to CNifFactory::InitL, which means its |
|
420 still BC. In any case the only project using this function is ETHER802 |
|
421 -Added enumeration ENifSocketCreated for Nif::SetSocketState. This is BC because |
|
422 the enumeration maps directly onto appropriate ESOCK internal socket state. |
|
423 -Added StartC32() function into RNif client side if socket server does not exist |
|
424 -A thread 'EsWatch' is now started by NIFMAN to monitor ths socket server thread |
|
425 if the thread suffers an abnormal exit then the C32Exe process is restarted. |
|
426 -Speeded up the operation of Nif::CheckIniConfig() by only searching for ESOCK.INI |
|
427 once on the server side |
|
428 -The mbuf reaper started by NIFMAN will no longer remove the first mbuf pool. |
|
429 |
|
430 Changes to ESOCK |
|
431 -Incremented build number |
|
432 |
|
433 Version 1.0(060) |
|
434 ================ |
|
435 |
|
436 ESOCK.DLL is BC with Protea v.100 and beyond |
|
437 NIFMAN.DLL is BC with build 059 with exception of added functions |
|
438 |
|
439 Changes to NIFMAN |
|
440 |
|
441 -Added EXPORT CNifFactory::ConstructL |
|
442 -Added EXPORT Nif::SetSocketState() |
|
443 -Incremented build number |
|
444 -Fixed SW1-97 'Cannot start NetDial twice in quick succession on Series 5' |
|
445 -Fixed alloc heaven in Nifman::CheckIniConfig function |
|
446 |
|
447 Changes to ESOCK |
|
448 -Moved __UHEAP_MARK & __UHEAP_MARKEND statements in thread creation for debug build |
|
449 -Now explicitly deleting active scheduler & cleanup trap |
|
450 -Changed void CResolverProvdBase::SetNotify() to an inline |
|
451 |
|
452 Version 1.0(059) |
|
453 ================ |
|
454 |
|
455 ESOCK.DLL is BC with Protea v.100 and beyond |
|
456 NIFMAN.DLL is BC with build 058, but strings requested from agents have changed |
|
457 making it incompatible with TCPIP 026. |
|
458 |
|
459 |
|
460 Changes to NIFMAN |
|
461 |
|
462 -Added following Functions to NIFMAN |
|
463 Nifman::CheckIniConfig() - External function will ensure the ESOCK.INI file has been parsed |
|
464 Nif::IsProtocolLoaded() - NIFMAN internal function to determine if named protocol is loaded |
|
465 Nif::CheckInstalledL() - NIFMAN internal function to check nifman is installed |
|
466 Nif::CheckInstallMBufManager() - internal function which also checks in ini file for MBuf max heap size |
|
467 |
|
468 -Added CMBufPoolReaper class which goes off every 5 seconds to recover mbuf manager heap |
|
469 -Standardised all NIFVAR.H variables to have correct prefixes |
|
470 -Changed 'ShortTimeout' to 'Timeout\\Client' |
|
471 -Changed 'LongTimeout' to 'Timeout\\Route' |
|
472 |
|
473 |
|
474 |
|
475 Changes to ESOCK |
|
476 -Incremented build number |
|
477 -Added friend class CMBufPoolReaper to RMBufQ |
|
478 -Added friend class CMBufPoolReaper & Nif to CMBufManager |
|
479 -Removed inline C'tor from CMBufManager |
|
480 -Changed CMBufManager data variables from protected back to private |
|
481 -Added friend class Nif to CProtocolRef |
|
482 -Changed CESockIniData data members from private to protected |
|
483 -Fixed SW1-68 'OOM Access violation' as suggested |
|
484 -Fixed SW1-69 'Unchecked return value' as suggested |
|
485 -Fixed SW1-42 'Inconsistent asserts' as suggested |
|
486 -Fixed SW1-43 'ESock Fault after calling connect' as suggested |
|
487 -Removed bogus assert from CProtocolBase d'tor |
|
488 |
|
489 |
|
490 |
|
491 Version 1.0(058) |
|
492 ================ |
|
493 |
|
494 ESOCK.DLL is BC with Protea V.100 and beyond |
|
495 |
|
496 New Component |
|
497 -Moved NIFMAN.DLL from TCPIP into ESOCK & redesigned NIFMAN.DLL to cope with |
|
498 multiple agents/nifs |
|
499 -Added 3 test modules IDUMMY.NIF, ADUMMY.AGT & TNIFMAN.EXE. |
|
500 -Changed PDUMMY.PRT to include nifman tests |
|
501 |
|
502 Note new nifman will only work with TCPIP 026 and beyond |
|
503 |
|
504 Changes to ESOCK (i.e. changes affecting Protea ROM) |
|
505 -Added inline accessor for CProtocolBase::iRefCount - 'CProtocolBase::RefCount() const' |
|
506 -Added KUidEsockExtension = 0x10000387 to ES_PROT.H |
|
507 -Incremented build number |
|
508 -Added inline C'tor for CMBufManager |
|
509 -Changed data variables access for CMBufManager from private to protected |
|
510 -Fixed SW3-1616 'RMBufChain::TrimEnd() does not deal with an offset of zero correctly' |
|
511 -Fixed SW1-183 'Possible orphaning of library handle under OOM when loading extension module' |
|
512 -Fixed SW1-384 'Possible exception under OOM caused by prematurely unloaded library/partially constructed object' |
|
513 -Commented out various __ASSERT_debug's SS_SOCK.CPP lines 1332 & 1579 to enable TCPIPs |
|
514 half close mechanism to work properly |
|
515 -Added inline accessor to CSocketScheduler::iGlobals - 'CSocketScheduler::Globals()' |
|
516 -Fixed SW1-383 'Possible OOM exception because 'new' should be 'new (ELeave)' |
|
517 |
|
518 Other |
|
519 -IPC.PRT is now included in the ESOCK releasables. |
|
520 -Given CIpcProtocolHolder::GetNextFreePort TInt return type to eliminate warning |
|
521 |
|
522 |
|
523 Version 1.0(057) |
|
524 ================ |
|
525 BC |
|
526 |
|
527 -Fixed SW3-1332 'Potential OOM problem with Socket Server exclusive mode' |
|
528 -Incremented build number to 057 |
|
529 |
|
530 |
|
531 Version 1.0(056) |
|
532 ================ |
|
533 |
|
534 -Fixed SW3-1281 Infrared printing can easily kill machine and corrupt files |
|
535 By increasing the socket server active object priority when it is in exclusive mode. |
|
536 -Incremented build number to 056 |
|
537 |
|
538 Version 1.0(055) |
|
539 ================ |
|
540 |
|
541 -Fixed SW3-819 MARM ESOCK.DLL released without .map file |
|
542 -Fixed SW3-783 Two functions declared IMPORT_C but not defined EXPORT_C |
|
543 MARM build now has two extra exports |
|
544 -Fixed SW3-432 ESOCK version numbers incorrect. They are now 1.0.55 |
|
545 -Fixed SW3-355 ESOCK does not check module Uid2s |
|
546 -Fixed SW-3775 Socket Server panics itself rather than panicking clients |
|
547 -Added mnt valid verb |
|
548 -Added lots more test code |
|
549 -Removed all .mdp files from archive |
|
550 -Added mnt bldarmrel verb |
|
551 |
|
552 Version 1.0(054) |
|
553 ================ |
|
554 |
|
555 -Fixed more problems with TSockXfrLength not being filled in for Send()/Recv() |
|
556 -Changed call to CArrayFixBase::SetReserveL for E32 release 105 |
|
557 -Fixed some problems with RHostResolver::Next() |
|
558 |
|
559 Version 1.0(053) |
|
560 ================ |
|
561 |
|
562 -Fixed problem with delta timer resolution by compensating for for lack of rounding |
|
563 up in CDeltaTimer class when granularity in reduced. This has enabled a 100% performance |
|
564 improvement for IrCOMM. |
|
565 -Fixed a defect in data length parameter for TCPIP half close. |
|
566 -Completed implementation for RHostResolver::Next() |
|
567 |
|
568 Version 1.0(052) |
|
569 ================ |
|
570 |
|
571 -Removed pdummy.prt from release |
|
572 -Stopped releasing ESOCK.INI files because they are incorrect |
|
573 -Removed starting of ESOCK in DLL entry point for WINS. |
|
574 -Changed INIFILE.H to ES_INI.H |
|
575 -Removed ESOCK_INI_FILE_DIR define from ES_INI.H |
|
576 -Changed name of class CIniFile to CESockIniData ordinals still in same place |
|
577 -Providing default argument for CESockIniData::NewL() |
|
578 -Stripped loads of private data out of CSockIniData class |
|
579 -Changed exported CESockIniData c'tor from private to protected |
|
580 No effect on existing use because no component could have been using it |
|
581 -Now Building WINC esock.dll with WINS def files. |
|
582 -Moved #define _MBUF_CHECKS into debug builds only |
|
583 -RMBufQ::Transfer(...) now private |
|
584 -Fixed defect in CSocket::ConnectL where check for error state was not taking place |
|
585 -WINC build will now look in MS Windows registry for INI files - a default is provided |
|
586 for ESOCK.INI |
|
587 -Socket server shut down timer started after family close. This fixes defect with library |
|
588 unloading and latency timer for TCPIP. |
|
589 -Latency timer set to 15 seconds. |
|
590 -Added RSocket::Name() which allows obtains system global name for a socket |
|
591 -Added RSocket::Transfer() which allows a socket to be transfered from one session to |
|
592 another by using the socket global name as a reference. The transfer is like a |
|
593 socket creation. If it fails the socket which is being transfer will remain with |
|
594 the original socket. Success/failure at the originating socket can be checked |
|
595 by calling RSocket::Info which will return KErrNone if the transfer failed and |
|
596 KErrBadHandle if it succeeded. |
|
597 -Fixed problem with Shutdown(EStopOutput) by allowing data to be received if the socket |
|
598 is in a shutting down state. Additionally any call to a send function will now |
|
599 complete with KErrEof if output has been stopped. |
|
600 -If a socket has been shut down with EStopInput any further calls to a receive function |
|
601 will complete with KErrEof. |
|
602 -Moved creation of CSocket::iAcceptQ into CSocket::ListenL() which avoids possible |
|
603 exception because return of 'new' was not checked. |
|
604 -Removed iIoctlBuf from CSocket because it has no requirement to be persistent |
|
605 -Changed CSocket::iAcceptQ to a CCirBuf which avoids some OOM problems and truely |
|
606 implements a fixed size queue. A panic is generated if a protocol attempts to |
|
607 overfill the accept queue. |
|
608 -Ready to go with uid check but commented out until all protocols implement it. |
|
609 -Fixed potential OOM defect where library handle could have been orphaned in |
|
610 CProtocolFamilyRef::LoadL(). |
|
611 -Implmented a way of passing Connect/Disconnect data OOM errors to the client instead of |
|
612 just ignoring them |
|
613 |
|
614 Version 1.0(051) |
|
615 ================ |
|
616 |
|
617 Not binary compatible with last release by virtue of the following: |
|
618 |
|
619 Removed all redundant package buffers from RSocket class and replaced two |
|
620 which are used with PckgBufC's. This cuts the size of a RSocket on the |
|
621 stack by about 52 bytes. |
|
622 |
|
623 Other changes: |
|
624 |
|
625 Removed names which are not required by clients from ES_SOCK.H |
|
626 Removed the constant KSockOptionMaxSize because it is now redundant |
|
627 Removed the double under score from the start of RSocketServ::SetExclusive mode and |
|
628 RSocketServ::ClearExclusive mode. |
|
629 Added following uids to marm builds: |
|
630 ESOCK.DLL uid2 0x1000008D uid3 0x10000047 |
|
631 *.PRT uid2 0x1000004A |
|
632 Added a protocol accessible function, SocketServExt::InstallSchedulerHook(), which |
|
633 allows a callback to be put in place of the active scheduler WaitForAnyRequest. |
|
634 This is primarily intended for use with the WINC version of PLP. |
|
635 Removed WINC specific scheduler overloading for PLP. It has now moved to PLP. |
|
636 |
|
637 Version 1.0(050) |
|
638 ================ |
|
639 |
|
640 Binary Compatible with last release |
|
641 C32 Upgrade release |
|
642 |
|
643 Version 1.0(049) |
|
644 ================ |
|
645 |
|
646 Binary Compatible with last release |
|
647 Fixed defect in CHostResolver::SetHostName() where GetHostName was being called instead. |
|
648 Removed iBusy assertions in query completion becaus the assertion is invalid if the |
|
649 request was cancelled |
|
650 |
|
651 Version 1.0(048) |
|
652 ================ |
|
653 |
|
654 Binary Compatible with last release |
|
655 Added following options for GetOpt: |
|
656 KSOReadBytesPending - Is passed to the protocol to be filled in with number of bytes |
|
657 which will be read in the next read operation |
|
658 KSOUrgentDataOffset - For a stream protocol which supports urgent data this get option |
|
659 is passed on to the protocol to retreive the urgent data offset |
|
660 KSOSelectLastError - For use with the select Ioctl KSockSelectExcept this get option |
|
661 retreives the last error, on a per socket basis. |
|
662 Moved TESOCKActivePriority from ES_SOCK.H to ES_PROT.H |
|
663 Added KNewDataEndofData which when passed to MSocketNotify::NewData indicates that socket |
|
664 is in a half closed state and will receive no more data any subsequent reads will |
|
665 complete with KErrEof and length 0. |
|
666 Removed KIOctlNRead and KIOctlCatMark because they have no function in the sockets API. |
|
667 |
|
668 |
|
669 Version 1.0(047) |
|
670 ================ |
|
671 |
|
672 Binary Compatible with last release |
|
673 Fixed defect in RSocket::Recv() where an invalid address is passed. |
|
674 Fixed defect in RSocket::GetOpt() where SetOpt was being called instead |
|
675 Added a socket level select ioctl with similar semantics to BSD, i.e.: |
|
676 |
|
677 TPckgBuf<TUint> flags; |
|
678 flags()=KSockSelectRead | KSockSelectWrite | KSockSelectExcept; |
|
679 socket.Ioctl(KIOctlSelect, status, &flags, KSOLSocket); |
|
680 |
|
681 The Ioctl will complete when any of the flaged conditions are |
|
682 satisfied. |
|
683 KSockSelectRead means data is pending, for listening sockets a |
|
684 connect is pending or a disconnect is pending |
|
685 KSockSelectWrite means a socket is connected and data can be written |
|
686 KSockSelectExcept means the socket is in an error state. |
|
687 |
|
688 |
|
689 Version 1.0(046) |
|
690 ================ |
|
691 |
|
692 Binary Compatible with last release |
|
693 Fixed memory leak in CSocket::SetSockOptL |
|
694 Integrated extension loading code for TCPIP. |
|
695 |
|
696 |
|
697 Version 1.0(045) |
|
698 ================ |
|
699 Changed RSocket::EStopInOut to RSocket::EImmediate and reordered enums |
|
700 Fixed defect in stream protocol sends |
|
701 Fixed defect in Shutdown(RSocket::EStopInOut, ) by clearing subsession handle through a null message |
|
702 Fixed potential defect in accept if socket has been put in an error state by the protocol |
|
703 Added asynchronous stop protocol call |
|
704 Added SetExclusiveMode and ClearExclusiveMode calls to RSocketServ session |
|
705 Added freeze files |
|
706 Added WINC build |
|
707 |
|
708 Version 1.0(044) |
|
709 =============== |
|
710 Fixed memory defect when protocols fail to start |
|
711 Reduced socket server thread minimum heap to 4K |
|
712 |
|
713 |
|
714 Version 1.0(043) |
|
715 =============== |
|
716 Fixed B4 SW-93 Set buffer length defect. |
|
717 |
|
718 |
|
719 Version 1.0(040) |
|
720 ================ |
|
721 |
|
722 Updated ESOCK Entry point |
|
723 Set minor version number to 4. |
|
724 Fixed "ETwoClose fault from RSocket::Close() if a RSocket::ShutDown() is pending" |
|
725 B4 Release. |
|
726 |
|
727 |
|
728 Version 1.0(040) |
|
729 ================ |
|
730 |
|
731 Version 1.0(039) |
|
732 ================ |
|
733 |
|
734 Added class TMBufPktQIter for iterating MBuf packet queues. |
|
735 |
|
736 Checked and corrected const handling throughout MBuf classes, where required, additional const |
|
737 versions of inlines have been added. |
|
738 |
|
739 Added RMBufChain::AppendL(TInt aLen). This adds space to the end of a chain. |
|
740 |
|
741 Version 1.0(038) |
|
742 ================ |
|
743 |
|
744 Removed RSocket::RecvOneOrMoreFrom. Recv from operations are only meaningful on non connection oriented |
|
745 protocols, OneOrMore behaviour is only meaningful on stream protocols which must, by definition be |
|
746 connection oriented. |
|
747 |
|
748 All read operations on RSocket now use the buffer's descriptor's max length rather than length. |
|
749 This makes Revcs specifying an explicit length more meaningful and the API generally more usable. |
|
750 |
|
751 Added RHostResolver::GetHostName(TDes &aName,TRequestStatus &aStatus) so that TCP/IP can take it's |
|
752 own good time about sorting out exactly who it might be. |
|
753 |
|
754 Version 1.0(037) |
|
755 ================ |
|
756 |
|
757 Added virtual void CServProviderBase::CancelIoctl(TUint aLevel,TUint aName)=0; |
|
758 This is called when a client cancels a pending Ioctl. Protocols should not call IoctlComplete |
|
759 in response to (or indeed after) a CancelIoctl. |
|
760 |
|
761 Version 0.1(036) |
|
762 ================ |
|
763 |
|
764 CProtocolBase now provides default implementations for most of it's virtual |
|
765 functions (all except Identify() actually) |
|
766 This is to cut down code size of protocols as they no longer need to provide stub |
|
767 functionality for services they do not support. |
|
768 Default behaviour is as follows: |
|
769 |
|
770 InitL(TDesC &aTag) - Do Nothing |
|
771 StartL(void) - Do Nothing |
|
772 |
|
773 BindL(CProtocolBase* protocol, TUint id) - Panic EDoesNotBindBelow |
|
774 BindToL(CProtocolBase* protocol) - Panic EDoesNotBindAbove |
|
775 Send(...) - Panic ECantSend |
|
776 Process(...) - Panic ECantProcess |
|
777 GetOption(...) - return KErrNotSupported |
|
778 SetOption(...) - return KErrNotSupported |
|
779 Error() - Panic EDontMessWithMyHeadManImHavingABadDay |
|
780 |
|
781 Implemented IPC stream protocol. |
|
782 This is a client server connection model, stream |
|
783 based service. I've implemented it mainly for testing purposes but if anyone needs |
|
784 reliable stream based IPC it is fully tested release quality code. |
|
785 IPC.PRT, RSocket::Open(_L("IPC Stream")); |
|
786 |
|
787 Added RSocket::SetLocalPort(TUint aPort) and RSocket::GetLocalPort() these provide a |
|
788 simpler interface than Bind for protocols which do not fully use a TSockAddr for local |
|
789 addressing. |
|
790 |
|
791 TServerProtocolDesc and TProtocolDesc now follow standard EPOC/32 |
|
792 naming conventions. (i.e. all instance variables are iXxxxXxxx) |
|
793 |
|
794 KBufSizeUndefined becomes KSocketBufSizeUndefined |
|
795 KDefaultBufferSize becomes KSocketDefaultBufferSize |
|
796 KInternalOptionBit becomes KSocketInternalOptionBit |
|
797 KStream becomes KSocketMessageSizeIsStream |
|
798 KUndefined becomes KSocketMessageSizeUndefined |
|
799 KNoLimit becomes KSocketMessageSizeNoLimit |
|
800 KNoSecurity becomes KSocketNoSecurity |
|
801 |
|
802 TServerProtocolDesc::iLayer has been removed. |
|
803 |
|
804 ESOCK now (as much as possible) checks TProtocolDescs which protocols supply. |
|
805 |
|
806 Version 0.1(035) |
|
807 ================ |
|
808 |
|
809 Added RSocket open by name RSocket::Open(RSocketServ &aServer,const TDesC& aName) |
|
810 aName should be the protocol name as supplied to RSocketServ::FindProtocol unlike |
|
811 FindProtocol opening a socket by name does not support wildcard matching. |
|
812 |
|
813 RSocket::Close now calls CloseSubSession so you don't get paniced for closing a |
|
814 socket twice. I don't like this but everyone else seems to think it's the bees knees. |
|
815 |
|
816 Version 0.1(034) |
|
817 ================ |
|
818 |
|
819 Version 0.1(033) |
|
820 ================ |
|
821 |
|
822 Fixed destructor defect on creating NetDatabases under OOM conditions. |
|
823 |
|
824 Version 0.1(032) |
|
825 ================ |
|
826 |
|
827 Released for E32 069 |
|
828 |
|
829 Version 0.1(031) |
|
830 ================ |
|
831 |
|
832 B-2 Candidate. |
|
833 |
|
834 The ini file is now opened using a TFindFile. The socket server searches in |
|
835 \System\Data on all drives opening the first esock.ini it finds. Search order is |
|
836 defined by the file server. |
|
837 |
|
838 Version 0.1(030) |
|
839 ================ |
|
840 |
|
841 Changed default path for ini file to \System\Data\esock.ini for all builds. |
|
842 |
|
843 Reimplemented RSocket::Shutdown(RSocket::ENormal...); |
|
844 |
|
845 Added an optional parameter to MSocketNotify::CanClose. |
|
846 TDelete aDelete can be set to EDetach which will stop ESOCK auto deleting the socket |
|
847 service provider when it is closed. This should be used by protocols such as TCP which |
|
848 need the SSP to linger after the client has exited. Deleteing the SSP then becomes the |
|
849 protocol's responsibility. |
|
850 |
|
851 Made CProtocolBase::Tag and CProtocolBase::StartSending public again. Sorry. |
|
852 |
|
853 Version 0.1(029) |
|
854 ================ |
|
855 |
|
856 Delayed protocol closure. |
|
857 Protocols may now replace virtual void CProtocolBase::CloseNow(); which is called when |
|
858 all clients referencing a protocol have disconnected. In response a protocol must (at some |
|
859 time later call void CProtocolBase::CanClose() to indicate that the protocol can be deleted. |
|
860 This is to allow reliable protocols (TCP in particular) to ensure that all data has drained |
|
861 from the stack before it is deleted. Protocols must not sit in CloseNow synchronously waiting |
|
862 for data to drain. |
|
863 Note that after all clients have exited the socket server spends a short time mourning it's |
|
864 losses (currently 5 mins) and then exits. At this time all protocols will be forcibly unloaded |
|
865 anyway. |
|
866 |
|
867 Version 0.1(028) |
|
868 ================ |
|
869 |
|
870 New startup code. |
|
871 ESOCK now starts a new thread in the comms server process (C32EXE). |
|
872 All test clients should now start the comm server (StartC32()) before connecting |
|
873 to the socket server. There is no longer any need to explicitly start esock. |
|
874 This code relies on defect HA-205 being fixed. If you take this release for 066 you must |
|
875 apply the fix described on notes yourself. Due to defect HA-212 you should also set the |
|
876 nocallentrypoint flag for esock.dll in your oby file |
|
877 |
|
878 Tidied code. |
|
879 ProtocolManager class split into 2. If you're missing an API try |
|
880 looking in SocketServer. |
|
881 |
|
882 Version 0.1(027) |
|
883 ================ |
|
884 |
|
885 Added RNetDatabase::Cancel RHostresolver::Cancel and RServiceResolver::Cancel(). |
|
886 On the protocol, these call a new pure virtual fn CResolverProvdBase::CancelCurrentoperation(). |
|
887 |
|
888 Added RMbufQ::Assign(RMbufChain &), RMbufQ::Append(RMbufChain &) and RMbufQ::Prepend(RMbufChain &) |
|
889 To add etc mbuf chains to RMbufQs. |
|
890 |
|
891 Removed RMbufQ::CopyIn(TUint8*, TInt len, Tint offset) and RMbufQ::CopyOut(TUint8*, TInt len, TInt offset) |
|
892 |
|
893 Version 0.1(026) |
|
894 ================ |
|
895 |
|
896 ESOCK E32 Sockets server |
|
897 Version 0.1(025) |
|
898 ================ |
|
899 |
|
900 Added code to shut the socket server down cleanly under WINS and fixed a couple of memory |
|
901 leaks this revealed. |
|
902 |
|
903 Changed creation interface to resolver classes: |
|
904 RHostResolver::Open(RSocketServ &aSocketServer,TUint anAddrFamily,TUint aProtocol); |
|
905 RServiceResolver::Open(RSocketServ& aSocketServer,TUint anAddrFamily,TUint sockType,TUint aProtocol); |
|
906 RNetDatabase::Open(RSocketServ& aSocketServer,TUint anAddrFamily,TUint aProtocol); |
|
907 These slight changes better reflect the domain of the resolver in question. |
|
908 |
|
909 Fixed busy defect in CNetDatabase. |
|
910 |
|
911 Moved the following functions from class ByteOrder to class BigEndian Get32(const TUint8* aPtr), |
|
912 Get16(const TUint8* aPtr), Put32(TUint8* aPtr, TUint32 aVal) and Put16(TUint8* aPtr, TUint16 aVal). |
|
913 These functions read and write byteswapped data at (possibly) misaligned addresses |
|
914 |
|
915 Added class LittleEndian which also implements Get32(const TUint8* aPtr), Get16(const TUint8* aPtr) and |
|
916 Put32(TUint8* aPtr, TUint32 aVal), Put16(TUint8* aPtr, TUint16 aVal); These funtions write data in host order |
|
917 at (possibly) misaligned addresses. |
|
918 |
|
919 CancelAll now calls Shutdown with CServProviderBase::EImmediate rather than CServProviderBase::ENormal |
|
920 |
|
921 Added KSockWriteUrgent, KSIPeekData and KSockReadPeek. Protocols which support urgent data (AKA Out of band or unit data) should set |
|
922 KSIUrgentData in their protocol info. Protocols which support peeking should set KSIPeekData. If a read request |
|
923 is issued with the peek bit set and a protocol supports peek it should process the read as normal but retain a |
|
924 copy of the data for subsequent reads. |
|
925 |
|
926 Version 0.1(024) |
|
927 ================ |
|
928 |
|
929 RSocket::GetOpt and RSocket::SetOpt become |
|
930 TInt RSocket::SetOpt(TUint anOptionName,TUint anOptionLevel,const TDesC8& anOption=TPtrC(NULL,0)); |
|
931 TInt RSocket::GetOpt(TUint anOptionName,TUint anOptionLevel,TDes8& anOption); |
|
932 |
|
933 RSocket::Ioctl becomes |
|
934 EXPORT_C void RSocket::Ioctl(TUint aCommand,TRequestStatus& aStatus,TDes8& aDesc=TPtr8(NULL,0),TUint aLevel=KLevelUnspecified) |
|
935 |
|
936 Added CProtocolBase::Tag() to retrun a TPtrC to the protocol's tag name |
|
937 |
|
938 Version 0.1(023) |
|
939 ================ |
|
940 |
|
941 added RSocketServ::StartProtocol(TUint anAddrFamily,TUint aSockType,TUint aProtocol,TRequestStatus &aS) |
|
942 This can be used to asynchronously start a protocol so that a later call to RSocket::Open will |
|
943 complete immediately |
|
944 |
|
945 Asynchronous RSocket::Close has been removed - use asynchronous ShutDown then synchronous close to |
|
946 allow a protocol to drain. |
|
947 |
|
948 RSocket::Listen(), RSocket::Bind(), RSocket::LocalName() and RSocket::RemoteName() all |
|
949 become synchronous. |
|
950 |
|
951 CProtocolBase::StartSending() becomes CProtocolBase::StartSending(CProtocolBase* aProtocol) |
|
952 aProtocol should point to the protocol which is raising the flow control on event. |
|
953 |
|
954 added client side MBufManager debugging functions: |
|
955 TInt RSocketServ::__DbgFailNextMbuf(TInt n); // Fail after n allocs on the core Mbuf allocator, 0 to cancel |
|
956 TInt RSocketServ::__DbgSetMbufPoolLimit(TInt n); // Set the maximum size of the mbuf pool to n bytes |
|
957 TInt RSocketServ::__DbgCheckMbuf(TInt n); // Check that there are only n bytes allocated from the entire pool |
|
958 TInt RSocketServ::__DbgMbufFreeSpace(); // return the amount of free space in the mbuf manager pool (bytes) |
|
959 TInt RSocketServ::__DbgMbufTotalSpace(); // return the total size of the mbuf manager pool (bytes) |
|
960 |
|
961 Added net database lookup classes. Unfortunately I have been unable to extract as much generality |
|
962 as I would have liked and so the net database Base classes provide little more than IPC and |
|
963 request routing. |
|
964 |
|
965 RNetDatabase client side and CNetDBProvdBase server side - API are similar to other lookup classes and |
|
966 should be obvious. |
|
967 |
|
968 Version 0.1(022) |
|
969 ================ |
|
970 |
|
971 NetServ has been droped from the ESOCK releasables - EIKON ESOCK clients must once again |
|
972 call StartESOCK(NULL) just like the rest of us. |
|
973 |
|
974 Switched the API to Accept() so that Accept is called on the listening socket and takes |
|
975 a blank socket as an argument - this is so that CancelAccept() is called on the same socket |
|
976 as Accept() was called on. |
|
977 i.e newConnection.Accept(listener,aStatus); becomes listener.Accept(newConnection,aStatus); |
|
978 |
|
979 Fixed defect in outgoing connection data copy. |
|
980 |
|
981 Version 0.1(021) |
|
982 ================ |
|
983 |
|
984 Ini files moved to \e32data (WINS) or \data (EPOC) |
|
985 |
|
986 void CServProviderBase::PassiveOpen(...) becomes TInt CServProviderBase::PassiveOpen(...) |
|
987 this allows protocols to return errors (OOM etc.) on passive opens |
|
988 |
|
989 Added an extra parameter (CProtocolBase* aSourceProtocol=NULL) to all inter protocol calls |
|
990 so that the source of such a call may be identified. Protocols shouls call these functions |
|
991 with aSourceProtocol=this |
|
992 |
|
993 All ESOCK specific error numbers now negative |
|
994 |
|
995 Replaced ALIGN macros with templates AlignDown4 and IsAligned4 |
|
996 |
|
997 Known defects - PDummy's service provider (WINS test code) can leak memory in OOM conditions |
|
998 |
|
999 Version 0.1(020) |
|
1000 ================ |
|
1001 Reduced the memory footprint of ESOCK to about 77k from 0.5 Mb :-( |
|
1002 Fixed protocol re-start defect in NETSRV |
|
1003 |
|
1004 Version 0.1(019) |
|
1005 ================ |
|
1006 J Day release. |
|
1007 NETSERV now starts (and links to) IRDA, TCP/IP and NCP32. |
|
1008 |
|
1009 WARNING |
|
1010 MNT command has a defect in GETBLD. After getting E32 v61 INCC WINS WINSDB it then gets 60 of EMARM. |
|
1011 Reason unknown as yet.) |
|
1012 |
|
1013 Version 0.1(018) |
|
1014 ================ |
|
1015 |
|
1016 added reliance on C32 for netsrv |
|
1017 removed dependancies on econs |
|
1018 |
|
1019 NOTE COMMS PDD MUST BE CALLED ECDRV1 |
|
1020 |
|
1021 Version 0.1(017) |
|
1022 ================ |
|
1023 |
|
1024 17 was abandoned due to excess grief - it is haunted enter release 17 at your own peril |
|
1025 |
|
1026 Version 0.1(016) |
|
1027 ================ |
|
1028 |
|
1029 Added the netserv releasable. This is used by the shell to configure |
|
1030 the network. |
|
1031 |
|
1032 Fixed PDUMMY and IPWINS with refeneces to EEmergency. |
|
1033 |
|
1034 Version 0.1(015) |
|
1035 ================ |
|
1036 |
|
1037 CServProviderBase::EEmergency becomes CServProviderBase::EImmediate this is to make code for the the following defect fix |
|
1038 read more sensibly |
|
1039 |
|
1040 Canceling a pending connect will now shut a socket down EImmediate (was EEmergency) rather than |
|
1041 ENormal - this is to stop ESOCK panicing on the call to CanClose() |
|
1042 |
|
1043 TActivePriority becomes TESOCKActivePriority to prevent a name clash with EIKON. |
|
1044 |
|
1045 fixed typeo KKDletaTimerInterval becomes DeltaTimerIneterval |
|
1046 |
|
1047 Version 0.1(014) |
|
1048 ================ |
|
1049 |
|
1050 Brought releasble zip filenames into line with other projects |
|
1051 |
|
1052 WINS release in r:\ESOCK\ZIP\EWINS.nnn |
|
1053 WINS debug sdbs in r:\ESOCK\ZIP\EWINSDB.nnn |
|
1054 MARM release in r:\ESOCK\ZIP\EMARM.nnn |
|
1055 |
|
1056 Added RSocket::CancelAll |
|
1057 |
|
1058 RSocket::CancelXXXXX() no longer panics the client under any circumstances |
|
1059 |
|
1060 RSocket::Accept(RSocket& aListeningSocket,TSockAddr &aRemote TDes8 &aConnectData,TRequestStatus& aStatus) |
|
1061 becomes RSocket::Accept(RSocket& aListeningSocket,TDes8 &aConnectData,TRequestStatus& aStatus); |
|
1062 clients can use RSocket::RemoteName after accepting if they need to know the address of the |
|
1063 remote host initiating a conection. |
|
1064 |
|
1065 ESOCK's delta timer queue function becomes |
|
1066 IMPORT_C TTimerHandle CDeltaTimer::Queue(TTimeIntervalShortMicroSeconds aTimeInMicroSeconds,TCallBack& aCallBack); |
|
1067 to fall in line with E32 timer implementations i.e the "Micro" isn't a misprint anymore. KDletaTimerInterval |
|
1068 specifies the granularity of the delta timer. |
|
1069 |
|
1070 CServProvider::Write(const TDesC8& aDesc, TUint options)=0; becomes |
|
1071 CServProvider::Write(const TDesC8& aDesc, TUint options, TSockAddr* anAddr=NULL)=0; |
|
1072 SetRemote name is now only called as a result of RSocket::Connect()s - SendTo addresses will be sent through |
|
1073 on the new TSockAddr argument. Connection oriented sockets should never have the TSockAddr set on a Write call. |
|
1074 |
|
1075 Version 0.1(013) |
|
1076 ================ |
|
1077 |
|
1078 Includes ARM Build |
|
1079 |
|
1080 WINS release in r:\ESOCK\ZIP\ESKWINS.nnn |
|
1081 WINS debug sdbs in r:\ESOCK\ZIP\ESKSDB.nnn |
|
1082 MAMR release in r:\ESOCK\ZIP\ESKMARM.nnn |
|
1083 |
|
1084 WINS release includes |
|
1085 ESOCKxx.DLL ESOCK dll and exe |
|
1086 ESOCKxx.LIB ESOCK link library |
|
1087 PDUMMYxx.PRT Dummy protocol module |
|
1088 IPWINSxx.PRT TCP/IP over WinSock protocol module |
|
1089 |
|
1090 MARM relase includes |
|
1091 ESOCKxx.DLL ESOCK dll and exe |
|
1092 ESOCKxx.lib ESOCK link library |
|
1093 PDUMMY.PRT dummy protocol modules |
|
1094 |
|
1095 Release notes |
|
1096 ============= |
|
1097 |
|
1098 AutoBind now called for SendTo on connectionless sockets not previously bound. |
|
1099 |
|
1100 Fixed looping defect in Error(MSocketNotify::EErrorConnect) |
|
1101 |
|
1102 removed external dependencies on ss_pman.h |
|
1103 |
|
1104 fixed SendTo failure on non connections oriented sockets. |
|
1105 |
|
1106 Version 0.1(012) |
|
1107 ================ |
|
1108 |
|
1109 Added support for writable ini files. |
|
1110 TInt CIniFile::WriteVar(const TDesC& aSection,const TDesC& aVarName,TInt aValue); |
|
1111 TInt CIniFile::WriteVar(const TDesC& aSection,const TDesC& aVarName,const TDesC& aValue); |
|
1112 void CIniFile::CommitL(); |
|
1113 |
|
1114 |
|
1115 Version 0.1(011) |
|
1116 ================ |
|
1117 |
|
1118 symbolic constant ESOCK_INI_FILE added to specify the path of the ini file. |
|
1119 |
|
1120 Added new class RMBufAsyncRequest which provides asyncronous buffer allocation for |
|
1121 protocols to help them avoid dealocks. |
|
1122 |
|
1123 Added inlines RMBuf::Get() and RMBuf::Put() which safely get and put bytes to/from an |
|
1124 MBuf. These are not inlines in debug builds. |
|
1125 |
|
1126 Added inlines RMBuf::AllocL() and RMBuf::Free() so that there is now no need at all |
|
1127 for protocols to call CMBufManager functions. |
|
1128 |
|
1129 Removed operator->() from all classes and replaced with RMBufXXX::First() which |
|
1130 returns a pointer to the first MBuf in a buffer queue or chain. |
|
1131 |
|
1132 Changed void RMBufChain::Align(Tint aSize) to TInt RMBufChain::Align(Tint aSize). |
|
1133 The functionality of this has changed slightly also and now allow aSize to be greater |
|
1134 than the chain length without raising a panic. aSize must is still limited to an |
|
1135 MBuf buffer size (ie aSize<=128). The number of bytes that were aligned is returned. |
|
1136 |
|
1137 Removed TMBufIter::operator->() |
|
1138 |
|
1139 Removed RMBuf* operator from all classes except TMBufIter. |
|
1140 |
|
1141 Amended test code to check RMBufChain::CreateL() and Async allocator support. |
|
1142 |
|
1143 Re-organised MBuf source code, splitting it into several files. |
|
1144 |
|
1145 Added Protocol debugging aids to CMBufManager: |
|
1146 __DbgSetPoolLimit() - Sets a hard limit on the maximum size to which the pool may grow. |
|
1147 __DbgSetFailAfter() - Causes a future allocation request to fail |
|
1148 __DbgGetBufSpace() - Returns free buffer space |
|
1149 __DbgGetBufTotal() - Returns total buffer space |
|
1150 |
|
1151 (Re-)Exported the TAsyncCallback class. |
|
1152 Removed excess EXPORTs from CAsync class. |
|
1153 Added ProtocolManager::__DbgForceKillMBufManager() |
|
1154 |
|
1155 CSocket::Error() no longer has a hard coded call to __debugGER() |
|
1156 |
|
1157 KIoctlNonBlockingIO becomes KSONonBlockingIO and KIoctlBlockingIO becomes KSOBlockingIO |
|
1158 Blocking behaviour should now be set using SetOption. |
|
1159 |
|
1160 RSocket::SetOpt(TUint optionName,const TDesC8 &aDesc,TUint optionLevel,TRequestStatus &aStatus) becomes |
|
1161 RSocket::SetOpt(TUint optionName,const TDesC8 *aDesc,TUint optionLevel) and |
|
1162 RSocket::GetOpt(TUint optionName,const TDesC8 &aDesc,TUint &anOptionLen,TUint optionLevel,TRequestStatus &aStatus) becomes |
|
1163 RSocket::GetOpt(TUint optionName,const TDesC8 *aDesc,TUint &anOptionLen,TUint optionLevel); |
|
1164 |
|
1165 To support Ioctls without any data void Ioctl(TUint level,TUint name,TDes8 &anOption,TUint aLen) |
|
1166 becomes void Ioctl(TUint level,TUint name,TDes8 &anOption) and, because of this |
|
1167 CServProvdBase::Ioctl(TUint level,TUint name,TDes8& anOption) becomes |
|
1168 CServProvdBase::Ioctl(TUint level,TUint name,TDes8* anOption) and MSocket::IoctlComplete(TDesC8 &aBuf) |
|
1169 becomes MSocket::IoctlComplete(TDesC8 &aBuf) |
|
1170 |
|
1171 RSocket::Close no longer panics if the socket was never opened |
|
1172 |
|
1173 void CServProviderBase::SetRemName(TSockAddr& anAddr) becomes TInt CServProviderBase::SetRemName(TSockAddr& anAddr) |
|
1174 protocols can pre check addresses (for valid port numbers etc) and return an error synchronously - otherwise they |
|
1175 should return KErrNone. |
|
1176 |
|
1177 Version 0.1(010) |
|
1178 ================ |
|
1179 |
|
1180 ESOCK now builds under ARM but will not link against the released base due to a gcc defect. |
|
1181 Talk to Rog if you want to run ESOCK on a rack. |
|
1182 |
|
1183 Added static EXPORT_C ProtocolManager::__DbgForceLoadMBufManagerL(); This allows debug builds to |
|
1184 force premature loading of the MBuf manager. |
|
1185 |
|
1186 RMBufPktQ::Replace() becomes RMBufPktQ::Prepend(). |
|
1187 |
|
1188 Added void RMBufChain::CreateL(const TDesC8& aDes, TInt aHdrLen=0); This creates an MBuf chain |
|
1189 from a descriptor and optionally prepends space for a protocol header. |
|
1190 |
|
1191 Added TInt TSockAddr::GetUserLen(); Derived classes should now call SetUserLen() in their |
|
1192 contructor to set the descriptor length tom the actuall length of the desciptor. TSockAddr |
|
1193 now initialises the length to maximum possible length of the descriptor. Note: If you dynamically |
|
1194 change the length of your address, then either ignore this or set to max possible length. |
|
1195 The primary use for this is to enable address type independant routing to be implemented by |
|
1196 regarding the derive portion of TSockAddr as a bit stream. If this will never apply to you, |
|
1197 then there is no real need to do a SetUserLen() in you constructor. |
|
1198 |
|
1199 TSocketAddress removed. Where needed, this functionality can be implemented |
|
1200 in derived classes. Use of the names "Input()" and "Output()" may be |
|
1201 appropriate for consistancy. |
|
1202 |
|
1203 CProtocolFamilyBase::NewProtocol becomes CProtocolFamilyBase::NewProtocolL |
|
1204 |
|
1205 Re-designed protocol manager. CProtocolBase and CProtocolFamily are no longer CObjects. |
|
1206 The fact that they were was adding to the complexity of the protocol manager. This should make |
|
1207 no difference to protocol modules. |
|
1208 |
|
1209 Added low memory tests to test code and fixed all memory leaks (etc.) detected. |
|
1210 |
|
1211 Added class CAsyncCallBack : public CAsync. CAsyncCallBack implements the bare minimum non virtual |
|
1212 subclass of CAsync. |
|
1213 |
|
1214 Added full binding code. (Based on a hacked up inifile system) |
|
1215 |
|
1216 Binding is controled by the file \e32sys\esock.ini. The format of this is very similar to |
|
1217 Windows' protman.ini |
|
1218 i.e |
|
1219 [SectionName] |
|
1220 itemName= itemValue |
|
1221 [AnotherSectionName] |
|
1222 itemName= itemValue |
|
1223 |
|
1224 Note that there must not be a space between "itemname" and "=" and there must be a spece between |
|
1225 "=" and itemValue. Also note that itemValue is terminated by white space. |
|
1226 |
|
1227 Protocols may read the ini file (or other similar files) using the CIniFile class. Note that whne the |
|
1228 Registry is implemented CIniFile will be removed. |
|
1229 |
|
1230 There is a general section called [sockman] which should contain an item "protocols" with a comma |
|
1231 seperated list of top level protocols - i.e those protocols which can create sockets. |
|
1232 |
|
1233 Each protocol is described by it's own section. The section name is the protocol's "tag" the protocol |
|
1234 section must contain two items: "filename" and "index" these are respectively the .prt (dll) file to load |
|
1235 the protocol from and (if required) the (1 based) index of the specific protocol within the protocol family. |
|
1236 |
|
1237 A protocol section may also have an optional "bindto" item which specifies a comma seperated list of |
|
1238 (tags of) the lower bindings of the protocol. |
|
1239 |
|
1240 CProtocolBase::InitL() becomes CProtocolBase::InitL(TDesC& aTag) the descriptor carries the protocol's |
|
1241 tag from the ini file. Protocols should add options to their specific section and use the supplied tag |
|
1242 as a section name to retrieve them - this allows us to multiple instantiations of a single protocol. |
|
1243 |
|
1244 e.g |
|
1245 [sockman] |
|
1246 protocols= ip |
|
1247 |
|
1248 [transport] |
|
1249 filename= \e32sys\pdummy.prt |
|
1250 index= 1 |
|
1251 bindto= interface1,interface2 |
|
1252 |
|
1253 [interface1] |
|
1254 filename= \e32sys\pdummy.prt |
|
1255 index= 2 |
|
1256 |
|
1257 [interface2] |
|
1258 filename= \e32sys\pdummy.prt |
|
1259 index= 2 |
|
1260 |
|
1261 This ini file loads protocol 1 from \e32sys\pdummy.prt and binds it to two seperate instances of |
|
1262 protocol 2 from \e32sys\pdummy.prt |
|
1263 |
|
1264 Protocols are late bound when sockets are created. An unfortunate side effect of this is that BindL |
|
1265 and BindToL May be called after StartL due to a second round of binding. |
|
1266 |
|
1267 Protocols should call Open on any protocols they bind to and Close on any protocols they are bound to |
|
1268 when they close. This will ensure that protocols are destroyed in the correct order (up the stack) |
|
1269 |
|
1270 Thanks to SteveT for the original CIniFile. |
|
1271 |
|
1272 |
|
1273 Socket buffers are now fixed in size - once they have been explicitly set. Otherwise they will |
|
1274 continue to grow as before. |
|
1275 |
|
1276 Version 0.1(009) |
|
1277 ================ |
|
1278 |
|
1279 Fixed defect in Disconnect up call. |
|
1280 |
|
1281 Removed CServProvdBase::Create() this was an artifact of the previous incarnation of the protocol manager. |
|
1282 |
|
1283 Added proper copy constructors to Service providers in ipwins. Added esock debug asserts to ipwins. |
|
1284 |
|
1285 SocketTimer::Queue(TInt aTimeInMicroSeconds,TCallBack &aCallBack); becomes SocketTimer::Queue(TTimeIntervalMicroSeconds aTimeInMicroSeconds,TCallBack &aCallBack); |
|
1286 I'm not sure if this is a good thing though. |
|
1287 |
|
1288 Internals of SocketTimer altered to use a heartbeat rather than an interval timer - this makes better use of E32 delta queues. |
|
1289 |
|
1290 CServProviderBase::Protocol() has been removed. SSPs which wish need reference their protocol should implement this themselves. |
|
1291 |
|
1292 TNotify has become the mixin MSocketNotify there should be no change to protocols. |
|
1293 Similarly TResolverNotify has become MResolverNotify. |
|
1294 |
|
1295 CServProviderBase::SetLocalName now returns a TInt - this allows protocols to signal an error for (amongst other things) bad protocol |
|
1296 family in the address and reserved port numbers. The error is passed directly to the client. SetRemoteName should still signal any errors |
|
1297 using an Error call during or after the ActiveOpen() call. |
|
1298 |
|
1299 Similarly, GetOption and SetOption now return a TInt. Also CProtocolBase::GetOption and CProtocolBase::SetOption |
|
1300 |
|
1301 The socket server no longer steals all Ioctl calls it recognises regardless of the level. |
|
1302 |
|
1303 Added restartable connections to sockets. A protocol which can restart after a failed connect or a disconnect should set KSICanReconnect |
|
1304 in it's protocol info field. This allows clients to reissue a connect request after a failure. |
|
1305 |
|
1306 Added a new error indication bit: MSocketNotify::EErrorFatal this will cause all pending requests to complete. If the socket does not |
|
1307 support re-connection setting EErrorFatal will put into an error state which will stop all further client requests. |
|
1308 MSocketNotify::EErrorFatal is not set by default. MSocketNotify::EErrorFatal should be used to indicate an error on a listening socket. |
|
1309 |
|
1310 New improved EchServ. The test server now provides chargen, NULL and connect back services as follows: |
|
1311 Service TCP/Port UDP/Port |
|
1312 ======= ======== ======== |
|
1313 Echo 20000 - |
|
1314 Char Gen 20001 - |
|
1315 Null 20002 - |
|
1316 Reconnect 20003 n/a |
|
1317 |
|
1318 The reconnect srvice will create a new socket and attempt to connect back to the originating host on port 20004. |
|
1319 When both connections are in place it will echo data received on each socket to the other. |
|
1320 |
|
1321 MSocketNotify::IoctlComplete() becomes MSocketNotify::IoctlComplete(TDesC8 &aBuf) anyreturn data for the Ioctl should be |
|
1322 sent in the IoctlComplete call. SSPs now need to copy any data required fro mthe Ioctl call. |
|
1323 |
|
1324 Version 0.1(008) |
|
1325 ================ |
|
1326 |
|
1327 Fixed Deadlock defect on startup with no valid protocols. |
|
1328 |
|
1329 OSILayer enum becomes TOSILayer. All memnbers get an E Prefix. Ooops. |
|
1330 |
|
1331 Fixed a descriptor type defect in the CSocket class. |
|
1332 |
|
1333 CServiceProviderBase::SetNotify is no longer virtual. SSPs should now use the new pure virtual |
|
1334 Start() as indication that they can send messages to their iSocket |
|
1335 |
|
1336 Tidied up the protocol init code. fixed defects when loading second+ protocols from a single family. |
|
1337 |
|
1338 Finished name resolution and service database functionality (Except Next). NetDatabase will |
|
1339 be left until there is more input available from IrIAS |
|
1340 |
|
1341 Fixed datagram Close/Shutdown order defect. |
|
1342 |
|
1343 Fixed code rot in the e32 finger server and IPWINS. |
|
1344 |
|
1345 CAsync had unneccessary code. CAsync::CallBackL and CAsync::RunL have been removed (RunL becomes pure virtual). You |
|
1346 should place all code from CAsync::CallBackL into the derived RunL |
|
1347 |
|
1348 Added a global timer class: |
|
1349 class SocketTimer |
|
1350 { |
|
1351 public: |
|
1352 IMPORT_C static TTimerHandle Queue(TInt aTimeInMicroSeconds,TCallBack &aCallBack); |
|
1353 IMPORT_C static void Remove(TTimerHandle aTimer); |
|
1354 }; |
|
1355 Although times are specified in milliseconds the timer currently only gives 1/10th second granularity so it isn't much better that a CTimer. |
|
1356 This will be rectified when E32 supports fine grained timers - this in unlikely to be on WINS, you'll have to live with the 1/10ths. |
|
1357 Queue returns a TTimerHandle which should be passed to Remove to Cancel a timer. TTimerHandle becomes when the timer goes off. Timer test |
|
1358 code is in TSOCK\T_TIMER.MAK |
|
1359 |
|
1360 Version 0.1(007) |
|
1361 ================ |
|
1362 |
|
1363 |
|
1364 TSockAddr re-implemented more effeciently and added CmpPort() member to compare for equality two TSockAddr structures. |
|
1365 |
|
1366 ES_INET.H dependancy removed from ESock. |
|
1367 |
|
1368 Class TSockAddrIN has been renamed to TInetAddr. Implementation of TInetAddr moved to TCPIP and also IPWINS. |
|
1369 |
|
1370 Class Inet removed from Esock and replaced with class ByteOrder that implements byte order swapping. |
|
1371 |
|
1372 Included test code for MBuf manager as TESTMBUF but see below. |
|
1373 |
|
1374 Changed MNT.CMD to ensure that test protocols have the InstallXXX symbols as the first in generated def files. |
|
1375 All Esock code (especially protocol modules) should now be built using real (i.e. non name) builds. |
|
1376 DEF files were added to the release in 005. |
|
1377 |
|
1378 Added Peek() to RMBufPktQ to allow the first packet to be examined without removing it. |
|
1379 |
|
1380 Removed cleanup stack support from RMBufChain. |
|
1381 |
|
1382 CProtocolBase::Bind() becomes CProtocolBase::BindL() and CProtocolBase::BindTo() becomes |
|
1383 CProtocolBase::BindToL() protocols should leave from any binding operation to indicate an error. |
|
1384 |
|
1385 Inter-Protocol flow control: |
|
1386 CProtocolBase::Send() now returns TInt, added virtual void CProtocolBase::StartSending(); These now form a |
|
1387 flow control pair. A zero return from a send should floww control off the sending protocol. StartSending |
|
1388 acts as a flow control on. |
|
1389 |
|
1390 Added virtual void CProtocolBase::Error(Tint anError); Protocols should propagate error conditions up |
|
1391 the stack (eventually to socket service providers) using this call. |
|
1392 |
|
1393 Added TServerProtocolDesc::OSIlayer and corresponding OSILayer enum. Protocols will be Start()ed in |
|
1394 increasing layer order (ie up the stack). |
|
1395 |
|
1396 RSocketServer::FindProtocol(const TProtocolName&,TProtocolDesc &) implemented. |
|
1397 |
|
1398 Introduced alloc heaven tool code into socket server. |
|
1399 Fixed Alloc heaven. |
|
1400 |
|
1401 Fixed RecvFrom functionality. (Was not writing address back to client space.) |
|
1402 |
|
1403 Fixed datagram message completeion defect. |
|
1404 |
|
1405 Removed last globals from the socket server. Yeah! |
|
1406 |
|
1407 Send(RMBufChain & ,TSockAddr *from,TSockAddr *to=NULL) becomes Send(RMBufChain &) MBuf chains now carry |
|
1408 source and destination addresses. (this should have been in 006.) |
|
1409 |
|
1410 Added MBuf Manager to socket server. MBuf manager is installed whenever a protocol which requires MBuf |
|
1411 services is loaded. Use of MBuf manager as a stand alone dll is no depreciated. Protocols should indicate that |
|
1412 they rewuire the MBufManager by setting ENeedMBufs in their serviceTypeInfo. |
|
1413 |
|
1414 Version 0.1(006) |
|
1415 ================ |
|
1416 |
|
1417 CProtocolBase::NewSAPL() becomes CProtocolBase::NewSAPL(TUint aSocketType) The single parameter indicates the socket type. |
|
1418 Protocols which only produce a single socket type may ignore it. |
|
1419 |
|
1420 TNotify::Error(TInt anError); becomes TNotify::Error(TInt anError,TUint anOperationMask=KAllOperationss); |
|
1421 Errors can now be specified on one of more operations. Operation bitmasks are specified in TNotify. |
|
1422 |
|
1423 Added TNotify::IoctlComplete ioctl operations are now asynchronous and follow the general pattern. Socket Service providers ioctl |
|
1424 call carries a descriptor. The desc's contents are protocol specific. The socket server will write the entire contents of the descriptor |
|
1425 back to client space after an Ioctl completes. |
|
1426 |
|
1427 Process(RMBufChain & ,TSockAddr *from,TSockAddr *to=NULL) becomes Process(RMBufChain &) MBuf chains now carry source and destination addresses. |
|
1428 |
|
1429 |
|
1430 Version 0.1(005) |
|
1431 ================ |
|
1432 |
|
1433 Made release notes more comprehensive. Esock now has 3 users. |
|
1434 |
|
1435 Added RecvOneOrMore functionality. This causes a socket (stream only) to block until any data arrives. |
|
1436 It will then read any data that is available (upto the size of the supplied descriptor) and complete immediately. |
|
1437 |
|
1438 added serviceTypeInfo to TServerProtocolDesc structure - it is important that protocols fill this in correctly using |
|
1439 values from the TProtocolServiceInfo enum. Note that previous releases of IPWINS and PDUMMY were incorrect. |
|
1440 |
|
1441 added *.def to li.prj |
|
1442 |
|
1443 Cleaned up startup and shutdown code in IPWINS - we were leaving threads hanging around. |
|
1444 |
|
1445 Esock now uses UserSvr::InitRegisterCallback() this is important as protocols will start to use the |
|
1446 comms server which must be started before they load. |
|
1447 |
|
1448 Added CProtocolBase::ProtcolFamily() and CServProviderBase::Protocol() |
|
1449 |
|
1450 Renamed TIPWINS.* to T_IPWINS.* |
|
1451 |
|
1452 Added basic host name resolution to IPWINS - this is used by the test code. You no longer need to edit IP addresses in T_IPWINS |
|
1453 Addresses are currently returned in host order - this may change. |
|
1454 |
|
1455 Unicode name resolution does not work. |
|
1456 |
|
1457 Non debug MBuf manager does not build. |