X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-sp.git;a=blobdiff_plain;f=shibd%2Fshibd.cpp;h=e8afdea005bca7e51746ce2938a813accacdcceb;hp=8c67563a239cdc05c12c4b130370140314716a70;hb=1547c01785f3d5d740629a0f192f85b36888239b;hpb=a6ee34e6e92d960659adea2ddabf2f5b9d3b4b26 diff --git a/shibd/shibd.cpp b/shibd/shibd.cpp index 8c67563..e8afdea 100644 --- a/shibd/shibd.cpp +++ b/shibd/shibd.cpp @@ -56,6 +56,19 @@ #include #include +#ifdef HAVE_SD_NOTIFY +#include +#else +#define SD_EMERG "" +#define SD_ALERT "" +#define SD_CRIT "" +#define SD_ERR "" +#define SD_WARNING "" +#define SD_NOTICE "" +#define SD_INFO "" +#define SD_DEBUG "" +#endif + using namespace shibsp; using namespace xmltooling; using namespace std; @@ -380,7 +393,7 @@ int main(int argc, char *argv[]) (shar_checkonly ? SPConfig::RequestMapping : SPConfig::Logging) ); if (!conf.init(shar_schemadir, shar_prefix)) { - fprintf(stderr, "configuration is invalid, check console for specific problems\n"); + fprintf(stderr, SD_ERR "configuration is invalid, check console for specific problems\n"); return -1; } @@ -400,7 +413,7 @@ int main(int argc, char *argv[]) } if (!conf.instantiate(shar_config)) { - fprintf(stderr, "configuration is invalid, check console for specific problems\n"); + fprintf(stderr, SD_ERR "configuration is invalid, check console for specific problems\n"); conf.term(); return -2; } @@ -411,7 +424,7 @@ int main(int argc, char *argv[]) // Init the listener. ListenerService* listener = conf.getServiceProvider()->getListenerService(); if (!listener->init(unlink_socket)) { - fprintf(stderr, "listener failed to initialize\n"); + fprintf(stderr, SD_ERR "listener failed to initialize\n"); conf.term(); return -3; } @@ -446,8 +459,11 @@ int main(int argc, char *argv[]) } // Run the listener. +#ifdef HAVE_SD_NOTIFY + sd_notify(0, "READY=1"); +#endif if (!listener->run(&shibd_shutdown)) { - fprintf(stderr, "listener failure during service\n"); + fprintf(stderr, SD_ERR "listener failure during service\n"); listener->term(); conf.term(); if (daemonize && pidfile) @@ -456,7 +472,9 @@ int main(int argc, char *argv[]) } listener->term(); } - +#ifdef HAVE_SD_NOTIFY + sd_notify(0, "STOPPING=1"); +#endif conf.term(); if (daemonize && pidfile) unlink(pidfile);