Parcourir la source

Added missing files

git-svn-id: http://svn.dmdirc.com/trunk@7 00569f92-eb28-0410-84fd-f71c24880f
tags/0.1
Chris Smith il y a 17 ans
Parent
révision
6b568161b6

BIN
dist/DMDirc.jar Voir le fichier


+ 31
- 0
dist/README.TXT Voir le fichier

@@ -0,0 +1,31 @@
1
+========================
2
+BUILD OUTPUT DESCRIPTION
3
+========================
4
+
5
+When you build an Java application project that has a main class, the IDE
6
+automatically copies all of the JAR
7
+files on the projects classpath to your projects dist/lib folder. The IDE
8
+also adds each of the JAR files to the Class-Path element in the application
9
+JAR files manifest file (MANIFEST.MF).
10
+
11
+To run the project from the command line, go to the dist folder and
12
+type the following:
13
+
14
+java -jar "DMDirc.jar" 
15
+
16
+To distribute this project, zip up the dist folder (including the lib folder)
17
+and distribute the ZIP file.
18
+
19
+Notes:
20
+
21
+* If two JAR files on the project classpath have the same name, only the first
22
+JAR file is copied to the lib folder.
23
+* If the classpath contains a folder of classes or resources, none of the
24
+classpath elements are copied to the dist folder.
25
+* If a library on the projects classpath also has a Class-Path element
26
+specified in the manifest,the content of the Class-Path element has to be on
27
+the projects runtime path.
28
+* To set a main class in a standard Java project, right-click the project node
29
+in the Projects window and choose Properties. Then click Run and enter the
30
+class name in the Main Class field. Alternatively, you can manually type the
31
+class name in the manifest Main-Class element.

BIN
dist/lib/swing-layout-1.0.jar Voir le fichier


+ 3562
- 0
docs/rfcs/RFC1459.txt
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 561
- 0
docs/rfcs/RFC2810.txt Voir le fichier

