[pan2] https://bugzilla.gnome.org/show_bug.cgi?id=465818



commit 582cc697ab777648161149a30f9ed6d19312901b
Author: Heinrich MÃller <henmull src gnome org>
Date:   Wed Apr 25 10:58:32 2012 +0200

    https://bugzilla.gnome.org/show_bug.cgi?id=465818

 configure.in                   |    3 -
 pan/data/encode-cache.cc       |    2 +-
 pan/gui/actions.cc             |    6 +-
 pan/gui/group-pane.cc          |   18 +++-
 pan/gui/group-pane.h           |    9 ++-
 pan/gui/group-prefs-dialog.cc  |   44 ++++++++--
 pan/gui/group-prefs-dialog.h   |    6 +
 pan/gui/group-prefs.cc         |   30 ++++++
 pan/gui/group-prefs.h          |    6 +
 pan/gui/gui.cc                 |    6 +-
 pan/gui/post-ui.cc             |    2 +-
 pan/gui/prefs.h                |    4 +
 pan/tasks/nntp-pool.h          |  197 +++++++++++++++++++++-------------------
 pan/usenet-utils/gpg.h         |    3 +-
 pan/usenet-utils/mime-utils.cc |    4 -
 15 files changed, 215 insertions(+), 125 deletions(-)
---
diff --git a/configure.in b/configure.in
index 85975bd..3ec7b95 100644
--- a/configure.in
+++ b/configure.in
@@ -242,9 +242,6 @@ case $host_os in
 esac
 AM_CONDITIONAL([HAVE_WIN32],[test "$win32" = "yes"])
 
