• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

build-aux/H07-May-2022-4,9864,063

debian/H07-May-2022-10967

doc/H07-May-2022-1,136962

lib/H07-May-2022-15,9669,941

m4/H07-May-2022-4,9214,460

po/H07-May-2022-7,0365,742

rpm/H07-May-2022-5041

slackware/H07-May-2022-10183

src/H07-May-2022-31,52923,816

ABOUT-NLSH A D22-Oct-200667.1 KiB997950

AUTHORSH A D22-Oct-2006308 2117

COPYINGH A D22-Oct-200617.6 KiB341281

ChangeLogH A D22-Oct-20060

INSTALLH A D22-Oct-20069.3 KiB237179

Makefile.amH A D22-Oct-2006942 3825

Makefile.inH A D24-Dec-200622.7 KiB703619

NEWSH A D22-Oct-200617.5 KiB362348

READMEH A D14-Nov-200610.7 KiB316218

aclocal.m4H A D28-Nov-200633.5 KiB956864

config.h.inH A D16-Nov-200614.6 KiB536378

configureH A D03-May-2022632.1 KiB23,72820,274

configure.acH A D24-Dec-20062.9 KiB8977

README

1microdc2 - Introduction
2======================
3
4microdc is a command-line based Direct Connect client that uses the GNU
5Readline library for user interaction. It was developed from ground up and
6does not depend on any other program. Despite the command-line user
7interface, microdc was designed to be user friendly and simple to use.
8
9microdc is currently in late beta state - there may be many bugs not yet
10discovered. It also lacks some features that other clients support, such as
11file hashing, multiple hub connections, and hub list support.
12
13microdc is free software - it is licensed under the terms of the GNU
14General Public License (GPL). It is written in C by Oskar Liljeblad, and is
15designed to compile and run on modern POSIX compatible systems such as
16Linux.
17
18Features
19========
20
21The features of microdc include:
22
23 * Nearly full support of the original Direct Connect protocol.
24 * GNU Readline support.
25 * Sensible tab-completion of commands, user names, local files, remote
26   files, connection names and many other things.
27 * One process per connection for optimal transfer rates.
28 * Small memory footprint (I think).
29
30There are many features that I would like to implement. See the TODO
31document in the source code tarball for details. If you would like to
32develop or contribute to microdc, you are more than welcome. Please contact
33me - see the Feedback section below for contact information.
34
35Copyright and License
36=====================
37
38microdc is copyright (C) 2004, 2005 Oskar Liljeblad
39
40This program is free software; you can redistribute it and/or modify it
41under the terms of the GNU General Public License as published by the Free
42Software Foundation; either version 2 of the License, or (at your option)
43any later version.
44
45This program is distributed in the hope that it will be useful, but WITHOUT
46ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
47FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
48more details.
49
50You should have received a copy of the GNU General Public License along
51with this program; if not, write to the Free Software Foundation, Inc., 51
52Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
53
54The source code of this project may contain files from other projects, and
55files generated by other projects, including:
56
57 * GNU Autoconf (http://www.gnu.org/software/autoconf/)
58 * GNU Automake (http://sources.redhat.com/automake/)
59 * GNU gettext (http://www.gnu.org/software/gettext/)
60 * Gnulib (http://www.gnu.org/software/gnulib/)
61 * Autoconf Macro Archive (http://ac-archive.sourceforge.net/)
62
63Such files are licensed under the terms of the GNU General Public License
64or a license compatible with the GNU GPL (as listed on
65http://www.gnu.org/licenses/license-list.html). See each file for copyright
66details.
67
68The translations in the po directory may contain translations from other
69projects, including:
70
71 * GNU C Library (http://www.gnu.org/software/libc/libc.html)
72 * GNU Core Utilities (http://www.gnu.org/software/coreutils/)
73
74See the specific message file (PO file) for copyright of those messages.
75
76Requirements
77============
78
79The following programs are required to build microdc:
80
81 * GNU C Compiler (gcc), version 3.0 or later
82
83   microdc makes use of some gcc 3.x features such as declarations in the
84   middle of a block and always inlined functions. The GNU C Compiler is
85   part of the GNU Compiler Collection which can be downloaded from
86   http://gcc.gnu.org/. In Debian and many other distributions the package
87   is called gcc.
88
89 * make, a modern implementation
90
91   The make program is required to build microdc. microdc uses Makefiles
92   generated by GNU Automake. The recommended make is GNU Make which can be
93   downloaded from http://www.gnu.org/software/make/. In Debian and many
94   other distributions the package is called make.
95
96The following libraries are required to run microdc:
97
98 * GNU Readline Library, version 4.0 or later
99
100   microdc uses Readline for user input. GNU Readline can be downloaded
101   from http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html. Libraries
102   such as libedit and libeditline do not support the necessary completion
103   features of GNU Readline, and can as such not be used with microdc. In
104   Debian woody the required package is libreadline4 (libreadline4-dev
105   during build). In testing and later, the recommended package is
106   libreadline5 (and libreadline5-dev when building).
107
108Building
109========
110
111To build the microdc executable, simply run
112
113   ./configure
114   make
115
116If you want to install microdc on your system, run make install. This will
117copy the executable, manual page and locale files to the appropriate
118directories.
119
120For more information regarding configure and make, see the INSTALL
121document.
122
123Usage and Customization
124=======================
125
126microdc is usually started like this:
127
128   microdc
129
130(Some command line options are available - run microdc --help to get a
131list.) Once started, a prompt is displayed and microdc is ready for your
132command. You can get a list of commands by pressing tab on the empty prompt
133or by issuing the help command. The help command can also be used to get
134information on a specific command:
135
136   help exit
137
138The first thing you would do is setting share and download directory:
139
140   set sharedir /path/to/files/i/want/to/share
141   set downloaddir /path/where/i/want/downloaded/files/saved
142
143If you are not behind a firewall that prevents you from receiving
144connections from the outside world, you can use the set active command to
145enable active mode. Set the desired port to listen on client connections on
146using listenport, then enable active mode:
147
148   set listenport 10101
149   set active 1
150
151If you omit the set listenport command, a random free port will be picked
152for you. There are many commands to change your settings, some of them are:
153
154   set nick my_neat_nickname
155   set description "I have nothing to share"
156   set email i.m.living@off.the.example.net
157   set speed 56Kbps
158
159Next you must connect to a hub. Use the connect command to do this:
160
161   connect my.favorite.hub.example.com:43912
162
163The port part (":43912") is optional.
164
165Once connected, you can chat a little:
166
167   say "Hello all, I'm using this new DC client called microdc!"
168   msg some_operator "Please don't ban me, microdc is still in development!"
169
170Note that the double quotes aren't strictly necessary in this case, but if
171you don't use them all consecutive whitespace will be translated to a
172single space (e.g. "foo   bar" becomes "foo bar"). Semicolon (;) and number
173sign (#) will also have special meanings, just like in the shell. Semicolon
174is used to separate multiple commands on one line, and number sign as the
175first character of a word will introduce comments. <p>You can get a list of
176users online:
177
178   who
179
180Or you can browse other people's files:
181
182   browse some_user
183
184The first time you issue the browse command, the user's file list will be
185downloaded and saved to the listing directory, which is usually
186/tmp/microdc.PID. This can be changed with the set listingdir command. The
187listing files will be removed when you exit microdc. Note that the prompt
188will change when the file list has been downloaded and processed. The
189following commands are available when browsing:
190
191   cd some/dir
192   pwd
193   ls some/dir/or/file
194   ls -l some/dir/or/file
195   get some/dir/or/file
196
197The cd command changes directory, pwd prints the current directory, ls
198lists files and get downloads or queues files for download. (Tab completion
199is supported for remote file listings when browsing, so I recommend using
200that.) Once finished browsing the user, enter browse with no arguments to
201stop browsing that user:
202
203   browse
204
205Downloads will start as soon as you enter the get command. A list of user
206connections can be retrieved using the transfers command:
207
208   transfers
209
210This command will list all connections along with their names and current
211status. You can disconnect a connection using the cancel command:
212
213   cancel my_friend|UL
214
215Use the search command to search for files:
216
217   search favorite open source program
218
219The names of the files returned will contain all of the words specified
220with the search command. At the moment it is not possible to specify file
221type, or minimum or maximum size. The review the results of a search
222operation, use the results command:
223
224   results 1
225
226If you omit the search index to the results command, it will list all
227issued searches.
228
229Once finished playing around with microdc, quit with exit:
230
231   exit
232
233If you want to execute some commands on start up (such as setting your
234nickname or active setting), you can place them in .microdc/config in your
235home directory. This directory also holds the history file
236(.microdc/history).
237
238One last thing: If your find that microdc is being banned from hubs, try
239change the client tag with the tag command, e.g.:
240
241   set tag ++ V:0.401
242
243References
244==========
245
246Note that this list of references is not complete.
247
248Protocol references:
249
250 * Direct Connect protocol reference
251   (http://www.lwave.ca/shasta/protocol.html)
252
253 * Direct Connect protocol reference (alternate version)
254   (http://wza.digitalbrains.com/DC/doc/Introduction.html)
255
256 * DC++ Wiki (http://dcplusplus.sourceforge.net/wiki/)
257
258 * DC++ $UserIp2 extension (http://dc.ade.se/userip/)
259
260Homepage
261========
262
263Web site and file area for microdc is hosted on Savannah:
264
265   http://www.nongnu.org/microdc/
266
267The latest version of microdc should always be available on this site.
268
269Feedback
270========
271
272Please send bug reports, suggestions, ideas or comments in general to the
273mailing list:
274
275   microdc-devel@nongnu.org (http://lists.nongnu.org/mailman/listinfo/microdc-devel)
276
277The author of microdc and this document, Oskar Liljeblad, can be contacted
278by e-mail on the following address:
279
280   oskar@osk.mine.nu (mailto:oskar@osk.mine.nu)
281
282If you would like to get involved with this project, please don't hesitate
283to write to the mailing list or the author (me)! All contributions are
284welcomed.
285
286Known bugs and missing features
287===============================
288
289There is no support for multiple share directories at this time, but
290microdc will follow symbolic links when scanning for files to share. This
291way you can share files on multiple drives and have full control of the
292share directory layout.
293
294You might get this error when connected and logging in to a hub:
295
296   Cannot send to hub - Connection reset by peer
297
298This means that the hub has disconnected you, and that microdc did not yet
299receive the reason. This happens on some hubs with bots that can disconnect
300you.
301
302When there are more than a screen-full of completion matches, readline will
303display a question "Display all N possibilities? (y or n)". No hub input
304can be processed until this question is answered due to the internal design
305of microdc.
306
307Weird things may happen to the prompt when resizing the window. I am
308currently investigating this problem.
309
310Things to do
311============
312
313Please see the TODO document.
314
315-
316