Téléchargé gratuitement votre livre blanc ACT!
by CIEL comptabilité
Porquoi est-il nécéssaire de gérez efficacement vos contacts?
Dans un environnement économique incertain, il est primordial de se
concentrer sur ce
qui est le plus important pour la pérennité de son entreprise, à
savoir son métier et ses clients.
ACT! -- La solution de Gestion de Contacts, Clients et Prospects
adaptée aux besoins de la petite entreprise.
Efficace et simple d,installation ACT! offre de nombreuses
possibilités en terme de :
• FIDELISATION : vous améliorez la qualité de votre relation
client en optimisant la connaissance et la gestion de ces derniers.
• PROSPECTION : vous planifiez et réalisez des actions de
prospections ciblées.
• COMMUNICATION : vous gagnez du temps en partageant facilement
toutes les informations client dans l'entreprise.
• PRODUCTIVITE : vous analysez et organisez efficacement votre
activité commerciale
Plus d'informations:
http://track.effiliation.com/servlet/effi.redir?id_compteur=11366157&url=...
********************************************************************
Conformément à la loi informatique & libertés du 6 janvier 1978, je
dispose d'un droit d'accès, de rectification et d'opposition aux
données personnelles me concernant.
Ce message commercial vous est envoyé par “Team Leaders”.. Vous
recevez ce message parce que vous vous êtes inscrit sur l'un des
sites partenaires de “Team Leaders”. Vos données nominatives
n'ont pas été transmises à l'annonceur. Si vous ne souhaitez plus
recevoir notre lettre d'information Remplissez ce formulaire:
http://87.255.69.213/unsubscribe/index.php?q=crash-catcher@lists.fedoraho...
13 years, 7 months
[PATCH 1/5] g_settings_setOpenGPGPublicKeys uses GList
by Nikola Pajkovsky
Signed-off-by: Nikola Pajkovsky <npajkovs(a)redhat.com>
---
src/daemon/Daemon.cpp | 1 +
src/daemon/Settings.cpp | 13 +++++++++++--
src/daemon/Settings.h | 5 ++++-
src/daemon/abrt-action-save-package-data.cpp | 7 +++----
4 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/src/daemon/Daemon.cpp b/src/daemon/Daemon.cpp
index 8ab9991..4cecae1 100644
--- a/src/daemon/Daemon.cpp
+++ b/src/daemon/Daemon.cpp
@@ -1114,6 +1114,7 @@ int main(int argc, char** argv)
if (pMainloop)
g_main_loop_unref(pMainloop);
+ settings_free();
/* Exiting */
if (s_sig_caught && s_sig_caught != SIGALRM && s_sig_caught != SIGCHLD)
{
diff --git a/src/daemon/Settings.cpp b/src/daemon/Settings.cpp
index a77e482..a6d59f5 100644
--- a/src/daemon/Settings.cpp
+++ b/src/daemon/Settings.cpp
@@ -51,7 +51,7 @@ static map_string_t s_mapSectionCron;
/* one line: "OpenGPGCheck = value" */
bool g_settings_bOpenGPGCheck = false;
/* one line: "OpenGPGPublicKeys = value1,value2" */
-set_string_t g_settings_setOpenGPGPublicKeys;
+GList *g_settings_setOpenGPGPublicKeys = NULL;
set_string_t g_settings_setBlackListedPkgs;
set_string_t g_settings_setBlackListedPaths;
std::string g_settings_sDatabase;
@@ -348,7 +348,7 @@ static void LoadGPGKeys()
if (line[0] == '/') // probably the begining of path, so let's handle it as a key
{
strchrnul(line, '\n')[0] = '\0';
- g_settings_setOpenGPGPublicKeys.insert(line);
+ g_settings_setOpenGPGPublicKeys = g_list_append(g_settings_setOpenGPGPublicKeys, xstrdup(line));
}
}
fclose(fp);
@@ -559,3 +559,12 @@ void SetSettings(const map_abrt_settings_t& pSettings, const char *dbus_sender)
ParseCron();
}
}
+
+void settings_free()
+{
+ for (GList *li = g_settings_setOpenGPGPublicKeys; li != NULL; li = g_list_next(li))
+ free((char*)li->data);
+
+ g_list_free(g_settings_setOpenGPGPublicKeys);
+
+}
diff --git a/src/daemon/Settings.h b/src/daemon/Settings.h
index 3103dbd..2a92020 100644
--- a/src/daemon/Settings.h
+++ b/src/daemon/Settings.h
@@ -20,12 +20,13 @@
#define SETTINGS_H_
#include "abrt_types.h"
+#include <glib.h>
typedef map_vector_pair_string_string_t map_analyzer_actions_and_reporters_t;
typedef map_vector_pair_string_string_t map_cron_t;
typedef map_map_string_t map_abrt_settings_t;
-extern set_string_t g_settings_setOpenGPGPublicKeys;
+extern GList *g_settings_setOpenGPGPublicKeys;
extern set_string_t g_settings_setBlackListedPkgs;
extern set_string_t g_settings_setBlackListedPaths;
extern unsigned int g_settings_nMaxCrashReportsSize;
@@ -42,4 +43,6 @@ void SaveSettings();
void SetSettings(const map_abrt_settings_t& pSettings, const char * dbus_sender);
map_abrt_settings_t GetSettings();
+void settings_free();
+
#endif
diff --git a/src/daemon/abrt-action-save-package-data.cpp b/src/daemon/abrt-action-save-package-data.cpp
index bd18bc8..039fa24 100644
--- a/src/daemon/abrt-action-save-package-data.cpp
+++ b/src/daemon/abrt-action-save-package-data.cpp
@@ -320,11 +320,10 @@ int main(int argc, char **argv)
VERB1 log("Initializing rpm library");
rpm_init();
- set_string_t::iterator it_k = g_settings_setOpenGPGPublicKeys.begin();
- for (; it_k != g_settings_setOpenGPGPublicKeys.end(); it_k++)
+ for (GList *li = g_settings_setOpenGPGPublicKeys; li != NULL; li = g_list_next(li))
{
- VERB1 log("Loading GPG key '%s'", it_k->c_str());
- rpm_load_gpgkey(it_k->c_str());
+ VERB1 log("Loading GPG key '%s'", (char*)li->data);
+ rpm_load_gpgkey((char*)li->data);
}
return SavePackageDescriptionToDebugDump(dump_dir_name);
--
1.7.1
13 years, 7 months
[PATCH 1/4] Daemon.cpp: FindNewDumps() uses GList
by Nikola Pajkovsky
transform vector_string_t to GList
Signed-off-by: Nikola Pajkovsky <npajkovs(a)redhat.com>
---
src/daemon/Daemon.cpp | 18 +++++++++++-------
1 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/src/daemon/Daemon.cpp b/src/daemon/Daemon.cpp
index f54acde..1ea83a4 100644
--- a/src/daemon/Daemon.cpp
+++ b/src/daemon/Daemon.cpp
@@ -386,7 +386,7 @@ static int SetUpCron()
static void FindNewDumps(const char* pPath)
{
/* Get all debugdump directories in the pPath directory */
- vector_string_t dirs;
+ GList *dirs = NULL;
DIR *dp = opendir(pPath);
if (dp == NULL)
{
@@ -405,25 +405,23 @@ static void FindNewDumps(const char* pPath)
if (S_ISDIR(stats.st_mode))
{
VERB1 log("Will check directory '%s'", ep->d_name);
- dirs.push_back(dname);
+ dirs = g_list_append(dirs, dname);
}
}
- free(dname);
}
closedir(dp);
- unsigned size = dirs.size();
+ unsigned size = g_list_length(dirs);
if (size == 0)
return;
log("Checking for unsaved crashes (dirs to check:%u)", size);
/* Get potentially non-processed debugdumps */
- vector_string_t::iterator itt = dirs.begin();
- for (; itt != dirs.end(); ++itt)
+ for (GList *li = dirs; li != NULL; li = g_list_next(li))
{
try
{
- const char *dir_name = itt->c_str();
+ const char *dir_name = (char*)dirs->data;
map_crash_data_t crashinfo;
mw_result_t res = SaveDebugDump(dir_name, crashinfo);
switch (res)
@@ -456,6 +454,12 @@ static void FindNewDumps(const char* pPath)
error_msg("%s", e.what());
}
}
+
+ for (GList *li = dirs; li != NULL; li = g_list_next(li))
+ free((char*)li->data);
+
+ g_list_free(dirs);
+
log("Done checking for unsaved crashes");
}
--
1.7.1
13 years, 7 months
[PATCH 0/3] new parser
by Nikola Pajkovsky
A new parser is developed because of we have a lot of standalone applicaions.
When bad argument is passed to app, parser will generate a help, it means
all app will have same help output. For now is only daemon moved to a new
parser to see how to use it.
Nikola Pajkovsky (3):
xfunc.c: add new funtion xcalloc
new args parser
Daemon.cpp: remove getopt and use parse_opts instead
inc/xfuncs.h | 1 +
lib/utils/Makefile.am | 3 +-
lib/utils/parse_options.c | 130 +++++++++++++++++++++++++++++++++++++++++++++
lib/utils/parse_options.h | 37 +++++++++++++
lib/utils/xfuncs.c | 8 +++
src/daemon/Daemon.cpp | 65 ++++++++++++-----------
6 files changed, 212 insertions(+), 32 deletions(-)
create mode 100644 lib/utils/parse_options.c
create mode 100644 lib/utils/parse_options.h
13 years, 7 months
Boostez votre prospection a petit prix
by easy-fichiers
Vous avez besoin de trouver de nouveaux clients rapidement et sans un gros investissement ?
Nous sommes spécialisés dans l'email marketing de prospection qui est un média idéal pour cibler des publics qualifiés et toucher vos prospects en bénéficiant d'un très rapide retour sur investissement.
EASY-FICHIERS vous offre la possibilité d'acheter des listes et fichiers d'adresses email professionnelles à tout petit prix !
MAIRIES
59,00 EurosASSURANCES
79,00 EurosCOIFFEURS
39,00 EurosRESTAURANTS
59,00 Euros
EASY-FICHIERS
13 years, 7 months
Confirmation de votre livraison
by Nakou
Pour etre sur de recevoir nos offres, ajoutez nous `a votre carnet d'adresses
Si ce message s'affiche mal, cliquez ici http://p2trc.emv2.com/HM?a=DNX7CqksUqzQ8SA9MKJPkbLnGHxKLJmtfwuR
.
Idee cadeau originale : calendrier personnalise `a O EUR
Profitez de ces offres uniques
,
vous avez ete selectionne(e) pour recevoir :
1 Calendrier mural GRATUIT Cliquez vite >
Telechargez vos photos preferees
• Choisissez votre mois de depart
1 Calendrier Photo mural • Telechargez vos 13 photos preferees
• Ideal pour mettre vos photos de vacances en
valeur
J'en profite
Decouvrez notre jeu concours :
Vistaprint fete ses 10 ans - A gagner : 1 sejour pour 2 au Cap vert - 1
appareil photo reflex Nikon D90 et plein d'autres cadeaux ! - Je joue !
, depechez-vous avant que cette offre
n'expire
.
Prix affiches TTC. Les frais de port, les options de produits
et photo/logo telecharges ne sont pas compris `a moins de
Vistaprint n'etre explicitement inclus dans l'offre. Offre non valide
sur des commandes dej`a passees. Pour plus de details,
consultez notre site web.
--------------------------------------------------------------------------
regfooter
Conformement `a la loi <<Informatique et Libertes>> du 6 janvier 1978,
vous disposez d'un droit d'acces,
de rectification et d'opposition, aux informations qui vous concernent. Si
vous ne souhaitez
plus recevoir d'emails de notre part, il vous suffit de vous desabonner en
cliquant ici http://p2trc.emv2.com/HD?a=DNX7CqksUqzQ8SA9MKJPkbLnGHxKLJmtfAuQ
13 years, 7 months
DHL Epost imprime et envoie votre courrier pour vous
by CIEL comptabilité
Avec DHL EPOST:
Une fois écrit, c’est envoyé!
DHL EPOST imprime et envoie votre courrier pour vous.
Faites des économies sur l'impression, la mise sous pli, l'envoi et
l'affranchissement de vos courriers.
Tout se fait depuis votre ordinateur.
Testez gratuitement DHL EPOST
Gestion de publipostage et d'envois en recommandé.
Plus d'informations:
http://track.effiliation.com/servlet/effi.redir?id_compteur=11366152&url=...
********************************************************************
Conformément à la loi informatique & libertés du 6 janvier 1978, je
dispose d'un droit d'accès, de rectification et d'opposition aux
données personnelles me concernant.
Ce message commercial vous est envoyé par “Team Leaders”.. Vous
recevez ce message parce que vous vous êtes inscrit sur l'un des
sites partenaires de “Team Leaders”. Vos données nominatives
n'ont pas été transmises à l'annonceur. Si vous ne souhaitez plus
recevoir notre lettre d'information Remplissez ce formulaire:
http://87.255.69.213/unsubscribe/index.php?q=crash-catcher@lists.fedoraho...
13 years, 7 months