-CXXFLAGS="-O0 -Wall"
-CPPFLAGS="-O0 -Wall"
-
 dnl Build the output files
 AC_SUBST(panlocaledir)
 AC_CONFIG_FILES([Makefile
diff --git a/pan/data/encode-cache.cc b/pan/data/encode-cache.cc
index 7b12d70..7de7673 100644
--- a/pan/data/encode-cache.cc
+++ b/pan/data/encode-cache.cc
@@ -185,7 +185,7 @@ EncodeCache :: clear ()
 void
 EncodeCache :: get_data(std::string& data, const Quark& where)
 {
-  char buf[4096], buf2[4096];
+  char buf[4096];
   get_filename(buf, where);
   std::ifstream in(buf, std::ios::in);
   std::stringstream out;
diff --git a/pan/gui/actions.cc b/pan/gui/actions.cc
index 01b6410..c2ec1e4 100644
--- a/pan/gui/actions.cc
+++ b/pan/gui/actions.cc
@@ -772,7 +772,7 @@ pan :: add_actions (PanUI * ui, GtkUIManager * ui_manager, Prefs * p, Data* data
   GtkActionGroup * action_group = _group = gtk_action_group_new ("Actions");
   gtk_action_group_set_translation_domain (action_group, NULL);
 
-  for (int i=0;i<n_entries;++i)
+  for (size_t i=0;i<n_entries;++i)
   {
     const gchar* abbrev = entries[i].tooltip ? entries[i].tooltip : entries[i].label ? entries[i].label : "";
     action_trans[entries[i].name] = abbrev;
@@ -780,7 +780,7 @@ pan :: add_actions (PanUI * ui, GtkUIManager * ui_manager, Prefs * p, Data* data
     action_trans[entries[i].name] = translation ? translation : "";
   }
 
-  for (int i=0;i<n_toggle_entries;++i)
+  for (size_t i=0;i<n_toggle_entries;++i)
   {
     const gchar* abbrev = toggle_entries[i].tooltip ? toggle_entries[i].tooltip : toggle_entries[i].label ? toggle_entries[i].label : "";
     action_trans[toggle_entries[i].name] = abbrev;
@@ -788,7 +788,7 @@ pan :: add_actions (PanUI * ui, GtkUIManager * ui_manager, Prefs * p, Data* data
     action_trans[toggle_entries[i].name] = translation ? translation : "";
   }
 
-  for (int i=0;i<G_N_ELEMENTS(match_toggle_entries);++i)
+  for (size_t i=0;i<G_N_ELEMENTS(match_toggle_entries);++i)
   {
     const gchar* abbrev = match_toggle_entries[i].tooltip ? match_toggle_entries[i].tooltip : match_toggle_entries[i].label ? match_toggle_entries[i].label : "";
     action_trans[match_toggle_entries[i].name] = abbrev;
diff --git a/pan/gui/group-pane.cc b/pan/gui/group-pane.cc
index ddc4cc9..bcf4ffa 100644
--- a/pan/gui/group-pane.cc
+++ b/pan/gui/group-pane.cc
@@ -34,7 +34,7 @@ extern "C" {
 #include <pan/data/data.h>
 #include "group-pane.h"
 #include "pad.h"
-#include "gtk-compat.h"
+#include "tango-colors.h"
 
 using namespace pan;
 
@@ -691,8 +691,9 @@ namespace
                      GtkCellRenderer   * renderer,
                      GtkTreeModel      * model,
                      GtkTreeIter       * iter,
-                     gpointer            )
+                     gpointer          gp)
   {
+	GroupPane* pane (static_cast<GroupPane*>(gp));
     PanTreeStore * tree (PAN_TREE_STORE(model));
     MyRow * row (dynamic_cast<MyRow*>(tree->get_row (iter)));
     const unsigned long& unread (row->unread);
@@ -713,6 +714,7 @@ namespace
       //else
     g_object_set (renderer, "text", group_name.c_str(),
                             "weight", (!is_g || unread ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL),
+                            "foreground", pane->get_group_prefs().get_group_color_str(name).c_str(),
                             NULL);
   }
 }
@@ -902,8 +904,9 @@ GroupPane :: on_selection_changed (GtkTreeSelection*, gpointer pane_gpointer)
     self->_action_manager.sensitize_action (actions_that_require_a_group[i], have_group);
 }
 
-GroupPane :: GroupPane (ActionManager& action_manager, Data& data, Prefs& prefs):
+GroupPane :: GroupPane (ActionManager& action_manager, Data& data, Prefs& prefs, GroupPrefs& group_prefs):
   _prefs (prefs),
+  _group_prefs(group_prefs),
   _data (data),
   _tree_view (0),
   _action_manager (action_manager),
@@ -955,7 +958,7 @@ GroupPane :: GroupPane (ActionManager& action_manager, Data& data, Prefs& prefs)
    gtk_tree_view_append_column (GTK_TREE_VIEW(_tree_view), col);
    gtk_tree_view_set_expander_column (GTK_TREE_VIEW(_tree_view), col);
    gtk_tree_view_column_pack_start (col, text_renderer, true);
-   gtk_tree_view_column_set_cell_data_func (col, text_renderer, render_group_name, 0, 0);
+   gtk_tree_view_column_set_cell_data_func (col, text_renderer, render_group_name, this, 0);
 
   _root = scroll;
   _data.add_listener (this);
@@ -1003,3 +1006,10 @@ GroupPane :: on_prefs_string_changed (const StringView& key, const StringView&)
   if (key == "group-pane-font")
     refresh_font ();
 }
+
+void
+GroupPane :: on_prefs_color_changed (const StringView& key, const GdkColor&)
+{
+  if (key == "group-color")
+    refresh_dirty_groups ();
+}
diff --git a/pan/gui/group-pane.h b/pan/gui/group-pane.h
index 56842d0..51906b9 100644
--- a/pan/gui/group-pane.h
+++ b/pan/gui/group-pane.h
@@ -26,6 +26,7 @@
 #include <pan/gui/action-manager.h>
 #include <pan/gui/pan-tree.h>
 #include <pan/gui/prefs.h>
+#include <pan/gui/group-prefs.h>
 
 namespace pan
 {
@@ -44,7 +45,7 @@ namespace pan
                                     unsigned long total);
 
     public:
-      GroupPane (ActionManager&, Data&, Prefs&);
+      GroupPane (ActionManager&, Data&, Prefs&, GroupPrefs&);
       ~GroupPane ();
       GtkWidget* root () { return _root; }
       GtkWidget* get_default_focus_widget() { return _tree_view; }
@@ -57,12 +58,16 @@ namespace pan
 
     private:
       Prefs& _prefs;
+      GroupPrefs& _group_prefs;
       Data& _data;
       bool _collapsed;
       GtkWidget * _root;
       GtkWidget * _tree_view;
       PanTreeStore * _tree_store;
 
+    public:
+      GroupPrefs& get_group_prefs() { return _group_prefs; }
+
     private:
       GtkTreePath* find_next_subscribed_group (bool unread_only);
       void read_group (GtkTreePath*);
@@ -84,7 +89,7 @@ namespace pan
       virtual void on_prefs_flag_changed (const StringView& key, bool value);
       virtual void on_prefs_int_changed (const StringView&, int) { }
       virtual void on_prefs_string_changed (const StringView& key, const StringView& value);
-      virtual void on_prefs_color_changed (const StringView&, const GdkColor&) { }
+      virtual void on_prefs_color_changed (const StringView&, const GdkColor&);
 
     private:
       quarks_t _dirty_groups;
diff --git a/pan/gui/group-prefs-dialog.cc b/pan/gui/group-prefs-dialog.cc
index 3b87d90..d7e1116 100644
--- a/pan/gui/group-prefs-dialog.cc
+++ b/pan/gui/group-prefs-dialog.cc
@@ -37,6 +37,8 @@ extern "C" {
 #include "pan-file-entry.h"
 #include "gtk-compat.h"
 
+#include <iostream>
+
 using namespace pan;
 
 
@@ -111,8 +113,6 @@ GroupPrefsDialog :: save_from_gui ()
   foreach_const (quarks_v, _groups, it)
     _group_prefs.set_string (*it, "default-group-save-path", pch);
 
-  _group_prefs.save () ;
-
   // spellchecker language
 #ifdef HAVE_GTKSPELL
   GtkTreeIter iter;
@@ -123,10 +123,26 @@ GroupPrefsDialog :: save_from_gui ()
 	GtkTreeModel* model = gtk_combo_box_get_model (GTK_COMBO_BOX(_spellchecker_language));
 	gtk_tree_model_get (model, &iter, 0, &name, -1);
 
-  if (name) _group_prefs.set_string (_groups[0], "spellcheck-language", name);
-  g_free(name);
+  if (name)
+  {
+    foreach_const (quarks_v, _groups, it)
+	  _group_prefs.set_string (*it, "spellcheck-language", name);
+    g_free(name);
+  }
 #endif
 
+  _group_prefs.save () ;
+
+  // group color
+  GdkColor val;
+  foreach_const (quarks_v, _groups, it)
+  {
+    _group_prefs.set_group_color(*it, _color);
+	std::cout<<"output: "<<*it<<" "<<_group_prefs.get_group_color_str(*it)<<"\n";
+  }
+
+  _group_prefs.save () ;
+
 }
 
 void
@@ -217,6 +233,20 @@ namespace
     return w;
   }
 
+  void color_set_cb (GtkColorButton* b, gpointer gp)
+  {
+    GdkColor* col = (GdkColor*)gp;
+	gtk_color_button_get_color (b, col);
+  }
+
+  GtkWidget* new_color_button (const Quark& group, GroupPrefs& prefs, GdkColor* color)
+  {
+    const GdkColor& val (prefs.get_group_color (group, "black"));
+    GtkWidget * b = gtk_color_button_new_with_color (&val);
+    g_signal_connect (b, "color-set", G_CALLBACK(color_set_cb), color);
+    return b;
+  }
+
 }
 
 
@@ -231,13 +261,12 @@ GroupPrefsDialog :: GroupPrefsDialog (Data            & data,
   GtkWidget * dialog = gtk_dialog_new_with_buttons (_("Pan: Group Preferences"),
                                                     parent_window,
                                                     GTK_DIALOG_DESTROY_WITH_PARENT,
-	                                            GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
+                                                    GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
                                                     NULL);
   gtk_window_set_role (GTK_WINDOW(dialog), "pan-group-dialog");
   g_signal_connect (dialog, "response", G_CALLBACK(response_cb), this);
   g_signal_connect_swapped (dialog, "destroy", G_CALLBACK(delete_dialog), this);
 
-
   int row (0);
   GtkWidget *t, *w, *l;
   t = HIG :: workarea_create ();
@@ -273,9 +302,10 @@ GroupPrefsDialog :: GroupPrefsDialog (Data            & data,
     gtk_widget_set_sensitive (l, gtk_widget_get_sensitive(w));
 #ifdef HAVE_GTKSPELL
     w = _spellchecker_language = create_spellcheck_combo_box ( groups[0], group_prefs);
-
     HIG :: workarea_add_row (t, &row, _("Spellchecker _language:"), w);
 #endif
+    w = _group_color = new_color_button (groups[0], _group_prefs, &_color);
+    HIG :: workarea_add_row(t, &row, _("Group color:"), w);
 
   gtk_widget_show_all (t);
   gtk_box_pack_start ( GTK_BOX( gtk_dialog_get_content_area( GTK_DIALOG( dialog))), t, true, true, 0);
diff --git a/pan/gui/group-prefs-dialog.h b/pan/gui/group-prefs-dialog.h
index a42f800..d377165 100644
--- a/pan/gui/group-prefs-dialog.h
+++ b/pan/gui/group-prefs-dialog.h
@@ -45,11 +45,17 @@ namespace pan
       GtkWidget    * _charset;
       GtkWidget    * _profile;
       GtkWidget    * _spellchecker_language;
+      GtkWidget    * _group_color;
+      GdkColor       _color;
       GtkWidget    * _save_path;
 
     private:
       static void response_cb (GtkDialog*, int, gpointer);
       void save_from_gui ();
+
+    public:
+      	 GdkColor& get_color() { return _color; }
+      	 GtkWidget* get_color_button() { return _group_color; }
   };
 }
 #endif
diff --git a/pan/gui/group-prefs.cc b/pan/gui/group-prefs.cc
index dc97abe..ee1327b 100644
--- a/pan/gui/group-prefs.cc
+++ b/pan/gui/group-prefs.cc
@@ -21,6 +21,7 @@ extern "C" {
   #include <config.h>
   #include <sys/types.h> // chmod
   #include <sys/stat.h> // chmod
+  #include <glib.h>
 }
 #include <iostream>
 #include <fstream>
@@ -203,3 +204,32 @@ GroupPrefs :: set_from_file (const StringView& filename)
   if (file :: get_text_file_contents (filename, s))
     from_string (s);
 }