@@ -0,0 +1,561 @@
1
+
2
+
3
+
4
+
5
+Network Working Group                                           C. Kalt
6
+Request for Comments: 2810                                   April 2000
7
+Updates: 1459
8
+Category: Informational
9
+
10
+
11
+                   Internet Relay Chat: Architecture
12
+
13
+Status of this Memo
14
+
15
+   This memo provides information for the Internet community.  It does
16
+   not specify an Internet standard of any kind.  Distribution of this
17
+   memo is unlimited.
18
+
19
+Copyright Notice
20
+
21
+   Copyright (C) The Internet Society (2000).  All Rights Reserved.
22
+
23
+Abstract
24
+
25
+   The IRC (Internet Relay Chat) protocol is for use with text based
26
+   conferencing. It has been developed since 1989 when it was originally
27
+   implemented as a mean for users on a BBS to chat amongst themselves.
28
+
29
+   First formally documented in May 1993 by RFC 1459 [IRC], the protocol
30
+   has kept evolving. This document is an update describing the
31
+   architecture of the current IRC protocol and the role of its
32
+   different components.  Other documents describe in detail the
33
+   protocol used between the various components defined here.
34
+
35
+Table of Contents
36
+
37
+   1.  Introduction ...............................................   2
38
+   2.  Components .................................................   2
39
+      2.1  Servers ................................................   2
40
+      2.2  Clients ................................................   3
41
+         2.2.1  User Clients ......................................   3
42
+         2.2.2  Service Clients ...................................   3
43
+   3.  Architecture ...............................................   3
44
+   4.  IRC Protocol Services ......................................   4
45
+      4.1  Client Locator .........................................   4
46
+      4.2  Message Relaying .......................................   4
47
+      4.3  Channel Hosting And Management .........................   4
48
+   5.  IRC Concepts ...............................................   4
49
+      5.1  One-To-One Communication ...............................   5
50
+      5.2  One-To-Many ............................................   5
51
+         5.2.1  To A Channel ......................................   5
52
+         5.2.2  To A Host/Server Mask .............................   6
53
+
54
+
55
+
56
+Kalt                         Informational                      [Page 1]
57
+
58
+RFC 2810           Internet Relay Chat: Architecture          April 2000
59
+
60
+
61
+         5.2.3  To A List .........................................   6
62
+      5.3  One-To-All .............................................   6
63
+         5.3.1  Client-to-Client ..................................   6
64
+         5.3.2  Client-to-Server ..................................   7
65
+         5.3.3  Server-to-Server ..................................   7
66
+   6.  Current Problems ...........................................   7
67
+      6.1  Scalability ............................................   7
68
+      6.2  Reliability ............................................   7
69
+      6.3  Network Congestion .....................................   7
70
+      6.4  Privacy ................................................   8
71
+   7.  Security Considerations ....................................   8
72
+   8.  Current Support And Availability ...........................   8
73
+   9.  Acknowledgements ...........................................   8
74
+   10.  References ................................................   8
75
+   11.  Author's Address ..........................................   9
76
+   12.  Full Copyright Statement ..................................  10
77
+
78
+1. Introduction
79
+
80
+   The IRC (Internet Relay Chat) protocol has been designed over a
81
+   number of years for use with text based conferencing.  This document
82
+   describes its current architecture.
83
+
84
+   The IRC Protocol is based on the client-server model, and is well
85
+   suited to running on many machines in a distributed fashion.  A
86
+   typical setup involves a single process (the server) forming a
87
+   central point for clients (or other servers) to connect to,
88
+   performing the required message delivery/multiplexing and other
89
+   functions.
90
+
91
+   This distributed model, which requires each server to have a copy
92
+   of the global state information, is still the most flagrant problem
93
+   of the protocol as it is a serious handicap, which limits the maximum
94
+   size a network can reach.  If the existing networks have been able to
95
+   keep growing at an incredible pace, we must thank hardware
96
+   manufacturers for giving us ever more powerful systems.
97
+
98
+2. Components
99
+
100
+   The following paragraphs define the basic components of the IRC
101
+   protocol.
102
+
103
+2.1 Servers
104
+
105
+   The server forms the backbone of IRC as it is the only component
106
+   of the protocol which is able to link all the other components
107
+   together: it provides a point to which clients may connect to talk to
108
+
109
+
110
+
111
+
112
+Kalt                         Informational                      [Page 2]
113
+
114
+RFC 2810           Internet Relay Chat: Architecture          April 2000
115
+
116
+
117
+   each other [IRC-CLIENT], and a point for other servers to connect to
118
+   [IRC-SERVER].  The server is also responsible for providing the basic
119
+   services defined by the IRC protocol.
120
+
121
+2.2 Clients
122
+
123
+   A client is anything connecting to a server that is not another
124
+   server.  There are two types of clients which both serve a different
125
+   purpose.
126
+
127
+2.2.1 User Clients
128
+
129
+   User clients are generally programs providing a text based
130
+   interface that is used to communicate interactively via IRC.  This
131
+   particular type of clients is often referred as "users".
132
+
133
+2.2.2 Service Clients
134
+
135
+   Unlike users, service clients are not intended to be used manually
136
+   nor for talking.  They have a more limited access to the chat
137
+   functions of the protocol, while optionally having access to more
138
+   private data from the servers.
139
+
140
+   Services are typically automatons used to provide some kind of
141
+   service (not necessarily related to IRC itself) to users.  An example
142
+   is a service collecting statistics about the origin of users
143
+   connected on the IRC network.
144
+
145
+3. Architecture
146
+
147
+   An IRC network is defined by a group of servers connected to each
148
+   other.  A single server forms the simplest IRC network.
149
+
150
+   The only network configuration allowed for IRC servers is that of
151
+   a spanning tree where each server acts as a central node for the rest
152
+   of the network it sees.
153
+
154
+                       1--\
155
+                           A        D---4
156
+                       2--/ \      /
157
+                             B----C
158
+                            /      \
159
+                           3        E
160
+
161
+   Servers: A, B, C, D, E         Clients: 1, 2, 3, 4
162
+
163
+                    [ Fig. 1. Sample small IRC network ]
164
+
165
+
166
+
167
+
168
+Kalt                         Informational                      [Page 3]
169
+
170
+RFC 2810           Internet Relay Chat: Architecture          April 2000
171
+
172
+
173
+   The IRC protocol provides no mean for two clients to directly
174
+   communicate.  All communication between clients is relayed by the
175
+   server(s).
176
+
177
+4. IRC Protocol Services
178
+
179
+   This section describes the services offered by the IRC protocol.  The
180
+   combination of these services allow real-time conferencing.
181
+
182
+4.1 Client Locator
183
+
184
+   To be able to exchange messages, two clients must be able to locate
185
+   each other.
186
+
187
+   Upon connecting to a server, a client registers using a label which
188
+   is then used by other servers and clients to know where the client is
189
+   located.  Servers are responsible for keeping track of all the labels
190
+   being used.
191
+
192
+4.2 Message Relaying
193
+
194
+   The IRC protocol provides no mean for two clients to directly
195
+   communicate.  All communication between clients is relayed by the
196
+   server(s).
197
+
198
+4.3 Channel Hosting And Management
199
+
200
+   A channel is a named group of one or more users which will all
201
+   receive messages addressed to that channel.  A channel is
202
+   characterized by its name and current members, it also has a set of
203
+   properties which can be manipulated by (some of) its members.
204
+
205
+   Channels provide a mean for a message to be sent to several clients.
206
+   Servers host channels, providing the necessary message multiplexing.
207
+   Servers are also responsible for managing channels by keeping track
208
+   of the channel members.  The exact role of servers is defined in
209
+   "Internet Relay Chat: Channel Management" [IRC-CHAN].
210
+
211
+5. IRC Concepts
212
+
213
+   This section is devoted to describing the actual concepts behind the
214
+   organization of the IRC protocol and how different classes of
215
+   messages are delivered.
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+Kalt                         Informational                      [Page 4]
225
+
226
+RFC 2810           Internet Relay Chat: Architecture          April 2000
227
+
228
+
229
+5.1 One-To-One Communication
230
+
231
+   Communication on a one-to-one basis is usually performed by clients,
232
+   since most server-server traffic is not a result of servers talking
233
+   only to each other.  To provide a means for clients to talk to each
234
+   other, it is REQUIRED that all servers be able to send a message in
235
+   exactly one direction along the spanning tree in order to reach any
236
+   client.  Thus the path of a message being delivered is the shortest
237
+   path between any two points on the spanning tree.
238
+
239
+   The following examples all refer to Figure 1 above.
240
+
241
+   Example 1: A message between clients 1 and 2 is only seen by server
242
+       A, which sends it straight to client 2.
243
+
244
+   Example 2: A message between clients 1 and 3 is seen by servers A &
245
+       B, and client 3.  No other clients or servers are allowed see the
246
+       message.
247
+
248
+   Example 3: A message between clients 2 and 4 is seen by servers A, B,
249
+       C & D and client 4 only.
250
+
251
+5.2 One-To-Many
252
+
253
+   The main goal of IRC is to provide a forum which allows easy and
254
+   efficient conferencing (one to many conversations).  IRC offers
255
+   several means to achieve this, each serving its own purpose.
256
+
257
+5.2.1 To A Channel
258
+
259
+   In IRC the channel has a role equivalent to that of the multicast
260
+   group; their existence is dynamic and the actual conversation carried
261
+   out on a channel MUST only be sent to servers which are supporting
262
+   users on a given channel.  Moreover, the message SHALL only be sent
263
+   once to every local link as each server is responsible to fan the
264
+   original message to ensure that it will reach all the recipients.
265
+
266
+   The following examples all refer to Figure 2.
267
+
268
+   Example 4: Any channel with 1 client in it. Messages to the channel
269
+       go to the server and then nowhere else.
270
+
271
+   Example 5: 2 clients in a channel. All messages traverse a path as if
272
+       they were private messages between the two clients outside a
273
+       channel.
274
+
275
+
276
+
277
+
278
+
279
+
280
+Kalt                         Informational                      [Page 5]
281
+
282
+RFC 2810           Internet Relay Chat: Architecture          April 2000
283
+
284
+
285
+   Example 6: Clients 1, 2 and 3 in a channel.  All messages to the
286
+       channel are sent to all clients and only those servers which must
287
+       be traversed by the message if it were a private message to a
288
+       single client.  If client 1 sends a message, it goes back to
289
+       client 2 and then via server B to client 3.
290
+
291
+5.2.2 To A Host/Server Mask
292
+
293
+   To provide with some mechanism to send messages to a large body of
294
+   related users, host and server mask messages are available.  These
295
+   messages are sent to users whose host or server information match
296
+   that of the mask.  The messages are only sent to locations where
297
+   users are, in a fashion similar to that of channels.
298
+
299
+5.2.3 To A List
300
+
301
+   The least efficient style of one-to-many conversation is through
302
+   clients talking to a 'list' of targets (client, channel, mask).  How
303
+   this is done is almost self explanatory: the client gives a list of
304
+   destinations to which the message is to be delivered and the server
305
+   breaks it up and dispatches a separate copy of the message to each
306
+   given destination.
307
+
308
+   This is not as efficient as using a channel since the destination
309
+   list MAY be broken up and the dispatch sent without checking to make
310
+   sure duplicates aren't sent down each path.
311
+
312
+5.3 One-To-All
313
+
314
+   The one-to-all type of message is better described as a broadcast
315
+   message, sent to all clients or servers or both.  On a large network
316
+   of users and servers, a single message can result in a lot of traffic
317
+   being sent over the network in an effort to reach all of the desired
318
+   destinations.
319
+
320
+   For some class of messages, there is no option but to broadcast it to
321
+   all servers so that the state information held by each server is
322
+   consistent between servers.
323
+
324
+5.3.1 Client-to-Client
325
+
326
+   There is no class of message which, from a single message, results in
327
+   a message being sent to every other client.
328
+
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+Kalt                         Informational                      [Page 6]
337
+
338
+RFC 2810           Internet Relay Chat: Architecture          April 2000
339
+
340
+
341
+5.3.2 Client-to-Server
342
+
343
+   Most of the commands which result in a change of state information
344
+   (such as channel membership, channel mode, user status, etc.) MUST be
345
+   sent to all servers by default, and this distribution SHALL NOT be
346
+   changed by the client.
347
+
348
+5.3.3 Server-to-Server
349
+
350
+   While most messages between servers are distributed to all 'other'
351
+   servers, this is only required for any message that affects a user,
352
+   channel or server.  Since these are the basic items found in IRC,
353
+   nearly all messages originating from a server are broadcast to all
354
+   other connected servers.
355
+
356
+6. Current Problems
357
+
358
+   There are a number of recognized problems with this protocol, this
359
+   section only addresses the problems related to the architecture of
360
+   the protocol.
361
+
362
+6.1 Scalability
363
+
364
+   It is widely recognized that this protocol does not scale
365
+   sufficiently well when used in a large arena.  The main problem comes
366
+   from the requirement that all servers know about all other servers,
367
+   clients and channels and that information regarding them be updated
368
+   as soon as it changes.
369
+
370
+6.2 Reliability
371
+
372
+   As the only network configuration allowed for IRC servers is that of
373
+   a spanning tree, each link between two servers is an obvious and
374
+   quite serious point of failure.  This particular issue is addressed
375
+   more in detail in "Internet Relay Chat: Server Protocol" [IRC-
376
+   SERVER].
377
+
378
+6.3 Network Congestion
379
+
380
+   Another problem related to the scalability and reliability issues, as
381
+   well as the spanning tree architecture, is that the protocol and
382
+   architecture for IRC are extremely vulnerable to network congestions.
383
+   This problem is endemic, and should be solved for the next
384
+   generation: if congestion and high traffic volume cause a link
385
+   between two servers to fail, not only this failure generates more
386
+   network traffic, but the reconnection (eventually elsewhere) of two
387
+   servers also generates more traffic.
388
+
389
+
390
+
391
+
392
+Kalt                         Informational                      [Page 7]
393
+
394
+RFC 2810           Internet Relay Chat: Architecture          April 2000
395
+
396
+
397
+   In an attempt to minimize the impact of these problems, it is
398
+   strongly RECOMMENDED that servers do not automatically try to
399
+   reconnect too fast, in order to avoid aggravating the situation.
400
+
401
+6.4 Privacy
402
+
403
+   Besides not scaling well, the fact that servers need to know all
404
+   information about other entities, the issue of privacy is also a
405
+   concern. This is in particular true for channels, as the related
406
+   information is quite a lot more revealing than whether a user is
407
+   online or not.
408
+
409
+7. Security Considerations
410
+
411
+   Asides from the privacy concerns mentioned in section 6.4 (Privacy),
412
+   security is believed to be irrelevant to this document.
413
+
414
+8. Current Support And Availability
415
+
416
+        Mailing lists for IRC related discussion:
417
+          General discussion: ircd-users@irc.org
418
+          Protocol development: ircd-dev@irc.org
419
+
420
+        Software implementations:
421
+          ftp://ftp.irc.org/irc/server
422
+          ftp://ftp.funet.fi/pub/unix/irc
423
+          ftp://coombs.anu.edu.au/pub/irc
424
+
425
+        Newsgroup: alt.irc
426
+
427
+9. Acknowledgements
428
+
429
+   Parts of this document were copied from the RFC 1459 [IRC] which
430
+   first formally documented the IRC Protocol.  It has also benefited
431
+   from many rounds of review and comments.  In particular, the
432
+   following people have made significant contributions to this
433
+   document:
434
+
435
+   Matthew Green, Michael Neumayer, Volker Paulsen, Kurt Roeckx, Vesa
436
+   Ruokonen, Magnus Tjernstrom, Stefan Zehl.
437
+
438
+
439
+
440
+
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+Kalt                         Informational                      [Page 8]
449
+
450
+RFC 2810           Internet Relay Chat: Architecture          April 2000
451
+
452
+
453
+10. References
454
+
455
+   [KEYWORDS]   Bradner, S., "Key words for use in RFCs to Indicate
456
+                Requirement Levels", BCP 14, RFC 2119, March 1997.
457
+
458
+   [IRC]        Oikarinen, J. and D. Reed, "Internet Relay Chat
459
+                Protocol", RFC 1459, May 1993.
460
+
461
+   [IRC-CLIENT] Kalt, C., "Internet Relay Chat: Client Protocol", RFC
462
+                2812, April 2000.
463
+
464
+   [IRC-SERVER] Kalt, C., "Internet Relay Chat: Server Protocol", RFC
465
+                2813, April 2000.
466
+
467
+   [IRC-CHAN]   Kalt, C., "Internet Relay Chat: Channel Management", RFC
468
+                2811, April 2000.
469
+
470
+11. Author's Address
471
+
472
+   Christophe Kalt
473
+   99 Teaneck Rd, Apt #117
474
+   Ridgefield Park, NJ 07660
475
+   USA
476
+
477
+   EMail: kalt@stealth.net
478
+
479
+
480
+
481
+
482
+
483
+
484
+
485
+
486
+
487
+
488
+
489
+
490
+
491
+
492
+
493
+
494
+
495
+
496
+
497
+
498
+
499
+
500
+
501
+
502
+
503
+
504
+Kalt                         Informational                      [Page 9]
505
+
506
+RFC 2810           Internet Relay Chat: Architecture          April 2000
507
+
508
+
509
+12.  Full Copyright Statement
510
+
511
+   Copyright (C) The Internet Society (2000).  All Rights Reserved.
512
+
513
+   This document and translations of it may be copied and furnished to
514
+   others, and derivative works that comment on or otherwise explain it
515
+   or assist in its implementation may be prepared, copied, published
516
+   and distributed, in whole or in part, without restriction of any
517
+   kind, provided that the above copyright notice and this paragraph are
518
+   included on all such copies and derivative works.  However, this
519
+   document itself may not be modified in any way, such as by removing
520
+   the copyright notice or references to the Internet Society or other
521
+   Internet organizations, except as needed for the purpose of
522
+   developing Internet standards in which case the procedures for
523
+   copyrights defined in the Internet Standards process must be
524
+   followed, or as required to translate it into languages other than
525
+   English.
526
+
527
+   The limited permissions granted above are perpetual and will not be
528
+   revoked by the Internet Society or its successors or assigns.
529
+
530
+   This document and the information contained herein is provided on an
531
+   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
532
+   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
533
+   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
534
+   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
535
+   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
536
+
537
+Acknowledgement
538
+
539
+   Funding for the RFC Editor function is currently provided by the
540
+   Internet Society.
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+Kalt                         Informational                     [Page 10]
561
+

+ 1065
- 0
docs/rfcs/RFC2811.txt
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 3529
- 0
docs/rfcs/RFC2812.txt
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1457
- 0
docs/rfcs/RFC2813.txt
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 4
- 0
nbproject/private/private.properties Voir le fichier

@@ -0,0 +1,4 @@
1
+application.args=
2
+javac.debug=true
3
+javadoc.preview=true
4
+user.properties.file=/home/chris/.netbeans/5.5/build.properties

+ 4
- 0
nbproject/private/private.xml Voir le fichier

@@ -0,0 +1,4 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
3
+    <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/1"/>
4
+</project-private>

Chargement…
Annuler
Enregistrer