Wed May 15 14:13:45 2002  David Helder  <dhelder@umich.edu>

	* src/mtp/mtp_server.c (mtp_gconn_func): Initialize name.

	* src/jmlite/jmlite.c (open_channel): Print resource, not name.

	* debian.gnome/rules: Use strict poll.

Tue May 14 20:36:07 2002  David Helder  <dhelder@umich.edu>

	* src/gtkgnome/ggui_chat.c (chat_new): Initialize chat
	   with callbacks here.
	* src/gtkgnome/ggui_chat.c (create): And not here.
	* src/gtkgnome/ggui_chat.c (join): Or here.
	* src/gtkgnome/ggui_search.c (search_new): Likewise.
	* src/gtkgnome/ggui_channels.c (channel_new): "

Mon May 13 22:51:18 2002  David Helder  <dhelder@umich.edu>

	* src/btp/*: BTP update
	
2002-05-12  David A Helder  <dhelder@umich.edu>

	* src/jmmsearch/jmmsp.c (jmmsp_packet_cb): Remove debug.

Sun May 12 15:03:24 2002  David Helder  <dhelder@umich.edu>

	* src/jmchannel/jmchannel.c (jmchannel_recv): Remove debug.

Sun May 12 14:09:49 2002  David Helder  <dhelder@umich.edu>

	* src/*/* (main): Cast argv to const to  avoid warning.

2002-05-12  David A Helder  <dhelder@umich.edu>

	* src/gtkgnome/ggui_files.c (add_file_r): Delete path_new.
	(add_file): Delete sha.

	* src/gtkgnome/ggui.c: Remove debug output.
	(main): Initialize the RNG.

	* src/jmchannel/jmann.c (jmann_set_attr_sha): Remove debug output.

	* src/util/util.c (is_blankpathname): Use g_strfreev

	* src/jmchannel/jmchannel.c (jmchannel_add_path_elf): Don't
	   look for escape character before the string.

Sat May 11 21:38:17 2002  David Helder  <dhelder@umich.edu>

	* configure.in: Remove ctp

2002-05-12  David A Helder  <dhelder@umich.edu>

	* src/jmchannel/jmchannel.c: (remove_r): Remove announcement from
	index.

	* src/gtkgnome/ggui_search.c (on_search_entry_activate): Delete
	   gtk_clist_insert text.
	   (on_search_entry_activate): "
	   (on_search_select_row): "
	
	* src/jmchannel/jmchannel.c (get_or_create): break if
	   find directory.  This way tokens get freed.

2002-05-11  David A Helder  <dhelder@umich.edu>

	* src/gtkgnome/ggui_files.c (add_url): The file does not need to
	     exist - it just a name.

	* src/gtkgnome/ggui_channels.c
	(create): Check pchannel, not channel.

	* src/gtkgnome/ggui_search.c (save_search_hfunc): Delete elf
	(save_search_ann_hfunc): "
	* src/gtkgnome/ggui_channels.c (save_channel_hfunc): "
	(save_channel_ann_hfunc): "

	* src/gtkgnome/ggui_files.c (save_file_hfunc): "
	* src/gtkgnome/ggui_chat.c (save_chat_hfunc): "

	* src/gtkgnome/ggui_channels.c (ggui_channel_load): Delete
	   URL.

Sat May 11 21:34:04 2002  David Helder  <dhelder@umich.edu>

	* configure.in: Remove backend