+
+std::string
+GroupPrefs :: color_to_string (const GdkColor& c)
+{
+  char buf[8];
+  g_snprintf (buf, sizeof(buf), "#%02x%02x%02x", c.red/0x100, c.green/0x100, c.blue/0x100);
+  return buf;
+}
+
+std::string
+GroupPrefs :: get_group_color_str (const Quark& group) const
+{
+  const GdkColor& col (_prefs[group].get_colors()["group-color"]);
+  return color_to_string (col);
+}
+
+GdkColor
+GroupPrefs :: get_group_color (const Quark& group, const StringView& fallback_str) const
+{
+  GdkColor fallback;
+  gdk_color_parse (fallback_str.to_string().c_str(), &fallback);
+  return _prefs[group].get_color("group-color", fallback);
+}
+
+void
+GroupPrefs :: set_group_color (const Quark& group, const GdkColor& color)
+{
+	_prefs[group].set_color("group-color", color);
+}
diff --git a/pan/gui/group-prefs.h b/pan/gui/group-prefs.h
index 41e80bc..050f31d 100644
--- a/pan/gui/group-prefs.h
+++ b/pan/gui/group-prefs.h
@@ -54,6 +54,12 @@ namespace pan
                               const StringView  & key,
                               const StringView  & fallback);
 
+      void set_group_color   (const Quark& group, const GdkColor& color);
+
+      std::string get_group_color_str (const Quark& group) const;
+      static std::string color_to_string (const GdkColor& c);
+      GdkColor get_group_color (const Quark& group, const StringView& fallback_str) const;
+
     protected:
       static void start_element (GMarkupParseContext *context,
                                  const gchar         *element_name,
diff --git a/pan/gui/gui.cc b/pan/gui/gui.cc
index cb712aa..7e4d79e 100644
--- a/pan/gui/gui.cc
+++ b/pan/gui/gui.cc
@@ -181,10 +181,10 @@ void GUI :: show_task_window_cb (GtkWidget *, gpointer gui_gpointer)
 GUI :: GUI (Data& data, Queue& queue, Prefs& prefs, GroupPrefs& group_prefs):
   _data (data),
   _queue (queue),
-  _cache (data.get_cache()),
-  _encode_cache (data.get_encode_cache()),
   _prefs (prefs),
   _group_prefs (group_prefs),
+  _cache (data.get_cache()),
+  _encode_cache (data.get_encode_cache()),
   _root (gtk_vbox_new (FALSE, 0)),
   _menu_vbox (gtk_vbox_new (FALSE, 0)),
   _group_pane (0),
@@ -211,7 +211,7 @@ GUI :: GUI (Data& data, Queue& queue, Prefs& prefs, GroupPrefs& group_prefs):
   gtk_box_pack_start (GTK_BOX(_root), _menu_vbox, FALSE, FALSE, 0);
   gtk_widget_show (_menu_vbox);
 
-  _group_pane = new GroupPane (*this, data, _prefs);
+  _group_pane = new GroupPane (*this, data, _prefs, _group_prefs);
   _header_pane = new HeaderPane (*this, data, _queue, _cache, _prefs, _group_prefs, *this, *this);
   _body_pane = new BodyPane (data, _cache, _prefs, _group_prefs, _queue, _header_pane);
 
diff --git a/pan/gui/post-ui.cc b/pan/gui/post-ui.cc
index c52aa14..46601d6 100644
--- a/pan/gui/post-ui.cc
+++ b/pan/gui/post-ui.cc
@@ -2571,7 +2571,7 @@ PostUI :: create_parts_tab ()
   const GtkAttachOptions fill ((GtkAttachOptions)(GTK_FILL));
   const GtkAttachOptions fe ((GtkAttachOptions)(GTK_FILL|GTK_EXPAND|GTK_SHRINK));
 
-  GtkWidget *w, *l, *store ;
+  GtkWidget *w, *l;
   char buf[512];
   int row = -1;
   GtkCellRenderer * renderer;
diff --git a/pan/gui/prefs.h b/pan/gui/prefs.h
index c4c1ed3..302cad1 100644
--- a/pan/gui/prefs.h
+++ b/pan/gui/prefs.h
@@ -142,6 +142,10 @@ namespace pan
 
 
     public:
+      colors_t& get_colors() { return _colors; }
+      const colors_t& get_colors() const { return _colors; }
+
+    public:
       bool _rules_changed;
       bool _rules_enabled;
   };