2002-05-11  David A Helder  <dhelder@umich.edu>

	* src/jmmsearch/jmmsp.c (jmmsp_delete): Delete jmmsp.

	* src/jmlite/jmlite.c (delete_url_to_obj_hfunc): Delete url
	   (try_exit): Delete hashtables.
	   (open_channel): Delete url

	* src/mtp/mtp_mirror.c (mtp_unmirror): Remove deleted rendezvous
	    from local mirror's rendezvous list.

	* src/jmchannel/jmindex.c (jmindex_rewrite): Free buf after
	    updating SHA.

	* src/mtp/mtp_client.c (mirror_gconn_func): Delete the split
	    strings.

	* src/jmchannel/jmrindex.c (jmrindex_update): Delete SHA.

	* src/jmchannel/jmchannel.c (jmchannel_create): Clone URL.
	* src/jmchat/jmchat.c (jmchat_create): "
	
	* src/jmchat/jmchat.c (jmchat_delete): Delete URL properly

	* src/jmchannel/jmchannel.c (jmchannel_delete): Delete URLs.

	* src/mtp/mtpclient.c: Add exit() calls.

	* src/jmmsearch/jmmsp.c (jmmsp_packet_cb): Delete reply URL.
	* src/jmmsearch/jmmspclient.c (main): Initialize do_cache to
	    FALSE.

	* src/util/sha_async_test.c (sha_cb): Memory leak fixes.

	* src/util/sha_cache_test.c: Memory leak fixes.
	* src/util/sha_cache.c (sha_cache_delete): Delete cache structure.

	* src/util/elf_test.c: Memory leak fixes.

	* src/util/elf.c (glue): Don't write over dstp until
	    end of function.  It may be equal to the src.

	* src/*: Cast isspace argument to int

	* src/jmmsearch/jmmsp.c: Fix packet_cb prototype
	* src/jmchat/jmchat.c: "p

	* src/gtkgnome/ggui.c: Predeclare show_file only for Gnome.

Sat May 11 17:52:39 2002  David Helder  <dhelder@umich.edu>

	* src/mtp/mtpmirror.c (main): Make sure there is a URL resource.
	* src/mtp/mtp_mirror.c (mtp_mirror): Assert on resource

	* README: Update popt URL

	* src/btp/*: Update BTP

	* src/util/util.h: Added G_MAXUINT16, G_MAXUINT32

Sun Feb 17 15:09:02 2002  David Helder  <dhelder@umich.edu>

	* src/util/jmgnet.c: Include config.h
	
Wed Feb 13 17:21:58 2002  David Helder  <dhelder@umich.edu>

	* src/{jmlite,jm}/Makefile.am: Fix link order.

	* src/btp/*: Update BTP to version from last Fall.  Repository no
	   longer contains symlinks to emcast.

Mon Aug 27 15:49:03 2001  David Helder  <dhelder@umich.edu>

	* src/gtkgnome/ggui_files.c (dnd_parse): Fix for mozilla
	   drop and drag.

Thu Jul 12 12:49:43 2001  David Helder  <dhelder@umich.edu>

	* *: Prepare for 0.1.10

Mon Jul  9 12:59:41 2001  David Helder  <dhelder@umich.edu>
	
	* src/jmlite/jmutil.h: Fix glib header for BSD compile.

	* doc/C/*: Misc. updates.  Add telephone figure.

	* src/util/sha_async.c: Use idle function for async
	   sha, not IO.  This wasn't working in FreeBSD, and
	   is not portable to windows.
	* src/util/sha_async_test.c: Added

Fri Jul  6 16:17:08 2001  David Helder  <dhelder@umich.edu>

	* src/jmchat/jmchat.c (jmchat_rejoin): Use chat->nick.
	   Bug fix.

Fri Jul  6 15:46:35 2001  David Helder  <dhelder@umich.edu>
	
	* src/gtkgnome/ggui.h (JM_DEFAULT_CHANNEL): MC on jm.net
	* src/gtkgnome/ggui.c: CRP server on junglemonkey.net

	* src/gtkgnome/ggui_search.c (ggui_search_leave): Reset
	   search fully on leave.

	* src/gtkgnome/ggui_search.c (search_update): Update toolbar
	   if selected
	* src/gtkgnome/ggui_chat.c (chat_update): "

	* src/gtkgnome/ggui.c: Added --disable-restore option.  Don't
	    save/load channels, etc if set.

	* src/jmchat/jmchat.c (jmchat_rejoin): Add self to member
	   list on rejoin.

Mon Jun 18 22:49:36 2001  David Helder  <dhelder@umich.edu>

	* src/jmchannel/jmchannel.c: s/name_to_ann/path_to_ann/
	* src/jmchannel/jmchannel.c (remove_old_ann): Remove
	   from path_to_ann by path, not name.  (Source of
	   seg fault!)

	* src/jmchannel/jmchannel.c (get_or_create): If quick
	   lookup succeeds, note last update.

	* src/gtkgnome/ggui_channels.c (ggui_channel_delete): Call
	   ggui_file_leave, like we do in leave.

Fri Jun 15 16:42:28 2001  David Helder  <dhelder@umich.edu>

	* doc/Makefile.am (jm.1): Fix paths

Thu Jun 14 15:52:55 2001  David Helder  <dhelder@umich.edu>

	* src/jmchannel/jmchannel.c (create_index_and_update): 
	   Fix temp name range (can't read #%$%#$ ascii table)

	* src/gtkgnome/ggui_files.c (create_dir): Remove is
	   ok name check.

Thu Jun 14 15:34:46 2001  David Helder  <dhelder@umich.edu>

	* src/gtkgnome/ggui_files.c (update_items): Uncomment 
	   GET_DIR, CHANNEL_FROM_DIR.

	* src/util/elf.c (elf_clone): NULL terminate attr value.
	* src/util/elf.c (elf_set_attribute_data): "

	* src/util/util.c (FILE_size): Check return value
	   correctly.

	* src/jmchannel/jmrindex.c (file_func): Warn if rindex
	   sha is bad, but still process.

	* src/gtkgnome/jmutil.c (jmutil_init): Set port on
	   btp_iface and mtp_iface after running.
	* src/gtkgnome/ggui.c (ggui_check_network_config): Use
	   bpeer directly (though above fixes old bug here).

	* src/crp/crpserver.c (conn_func): Good ports are less
	   than 65k, not 16k.

	* src/gtkgnome/ggui.c: Move CRP to ask.

Thu Jun 14 11:29:05 2001  David Helder  <dhelder@umich.edu>

	* configure.in: Remove divert push/pop stuff.  Breaks
	   autoconf 2.5.

Wed Jun 13 22:04:16 2001  David Helder  <dhelder@umich.edu>

	* src/util/util.c (is_okfilename): Make is_okfilename
	   more strict.

	* src/gtkgnome/ggui_preferences.c (apply_network2): Remove
	   setting rvous url, which was broken AFAIK.

	* src/gtkgnome/jmutil.c (jmutil_init): Get/set MTP port.
	   Set port to this.  Warn if not set.
	* src/gtkgnome/ggui.c (on_jmw_destroy): Save MTP port

	* src/gtkgnome/jmutil.c (jmutil_init): Move gnome
	   get stuff here.

	* src/jmchannel/jmrindex.c (jmrindex_update): Redownload
	   if SHA changed.
	* src/jmchannel/*: Create multiple index files if
	   there are more than N files.

Wed Jun 13 14:37:16 2001  David Helder  <dhelder@umich.edu>

	* src/gtkgnome/ggui_search.c (match_update): Show URL.
	* src/gtkgnome/ggui_search.c (search_delete): Cancel
	   search before deleting group.  And unhook vfs.

	* src/gtkgnome/ggui_search.c (search_delete): Clear
	   search->jmmsp_vfs before deleting, otherwise, it
	   gets deleted twice.

	* src/gtkgnome/ggui_download.c (download_update): Don't
	   ++ basename.  gnet_url_basename gets it right.

	* src/jmmsearch/jmmsp.h (struct _JMMSPHandler): Added
	   a loopback option
	* src/jmmsearch/jmmsp.c (jmmsp_send_{query, reply}): Loopback
	* src/jmmsearch/jmmsp_search.c (jmmsp_search_new): Turn
	    loopback on.  We want search to reach our VFS.
	* src/jmmsearch/jmmsp_vfs.c (jmmsp_vfs_new): Turn on loopback.
	    We want results to reach search.
	* src/jmmsearch/jmmsp.c (jmmsp_handler_init): Set loopback
	   to FALSE by default

	* src/gtkgnome/ggui_files.c (ggui_file_remove): Remove
	   files recursively
	* src/gtkgnome/ggui_files.c (ggui_file_leave): Added
	* src/gtkgnome/ggui_files.c (file_remove_r): Added
	* src/gtkgnome/ggui_files.c: Handle dir remove

Sun Jun 10 14:36:37 2001  David Helder  <dhelder@umich.edu>

	* src/gtkgnome/ggui_files.c (ggui_file_save): Save at
	   name_to_file, not url_to_file
	
	* src/jmchannel/jmchannel.[hc]: Remove show_index stuff.
	   Since the index is in the kids list, any gui that
	   directly accessed the kids list (i.e. most) would have
	   to check anyway.
	
	* src/jmchannel/jmrindex.c (jmrindex_delete): Delete SHA.

	* src/gtkgnome/ggui_files.c (load_file_func): Use apath,
	   not path, for announcement
	* src/gtkgnome/ggui_files.c (load_file_func): Dir goes
	   to curl, not url

	* src/gtkgnome/ggui_files.c (ggui_file_show): Freeze/thaw
	   clist on show.

Fri Jun  8 19:53:49 2001  David Helder  <dhelder@umich.edu>

	* src/gtkgnome/ggui.c: Kill CRP check on exit

	* src/gtkgnome/ggui.c (ggui_activate): Do nothing if local file.

	* src/gtkgnome/ggui_download.h (ggui_download_have): Added

	* src/gtkgnome/ggui_*.[ch]: Serialization rewrite.
	   Gnome-config doesn't support large enough values.  Blah.
	* src/gtkgnome/ggui.c (ggui_load_elf): Added
	* src/gtkgnome/ggui.c (ggui_save_hashtable): Added

	* src/util/elf.h: Added more consts
	* src/util/elf.c (elf_read_list_path): Added
	* src/util/elf.c (elf_write_list_file): Added

	* src/gtkgnome/ggui_files.c (on_files_button_press): Don't
	   download files I have.

	* src/util/sha_cache.[hc]: Remove get_vec, set_vec
	    in favor of read/write
	* src/util/sha_cache_test.c: "

	* src/gtkgnome/ggui_channels.c: Set MTP server

	* configure.in: Poll check improvements
	* acconfig.h: 
	* src/util/poll.h: Added - expose gnu_poll
	* src/gtkgnome/ggui.c: Set poll manually
	* src/jmlite/jmlite.c: "

Thu Jun  7 23:08:49 2001  David Helder  <dhelder@umich.edu>

	* configure.in: Add poll back
	* acconfig.h: 
	* src/util/poll.c:

	* *: s/glib-1.2//
	* *: Update copyrights
	
	* src/gtkgnome/ggui_{channel, chat, search}.c: Show dialog if exists

	* src/gtkgnome/ggui_files.c (ggui_file_announce_update): Fix
	  percent handling.
	* src/gtkgnome/ggui_files.c (update_items): "

	* src/gtkgnome/ggui_search.c (ggui_search_update): Added
	* src/gtkgnome/ggui_download.c (download_update): Call above.

	* src/jmmsp/jmmsp_cache.[hc]: Keep a set of replies in the
	    cache.  Don't add reply we already have.
	* src/jmmsp/jmmsp.[ch] (jmmsp_reply_hash): Added

	* src/gtkgnome/ggui_search.c (search_cb): Ignore matches
	    we already have.

	* src/gtkgnome/ggui_search.c: Use _our_ vfs on create, etc.
	
	* src/gtkgnome/ggui_channels.c (channel_update): Call
	    ggui_file_show as appropriate

	* src/gtkgnome/ggui_channels.c (on_channels_unselect_row): It's ok
	    if get_shown is inconsistent with selected_channel.  This
	    happens when we leave a channel then unselect the channel.

	* src/gtkgnome/ggui_download.c (download_update): It's
	    ok we update a download not shown.  Just ignore it
	    if we do.

	* src/gtkgnome/ggui_files.c: Enable leave icon if shown
	    channel.

Wed Jun  6 23:58:37 2001  David Helder  <dhelder@umich.edu>

	* src/gtkgnome/*: Saving done.  Now debugging downloads.
	
	* src/icons/icons.h: Added more tony icons

	* src/jmchannel/jmchannel.c (gc_cb): Don't gc root
	* src/jmchannel/jmchannel.c (remove_old_ann): Rename

	* src/jmchannel/jmchannel.c (get_or_create): Fixed another
	   path building bug
	* src/jmchannel/jmann.c (jmann_make_path): Added

	* src/jmchat/jmchat.[hc] (jmchat_setup): Added

	* src/jmmsp/jmmsearch.[hc] (jmmsearch_setup_full): Added
	* src/jmmsp/jmmsp.[hc] (jmmsp_setup): Added

Wed Jun  6 13:58:49 2001  David Helder  <dhelder@umich.edu>

	* src/gtkgnome/*: Added Tony's icons
	* src/icons/*: Icon cleanup
	* doc/C/authors.sgml: Added Tony

	* src/gtkgnome/ggui_files.c: More saving work
	
Wed Jun  6 00:09:00 2001  David Helder  <dhelder@umich.edu>

	* src/gtkgnome: Work, work, work.
	
	* src/jmlite/jmlite.c (delete_url_to_obj_hfunc): Fix
	   search URL

	* src/jmchannel/jmchannel.c (get_or_create): Check if done
	   in dirs_only mode at top of loop.  Dir may be /.
	* src/jmchannel/jmchannel.c (get_or_create): Add extra
	   token if no /
	* src/jmchannel/jmchannel.c (get_or_create): Null-terminate tkn.

	* src/jmchat/jmchat.c (jmchat_rejoin): Fix fail check
	* src/jmchannel/jmchannel.c (jmchannel_rejoin): "
	* src/jmchannel/jmchannel.c (error_cb): Delete BTP

	* src/jmchannel/jmchannel.c (jmchannel_setup): Added

	* src/util/sha_async.c (gnet_sha_new_file_async): Make path
	   const

	* src/util/util.c (file_exists): Use stat, not fopen.
	* src/util/util.c (file_size): "

	* src/jmchannel/jmchannel.c (jmchannel_create): Set is_local

	* src/util/jmgnet.c (gnet_url_is_scheme): Added

	* src/jmchannel/jmchannel.c (gc_r): Check kids before checking
	   if local.

	* src/mtp/mtp_mirror.c (mtp_unmirror): Return if mirror NULL.

	* src/gtkgnome/ggui_channels.c (ggui_channel_check_path): Added
	* src/gtkgnome/ggui_channels.c (ggui_channel_get_ann): Added

	* src/gtkgnome/entry_dialog.c (entry_dialog_show): Added

	* src/jmmsp/jmmsp.h (jmmsp_is_up): Now btp != NULL like other
	   modules.
	
	* src/util/util.c (strunesc): Pass esc, since not all characters
	    are escaped.

	* src/jmchannel/jmchannel.c (jmchannel_delete): Renamed back
	* src/jmchannel/*: s/fullname/path
	* src/jmchannel/jmchannel.c: Create root announcement always.
	* src/jmchannel/jmchannel.c (send_remove_r): Added.  Send
	   removes on leave.
	* src/jmchannel/jmchannel.c (jmchannel_add_path_elf): Unescape
	    name properly.

Mon Jun  4 23:38:22 2001  David Helder  <dhelder@umich.edu>

	* src/Makefile.am: Don't compile backend

Mon Jun  4 23:18:09 2001  David Helder  <dhelder@umich.edu>

        * src/gtkgnome/*: Nothing uses the backend.  Still much
	   work to do...
	
	* src/util/jmgnet.c (gnet_url_basename): Added

	* src/jmmsp/jmmsp.h (jmmsp_is_down): Added is_down macro
	* src/jmmsp/jmmsearch.h (jmmsearch_is_down): "

Sun Jun  3 19:34:41 2001  David Helder  <dhelder@umich.edu>
	
	* src/gtkgnome/: Chat no longer use the backend
	
	* src/gtkgnome/entry_dialog.[hc]: Added
	
	* src/jmchannel/jmchannel.c (_jmchannel_delete): Rename for
	   easier integration

Sat Jun  2 21:38:32 2001  David Helder  <dhelder@umich.edu>

	* src/jmlite/jmlite.c: No longer uses backend.  (create_dir
	   not implemented yet.)
	* src/jmlite/jmutil.[ch]: Added.
	
	* src/backend/backend_directory.c: Include sys/types

	* src/jmchannel/jmchannel.c (jmchannel_add_elf): Fix fullname
	    creation.

	* src/gtkgnome/ggui_config.c: Remove delete_vector (use GLib
	   g_strfreev)

	* src/gtkgnome/*: Added notes

Sat Jun  2 14:54:22 2001  David Helder  <dhelder@umich.edu>

	* *: Remove jmsearch

Sat Jun  2 14:45:50 2001  David Helder  <dhelder@umich.edu>

	* src/jmchannel/*: Debug cleanups

	* *: Source reorganizing / Repository hacking (should
	    be ok)

Fri Jun  1 15:59:53 2001  David Helder  <dhelder@umich.edu>

	* src/jmchannel/*: Work
	
	* src/mtp/mtp_server.c (mtp_server_new): Check interface
	   before setting port.  This allows NULL interface.
	
	* src/util/elf.c (elf_new_vformat): Allow name to be NULL.
	* src/util/elf.[hc] (elf_clone): Added

Thu May 31 23:06:28 2001  David Helder  <dhelder@umich.edu>

	* src/jmchannel/*: Moving backend stuff here
	* src/Makefile.am: Added jmchannel

	* src/util/elf.c (elf_{set, get}_name): Added
	* src/util/elf.[hc]: Added lots of consts

	* src/jmchat/jmchat.[hc]: Remove is_up (now macro).
	    Add is_down macro.
	
Thu May 31 16:34:42 2001  David Helder  <dhelder@umich.edu>

	* macros/autogen.sh: Run gettextize if no intl

Thu May 31 15:35:21 2001  David Helder  <dhelder@umich.edu>

	* src/mtp/mtp_client.c (mtp_client_get_file): Added.
	* src/mtp/mtpclient.c: Added test
	
	* src/mtp/mtp_mirror.c (mtp_mirror_path): Added.
	* src/mtp/mtpmirror.c: Added test
		
	* doc/C/Makefile.am: Fixes for manual file
	   rename.

	* src/backend/backend_file.c (backend_file_update_index): Don't
	   download if we have the file and the SHA changed - assume the
	   client will keep us up-to-date as appropriate.

	* src/backend/backend_announce.c (backend_announce_remove): Update
	   the index file soon if there was a change.
	* src/backend/jmfile.c (jmfile_append): Don't unmirror the file.
	* src/backend/backend_announce.c (backend_announce_add): Unmirror
	   the file before calling deley_send_update.

	* src/backend/jmp.c (jmp_read_announcement): Save index channel.

	* src/util/jmgnet.[hc]: Compile only if we don't have
	    gnet_sha_clone.

	* configure.in, acconfig.h: Remove SA_LEN check (now in GNet).

	* src/backend/backend_file.c (recv_func): Use client->length
	   on start, not length.

	* src/backend/backend_file.c (backend_file_create): Send
	   announcements on sha cache hit.
	* src/backend/backend_file.c (have_sha): Added

	* src/backend/jmfile.c (read_func): Open file for append if index,
	   read if not.  Before we opened for write - oops.

	* src/ggui_menu.c: Added more warnings

        * src/ggui*: Finished up toolbars.  Still need tweaking
	    (and better icons).
	
	* src/util/elf_test.c: Added (from elf.c)
	* src/util/sha_cache_test.c: Added (from sha_cache.c)

	* src/backend/jmp.c (jmp_read_announcement): Initialize
	   url to NULL.  We may not get one.

Mon May 28 20:11:00 2001  David Helder  <dhelder@umich.edu>

	* src/ggui.c (on_jmw_notebook_switch_page): Added.
	* src/glade/*: Added toolbars

	* src/util/jmgnet.[hc]: Add.  Move gnet_sha_clone
	   here.
	
	* src/backend/backend_file.c: Use SHA cache
	* src/ggui.c (ggui_{save,restore}_sha_cache): Add
	* src/backend/backend.c: Add backend_sha_cache
	* src/util/sha_cache.[hc]: Add

Mon May 28 15:47:03 2001  David Helder  <dhelder@umich.edu>

	* src/ggui_menu.c: Fix url creation logic

	* src/ggui_channels.c: Added basic channel saving.
	    Restored channels are not announced.
	* src/util/util.c (stresc, strunesc): Added

	* src/ggui_channels: Use hfunc and bookmared field
	    for bookmarks.  Less bookkeeping.
	* src/ggui.h (_GuiData): Added bookmarked field
	* src/backend/backend.c (backend_hfunc): Added

	* src/backend/jmfile.c (jmfile_open): Open read-only
	   for safety.

	* src/backend/backend_announce.c: Rewrite delay code
	   so announcements send immediately, but not at a
	   rate greater than R.
	* src/jmchat/jmchat.c: "
	* src/jmchat/Makefile.am: Add jmchat_debug

	* src/ggui_search.c (ggui_search_is_down): Fix 
	   logic error.

Fri May 25 16:37:20 2001  David Helder  <dhelder@umich.edu>

	* src/jmlite.c (gui_remove): Fixed.  Assumed it was
	   always a chat.

	* src/backend/*: More index file work.
	
	* src/util/elf.c (elf_read_list): Advance buffer/length
	   properly.

	* src/jmmsp/jmmsp_debug.h: Fixed macro
	* src/jmmsp/backend_debug.h: Fixed macro
	* src/jmchat/jmchat_debug.[hc]: Added
	
	* src/ggui.c: Rebuilt trashed file.

Fri May 25 11:39:08 2001  David Helder  <dhelder@umich.edu>

	* src/backend/jmp.c: Get/set is_index attribute on indexes

Thu May 24 23:19:15 2001  David Helder  <dhelder@umich.edu>

	* src/mtp/mtpclient.c (file_func): Clean ups
	* src/mtp/mtpmirror.c (read_func): Fix offset in memcpy
	* src/mtp/mtp_server.c (mtp_gconn_func): Allocate buffer
	   for read.  I'm not sure if this was right before - we
	   potentially deleted memmaped space.
	* src/mtp/mtp_types.h: ReadFunc return guint
	* src/mtp/mtp_server.c: conn/timeout exchange for safty.

	* src/backend/backend_announce.c: Debugging..

	* src/crp/crp.c (crp_check): gnet_conn_connect may destroy conn.
	   So set timeout before connect, not after.  This is a problem
	   inherent in the inet async, sorta.

	* src/backend/jmp.c (jmp_write_announcement): Move jmann's asserts
	   down.

Thu May 24 17:27:07 2001  David Helder  <dhelder@umich.edu>

	* src/ggui_channels.c (ggui_channels_init): Use direct hash,
	   not int hash.  Fixes channel selection bug.

	* src/jmmsp/jmmsp_debug.[hc]: Added

	* src/jmchat/jmchat.c (jmchat_join): Bug: Garbage collection
	   happening too often.
	* src/jmchat/jmchat.c (update_cb): Bug: Updates could be sent
	   too frequently.  Assumed timer was 3 minutes, but have been
	   much shorter.
	* src/jmchat/jmchat.c (set_update_timer): Added
	* src/jmchat/jmchat.c (hasten_update_timer): "

	* src/backend/jmfile.c: Move a lot of stuff here
	* src/backend/backend_file.c: "
	* src/backend/backend_announce.c: Support for index files
	
	* src/mtp/mtp_types.h: MtpLocalMirrorReadFunc now passes buffer.
	    I'm moving away from memmaping now that files can change.
	* src/mtp/mtp_server.c: 
	* src/mtp/mtp_mirror.c (mtp_mirror): Add length mismatch warning
	* src/mtp/mtp_mirror.c (mtp_unmirror): Delete all server conns
	    downloading the file
	* src/mtp/*: s/GList/GSList

	* src/ggui.c: Use INT for port arg (did this work?!)
	* src/jmlite.c: "
	* src/mtp/mtpmirror.c (main): "
	* src/mtp/mtprendezvous.c (main): 

	* src/jmlite.c: Exit better.

	* src/ggui_search.c: Hook up jmmsp_vfs
	* src/jmmsp/jmmsearch.[hc]: Allow create/join to specify
	   cache, search, or vfs.

Tue May 22 23:23:18 2001  David Helder  <dhelder@umich.edu>

	* src/backend/jmobj.c (jmobj_new): Handle / in name right

	* src/util/util.h: Added more timer macros
	
	* src/jmchat/jmchat.[hc]: Send update on join (but don't
	    send updates faster than a certain rate).

	* src/*: Integreated jmmsp.  Still need to add files to VFS.
	* src/jmmsp/jmmsp.[hc]: Add ErrorUp function
	* src/jmmsp/jmmsearch.[hc]: Added

	* src/jmsearchserver.c, src/jmsearch: No longer used.
	
Mon May 21 17:18:55 2001  David Helder  <dhelder@umich.edu>

	* configure.in: Require 1.1.0

Mon May 21 17:17:30 2001  David Helder  <dhelder@umich.edu>

	* src/jmmsp/*: Completed and debugged

	* src/jmchat/jmchat.c (chat_reset): Don't leave NULL
	   btp.

	* src/util/util.[hc]: Remove launch, search_path, sleep, other
	   unused functions

	* src/backend/*: Clean-ups
	* src/*: Clean-ups

	* COPYING: Fix copyright holder (was me, should be
	   Regents)

Mon May 14 14:12:46 2001  David Helder  <dhelder@umich.edu>

	* *: Now compiles and runs.  Not fully tested.

Fri May 11 17:56:51 2001  David Helder  <dhelder@umich.edu>

	* src/*: Major restructing.  Most everything is broken.

Fri May 11 17:29:27 2001  David Helder  <dhelder@umich.edu>

	* src/*: Major restructing.  Most everything is broken.

Sun Mar 25 22:38:02 2001  David Helder  <dhelder@umich.edu>

	* src/ctp*: Old CTP work.
	
	* src/mtp_server.c (mtp_server_new): Fix new Gnet issue

Sat Feb 17 16:40:54 2001  David Helder  <dhelder@umich.edu>

	* src/sha_async.[ch]: Moved from GNet.

Sun Nov 19 22:36:13 2000  David Helder  <dhelder@umich.edu>

	* src/elf.h: elf_read_node exposed, gives bytes_read.

	* src/*: Continue CTP work.  Debugged server. Started client.
	
Thu Nov 16 21:47:28 2000  David Helder  <dhelder@umich.edu>

	* src/*: Continued CTP work

	* src/elf.c (elf_set_attribute_data): Added.

	* src/globals.h (DEBUGFP): Added
	* src/*: Updated to include debug_flags

	* src/util.h: Added millitime()

Thu Nov 16 17:42:01 2000  David Helder  <dhelder@umich.edu>

	* src/*: Continued CTP work

Thu Nov 16 09:59:35 2000  David Helder  <dhelder@umich.edu>

	* src/*: Continued CTP work

Wed Nov 15 17:00:27 2000  David Helder  <dhelder@umich.edu>

	* src/*: Continued CTP work

Wed Nov  8 17:00:05 2000  David Helder  <dhelder@umich.edu>

	* src/*: Continued CTP work

Sat Nov  4 17:28:16 2000  David Helder  <dhelder@umich.edu>

	* src/*: Fixed so would compile with ELF changes

Sat Nov  4 17:25:34 2000  David Helder  <dhelder@umich.edu>

	* src/ctp*: Started work on CTP.  Copied BTP and are cleaning up.
	
	* src/elf.c (elf_read): elf_read -> elf_read_list, 
	   elf_read now reads one node.

Thu Nov  2 15:36:13 2000  David Helder  <dhelder@umich.edu>

	* src/*: Update to use GNet 1.0.5
	* configure.in (CFLAGS): Require GNet 1.0.5 (UNRELEASED).
	* src/sha.[ch], md5.[ch], jmgnet.[ch]: Moved to GNet 1.0.5

	* src/{b_}util.c: Move b_util_timer* to util
	    here.  Rename rand_timer*

Wed Nov  1 13:49:40 2000  David Helder  <dhelder@umich.edu>

	* src/pack.[ch], hashcheck.c: Moved to GNet

	* jmmspclient.c: Added.  For testing, etc.
	* jmmsp_search.c: Added.  Handles searching.
	* jmmsp*: More hacking

Tue Oct 31 20:10:44 2000  David Helder  <dhelder@umich.edu>

	* src/jmmsp.[hc], jmmsp_cache.[ch], jmmsp_vfs.[ch]: 
	   Added.  JMMSP is the new multicast searching protocol to
	   replace JMSP.  Still need jmmsp_search.
	
Wed Sep 27 17:04:48 2000  David Helder  <dhelder@umich.edu>

	* src/pack.hc, packtest.c: Test cases, debugging

Mon Sep 25 13:34:21 2000  David Helder  <dhelder@umich.edu>

	* src/pack.h: Added.  This will go into GNet anyway.

Sat Aug 12 11:04:36 2000  David Helder  <dhelder@umich.edu>

	* src/elf.[hc]: Added vararg-format functions, get/set
	    type functions
	
	* src/jmchat.[hc]: Implement UPDATE, SAY-emote
	* src/ggui_chat.c: "

Fri Aug 11 17:39:35 2000  David Helder  <dhelder@umich.edu>

	* Makefile.am (EXTRA_DIST): Added HACKING

Fri Aug 11 17:35:27 2000  David Helder  <dhelder@umich.edu>

	* src/backend.c (garbage_collect_hrfunc): Oops.  Don't
	   call backend delete.

Fri Aug 11 11:22:21 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_chat.c (chat_info_cb): Don't print time.

Thu Aug 10 16:50:07 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_search.c (ggui_search_remove): Remove g_print

	* src/jmp.[hc]: s/jmpio/jmp
	* src/elf.[hc]: s/jmp/elf

Thu Aug 10 13:31:51 2000  David Helder  <dhelder@umich.edu>

	* src/backend.c (garbage_collect_hrfunc): Remove file from
	   hashtable if times out.

Wed Aug  9 17:32:16 2000  David Helder  <dhelder@umich.edu>

	* src/jmpio.c (jmpio_read_announcement): Don't change URL if it
	   changed.
	
	* src/util.c (strtoreadable): Added

Tue Aug  8 18:47:54 2000  David Helder  <dhelder@umich.edu>

	* src/ggui.c (ggui_clist_update_row2): Fixed another.

Tue Aug  8 18:37:09 2000  David Helder  <dhelder@umich.edu>

	* src/ggui.c (ggui_clist_update_row2): Initialize
	   old_*.  GTK won't for us if get_pixtext fails. 

Tue Aug  8 12:35:07 2000  David Helder  <dhelder@umich.edu>

	* src/glade/jm*.glade: Set hpaned position to 100.  Works
	    better for libglade 0.14

Tue Aug  8 12:07:20 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_channels.c: Save selected file when changing
	    shown channel.
	* src/ggui_files.c (ggui_files_get_shown): Added.
	* src/util.c (remove_by_value_hrfunc): Added.

	* src/ggui_files.c (ggui_files_show): Add back pixmap first.  This
	    will make adds look a little better.

	* src/ggui_search.c (ggui_search_update): Print status when
	    downloading file.

	* NEWS,FAQ,AUTHORS: Generate from SGML files
	* macros/autogen.sh: Add NEWS, AUTHORS, FAQ files if
	    missing.
	
Thu Aug  3 15:13:29 2000  David Helder  <dhelder@umich.edu>

	* configure.in: Allow for OpenSSL 0.9.4 (so now check
	   for EGD too).
	* configure.in: Check for broken Linux bind.
	
	* debian[.gnome]/docs: Added hacking

Wed Aug  2 23:37:12 2000  David Helder  <dhelder@umich.edu>

	* configure.in, acconfig.h: Added tests for OpenSSL

Wed Aug  2 14:20:23 2000  David Helder  <dhelder@umich.edu>

	* src/ggui.c: Catch SIGINT and SIGPIPE.
	* src/jmsearchserver.c (sig_pipe_cb): Catch SIGPIPE.
	* src/jmlite.c (sig_pipe_cb): Catch SIGPIPE.

Fri Jul 28 16:49:37 2000  David Helder  <dhelder@umich.edu>

	* src/jmlite.c (tilde_expand): Added.  Now do ~ expansion when
	   adding files and directories..
	* src/jmlite.c (readline_cb): Added "include" command
	* src/jmlite.c (start_backend): Fix setting rendezvous locally
	   flag.

	* src/jmsearchserver.c: Don't index Monkey Central by default.

	* src/ggui_search.c (on_search_entry_activate): Say we're
	   searching when we're searching.

Fri Jul 28 14:31:35 2000  David Helder  <dhelder@umich.edu>

	* src/jmsearchserver.c: Catch ctrl-C and shutdown
	   properly.
	* src/backend.c (backend_shutdown_hfunc): Send remove
	   announcements for searches too.
	
	* src/jmlite.c (readline_cb): Implemented create_chat and
	    remove_chat
	* src/jmchat.c: Allow nickname to be NULL.

	* src/b_conn_io.c (read_cb): Make sure read watch set.  Set
	   read watch to 0 if there's an error.
	* src/b_conn_io.c (write_cb): Make sure write watch set.

Fri Jul 28 13:13:11 2000  David Helder  <dhelder@umich.edu>

	* src/backend_file.c: Print strerror when there's an
	   error

	* src/sha.c (dispatch_sha): Set reads to low priority.

Fri Jul 28 11:17:56 2000  David Helder  <dhelder@umich.edu>

	* AUTHORS: Added Bjrn Ganslandt for de translation
	* configure.in (ALL_LINGUAS): Added de

Thu Jul 27 17:06:17 2000  David Helder  <dhelder@umich.edu>

	* src/jmlite.c: Many new commands.  Catchess ctrl-c now.

Thu Jul 27 10:23:19 2000  David Helder  <dhelder@umich.edu>

	* src/jmlite.c: jmlite in process of being re-writen.
	    Now has console interface.  Can write interpreted
	    scripts with it too.

Tue Jul 25 09:55:13 2000  David Helder  <dhelder@umich.edu>

	* NEWS, README: Clean-ups

Mon Jul 24 16:43:34 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_files.c (ggui_files_remove): If the shown
	    file is removed, then reset everything.

	* src/jmfile.h (_JMFile): Added announcees field.
	* src/backend_announce.c (backend_announce_delete): 
	    Added.  Delete necessary JMAnn's.  Does not send
	    any announcements.
	* src/backend.c (backend_delete): Call 
	    backend_announce_delete

Mon Jul 24 10:19:09 2000  David Helder  <dhelder@umich.edu>

	* src/glade/preferences_dialog.glade: Fixed dialog
	    title.
	* FAQ: Clean ups

Fri Jul 21 17:21:26 2000  David Helder  <dhelder@umich.edu>

	* HACKING: Added note on FreeBSD autogen.

Fri Jul 21 13:09:00 2000  David Helder  <dhelder@umich.edu>

	* src/jmgnet.c (jm_gnet_inetaddr_list_interfaces): Include
	   config.h.  Use ifr_name, not name.

Fri Jul 21 12:54:43 2000  David Helder  <dhelder@umich.edu>

	* src/jmgnet.c: Use new interface function.
	* src/ggui_preferences.c: "

Fri Jul 21 12:51:39 2000  David Helder  <dhelder@umich.edu>

	* configure.in: Include types.h before sockets.h

Fri Jul 21 12:41:12 2000  David Helder  <dhelder@umich.edu>

	* configure.in: Upped version (unreleased)
	* NEWS: Named next release "Magilla Gorilla"

Fri Jul 21 12:08:55 2000  David Helder  <dhelder@umich.edu>

	* src/jmgnet.c (gnet_private_inetaddr_list_interfaces): Added.
	   Fixed for BSD.
	* configure.in: Added check for sockaddr.sa_len

Thu Jul 20 22:06:03 2000  David Helder  <dhelder@umich.edu>

	* src/ggui.c: Redid network config auto-detect

	* src/jmgnet.c (jm_gnet_inetaddr_get_interface_to): Added.
	   Uses connected UDP socket to find proper interface.

	* src/jmgnet.c (jm_gnet_inetaddr_get_internet_interface): 
	   Just gets list and finds interface from that.

Wed Jul 19 18:29:36 2000  David Helder  <dhelder@umich.edu>

	* doc/C/jm.sgml: Noted that FAQ and Quickstart were
	   out of date.

	* src/ggui.c (main): Improve warning messages.  Trying
	   to improve firewall and NAT detection, etc.
	* src/ggui.c (main): If network error, then don't try
	   to start the backend.

	* src/jmgnet.c (jm_gnet_inetaddr_get_internet_interface): Use
	   jm_gnet_inetaddr_new_nonblock.

Wed Jul 19 17:10:30 2000  David Helder  <dhelder@umich.edu>

	* src/ggui.c (ggui_check_network_config): Added.  Uses CRP.
	
	* src/crp*: Check both port and hostname.
	
	* README: Rewrote quickstart

	* src/util.c (mkdirr): Check EEXIST when try to create second
	   time.  Problem was directories that ended with / were
	   created, but we claimed they weren't.

	* src/backend_file.c (backend_file_setup_path): Don't
	   add extra directory separator.

	* src/backend_channel.c (channel_packet_cb): Don't freeze GUI when
	   we receive a packet.  Less flicker now.

Tue Jul 18 17:47:43 2000  David Helder  <dhelder@umich.edu>

	* src/backend_file.c (sha_cb): Update GUI after getting SHA.

	* src/jmfile (JMAnn): Added new announcement type
	* src/backend_announce: Keep list of announcements.  Send
	   spread over time - not in bursts

	* src/sha.c: Only allow 8 async SHA's at once.  Maybe this should
	   be moved elsewhere...

	* src/backend_directory.c (backend_files_create): Added
	   a couple missing closedir's.

	* src/jmfile.c (jmfile_link): Don't link directories
	   to NULL or multiple parents.

Tue Jul 18 11:21:34 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_chat.c (my_text_insert): Scroll bars now
	   work like they used to.  I don't know how to make
	   them work like I want them too.

Mon Jul 17 17:18:54 2000  David Helder  <dhelder@umich.edu>

	* AUTHORS: Added Laurent Alacoque for French translation.
	
	* src/jmgnet.c (jm_gnet_inetaddr_is_canonical): Added.
	* src/sha.c (gnet_sha_new_file_async): Added.
	* src/util.c (filename_size): Added
	* src/sha.c (gnet_sha_hash): Added
	* src/md5.c (gnet_md5_hash): Added

	* src/mtp*: Clean-ups, commenting

	* src/backend_announce.c (backend_announce_remove): Fix
	   typo.  Were we incorrectly removing private channels?
	
	* src/mtp_mirror, etc: Call up to get each piece of file.
	* src/backend_file: Updated. 
	* src/jmfile: Added munmap_timer.

	* src/mtp_mirror.c (mirror_gconn_func): Return FALSE
	   after disconnecting.

Fri Jul 14 18:04:01 2000  David Helder  <dhelder@umich.edu>

	* HACKING: Added.

	* src/util.c (my_error): Added.  Calls exit - does not
	   dump core.
	* src/*: Use my_error, not g_error.

Thu Jul 13 13:03:06 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_chat.c (my_text_insert): ave point before inserting
	   text.  Then it won't scroll down when someone types.

	* configure.in: Check for libpopt only if I don't have Gnome.
	   Look for poptPrintUsage since people seem not to have it.
	* src/ggui.h, etc: Include popt-gnome if Gnome enabled, not
	   popt.h.

Wed Jul 12 18:04:52 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_chat.c (on_chat_select_row): Set point to the
	   end of the chat when you switch.
	
	* src/ggui_files.c (ggui_files_init): Set auto-sort.

	* src/ggui_{prefs, properties}.c: Show a nice message
	   if there's a libglade problem.

	* src/ggui_properties.c (ggui_properties_show):
	    s/assert/return_if_fail.

Tue Jul 11 19:07:39 2000  David Helder  <dhelder@umich.edu>

	* src/crp*: s/kk/crp.  File renaming.  CRP = Connection
	   Reflection Protocol.

Mon Jul 10 17:17:32 2000  David Helder  <dhelder@umich.edu>

	* src/kk*: Server now checks hostname too.  Returns BAD_HOSTNAME
	   if hostname bad, BAD_PORT if port bad.
	* src/jmgnet.c (jm_conn_new_inetaddr): Added.

Fri Jul  7 18:12:06 2000  David Helder  <dhelder@umich.edu>

	* src/kk*: Added.  Tests listening port reachability from
	    outside a firewall.

Fri Jul  7 17:58:21 2000  David Helder  <dhelder@umich.edu>

	* src/scheduler.c: Removed dependency on globals.

	* src/poll.c: Move config.h before broken poll
	* configure.in: Fix note on broken poll

Thu Jul  6 13:36:44 2000  David Helder  <dhelder@umich.edu>

	* src/mtp_mirror.c (mirror_gconn_func): Handle TIMEOUT case.

	* Makefile.am (SUBDIRS): Build doc directory last

	* FAQ: s/e2em/em

	* src/backend_file.c (file_func): Set output file to the
	    proper length before mmaping.
	* src/backend_file.c (file_func): Don't mmap PRIVATE.
	* src/backend_file.c (file_func): Call msync after downloading.

	* src/b_conn_handler.c (b_conn_handler_have): Added.
	* src/b_conn_handler.c (b_conn_handler_get): s/guint8/gint.
	    Should fix pinging warning.
	 
	* configure.in: If poll broken, just say they're using
	   Linux.
	* configure.in: Add --enable-build-docs to build docs from
	   scratch.
	
Wed Jul  5 19:40:00 2000  David Helder  <dhelder@umich.edu>

	* src/backend_announce.c (backend_announce_schedule_updates): Added
	* src/backend_channel.c (channel_packet_cb): Schedule updates
	   again when join channel.

	* src/mtp_server.c: Use jm_conn_timeout.  Other files
	    should be ok for now.
	* src/jmgnet.c (jm_conn_timeout): Added.

Tue Jun 27 15:31:45 2000  David Helder  <dhelder@umich.edu>

	* *: Released 0.1.7

Tue Jun 27 11:16:03 2000  David Helder  <dhelder@umich.edu>

	* macros/autogen.sh (conf_flags): Removed --enable-maintainer-mode

Thu Jun 22 18:09:13 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_preferences.c (apply_network2): Set the protocol right
	    on the rendezvous URL.

Thu Jun 22 18:01:53 2000  David Helder  <dhelder@umich.edu>

	* src/backend.c (backend_add): Take name as param.
	* src/ggui_search.c (jmsearch_cb): Create jmfile using name

	* src/jmsearchserver.c (conn_func): Don't delete as_in twice.
	
	* src/jmsearch.c (jmsearch_conn_func): Read the name.
	* src/jmsearchserver.c (conn_func): Return name of file.

Thu Jun 22 17:23:42 2000  David Helder  <dhelder@umich.edu>

	* src/jmsearch.c (jmsearch_search): Call connect on the connection
	   after creating it.
	* src/ggui_search.c (jmsearch_cb): Use the URL from the result,
	   not the URL of the search server.

Thu Jun 22 14:07:28 2000  David Helder  <dhelder@umich.edu>

	* src/mtp_types.h (_MtpRendezvous): Added requests_pending field.
	* src/mtp_mirror.c (mirror_gconn_func): Use requests_pending
	   to determine when to close connection.  Before, we wrote
	   a bunch of stuff and then closed the socket, but the server
	   never got it.  Now we make sure we read the responses.

	* src/backend_file.c (backend_file_create): Delete URL
	   once on failure, not twice.

	* src/glade/preferences_dialog.glade: Updated GTK part

	* src/backend_file.c (backend_file_create): Fix SHA URL ('A' was
	   missing)
	
	* src/btp_packet.c (btp_packet_new_info_reply_children): Write
	   connections, not BtpNodes (I think the only reason this worked
	   before we the two structure's happened to have the same fields
	   and layout, I think).
	* src/b_conn_connect.c (b_conn_connect): Don't assert we are
	   connected - we shouldn't be.

Tue Jun 20 08:23:05 2000  David Helder  <dhelder@umich.edu>

	* src/b_*: Got to compile.  Moved some packet parsing
	    to b_packet.  Added const's to b_util.

Fri Jun 16 19:20:12 2000  David Helder  <dhelder@umich.edu>

	[DOES NOT COMPILE]

	* src/sha.c (gnet_sha_copy_string): Added
	* src/jmfile, jmpio.c: Added SHA
	* src/ggui_properties.c (ggui_properties_update): Added SHA, fixed
	    memleak

	* src/jmgnet.c (jm_url_get_nice_string): Fixed bad strconcat.

	* src/jmgnet.c (jm_gnet_read_async): Rewrote this and
	   associated functions...

	* src/ggui_preferences.c (apply_files): Save Rendezvous URL

	* src/mtp_types.c (mtp_troop_remove): Decrement mirror count when
	    removing a mirror.
	
	* src/mtp_*.h: s/INFO_REQUEST/GET_INFO

	* src/backend.c (backend_init): mtp_server is type BOTH,
	   but local create only.

	* src/jmgnet.c (jm_gconn_new): Create inetaddr from hostname.
	   This works around issue in GNet.
	* src/jmgnet.c (jm_gconn_connect): Use inetaddr if available, then
	   hostname.

	* src/mtp_client.c (mirror_file_conn_func): Assume upper level
	   delete client when last part passed up.

	* src/jmfile.c (jmfile_get_percent_complete): Don't divide by 0.

	* src/ggui.c (main): Negate "Use Default MTP port"

	* src/mtp_server.c (mtp_server_delete): Check if tables exist
	   before deleting.
	
	* src/backend.c (backend_shutdown): Don't shutdown url_to_file if
	    not up.

	* src/ggui_config.c (ggui_config_get_int): Fix bad default.
	* src/ggui_config.c (ggui_config_get_bool): "

	* src/ggui_preferences.c (initialize_files): Fix label on port
 	   button.

	* src/ggui_chat.c (ggui_chat_load_bookmarks): Skip bookmarks that
	   are empty
	* src/ggui_channels.c (ggui_channels_load_bookmarks): "

Mon Jun 12 16:12:43 2000  David Helder  <dhelder@umich.edu>

	* src/jmgnet.h: Changed license/header to GNet's LGPL.

	* src/md5,sha: s/DIGEST_SIZE/HASH_LENGTH
	* src/sha.h (GNET_SHA_DIGEST_SIZE): Fixed digest size.

Mon Jun 12 10:40:17 2000  David Helder  <dhelder@umich.edu>

	* src/sha.[hc]: Added
	* src/md5.[hc]: Added
	* src/hashcheck.c: Added

	* src/ggui*: Now uses MTP for files, other cleanups/fixes
	* src/backend*: "
	
	* src/mtp_server.c (mtp_server_new): Can set if troops can only be
	    created locally.  This prevents people from using your host as
	    a rendezvous for files you aren't offering.

	* src/mtp_types.c (mtp_troop_update/remove): Now takes hostname
	    as argument.
	* src/mtp_server.c (mtp_server_new): Now takes hostname as arg.

	* src/mtp_client.c (mirror_file_conn_func): Don't allow sender to
	    send more than the length of the file.

	* src/jmgnet.c (jm_url_new): Cleaned up reading hostname

	* src/mtp_mirror: Always add/remove mirror from local server.

Fri Jun  9 16:58:08 2000  David Helder  <dhelder@umich.edu>

	[BROKEN]
	
	* src/mtp_mirror.c (mtp_mirror): Now uses GURL
	
	* src/jmgnet.c (jm_url_new): Properly parse URL if the protocol
	    isn't specified.
	* src/jmgnet.c (jm_url_equal, jm_url_hash): Added
	* src/jmgnet.c (jm_url_new_fields): Added

	* src/backend.c (backend_init): Bug fix: Pass port to btp_init,
	    not BTP_PORT, and force_port, not FALSE.

	* src/mtp_server.c (mtp_gconn_func): Mirrors now reply to
	   GET_MIRRORS (but not MIRROR/UNMIRROR).

	* src/mtp_server.c: Set TOS to LOWCOST when tranfering file.

Fri Jun  9 00:12:08 2000  David Helder  <dhelder@umich.edu>

	* configure.in: Added big warning about poll.

	* src/mtp_client: Implement get_file.  Some debugging of other
	   stuff too.

	* src/mtp_mirror.c (mtp_mirror, unmirror): Fixed bad strcmp's.
	
	* src/mtpmirror.c: --rendezvous has mirror act as rendezvous also.

	* src/mtp_server,mirror.c: Always maintain rendezvous data
	   structures - in case we want to turn it on.
	* src/mtp_server.c (mtp_server_set_type): Added.

	* src/jmgnet (jm_gconn_is_connected): Added.

Thu Jun  8 16:59:29 2000  David Helder  <dhelder@umich.edu>

	* src/mtp_*: Implemented get mirror and get file from mirror.
	   Still buggy.

	* src/jmgnet.c (jm_gconn_new): Set ref count to 1.
	* src/jmgnet.c (gnet_read_async_read_cb): Fix bug with readinto
	   thinking like there's an error and stuff when there really
	   isn't, you know.
	* src/jmgnet.c (jm_gconn_read_cb): Yeah, and EOF might return
	   data - this might be dumb.

Thu Jun  8 00:02:43 2000  David Helder  <dhelder@umich.edu>

	* src/mtpclient.c: Added

Thu Jun  8 00:01:36 2000  David Helder  <dhelder@umich.edu>

	* src/mtp_client: Implemented get mirrors and info request.
	
	* src/mtp_mirror.c (mirror_update_cb): Send port on updates.

	* src/util.c (make_url): s/snprintf/g_snprintf

	* src/jmgnet.c (jm_gnet_url_new): Added JMGURL.  Implemented.

	* src/jmgnet.c (jm_gconn_new): func may be NULL.
	* src/jmgnet.c: Added reference count to connection.

Wed Jun  7 09:30:09 2000  David Helder  <dhelder@umich.edu>

	* src/mtp_client.[hc]: Fixing/implementing...

Mon Jun  5 23:11:01 2000  David Helder  <dhelder@umich.edu>

        * src/mtp_server.[ch], mtp_mirror.[ch]: Finished (mostly)
	    and tested (mostly).
	* src/mtprendezvous.c, mtpmirror.c: Simple servers for
	    testing - mostly useless for other purposes.
	
	* src/jmgnet.c (jm_gconn_write_cb): Check queued writes before
	   calling callback.

Mon Jun  5 16:05:09 2000  David Helder  <dhelder@umich.edu>

	* src/mtp_*: Continued work on...

	* src/jmgnet.c: Moved max_length, timeout to conn IO functions
	   parameters.  Allow multiple pending writes, even if in the
	   process of connecting.

Sun Jun  4 16:45:53 2000  David Helder  <dhelder@umich.edu>

	* src/mtp_*: Continued work on...
	
	* src/util.c (parse_url): Allow protocol to be left off.
	
	* src/jmgnet.[hc]: Added GConn and GServer, higher abstractions
	   of client, server, and connection.  Added jm_gnet_readinto_async.

Tue May 30 12:40:00 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_chat.c (on_chat_select_row): Don't enable chat
	   part if not on chat.

	* src/jmchat.c (jmchat_leave): Don't require the chat to be
	   non-local.

	* src/ggui.c (main): Call ggui_chat_load_bookmarks.  Fixes
	   bug where bookmarks weren't shown.

Mon May 29 22:03:35 2000  David Helder  <dhelder@umich.edu>

	* src/scheduler.h: Added.
	* src/b_conn*.c: Almost hooked scheduler up to writing.  Not
	    sure if it will be used ultimately.

	* src/mtp_client.[hc]: Added.  These are in progress.
	* src/mtp_server.[hc]: Added.  

Fri May 26 17:21:09 2000  David Helder  <dhelder@umich.edu>

	* doc/C/faq-developers.sgml: Added.  Update CVS repository.

	* src/backend_announce.c (backend_announce_r): Fix bad args
	   to backend_announce_r - meant directories didn't work.

	* src/backend_file.c (backend_file_setup_path): Fix: When no
	   parent, use jm_home as directory.  Before we used the file
	   name as the directory, which was weird.
	 
	* src/ggui.c (main): Strip off trailing / on jm_home if necessary.
	* src/ggui_preferences.c (apply_general): "

	* src/ggui_search.c (ggui_search_init): Add note that you need to
	   be on a channel to see a search server.

	* src/backend_channel.c (channel_packet_cb): Freeze-thaw GUI
	   between before reading packet.
	* src/jmfile.c (jmfile_unlink): Unlink children.

	* src/ggui_channels.c (ggui_channels_shutdown): Don't sync - will
	   call in on_jmw_destory.
	* src/ggui_chat.c (ggui_chat_shutdown): "

	* src/ggui_chat.c (chats): Added list of chats
	* src/ggui_chat.c (ggui_chat_shutdown): Send leave messages to all
	   chats and delete.
		
	* src/ggui_chat.c (ggui_chat_remove): Leave the chat before
	   deleting it.

	* src/ggui_config.c (ggui_config_set_vector): Fix Gnome part for
	   compilation.
	* src/ggui_preferences.c (on_preferences): Fix: Use widget_name
	   for widget name.

Thu May 25 22:56:37 2000  David Helder  <dhelder@umich.edu>

	* src/ggui.c (ggui_show_message): Makes crappy box in GTK mode.

	* src/ggui_preferences.c: Works for GTK now (untested for
	   Gnome).
	* src/ggui_*: Other gnome only stuff now works for GTK
	* src/ggui_config.[hc]: Added
	* src/parsecfg.[hc]: Removed (didn't need)

Thu May 25 17:12:11 2000  David Helder  <dhelder@umich.edu>

	* src/parsecfg.[hc]: Added for GTK config file
	* AUTHORS: Added Mike Oliphant

	* src/ggui.c (main): Warn if the user runs JM as root.

	* src/ggui_preferences.c (ggui_preferences_shutdown): Added.  Hide
	   preferences when exiting.
	* src/ggui_properties.c (ggui_properties_shutdown): Added.  Hide
	   shown properties when exiting.

Thu May 18 11:54:03 2000  David Helder  <dhelder@umich.edu>

	* src/btp_proto.c (btp_conn_accept): Get hostname/port from conn,
	   not node.  [Seg fault fix.]
	
	* src/jmgnet.c (jmgnet_tcp_socket_set_tos): Fixed type. [FreeBSD
	   compile fix.]

Mon May 15 09:44:30 2000  David Helder  <dhelder@umich.edu>

	* doc/C/faq-compare.sgml: Fixed Gnutella URL.

Sun May 14 14:05:52 2000  David Helder  <dhelder@umich.edu>

	* src/backend_file.c: Include sys/types for NetBSD.
	* src/backend.c: "
	* src/jmfile.c: "

Fri May 12 13:45:22 2000  David Helder  <dhelder@umich.edu>

	* debian/rules: Assume poll is broken.
	* debian.gnome/rules: "

	* configure.in: Test if poll is broken
	* src/poll.c: Compile only if HAVE_BROKEN_POLL is set.

	* src/ggui_chat.c (ggui_chat_join): Update the gui
	   after rejoining.
	* src/jmchat.c (jmchat_rejoin): Return FALSE if successful.

Thu May 11 18:19:15 2000  David Helder  <dhelder@umich.edu>

	* AUTHORS: Cleaned up.  Xavier is a contributor.  Mukesh and
	   Andy just credited.

	* src/ggui_chat.c (chat_info_cb): SAY should check if the msg is
	  NULL, not LEAVE.

Thu May 11 15:52:19 2000  David Helder  <dhelder@umich.edu>

        * *: Release 0.1.6
	
	* src/ggui.c (ggui_get_jm_glade_xml): Fixed error message.
	
	* doc/C/Makefile.am (install-data-local): Fixed path for
	   stylesheet-images.

Thu May 11 11:08:15 2000  David Helder  <dhelder@umich.edu>

	* src/poll.c: Don't include poll.h

Thu May 11 09:13:29 2000  David Helder  <dhelder@umich.edu>

	* configure.in: Added stuff for poll.
	* src/poll.c: Added.

Wed May 10 16:37:29 2000  David Helder  <dhelder@umich.edu>

	* src/b_conn_handler.c (b_conn_handler_dispatch): Copy list of
	   handlers.  Check if handler deleted before dispatching.  This
	   is in case the handler is deleted.  This isn't perfect, but 
	   should work.

	* src/btp_tree.c (btp_tree_delete): Remove the switch timeout.
	* src/btp_proto.c (find_new_parent_cb): Send the parent a switch
	   packet.  We forgot to do this.
	
	* src/glade/jm.glade: Added chat.

Wed May 10 15:25:21 2000  David Helder  <dhelder@umich.edu>

	* src/b_conn.c (b_conn_pop_packet): If we aren't connected and
	   this is NOT a connect packet, return NULL.

Wed May 10 15:13:06 2000  David Helder  <dhelder@umich.edu>

	* src/jmsearchserver.c (server_start): Pass server name to
	   backend_search_create.
	* src/backend_search.c (backend_search_create): Added 'name'
           parameter.

Wed May 10 13:28:19 2000  David Helder  <dhelder@umich.edu>

	* src/b_conn.c (b_conn_pop_packet): If we aren't connected and
	   this is a data packet, return NULL.  We don't want to send data
	   yet.

Tue May  9 17:19:22 2000  David Helder  <dhelder@umich.edu>

	* src/b_conn_io.c (b_conn_watch_error): Re-enabled watching err
	   and hup.
	
Tue May  9 16:23:59 2000  David Helder  <dhelder@umich.edu>

	* src/btp.c (btp_remove): Only remove if name_to_tree is there.

	* src/ggui_chat.c (chat_info_cb): Update chat_text.  Update
	   chat_text if shown.
	
	* src/btftp.c (btftp_delete): Delete only if non-NULL.
	* src/btsmp.c (btsmp_delete): Delete only if non-NULL

	* src/btp_proto.c (btp_conn_accept): Handle when node known, but
	   not connected.  Also handle reconnections.

	* src/ggui_menu.c (on_entry_dialog_clicked): Remove whitespace.
	* src/ggui_menu.c (on_entry_dialog_ok): Fixed deleting potentially
	   wrong pointer.

Sat May  6 18:49:27 2000  David Helder  <dhelder@umich.edu>

	* src/b_conn_io.c (b_conn_watch_error): Not watching ERR and HUP
	   seems to fix 100% CPU problem, but why?

	* src/ggui_menu.c (on_entry_dialog_ok): Strip leading and trailing
	   whitespace from entry text.

	* src/ggui.c (main): Initialize backend even if no hostname or
	   interface.
	* src/backend.c (backend_init): Return if no hostname or interface

Fri May  5 15:41:37 2000  David Helder  <dhelder@umich.edu>

	* src/backend.c (garbage_collect_hrfunc): Don't GC if it has a
	   NULL parent.

Fri May  5 14:17:22 2000  David Helder  <dhelder@umich.edu>

	* src/ggui.c (gui_activate): Fixed parse error for GTK version.
	* src/ggui_menu.c (entry_dialog_new): Remove on_entry_dialog
	   changed for GTK version.

	* src/ggui_preferences.c (initialize_network_addr_manual): Fix
	   append vs prepend of 127.0.0.1.  This may fix selection problem

	* src/ggui_chat.c (on_chat_button_press): Allow removal of
	   chat's don't own from list.
	* src/ggui_chat.c (on_chat_remove): "

	* src/ggui_channels.c (on_channels_button_press): Cleaned up popup
	   menu.

	* src/ggui.c (on_jm_manual): Added.  Removed faq_online.
	* src/ggui.c (on_jm_faq): Added.

Thu May  4 22:41:16 2000  David Helder  <dhelder@umich.edu>

	* configure.in: Check for libtool
	* src/Makefile.am: Link using libtool

Thu May  4 15:29:19 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_channels.c (ggui_channels_remove): Remove file from
	   bookmarked channels.
	* src/ggui_chat.c (ggui_chat_remove): "

	* src/ggui.h (_GuiData): Added field to save chat text in.
	* src/ggui_chat.c (on_chat_select_row): Save and restore chat
	   text.
	* src/ggui_chat.c (on_chat_unselect_row): Save chat text.
	* src/ggui_chat.c (ggui_chat_leave): Delete chat_text
	* src/ggui_chat.c (ggui_chat_remove): "

	* src/backend_file.c (backend_file_setup_path): Don't append the
           name of the file until the very end...

	* src/ggui.c (gui_activate): Don't append file: to urls.  Also,
	   call ggui_chat_join on URLs even if in GTK mode.

	* src/ggui_download.c (ggui_download_remove): Set in_download_list
	   to FALSE after remove.
	* src/ggui_download.c (ggui_download_update): Set in_download_list
	   to FALSE after removing.  Before we set to TRUE.

	* src/ggui.c (main): Bookmark only the default channel.
	
	* src/util.c (is_blankpathname): Skip leading /

Wed May  3 23:26:54 2000  David Helder  <dhelder@umich.edu>

	* src/backend.c (garbage_collect_hrfunc): Call gui_remove

	* src/b_conn_accept.c (b_conn_init): Don't bother with B_CONN_PORT.

	* src/jmchat.c (jmchat_is_up): Return TRUE if btsmp is non-NULL.
	   Not sure if this will work or not...

	* src/ggui.c (gui_add): Remove assertion that gui_data was NULL.

	* src/ggui_chat.c (ggui_chat_join): Call gui_update after joining
           chat.
	* src/ggui_chat.c (ggui_chat_leave): "
	* src/ggui_chat.c (chat_error_cb): "

	* src/jmchat.c (jmchat_join): Don't set is_local flag.

	* src/jmfile.c (jmfile_delete): Don't call backend_delete
	   since we may be iterating through the hash table.  Instead
	   the backned_delete must be called before jmfile_delete.
	* src/backend.c (backend_shutdown): Don't create a files lists.
	   Instead first do a hfunc to remove channels and then do a hfunc
	   to delete everything.
	* src/backend.c (backend_delete_hfunc): Added

	* src/btp_proto.c (receive_mcast): Added
	* src/btp_proto.c (receive_ucast): Added

Wed May  3 09:58:02 2000  David Helder  <dhelder@umich.edu>

	* src/ggui*: Continued hacking on chat...
	* src/jmchat.c (jmchat_is_up): Added.
	
	* src/ggui_files.c: Popup menu cleanups.
	
	* src/jmfile.c (jmfile_get_child_by_name): Parent can be NULL.
	* src/backend_url.c (backend_url_create): Parent can be NULL.

Tue May  2 08:58:53 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_chat.[hc]: Added.

	* src/ggui_properties.c (ggui_properties_update): Added case for
	    URL.

	* src/ggui_channels.c (ggui_channels_load_bookmarks): Added.

	* src/btsmp.c (btsmp_is_up): Fix: Always returned TRUE.

	* src/ggui_files.c (on_files_button_press): Fix: Don't 
	   allow user to remove current channel if they don't 
	   own it.

	* src/backend_announce.c (backend_announce_add): Fixed potential
	   seg fault when creating private channel.

	* src/jmchat.[hc]: Added.  Independent of backend.

	* src/ggui_menu.c (ggui_menu_get_file): Fix: Now works
	   on directories again.

	* src/backend.c (backend_put): s/backend_add/backend_put
	* src/backend.c (backend_add): Added.  Other types now
	    use this when possible.

	* src/ggui.c (ggui_get_pixmaps): Handles chat and url icons
	* src/ggui.c (main): Load chat and url icons.
	* src/icons.h: Added chat and url icons.  s/monkey/channel
	
	* src/backend_url.[hc]: Added
	* src/backend.c (backend_activate): Added URL
	* src/jmfile.c (jmfile_is_url_proto): Added
	* src/jmfile.h: Added URL types
	* src/jmpio.c: Read and write URL 

	
Sun Apr 30 16:45:02 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_preferences.c: Added port configuration.

	* src/b_conn_ping.c (receive_pong): Compare size properly.
	* src/b_conn_ping.c (receive_ping): Send the new packet, not the
	   old one.

	* src/b_conn_io.c (read_cb): memmove not so conservative.

	* src/b_conn_connect.c (receive_ok_connect): Do connect upcall.

	* src/b_conn_ping.c (send_ping): Send ping only if there
	   isn't one already (condition was backwards).

	* src/btp_proto.c (btp_conn_close): Added.  Just calls
	  btp_conn_fail.
	* src/btp_proto.c (btp_conn_fail): Cleaned up.

Fri Apr 28 21:03:14 2000  David Helder  <dhelder@umich.edu>

	[UNTESTED]

	* src/btp*: Continued hacking.  Compiles.  Connections
	   work.  Still more to do.

Wed Apr 26 13:57:58 2000  David Helder  <dhelder@umich.edu>

	[DOES NOT COMPILE]

	* src/btp*: Continued hacking...
	
	* doc/C/*: Added NEWS, FAQ, and AUTHORS files
	
Wed Apr 26 13:57:58 2000  David Helder  <dhelder@umich.edu>

	[DOES NOT COMPILE]

	* src/btp*: Continued hacking...
	* doc/C/*: Added.

Tue Apr 25 19:48:40 2000  David Helder  <dhelder@umich.edu>

	[DOES NOT COMPILE]
	
	* src/btp*: Hookedup tree, node, packet
	* src/b_conn.h,*: Remove _down().
	* src/b_conn_connect.c (b_conn_close): Stop pinging the node.
	* src/b_conn_io.c (write_cb): Reset the connection before
	   calling b_conn_func_close.
	* src/b_conn_ping.c (receive_bye): Implemented.

Sat Apr 22 17:21:50 2000  David Helder  <dhelder@umich.edu>

	[DOES NOT COMPILE]

	* src/*: Continued restructuring of BTP.  b_* compiles.

Sat Apr 22 12:09:05 2000  David Helder  <dhelder@umich.edu>

	[DOES NOT COMPILE]

	* src/*: Continued restructuring of BTP...

Fri Apr 21 16:59:09 2000  David Helder  <dhelder@umich.edu>

	[DOES NOT COMPILE]

	* src/*: Continued restructuring of BTP...

Fri Apr 21 10:48:49 2000  David Helder  <dhelder@umich.edu>

	[DOES NOT COMPILE]

	* src/*: Continued restructuring of BTP...

Thu Apr 20 16:41:51 2000  David Helder  <dhelder@umich.edu>

	[DOES NOT COMPILE]

	* src/*: Continued restructuring of BTP...

Thu Apr 20 10:47:08 2000  David Helder  <dhelder@umich.edu>

	[DOES NOT COMPILE]

	* src/*: Continued restructuring of BTP...

Wed Apr 19 15:07:14 2000  David Helder  <dhelder@umich.edu>
	
	[DOES NOT COMPILE]

	* src/*: Continued restructuring of BTP...

Wed Apr 19 00:16:14 2000  David Helder  <dhelder@umich.edu>

	[DOES NOT COMPILE]

	* src/*: Continued restructuring of BTP...

Tue Apr 18 12:47:01 2000  David Helder  <dhelder@umich.edu>

	[DOES NOT COMPILE]

	* src/*: Continued aggressive restructuring of BTP.
	* src/*: Removed jmsearchclient, jmftp-send, jmftp-receive

Tue Apr 18 11:51:53 2000  David Helder  <dhelder@umich.edu>

	[DOES NOT COMPILE]

	* src/*: More aggressive restructuring of BTP.

Mon Apr 17 00:43:42 2000  David Helder  <dhelder@umich.edu>

	* src/*: Continued restructuring BTP.  Should be ok
	   now, though it will probably go through additional
	   cleanup.

Fri Apr 14 15:55:13 2000  David Helder  <dhelder@umich.edu>

	[DOES NOT COMPILE]

	* src/*: Restructuring btp (in progress)
	
	* src/btp.c (find_new_parent): Added.  Made heuristic
	   for switching smarter.

	* configure.in (JM_MICRO_VERSION): Upped version to 6pre1

	* src/ggui_files.c (files_row_compare): Sort by type too.
	* src/ggui_files.c (ggui_files_add): Call sort after inserting
	* src/ggui_files.c (ggui_files_init): Don't autosort

	* src/*: Finished (?) restructuring/rewriting backend
	
	* src/ggui_files.c (on_files_drag_data_received): Show warning if
	   D&D to channels only channel.

	* README: Added URL for popt (though there should be a newer one)

Thu Apr 13 14:52:13 2000  David Helder  <dhelder@umich.edu>

        [DOES NOT COMPILE]
	
	* src/*: Restructuring/rewriting backend (in progress)
	
	* src/jmsearchserver.c (server_start): URL is just hostname
	    and port.

Thu Apr 13 13:21:59 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_files.c (ggui_files_init): Make column titles passive.
	* src/ggui_search.c (ggui_search_init): "
	* src/ggui_download.c (ggui_download_init): "

	* src/ggui_files.c (on_files_button_press): Don't call files_show.
	    channels_select will call it.

	* src/globals.h (DEBUGP): Surrounded by do-while(0)

	* src/ggui_channels.c (on_channels_button_press): Allow user
	   to remove channels that are unjoined.
	* src/ggui_channels.c (on_channels_remove_channel): Just remove
	   channel from list if non-local

	* src/ggui_channels.c (channels_add): Append channels, don't
	   insert them.
	* src/ggui_channels.c (ggui_channels_init): Don't autosort
	
Thu Apr 13 10:15:39 2000  David Helder  <dhelder@umich.edu>

	* src/ggui.c (on_faq_online): Disable if GTK
	* debian/*: Upped version.

Wed Apr 12 17:02:49 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_files.c (ggui_files_show): Reset selected_file.

	* src/backend.c (backend_get): Added
	* src/backend.c (backend_add): Added

Wed Apr 12 15:46:10 2000  David Helder  <dhelder@umich.edu>

	* src/glade/jm-gnome.glade: Added "JM Homepage" and
	   "FAQ Online" items.
	* src/ggui.c (on_jm_homepage): Added
	* src/ggui.c (on_faq_online): Added
	* src/ggui_menu.c (ggui_menu_init): Added

	* macros/autogen.sh: Fixed bug in Create aclocal.

	* src/btp_packet.h: Removed comma at end of enum.
	* doc/btp.txt: Removed (moved to private)

Tue Apr 11 22:27:48 2000  David Helder  <dhelder@umich.edu>

	* src/jmgnet.c (jmgnet_tcp_socket_set_tos): Check if IP_TOS is
	   defined.
	
	* src/backend.c (backend_activate_file): Set path up to
	   first channel, not up to root channel.

	* src/ggui_channels.c (ggui_channels_shutdown): Call sync
	   after setting vector.

	* src/ggui_files.c (on_files_drag_data_received): Updated
	* src/ggui_files.c (on_files_drag_motion): Updated

Tue Apr 11 21:17:10 2000  David Helder  <dhelder@umich.edu>

	* configure.in (JM_MICRO_VERSION): Upped to 0.1.5
	* src/*: s/ggui_tree/ggui_files

Tue Apr 11 20:49:51 2000  David Helder  <dhelder@umich.edu>

	* src/btp.c (BTP_PORT): Increment
	* src/jmsearch.h (SEARCH_SERVER_PORT): Increment

	* src/jmpio.c (jmpio_find): Added.  Not used.
	* src/jmpio.c (jmpio_read_name): Use jmfile_new

	* src/jmfile.c (jmfile_ref, jmfile_unref): Added

	* src/jmfile.c: Include sys/types.h.  This fixes a portability
	   issue for FreeBSD 4.0

	* src/ggui_channels.c (ggui_channels_add): Add condition that the
	   file's parent is NULL.  Now it will be shown if we open it.

	* src/backend.c (garbage_collect_recursive): Check dont_expire
	   field before garbage collecting.
	* src/jmfile.h (JMFile): Added dont_expire field
	* src/ggui_channels.c (ggui_channels_show): Don't expire channels
	   channel in the channel list.

	* src/ggui.c (main): Load bookmarked channels.
	* src/ggui_channels.c (ggui_channels_shutdown): Added.  Save
	   bookmarked files.
	* src/ggui_channels.c (on_channels_button_press): Add or remove
	   from bookmark list.
	* src/ggui_channels.c (on_channels_bookmark): Added
	* src/ggui_channels.c (ggui_channels_set_bookmark): Added

	* src/ggui.c (ggui_clist_update_row2): Fixed segfault when old
	   and new text are NULL.

	* src/ggui_channels.c (on_channels_unselect_row): Show NULL if
	    row unselected.

	* src/util.c (filesize_to_string): Fixed bad return_if_fail
	* src/util.c (filesize_fraction_to_string): Fixed bad return_if_fail

	* src/ggui_tree.c: s/ggui_tree/ggui_files.  Show list of files.
	* src/ggui_*: Fixed some bad callback declarations.  Not that it
	    mattered.
	
	* src/ggui_preferences.c (on_preferences_use_dns_toggled): Fixed.

Mon Apr 10 14:43:55 2000  David Helder  <dhelder@umich.edu>

        [UNTESTED]
	
	* src/ggui.c (main): Show the root channel.
	* src/ggui_tree.c (tree_add_recursive): Don't show the top
	    channel.

	* src/ggui_preferences.c (initialize_network_name): Try to use DNS
	    to get hostname.

	* src/jmfile.c (jmfile_new): Added.

	* src/btp.c (btp_receive_packet): Don't print 'weird switch'
	    warning.

	* src/ggui*: Cleaned up pixmaps, clist/ctree updates
	* src/ggui_download.c (ggui_download_update): Set icon.

	* src/jmfile.c (jmfile_get_bytes_received): Added
	* src/util.c (filesize_to_string): Added
	* src/util.c (filesize_fraction_to_string): Added
	
	* src/btp.c: Send tree name on connect, not URL.
	* src/btp.c (btp_receive_connect): Same.

Sun Apr  9 15:32:31 2000  David Helder  <dhelder@umich.edu>

	* src/jmsearchserver.c (find_matches): Increment num_results only
	   when we find something.

Sat Apr  8 23:39:25 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_preferences.c (apply_network): Try to init
	   the backend with the new config if it's uninitialized.

	* src/backend.c (backend_is_initialized): Added
	* src/backend.c: s/_start/_init, s/_stop/_shutdown/

	* src/ggui.c (ggui_disable_gui): Added
	* src/ggui.c (main): Call ggui_disable_gui is something fails.
	
	* src/ggui_menu.c (ggui_menu_disable_menubar): Added.

	* src/ggui_channels.c (ggui_channels_select): Added.
	* src/ggui_tree.c (on_tree_button_press): Call channels_select on
	    double-click.

	* src/ggui_channels.c (ggui_channels_init): Make channels_clist
	    sorted.

	* src/ggui_tree.c (ggui_tree_show): Expand the channel.  Or
	    maybe we don't even want to show it...

	* src/btp.c (btp_receive_pong): Take weighted average of pings.

	* src/ggui.c (on_jmw_destroy): Removed shutting down message.

Sat Apr  8 13:58:12 2000  David Helder  <dhelder@umich.edu>

	* src/backend.c (backend_activate): Split into _file, _channel,
	    and _dir.
	
	* src/backend.c (backend_add_channel_url): Was _join.  Now does
	    not join, just adds.

	* src/ggui_preferences: Restructured some of the network part.
	
	* src/btp.c (btp_is_initialized): Added.

	* src/jmsearchserver.c (readline_async_cb): Return length.
	    Don't send name.
	* src/jmsearch.c (jmsearch_readline_async_cb): Read length.
	* src/ggui_search.c: Show length, not URL.

	* src/jmsearchserver/jmlite: s/no-hostname/use-dns

Fri Apr  7 16:47:16 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_channels.[ch]: Added
	* src/ggui_tree.[ch]: Brought up-to-date

	* src/glade/jm-gnome.glade: Changed checkbox to "Use DNS".  It's
	    off by default.
	* src/ggui_preferences.c (initialize_network_autodetect): Always
	    try to autodetect hostname.
	* src/*.c (main): --no-hostname flag now --use-dns.  DNS
	    is off by default.

Thu Apr  6 19:33:42 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_*.c: Don't assert that a menu item is there.
	* src/glade/master_popup.glade: Add Properties to search
	    and download popups.
	
	* src/glade/properties.glade: Make GTK dialog invisible.

	* src/btp.c (btp_receive_packet): Remove sibling from sibling list
	   before deleting.

	* src/jmgnet.c (jmgnet_tcp_socket_set_tos): FreeBSD 4.0
	   portability fixes.

	* src/ggui_tree.c (ggui_tree_update): Show file length
	* src/glade/jm*.glade: Added file length field.

	* src/ggui_search.c (jmsearch_cb): Freeze the GUI while
	   adding search results (even though it looks cools :-))
	* src/ggui_search.c (ggui_search_freeze): Implemented.
	* src/ggui_download.c (ggui_download_freeze): Implemented.

	* src/btftp.[hc]: Added hint for when we receive new data.
	* src/backend.c (receiver_hint_cb): Added
	* src/jmfile.c (jmfile_get_percent_complete): Added
	* src/ggui_download.c (ggui_download_update): Show percent
	    complete

Wed Apr  5 17:23:33 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_menu.c (entry_dialog_new): Set the default to OK.
	    This needs more work.
	
	* src/ggui_preferences.c: Set the sensitivity of the containers
	    in the network part based on what button is toggled.

	* src/jmgnet.c (jm_gnet_inetaddr_get_internet_interface): Try
	    to find the first internet interface in the list, rather
	    than the first interface.  If that fails, just return the
	    first interface.

	* src/jmgnet.h: Added inetaddr_is_{internet, private, reserved,
	    loopback, multicast, broadcast}.  is_internet is what
	    is_internet_interface used to be.

Tue Apr  4 21:06:31 2000  David Helder  <dhelder@umich.edu>

	* *, debian*: Upped version to 0.1.4

	* src/btp.c (btp_tree_delete): Set tree->children and
	    tree->siblings to NULL after freeing.  This may have
	    been causing a seg fault.

	* src/btp_node.c (btp_node_new): Now takes hostname and port.
	* src/btp.c (btp_receive_children): Cleanups

Tue Apr  4 18:03:45 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_tree.c (on_tree_drag_data_received): 
	   s/data/sel_data (missed some)

Tue Apr  4 18:01:41 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_tree.c (on_tree_drag_data_received): 
	   s/data/sel_data

	* src/btp_packet.c (btp_packet_write_addresses): Fixed typo.  We
	   were just sending the same node over and over again.

	* src/btp.c: Touch ups, comments.
	* src/btp.c (btp_tree_join): Removed warnings about joining self.
	* src/btp.c (btp_receive_pong): Make sure distance is more
	   than 0.
	* src/btp.c (btp_receive_connect): Use btp_node_find_by_name.

Mon Apr  3 21:42:40 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_preferences: Continued hacking on.
	
	* mains: s/use-dotted-decimal/no-hostname option.  Print
	    better error messages.

Mon Apr  3 13:38:10 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_preferences: Added network configuration stuff.
	
	* src/jmgnet.h: Cleaned up get_internet_hostname/addr.  Now
	   returns an enum and does not print stuff.

	* src/*: Moved *glade* to src/glade

	* src/backend.c (backend_leave): Call gui_update on the file.

	* src/btp.c (btp_receive_packet): Cleanups.  Removed some warnings
	    for things that may happen frequently.

	* src/btp.c (btp_receive_children): Ignore siblings that are my
	    children (I may have received outdated information from my
	    parent)
	
	* src/btp_node.c (btp_node_delete): Remove from sibling and 
	    children list if necessary (we still warn though).  Also,
	    remove multiple times if in list multiple times.

Sun Apr  2 22:38:16 2000  David Helder  <dhelder@umich.edu>

	* src/util.c (parse_url): Fixed typo?

	* src/ggui_properties.c: Show number of downloads.
	* src/btftp.c (btftp_get_num_downloads): Added.

	* src/ggui_properties.[hc]: Added and hooked up
	* src/ggui_info.[hc]: Removed
	* src/ggui_tree.c (on_properties): Added
	* src/ggui_menu.c (ggui_menu_about): Added

	* src/ggui_tree.c (on_tree_button_press): Cleaned up separators.

	* src/ggui_tree.c (ggui_tree_update): Pixmap setting
	   moved here.
	* src/ggui.[hc]: Load gray pixmaps.

	* src/jmfile.c (jmfile_have_file): Added
	* src/jmfile.c (jmfile_on_channel): Added

	* src/backend.c (backend_add_channel): Cache entries
	    expire at UPDATE_TIME, not 3/4 UPDATE_TIME
	* src/backend.c (updates_add_files, updates_cb): Lower added
	    variance to UPDATE_TIME/16.

Sun Apr  2 16:37:17 2000  David Helder  <dhelder@umich.edu>

	* src/icons.h: Added some gray icons.  Not hooked up
	    yet.

Sun Apr  2 15:05:37 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_menu.c: Implemented CCFD.
	* src/ggui_tree.c (on_tree_button_press): Added ccfd_mi.

	* src/ggui_tree.c (on_tree_button_press): Added add_directory_mi.

	* src/btp.c (btp_receive_packet): Properly handle
	   ref/unref with packet_func.  (Though it shouldn't
	   have mattered.)

	* src/btp_packet.[ch] (btp_packet_read): Now returns
	   a failure value.
	* src/btp.c (btp_read_cb): Dump the connect if it 
	   sends us garbage.
	* src/btp.c (btp_read_cb): Don't fail the node if
	   btp_receive_packet returns NULL.

	* src/btp_packet.c (btp_packet_string_to_address): 
	   Don't allow zero-length server and ports.

	* src/btsmp.c (btsmp_cache_set_policy): Save the
	   cache timeout.

	* src/ggui.c: Fix: thaw and freeze were backwards.
	* src/ggui_tree.c: s/jmctree/tree_ctree

Sat Apr  1 17:50:07 2000  David Helder  <dhelder@umich.edu>

        [UNTESTED]
	
	* src/ggui_*, *.glade: Lots of GUI restructuring.
	   Much better modularized. 

Fri Mar 31 17:32:29 2000  David Helder  <dhelder@umich.edu>

	* src/jmsearchserver.c (server_start): Don't free the 
	   hostname.

Fri Mar 31 17:00:24 2000  David Helder  <dhelder@umich.edu>

	* src/jmintl.h: Moved I18N headers here
	* src/jmlite, jmsearchserver: Now use I18N
	
	* configure.in (JM_MICRO_VERSION): Upped version number to 0.1.4
	   (unreleased)

	* src/master_popup.glade: Added on_add_directory and
	   on_create_channel_from_directory.
	
	* src/btp_node.c (btp_node_delete): Warn if in nodes
	   list multiple times or are in the siblings list.
	* src/btp.c (btp_tree_delete): Delete children and
	   siblings lists.

	* src/btsmp.c (btsmp_hint_cb): Check the cache before
	   sending stuff.  We have stale stuff in the cache
	   that isn't getting tossed because nothing is being
	   added.

	* src/jmgnet.h: Added/changed:
	   jm_gnet_inetaddr_get_internet_interface
	   jm_gnet_inetaddr_get_internet_domainname
	   jm_gnet_inetaddr_is_internet_interface
	   jm_gnet_inetaddr_is_internet_domainname
	* src/PROGRAMS: Updated to use this.
	
	* src/btp.c (btp_init): Now return gboolean, not gint.
	   Takes hostname arg.  Assumes that hostname and
	   interface are set.
	* src/backend.c (backend_start): Returns FALSE on success,
	   TRUE on failure.  Now takes hostname argument.

	* src/btftp.h: Removed include of btp.h

	* src/*.glade: Move master_popup to master_popup.glade
	* src/Makefile.am (jm_DATA): Added master_popup.glade
	* src/ggui.c (get_jm_glade_xml): Now takes name of
	    glade file.

	* Makefile.am (WEBPATH): Changed to new website.

	* src/btp.c (btp_fail): Warn if "me" fails.
	* src/btp.c (btp_lost_connection): Warn if "me" fails.

	* src/btp.c (btp_write_cb): Removed MCAST_WRITE hint.
	* src/btsmp.h,btftp.h: Added notes about hints

	* src/btp.c (btp_read_cb): btp_fail a node that send's a BYE.

Wed Mar 29 11:35:22 2000  David Helder  <dhelder@umich.edu>

	* src/btp.c (btp_init): Return 0 on success.
	* src/backend.c (backend_start): Fail if BTP can't be initialized.
	
	* src/btp.c (btp_init): Use the canonical name if I can't
	   get the name from the IP address.

	* src/jmsearch.c (jmsearchstate_delete): Call g_list_free instead
	   of g_free on state->results.  jmsearch now owns result list.
	* src/ggui_jmsearch.c: Don't delete results - jmsearch now owns.

	* src/ggui.h: Fixed I18N include problem (again...)

Tue Mar 28 21:54:26 2000  David Helder  <dhelder@umich.edu>

	* FAQ: s/Gnutilla/Gnutella.  Added nerdherd homepage.

Tue Mar 28 21:31:06 2000  David Helder  <dhelder@umich.edu>

	* *: Release 0.1.3
	
	* src/*.c: Include config.h first so I18N works right.

Tue Mar 28 16:18:54 2000  David Helder  <dhelder@umich.edu>

	* src/btp.c (btp_tree_delete): Fixed delete while
	   iterating a list.
	* src/btp.c (btp_receive_packet): Same.  (Though this
	   shouldn't happen, it's a good habit.

	* src/btftp.c (btftp_delete): Use clear_and_unref.
	* src/btsmp.c (btsmp_delete): Use clear_and_unref.

Tue Mar 28 13:23:42 2000  David Helder  <dhelder@umich.edu>

	* *: Release 0.1.2
	
	* src/ggui_base.c (gui_activate): Fixed compile bug.
	
Tue Mar 28 12:51:17 2000  David Helder  <dhelder@umich.edu>

	* src/btsmp.c (btsmp_cache_check): Fixed bad conversion of
	   timeval to milliseconds.

	* src/jmpio.c: Pass read_name the action.  If the action
	   is remove, then don't create the file.

	* src/btp.c: Added ref counting.  We now add a ref
	   before making an upcall so that the tree does
	   not get accidentally deleted.

	* src/btp_node.c: Added asserts around g_source_remove
	* src/ggui_base.c: Added debug output.

	* src/backend.c (backend_remove_r): If we move a node to the top,
	    then add it to top_files.
	
	* src/btp_node.c (btp_node_delete): Remove node from tree->nodes.

Tue Mar 28 09:44:23 2000  David Helder  <dhelder@umich.edu>

	* src/Makefile.am (EXTRA_DIST): Added glade.h files.

Mon Mar 27 21:42:25 2000  David Helder  <dhelder@umich.edu>

	* src/btp.c: General clean-ups in error handling
	* src/btp.c (btp_tree_print): Added
	* src/btp_node.c (btp_node_print): Added

Mon Mar 27 17:36:33 2000  David Helder  <dhelder@umich.edu>

	* src/jmpio.c (jmpio_read_name): Fixed how we set channel.
	* src/backend.c: Fixed how we set channel.  A channel's
	   channel is itself.

	* src/ggui_menu.c (on_get_file): Fixed typo bug.

	* debian/control (Description): Added note to use jm-gnome if you
	    have Gnome.
	
	* src/ggui_base.c: Converted asserts to return_if_fails
	
	* src/backend.c (updates_*_file): Fixed logic for determining
	    who parent channel is.

Mon Mar 27 12:48:10 2000  David Helder  <dhelder@umich.edu>

        * auto*, *: First pass at I18N.
	
	* src/jmsearch.c (jmsearch_readline_async_cb): Removed warning.

	* src/ggui.c (on_list_button_press): Don't show "Join Channel"
	   if you're connecting to the channel.

	* src/ggui_preferences.c (on_preferences): Show the widget
	   manually after changing stuff.  Set the parent.
	* src/jm-gnome.glade: Make the pref. widget invisible.  Set
	   the title to "Jungle Monkey".

Mon Mar 27 12:03:14 2000  David Helder  <dhelder@umich.edu>

	* src/btp.c (btp_send_packet): Bug fix.  Add MCAST packet
	    size to packets_out_size.

	* src/btp.[ch], btsmp.c, btftp.c: Added passive flag (was
	    'send_only').  Make appropriate updates.

	* src/ggui_menu.c (on_remove_channel): Fixed typo bug
	* src/ggui_menu.c (on_remove_file): Fixed typo bug

Sun Mar 26 18:36:45 2000  David Helder  <dhelder@umich.edu>
	
	* src/btp*: Newly connected/accepted nodes now timeout.
	
	* src/ggui*.c: Added gui_show_message.  The GUI now
	    uses this instead of g_warnings.
	
	* src/ggui.c (main): Fixed tooltips.  Use gnome_config
	    to set jm_home.
	* src/ggui_preferences.c: Set wmclass.  Save home using 
	    gnome_config.

Sun Mar 26 17:48:10 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_dnd.c (on_tree_drag_data_received): Pass
	   selected_file to backend_add_files

Sun Mar 26 17:39:33 2000  David Helder  <dhelder@umich.edu>

	* src/ggui_preferences.c: Surround by if JM_ENABLE_GNOME

Sun Mar 26 17:37:43 2000  David Helder  <dhelder@umich.edu>

	* configure.in: AC_INIT on backend.c

Sun Mar 26 17:28:28 2000  David Helder  <dhelder@umich.edu>

	* src/*: Renaming.  Some was done manually in the repo.

Sun Mar 26 13:44:32 2000  David Helder  <dhelder@umich.edu>

	* src/gui.c, jm-gnome.glade: First cut at preferences dialog for Gnome.
	
        * src/*: Broke gui.c into many smaller files.
	
	* src/{gui, backend}.c: 
	   - Moved gui/add_files to backend/backend_add_files.
	   - Added gui_activate, which backend_activate calls if
	       we have the file.

	* src/gui.c: Use GnomeDialog for entries.

Sat Mar 25 15:36:35 2000  David Helder  <dhelder@umich.edu>

	* src/jmgnet.c (jm_gnet_inetaddr_sanity_check_interface): Added
	   test for 10.

Thu Mar 23 23:27:02 2000  David Helder  <dhelder@umich.edu>

	* src/jmsearch.c (jmsearch_readline_async_cb): Newline
	   means done.  Use MATCH and SEARCH, not match and search.

	* src/jmsearchserver.c (readline_async_cb): Don't delete the
	   query.
	* src/jmsearchserver.c (server_accept_cb): Use client_iochannel,
	   not iochannel.

	* src/jmgnet.c: Fixed bad g_return_if_fail's.  Fixed 
	   bad casts.

	* src/jmp.c (jmp_read_attribute): Terminate attribute
	   value with \0.  Handle \\.
	* src/jmp.c (jmp_write_attribute): Escape \'s.

	* src/jmpio.c (jmpio_read_name): Only check for type change on
	   last file.

	* src/backend.c (channel_packet_cb): Return TRUE if
	   there is an error.
	* src/btsmp.c: Packet func now returns TRUE if there
	   was an error.  If this happens, don't forward or
	   cache the packet.

	* src/util.[hc]: Added strcasestr
	* src/jmsearchserver.c: Use strcasestr instead of
	   strstr.

Thu Mar 23 17:55:21 2000  David Helder  <dhelder@umich.edu>

        [UNTESTED]
	
	* src/jmgnet.[hc]: Added async read.  Merged read and
	    readline code.
	
	* src/jmsearch, jmsearchserver: Now uses jmgnet and
	    jmp.  General cleanups.  Fixed bad hostname in
	    jmsearchserver.
	
Thu Mar 23 00:06:51 2000  David Helder  <dhelder@umich.edu>

	* src/jmgnet.[hc]: Added async write and readline.  Readline is
	   in complete.

	* src/*: Continued debugging of new IO stuff.  Mostly works.
	* src/jmfile.[hc]: Moved backend jmfile_* stuff here.

Wed Mar 22 17:21:11 2000  David Helder  <dhelder@umich.edu>
	
	[BROKEN]
	
	* configure.in: Removed dependence on XML (though libglade
	   still needs it).
	* src/jmp.[ch], jmpio.[hc]: Added.  This will replace XML.

Tue Mar 21 20:42:10 2000  David Helder  <dhelder@umich.edu>

	* src/gui.c: Load all XML and widgets in main.

	* src/gui.c (on_list_button_press): Show "Create Channel"
	   if channel is local.

	* src/backend.c (backend_remove_r): Debugged.

Tue Mar 21 18:34:11 2000  David Helder  <dhelder@umich.edu>

	* src/gui.c: Checks btsmp_is_up before showing
	    "Create Channel"
	* src/btsmp.c (btsmp_is_up): Added

	* src/gui.c: Join Channel now split into Open Channel and
	    Join Channel
	* src/*.glade: Added "open_channel_mi"

	* src/gui.h (gui_move): Added
	* src/{gui, jmlite, jmsearchserver}.c: Implemented gui_move
	* src/backend.c (backend_remove_r): Recursion stops
	    at channels we move.  Now calls gui_move.

Tue Mar 21 11:30:51 2000  David Helder  <dhelder@umich.edu>

	* Makefile.am (deb-gnome): Fixed deb-gnome rule.

Tue Mar 21 11:15:33 2000  David Helder  <dhelder@umich.edu>

	* src/backend.h (JM_DEFAULT_CHANNEL): Fixed name

	* src/backend.c (receiver_error_cb): Only print warning if
	   transfering.  

	* FAQ: Fixups
	* debian*: Updated changelog

Mon Mar 20 20:41:09 2000  David Helder  <dhelder@umich.edu>

	* FAQ: Cleaned up FAQ (TODO: Add Xbone, Freenet)

	* src/btp.c (btp_receive_packet): Handle CONNECT and CONNECT_OK
	   when received in normal state.
	* src/btp.c (btp_read_cb): Fixed typo.  Read watches
	    were lost.
	* src/btp.c (btp_receive_connect_*): Renumber packet already in 
	    queue once we know our ID.
	* src/btp.c (btp_write_cb): Don't send more packets after a
	   CONNECT is sent.
	
	* src/btp_node.c (btp_node_reset_connection): Remove all packets
	    from queue when reset.

	* src/btsmp.c: Added unicast callback.

	* src/jmsearchserver.c (find_matches): Ignore NULL
	   or empty search queries.
	
Mon Mar 20 17:15:19 2000  David Helder  <dhelder@umich.edu>

	* src/btp*: Connections is mostly debugged.  Still need
	   to do some more testing.

	* src/backend.c: Send the XML with the \0.  This saves having to
	   copy the buffer (though it wastes a byte...).
	
	* src/{backend, util}.[hc]: Moved make_url from backend to util.

	* src/gui.c (on_list_button_press): Don't show "Create channel"
	   when do channel is selected.

	* src/backend.c (garbage_collect_cb): Fixed bug.
	   Somethings weren't garbage collected and a
	   seg fault was possible.  Also removed the
	   while (list) delete (list->data) constructs.

	* src/{jmlite, jmsearchserver}.c: Added --interface
	   option and a call to get_interface.

Mon Mar 20 08:47:25 2000  David Helder  <dhelder@umich.edu>

        [ BROKEN ]
	
	* src/*: Continued reworking BTP connections.

Sun Mar 19 17:24:11 2000  David Helder  <dhelder@umich.edu>

	[ BROKEN ]

	* src/*: Reworking BTP connections.  Many other BTP cleanups too.
	
	* src/btp.c (btp_receive_packet): Don't reply to pings
	   that send a lot of data.

	* src/btp_packet.c: 
	   Added btp_packet_read_string[s] (2 functions)
	   Added btp_packet_write_strings
	   Added btp_packet_string_to_pair
	   Read/write addresses now use these.

Sun Mar 19 12:19:51 2000  David Helder  <dhelder@umich.edu>

	* src/btp.[hc]:
	  - Removed 'send_only' stuff

Sat Mar 18 23:42:02 2000  David Helder  <dhelder@umich.edu>

	* src/btsmp.[hc]: Added caches
	* src/btp.[hc]: Added BTPHINT_NODE_JOIN hint 
	* src/backend.c: Set cache size to 0 when joining a 
	    channel.  Clear the cache before sending updates.

	* src/backend.[hc]: Removed slow channels
	* src/{gui, jmlite}.c: Updated accordingly
	
	* src/jmgnet.[hc] (jm_gnet_inetaddr_get_inet_interface): 
	   Added.  This now does interface sanity checks and will
	   use the gnet_private_inetaddr_list_interfaces function.
	* src/{gui, jmlite}.c: Updated to use this function

Sat Mar 18 18:05:15 2000  David Helder  <dhelder@umich.edu>

	* src/backend.c (build_update): Removed debug stuff

Sat Mar 18 17:14:00 2000  David Helder  <dhelder@umich.edu>

	* src/btp.c: Split btp_connect_root into btp_tree_create and
	    btp_tree_join.  Some other renaming too.
	* src/btsmp.c,btftp.c: Updated accordingly

	* README: Added a QuickStart section
	
	* src/jm[-gnome].glade: Added "Create root channel" menu item.
	   Removed join channel
	* src/gui.c (on_list_button_press): Display "Create root channel"
	   always.
	* src/gui.c: Added on_create_root_channel and associated functions.
	
	
	* src/backend.c (channel_packet_cb): Copy the buffer into another
	   buffer terminated with \0.  This worksaround a libxml 1.8.7
	   issue.

	* configure.in (PACKAGE): Check the version of libxml.  Print an
	   error if it is too old.

Fri Mar 17 22:39:29 2000  David Helder  <dhelder@umich.edu>

	* src/btp.c (btp_connect_root): Add a G_IO_IN watch for our
	   incoming socket only.  These seems to fix the 100% problem, but
	   I don't know why - I should investigate this further.

	* src/btp.c (btp_connect_root): If I'm connecting to myself,
	   set did_use_btp_port.  This works around some problems.
	   See BUGS and the code for more info.
	
	* src/btp.c (btp_connect_root): Set interface when creating
	   incoming port with port = 0.
	
	* src/jmgnet.c (jmgnet_tcp_socket_set_tos): Do nothing if
	   IPTOS_LOWDELAY is not defined (eg, on OpenBSD).

Fri Mar 17 09:47:05 2000  David Helder  <dhelder@umich.edu>

	* src/btp.c (btp_connect_cb): Moved DEBUGP.

	* src/gui.c (main): Added network configuration sanity checks.
	
	* configure.in (JM_MICRO_VERSION): Set version to 0.1.1
	   (unreleased).  Look for GTK before GNet.
	
Thu Mar 16 21:07:37 2000  David Helder  <dhelder@umich.edu>

	* src/globals.h: Added GInetAddr interface
	* src/gui.c, src/jmlite.c: Set interface via --interface
	* src/btp.c: Use interface if set for my address and
	    the server address
	* src/jmgnet.c (jm_gnet_tcp_socket_server_new): Added.

	* src/btp.c: Don't use BTP_PORT more than once.  This works around
	    problems in some Linux kernels.
	
Thu Mar 16 19:03:17 2000  David Helder  <dhelder@umich.edu>

	* src/backend.c (channel_packet_cb): Added more verbose warning output.
	* src/btp.c (btp_receive_packet): Added more verbose warning output.

Wed Mar 15 17:27:30 2000  David Helder  <dhelder@umich.edu>

	* auto*: Release 0.1.0

	* src/backend.c (backend_join): Removed note about mofo being the
	    default root.

Wed Mar 15 13:50:24 2000  David Helder  <dhelder@umich.edu>

	* jm[-gnome].spec.in (Requires): Require GNet 1.0.1

Tue Mar 14 22:16:30 2000  David Helder  <dhelder@umich.edu>

	* src/jmforever: Fixed 'channels-only' typo.

Tue Mar 14 20:02:03 2000  David Helder  <dhelder@umich.edu>
	
	* src/backend.c (backend_leave): Remove all children and leave the
	    BTSMP.  Before we also deleted the channel.  
	
	* src/backend.c (parse_node): If you receive an announcement for a
	    file you already have and it's off a different type, ignore
	    it.

	* src/backend.c (parse_node, parse_slow_url): If the URL changed
	    and the file is marked DOWN, change the status to NONE.
	
	* src/backend.c (backend_cancel): Fixed incorrectly written
	    g_return_if_fail's.
	
	* src/gui.c (on_jmw_destroy): Set shutting_down when shutting
            down.
	
	* src/gui.c (gui_update): Downloading files have status
	    of 'Downloading' (whether they are actually downloading
	    or not).
	
	* src/backend.h (JM_DEFAULT_CHANNEL): Default is now misc
	
	* src/backend.c (switch_to_slow_channel_cb, parse_slow_url): After
	    joining the slow channel, send an update immediately.

	* src/jmsearchserver.c (print_time_cb): Now prints time
	    every 5 minutes.  Also print search strings.

	* src/Makefile.am: Remove btpclimber.
	   
	* README: Added info on Gnome support

Tue Mar 14 16:46:26 2000  David Helder  <dhelder@umich.edu>

	* Makefile.am: Fixed package building rules
	* jm-gnome.spec.in: Added.

Tue Mar 14 11:26:14 2000  David Helder  <dhelder@umich.edu>

	* debian, etc: Release 0.0.19
	* src/*: Changed copyright to "The Regents of the University of
	   Michigan"
	* jm.spec.in, AUTHORS: Added Xavier Nicolovici's jm.spec.in

Sun Mar 12 18:37:42 2000  David Helder  <dhelder@umich.edu>

	* pixmaps/*: Added.  Added pixmap to configure.in
	* jm.desktop:  Added.  Added to Makefile.in, configure.in

Sat Mar 11 14:01:49 2000  David Helder  <dhelder@umich.edu>

	* debian.gnome: Added debian files for Gnome build
	
	* src/*: Added g_assert's around g_source_remove's.  
	
	* src/gui.c (main): Fixed command line options for
	   Gnome.

Fri Mar 10 16:36:15 2000  David Helder  <dhelder@umich.edu>

	* FAQ: Added note about autogen.sh
	
	* jm-gnome.glade: Made jmw a Gnome App.
	* gui.c: Added on_about.  Displays about window when
	    Gnome is enabled.

Thu Mar  9 17:32:12 2000  David Helder  <dhelder@umich.edu>

	* src/gui.c: Added real basic Gnome support.
	* src/jm-gnome.glade: Added.
	* src/Makefile.am: Installs glade file determined by configure.
	
	* Makefile.am: Delete debian-temp after building debs.
	* configure.in: Gnome rule fixes.

Thu Mar  9 11:48:27 2000  David Helder  <dhelder@umich.edu>

	* auto*: Moved to Gnome autogen system.

Wed Mar  8 17:05:59 2000  David Helder  <dhelder@umich.edu>

	* src/btpclimber.c (main): Fixed btp_connect_root args.

Wed Mar  8 09:07:13 2000  David Helder  <dhelder@umich.edu>
	
	* configure.in: Set version 0.0.19 (unreleased)
	
	* FAQ: Added info on bandwidth use.  Clean-ups.

	* src/btp.[hc]: Added 'tree type'.  If tree type is bulk, then
	    set low cost TOS bits on outgoing packets.  This is passed
	    to btp_connect_root.
	* src/jmgnet.[hc]: Added. Has jmgnet_tcp_socket_set_tos function.

Tue Mar  7 09:59:05 2000  David Helder  <dhelder@umich.edu>

	* src/backend.c (build_add_file): Set the slow channel timer.
	* src/backend.c: EXPIRE_TIME is now GARBAGE_COLLECT_TIME * 4
	* src/backend.c (SWITCH_TO_SLOW_CHANNEL_TIME): Switch to slow
	    channel now 2X update time (was 4X).
	
	* src/btp.c (btp_connect_root): Strdup the hostname (somehow I
	    deleted this in the cleanups on Monday.  It occasionally
	    caused a seg fault).

	* jm.glade: "Server" -> "Search Server"
	
Mon Mar  6 10:48:56 2000  David Helder  <dhelder@umich.edu>

	* src/btpclimber.c: Removed debug stuff.  Build a tree, then
	    dump the tree with nice indentation when done.
	
	* src/btp.c (btp_connect_root): Set my hostname and port (to be
	    consistent).  
	
	* src/jmsearch.c (jmsearch_read_cb): Removed g_print("EOF")

Sun Mar  5 13:37:52 2000  David Helder  <dhelder@umich.edu>
	
	* configure.in: Now requires GNet 1.0.1.  Release 0.0.18.

	* src/backend.c (receiver_file_cb): Save the length of the file -
	    it may have changed (or we may never have known it).
	
	* src/util.c (parse_url): Skip whitespace at beginning of URL.

	* src/backend.c (backend_activate): Remove assumptions that
	    a file has a parent.

	* src/gui.c (jmsearch_cb): If no matches, print search string
	    in error message.
	* src/gui.c (gui_update): Set the row data for the things in the
	    download list.
	
	* FAQ: Added info on searching, URLs.
	
Sat Mar  4 16:00:11 2000  David Helder  <dhelder@umich.edu>

	* src/gui.c: Hooked up download and search stuff.  Did some
	    cleanups.  Still debugging...

	* src/jm.glade: Added download page.  Redid search server
	    selection part (now uses table).
	
	* src/gui.h: Cleaned up.  Added struct _GuiData.
	* src/backend.h: Now have pointer to _GuiData.
	
	* src/jmsearch.c (jmsearch_connect_cb): Assert state is not NULL.
	
Wed Mar  1 16:58:41 2000  David Helder  <dhelder@umich.edu>

	* src/backend.c (backend_add_foreign_file): Added 'foriegners' for
	    handling files add by searches and the GUI.  There's probably
	    a better way of doing this.
	* src/backend.c (backend_stop): Delete searches and foreigners.

	* src/backend.c (backend_start): Initialize RNG in backend_start.
	* src/btpclimber.c: Initialize RNG in main.

	* src/backend.c (backend_add_search): Servers now have names.
	* src/jmsearchserver.c: Added --name option
	
	* src/gui.c, jm.glade: Use option menu instead of combo for
	    servers.  Print list of search results in clist.  (Still not
	    hooked up completely.)
	
	* src/Makefile.am (bin_PROGRAMS): jmsearchserver is now always
	    compiled.
	* doc/Makefile.am (man_MANS): Build jmsearchserver.1 manpage

Wed Mar  1 13:39:18 2000  David Helder  <dhelder@umich.edu>

        [BROKEN]
	
	* src/*: Continued hacking on searches.  Added some more debug
	   output trying to track down 100% CPU bug.

	* src/gui.c (main): Fixed bug where JMHOME would not be created
	   correction the first time JM was run.

Tue Feb 29 15:24:54 2000  David Helder  <dhelder@umich.edu>

        [BROKEN]
	
	* src/backend.c (channel_error_cb): Remove g_warning of channel
	   down.

	* src/jm.glade: Added notebook with a search tab
	* src/{gui, backend}.c: Added JMFILE_SEARCH type for search
	    servers.  Added backed_add_search.  Made appropriate updates.
	* src/jmsearchserver.c, jmsearchclient.c: Added
	* src/jmsearch.[ch]: Added
	
Tue Feb 29 12:00:20 2000  David Helder  <dhelder@umich.edu>

	* src/backend.c (backend_activate): Ignore join channel if on
	    slow channel.
	* src/gui.c (on_join_channel): Don't join channel if already on
	    slow channel.

Mon Feb 28 15:33:51 2000  David Helder  <dhelder@umich.edu>

	* auto*: Release version 0.0.17
	
	* src/backend.c: Bug fix: Set jm_home to NULL, not "". 
	
	* src/backend.c (backend_cancel): Added.
	* src/gui.c: Hooked up "Cancel Download"

	* src/backend.c: Don't set port - let BTP do it.
	* src/{btftp,btsmp}.c (btftp_join, btsmp_join): Don't 
	    set port if not given - let BTP do it.
	* src/btp.c (btp_read_cb): Set BtpNode::port
	* configure.in: Require GNet 1.0.0

Fri Feb 25 16:25:56 2000  David Helder  <dhelder@umich.edu>

	* src/btp_packet.c (btp_packet_write_addresses): Use hostnames,
	    not inetaddrs.

	* src/btp.h: Added BTPNODE_CHILDINFO hint
	* src/btp.c (btp_receive_children): Hint the upper layer when
	    we get children.
	
	* src/util.c (parse_url): Allow arguments passed to be NULL.

	* src/btp.c (btp_connect_root): If the port is 0, use 5656.
	    Define BTP_PORT to 5656.

	* src/globals.h, etc: Remove prob_drop.  Moved jm_home to backend.

	* src/btp.h: Add packet_func and packet_user_data to BtpTree
	    struct.  Cleaned up notes on callbacks.  (It turns out I don't
	    need this, but I'm going to leave it here anyway.)
	* src/btp.c (btp_receive_packet): Pass packet to upper layer if
	    there is a packet_func
	
	* src/btp_packet.c (btp_packet_read): Removed some comments
	
	* src/gui.c (on_tree_button_press): Don't show the "Leave Channel"
	    option if you right click on a file or directory.
	* src/gui.c (update_jmtext): Display slow URL too
	* src/jmlite.c: Print slow URL too
	* src/backend.c (backend_activate): Create the directory if
	    someone downloads a file I already have.  This should finally
	    fix Andy's obscure bug.

Wed Feb 23 16:14:37 2000  David Helder  <dhelder@umich.edu>

	* src/btp.c (btp_accept_cb): Use
	  gnet_tcp_socket_server_accept_nonblock.
	* src/btp.c (btp_accept_cb): Update for latest GNet 

	* src/gui.c: Don't use ctree_fix
	* src/gtkctree-fix.c, Makefile.am: Removed

Tue Feb 15 20:50:12 2000  David A Helder  <dhelder@umich.edu>

	* NEWS: Fixed typo
	* debian/changlog: Release 0.0.16-2 with README fix

Tue Feb 15 20:39:45 2000  David A Helder  <dhelder@umich.edu>

	* README: Fixed
	* NEWS, debian/changelog: Release 0.0.16
	* TODO: Updates and clean-ups
	
	* src/jmforever: Fixed command line
	* src/backend.c: Restored old value of switch time
	* src/btp.c (btp_connect_cb): Removed warning about
	   connection loss.
	* src/btp_node.c (btp_node_reset_outgoing): Call
	   gnet_tcp_socket_new_async_cancel, not connect_async_cancel.
	   (Need to fix in GNet!)

Tue Feb 15 11:21:52 2000  David A Helder  <dhelder@umich.edu>

	* src/btp.c: If we call btp_node_delete_all, make sure we
	    don't try to receive more packets.
	
	* src/btp_node.c (btp_node_new): Set hostname/port when creating
	* src/btp_node.c (btp_node_find_by_name): Added
	* src/btp_node.c (btp_node_equal): Added
	
	* src/jmforever: Added to repository.  This runs the root channel
	    forever (so if there's a crash, it will restart).

	* src/btp.c (btp_receive_children): No longer blocks (though
	    this shouldn't have been a problem).
	* src/btp_packet.c (btp_packet_read_addresses): Now uses
	    HostnamePortPairs.
	* src/btp_node.c (btp_node_find): Now uses hostname/ports
	

Mon Feb 14 17:25:08 2000  David A Helder  <dhelder@umich.edu>

	* src/btp.c (btp_connect_root): Remove parent stuff.  Hostname
	    and port passed instead of inetaddr to make async stuff 
	    easier (upper-levels can now assume BTP is async).
	* src/{btsmp,btftp}.c: No longer lookup Inetaddr.  Now use new
	    btp_connect_root.
	* src/btp.c: Inetaddr lookup is now asynchronous which basically
	    means there's an additional step in connecting to something.
	    Added btp_lookup_cb.  Updated btp_
	* src/btp.c (btp_connect_cb): Now check return value of 
	    gnet_tcp_socket_new_async.

Fri Feb 11 10:22:17 2000  David A Helder  <dhelder@umich.edu>
	
	* src/btp.c (btp_lost_connection): Be more aggressive about
	   declaring a node down.
	* src/btp.c (btp_receive_packet): Close connections to old parent
	   and old siblings when we switch.
	
	* src/btp_node.h: Added 'is_bad_parent' field.  Set when a 
	   switch fails.
	* src/btp.c: Use and set bad parent field.

	* src/btp.c (tree::switch_timeout, switch_timeout_cb): Added.
	   If we timeout on a switch, then try again.
	
	* src/gui.c (update_jmtext): Show whether JMFile is mine or
	   note.  Use strdup_printf instead of strconcat (more readable,
	   will make I18N easier).
	
	* src/btp_packet.c (btp_packet_new): Set sender_port even
	   if a send-only tree.
	* src/btp.c (btp_accept_cb): Don't assert that I am not
	   send only.
	* src/btp.c (btp_connect, reconnect_cb): Don't connect if
	   the port is 0.

	* configure.in: Now require GNet 0.1.9
	* src/btp.c,btp_node.c: Update to GNet 0.1.9

Thu Feb 10 16:43:45 2000  David A Helder  <dhelder@umich.edu>

	* src/btp.c (btp_write_cb): Fixed potential seg fault where we 
	    reset the write watch after deleting the node.
        * src/btp.c: Separated btp_connect into btp_connect and
	    btp_reconnect
	* src/btp_node.c: Added btp_node_reset_outgoing() and
	    btp_node_reset_incoming()
	* src/btp.c (btp_connect_root): If send_only, create an
	    incoming channel anyway - I do need to receive pings/pongs.
	
	* src/gui.c: Got rid of root_channel global.
	
	* src/btp.c (btp_receive_packet): Print warnings if things
	    happen and I'm send only.
	* src/*: Misc. debugging touches.
	
	* src/{jm, jmlite}.c: Cleaned up output so that help2man would
	    like it more.
	* src/Makefile.am: Added.  Added rule to generate man pages using
	    help to man.
	* debian/rules: Removed addition of undocumented man pages for
	    undocumented man pages.
	
Fri Feb  4 17:16:47 2000  David A Helder  <dhelder@umich.edu>

	* src/backend.c (garbage_collect_cb): Fixed typo which
	   probably caused a seg fault.
	* debian/{rules, changelog}: Added jmlite as undocumented program.

Thu Feb  3 10:43:33 2000  David A Helder  <dhelder@umich.edu>

        * AUTO*: Released version 0.0.15
	
	* src/backend.c: 
	   - Convert jm->btsmp in addresses before joining
	      (fixes "Can't join slow bandwidth channel" warning).
	   - Changed some asserts to return_if_fail's
	   - When joining fast channel as send only, check to see
	       if you succeeded.  If not, remove the update timer.
           - Added backend_leave for leaving channels
	
	* src/gui.c:
	   - '--root-name' now called '--create-root-channel'
	   - Destroy widget when closing (so the user doesn't
	       press anything
	   - Call backend_leave when leaving channels, not 
	       backend_remove.
	
	* src/jmlite.c: Added 

Wed Feb  2 13:36:09 2000  David A Helder  <dhelder@umich.edu>

	* src/Makefile.am (jmftp-test): Fixed jmftp stuff.

Wed Feb  2 13:26:36 2000  David A Helder  <dhelder@umich.edu>

	* configure.in (PACKAGE): Require GNet 0.1.8

Wed Feb  2 13:05:51 2000  David A Helder  <dhelder@umich.edu>

	* AUTO*: Released version 0.0.14
	* README: Added info about mailing lists

	* src/btp.c,btp_node.c: Don't close the IOChannel (GNet will close
	    it when we delete the socket.)
	
Tue Feb  1 21:27:49 2000  David A Helder  <dhelder@umich.edu>

	* src/backend.c (make_url): Don't put a slash before the file - it
	    should have one already.

Tue Feb  1 21:10:13 2000  David A Helder  <dhelder@umich.edu>

	* src/gui.c (on_remove_channel): Check if file is local first
	    (this fixes Andy's #3 bug).

Tue Feb  1 20:50:59 2000  David A Helder  <dhelder@umich.edu>

	* src/btp.c (btp_reschedule_send_ping): Reset the number of
	    consecutive missed pongs on receiving a pong.
	* src/btp.c (btp_schedule_send_ping): Cancel the receive pong
	    timer if it has been set.

Tue Feb  1 17:04:11 2000  David A Helder  <dhelder@umich.edu>

	* src/backend.c (backend_add_channel): Make file's URL's protocol
	    be "jm", not "btsmp".
	* src/gui.c (main): Fixed bug with command line parsing.
	* src/btp.c: Added some assertions
	
Tue Feb  1 09:33:00 2000  David A Helder  <dhelder@umich.edu>

	* src/gui.c (entry_dialog_new): Put entry dialog above mouse.
	
	* src/backend.c: Allow adding files without a parent channel.
	
	* src/: Rename jmftp->btftp, jmsmp->btsmp

Mon Jan 31 20:23:57 2000  David A Helder  <dhelder@umich.edu>

	* configure.in: Require popt
	* src/gui.c (main): Use popt.  Eliminated usage().

	* Makefile.am (copyweb): Added rules for setting up
	   debian server.

Mon Jan 31 13:47:47 2000  David A Helder  <dhelder@umich.edu>
	
	* AUTO*: Released version 0.0.13
	* src/btp.c (btp_connect_root): Use port 5656 only if
	    I'm root.
	* src/backend.c (channel_error_cb): Don't delete the file, 
	    just change the state.
	* src/backend.c (sender_error_cb): On sender_error_cb,
	    just warn - don't delete the file.
	* src/btp.[ch], btp_node.[ch]: Added btp_node.[ch].
	    Lots of restructuring.  Now use pings to determine
	    if a node failed.
	* FAQ, TODO: Updates
	
Sun Jan 30 18:02:41 2000  David A Helder  <dhelder@umich.edu>

	* src/btp.c: Added btp_send_WHATEVER functions.

Sat Jan 29 18:53:15 2000  David A Helder  <dhelder@umich.edu>

	* src/gui.c: Fixed some warning output (conditions were
	    wrong).
	* src/gui.c (on_tree_select_row): Update only if selected
	    file changed.

Sat Jan 29 14:10:04 2000  David A Helder  <dhelder@umich.edu>

	* src/backend.c (garbage_collect_cb, garbage_collect_recursive):
	    Added.
	* src/backend.c (backend_{start, stop}: Start and stop 
	    garbage collection.
	
	* src/backend.c (backend_activate): If we downloaded the 
	    file and it got deleted, then save the file again.

	* src/jmftp.[ch]: Added jmftp_set_buffer
	* src/backend.c (receiver_file_cb): Memmap the file
	    after saving it and use that.
	
	* src/util.c: 
	   - Added is_okfilename, is_goodfilename.  
	   - is_goodfilename skips leading blanks
	   - is_goodpathname/is_okpathname now same function,
	       is_blankpathname
	* src/backend.c (backend_activate, receiver_file_cb):
	   Create the path in backend_activate.
	* src/backend.c (parse_node, etc):
	   Make sure names are okfilenames.  If not, then don't
	   create them.
	
	* src/gui.c (on_jmw_destroy): Quit immediately if 
	    backend_stop returns TRUE.
	* src/backend.[ch] (backend_stop[_r]): Return TRUE if we can quit
	    immediately.  This is the case if we don't have any local
	    files on the channel.  Right now we still always return FALSE
	    - we still need to make sure that BTP is shutdown.
	
	* configure.in (JM_MICRO_VERSION): Upped to 0.0.13
	
	* src/gui.c (create_channel_ok): Check if channel of
	    selected file has a JMSMP.
	* src/gui.c (on_tree_button_press): Don't "create channel"
	    menu item if the selected file is a channel you are
	    not on.
	
Wed Jan 26 10:06:42 2000  David A Helder  <dhelder@umich.edu>

	* configure.in, NEWS, debian/changelog: Upped version
	    to 0.0.12.

Tue Jan 25 17:39:32 2000  David A Helder  <dhelder@umich.edu>

	* src/gui.c: File selector is shown only once when
	    adding a file.
	* src/backend.c (switch_to_slow_channel_cb): Remove
	    the update timer when switching.
	* configure.in: Require GNet 0.1.7 and GTK 1.2.6

Tue Jan 25 12:30:11 2000  David A Helder  <dhelder@umich.edu>

	* src/btp.c: Unref the iochannel after closing it.

Mon Jan 24 11:20:00 2000  David A Helder  <dhelder@umich.edu>

	* configure.in, NEWS, debian/changelog: Upped version
	    to 0.0.11.  The bug is serious enough to warrant
	    a new release.
	
	* BUGS: Noted the bug was fixed
	* src/gtkctree-fix.c: Added.  Fix for ctree seg fault
	    bug.
	* src/Makefile.am: Added gtkctree-fix.c
	* src/gui.c: Now uses fix.
	
Sun Jan 23 18:31:40 2000  David A Helder  <dhelder@umich.edu>

	* Makefile.am (copyweb): Cleaned up rule.
	* src/util.c (file_exists): Added
	* src/gui.c (get_jm_glade_xml): Added.  Call to get
	    GladeXML object.  Looks in appropriate directories.
	* src/backend.c: Put 'normal' values for UPDATE_TIME,
	  SLOW_UPDATE_TIME, SWITCH_TO_SLOW_CHANNEL_TIME

Sun Jan 23 15:28:57 2000  David A Helder  <dhelder@umich.edu>

	* src/btp.c (btp_delete): Delete all nodes before deleting
	  tree.  Also, delete 'me' last.  This could have caused
	  a seg fault since btp_packet_send needed 'me' to send
	  a packet and 'me' was getting deleted then accessed.
	* src/btp_packet.c (btp_packet_new): Added assertion that
	  address dereference is not NULL.
	
	* src/backend.c (parse_slow_url): Added.  If the URL is
	  new and we are on this channel, join the slow URL.  This
	  helps ensure that people on the slow channel get our
	  updates.
	* src/backend.c (parse_node): Call parse_slow_url.
	
	* src/backend.c (build_add_file, build_remove_file): If
	  a non-root channel, also send add/remove on parent
	  channel.
	* src/globals.h: Provide non-Gnu version of DEBUGP
	* src/gui.c (on_jmw_destroy): Changed shutdown message

Fri Jan 21 17:46:07 2000  David A Helder  <dhelder@umich.edu>

	* src/btp.c (btp_node_write_cb): Push BYE packets to 
	    the back of the queue, even if there's data.
	* src/btp.c (btp_node_read_cb): Once we've received a
	    BYE packet, delete the rest of the packets and return.
	* src/btp.c (btp_node_delete_all): Delete _everything_
	* src/btp.c (btp_node_connect_cb): Check if socket is NULL
	    on connect.  Not sure why this happens.
	* src/btp.c (btp_node_write_cb): Set write watch to 0 if
	    nothing to send.

Fri Jan 21 13:18:51 2000  David A Helder  <dhelder@umich.edu>

	* src/btp.c (btp_node_delete_all): Fixed deleting code.
	* src/Makefile.am: Install (or uninstall) jm.glade to datadir/jm
	* src/gui.c: Look for jm.glade in datadir/jm

Thu Jan 20 17:25:47 2000  David A Helder  <dhelder@umich.edu>

	* NEWS: Updates
	* configure.in: Upped version to 10 (unreleased)
	* doc/notes.txt: Removed
	* src/jm.glade: Added vertical panes
	* src/jmftp.c (jmftp_delete): Remove timer _only_ if not-0.
	* src/gui.c: Added update_jmtext() - 
	* src/backend.c: 
	    - Send file length in announcents.  
	    - Don't call gui_update so much
	    - If channel goes down, just mark channel as down, don't
	        delete it.
	* src/btp.c: Cleaned up delete functions.  Many potential
	    bugs fixed.
	
	* src/backend.[ch]: Added low bandwidth channel.  Now switch
	    main channel to a send-only channel after a while.
	* src/jmsmp.[ch]: Added send-only groups
	* src/btp.[ch]: Added send-only trees
	
Wed Jan 19 23:13:47 2000  David A Helder  <dhelder@umich.edu>

	* debian/rules: Clear LD_*.  configure manually specifies gnet
	    and gtk prefixes.
	* debian/control: Added section, fixed description
	* Makefile.am: Fixed deb rule