diff --git a/pan/tasks/nntp-pool.h b/pan/tasks/nntp-pool.h
index 4a976cb..17a56dd 100644
--- a/pan/tasks/nntp-pool.h
+++ b/pan/tasks/nntp-pool.h
@@ -29,105 +29,112 @@
 #include <pan/tasks/socket-impl-main.h>
 
 #ifdef HAVE_GNUTLS
-  #include <pan/data/cert-store.h>
+#include <pan/data/cert-store.h>
 #endif
 
-namespace pan
-{
-  struct WorkerPool;
-
-  /**
-   * A pool of NNTP connections to a particular server.
-   *
-   * @ingroup tasks
-   */
-  class NNTP_Pool:
-    public NNTP::Source,
-    private NNTP::Listener,
-    private Socket::Creator::Listener,
-    private CertStore::Listener
-  {
-    public:
-
-      NNTP_Pool (const Quark       & server,
-                 ServerInfo        & server_info,
-                 SocketCreator     *,
-                 CertStore         &);
-      virtual ~NNTP_Pool ();
-
-      virtual void check_in (NNTP*, Health);
-      NNTP* check_out ();
-      void abort_tasks ();
-      void kill_tasks ();
-      void idle_upkeep ();
-
-      void get_counts (int& setme_active,
-                       int& setme_idle,
-                       int& setme_connecting,
-                       int& setme_max) const;
-
-    public:
-
-      /** Interface class for objects that listen to an NNTP_Pool's events */
-      class Listener {
-        public:
-          virtual ~Listener () { };
-          virtual void on_pool_has_nntp_available (const Quark& server) = 0;
-          virtual void on_pool_error (const Quark& server, const StringView& message) = 0;
-      };
-
-      void add_listener (Listener * l) { _listeners.insert (l); }
-      void remove_listener (Listener * l) { _listeners.erase (l); }
-      void request_nntp (WorkerPool&);
-
-    private: //  NNTP::Listener
-      virtual void on_nntp_done (NNTP*, Health, const StringView&);
-
-    private: // Socket::Creator::Listener
-      virtual void on_socket_created (const StringView& host, int port, bool ok, Socket*);
-      virtual void on_socket_shutdown (const StringView& host, int port, Socket*) {}
+namespace pan {
+struct WorkerPool;
+
+/**
+ * A pool of NNTP connections to a particular server.
+ *
+ * @ingroup tasks
+ */
+class NNTP_Pool: public NNTP::Source,
+		private NNTP::Listener,
+		private Socket::Creator::Listener,
+		private CertStore::Listener {
+public:
+
+	NNTP_Pool(const Quark & server, ServerInfo & server_info, SocketCreator *,
+			CertStore &);
+	virtual ~NNTP_Pool();
+
+	virtual void check_in(NNTP*, Health);
+	NNTP* check_out();
+	void abort_tasks();
+	void kill_tasks();
+	void idle_upkeep();
+
+	void get_counts(int& setme_active, int& setme_idle, int& setme_connecting,
+			int& setme_max) const;
+
+public:
+
+	/** Interface class for objects that listen to an NNTP_Pool's events */
+	class Listener {
+	public:
+		virtual ~Listener() {
+		}
+		;
+		virtual void on_pool_has_nntp_available(const Quark& server) = 0;
+		virtual void on_pool_error(const Quark& server,
+				const StringView& message) = 0;
+	};
+
+	void add_listener(Listener * l) {
+		_listeners.insert(l);
+	}
+	void remove_listener(Listener * l) {
+		_listeners.erase(l);
+	}
+	void request_nntp(WorkerPool&);
+
+private:
+	//  NNTP::Listener
+	virtual void on_nntp_done(NNTP*, Health, const StringView&);
+
+private:
+	// Socket::Creator::Listener
+	virtual void on_socket_created(const StringView& host, int port, bool ok,
+			Socket*);
+	virtual void on_socket_shutdown(const StringView& host, int port, Socket*) {
+	}
 #ifdef HAVE_GNUTLS
-    private:
-      // CertStore::Listener
-      virtual void on_verify_cert_failed (gnutls_x509_crt_t, std::string, int) ;
-      virtual void on_valid_cert_added (gnutls_x509_crt_t, std::string );
+private:
+	// CertStore::Listener
+	virtual void on_verify_cert_failed(gnutls_x509_crt_t, std::string, int);
+	virtual void on_valid_cert_added(gnutls_x509_crt_t, std::string);
 #endif
-    private:
-
-      void fire_pool_has_nntp_available () {
-        for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; )
-          (*it++)->on_pool_has_nntp_available (_server);
-      }
-      void fire_pool_error (const StringView& message) {
-        for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; )
-          (*it++)->on_pool_error (_server, message);
-      }
-
-      ServerInfo& _server_info;
-      const Quark _server;
-      SocketCreator * _socket_creator;
-      int _pending_connections;
-      CertStore& _certstore;
-
-      struct PoolItem {
-        NNTP * nntp;
-        bool is_checked_in;
-        time_t last_active_time;
-      };
-      typedef std::vector<PoolItem> pool_items_t;
-      pool_items_t _pool_items;
-      int _active_count;
-
-    private:
-
-      time_t _time_to_allow_new_connections;
-      bool new_connections_are_allowed () const;
-      void disallow_new_connections_for_n_seconds (int n);
-      void allow_new_connections ();
-
-      typedef std::set<Listener*> listeners_t;
-      listeners_t _listeners;
-  };
+private:
+
+	void fire_pool_has_nntp_available() {
+		for (listeners_t::iterator it(_listeners.begin()),
+				end(_listeners.end()); it != end;)
+			(*it++)->on_pool_has_nntp_available(_server);
+	}
+	void fire_pool_error(const StringView& message) {
+		for (listeners_t::iterator it(_listeners.begin()),
+				end(_listeners.end()); it != end;)
+			(*it++)->on_pool_error(_server, message);
+	}
+
+	ServerInfo& _server_info;
+	const Quark _server;
+	SocketCreator * _socket_creator;
+	int _pending_connections;
+	CertStore& _certstore;
+
+	struct PoolItem {
+		NNTP * nntp;
+		bool is_checked_in;
+		time_t last_active_time;
+	};
+	typedef std::vector<PoolItem> pool_items_t;
+	pool_items_t _pool_items;
+	int _active_count;
+
+private:
+
+	time_t _time_to_allow_new_connections;
+	bool new_connections_are_allowed() const;
+	void disallow_new_connections_for_n_seconds(int n);
+	void allow_new_connections();
+
+	typedef std::set<Listener*> listeners_t;
+	listeners_t _listeners;
 };
+}
+;
 
 #endif // __NNTP_Pool_h__
diff --git a/pan/usenet-utils/gpg.h b/pan/usenet-utils/gpg.h
index 06fb6f6..01c6634 100644
--- a/pan/usenet-utils/gpg.h
+++ b/pan/usenet-utils/gpg.h
@@ -58,8 +58,7 @@ namespace pan
   enum GPGDecType
   {
     GPG_VERIFY,
-    GPG_DECODE,
-    GPG_VERIFY_AND_DECODE
+    GPG_DECODE
   };
 
   enum GPGEncType
diff --git a/pan/usenet-utils/mime-utils.cc b/pan/usenet-utils/mime-utils.cc
index ca27980..c87967a 100644
--- a/pan/usenet-utils/mime-utils.cc
+++ b/pan/usenet-utils/mime-utils.cc
@@ -551,8 +551,6 @@ namespace pan
   void apply_source_and_maybe_filter (TempPart * part, GMimeStream * s)
   {
 
-    bool skip(false);
-
     if (!part->stream) {
       part->stream = g_mime_stream_mem_new ();
       if (part->type != ENC_PLAIN) {
@@ -605,8 +603,6 @@ namespace pan
     gboolean yenc_looking_for_part_line = FALSE;
     gint64 linestart_pos = 0;
     gint64 sub_begin = 0;
-    gint64 signed_msg_start = 0;
-    gint64 signed_msg_end = 0;
     guint line_len;
     bool found = false;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]