Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=gservice.git;a=commitdiff;h=89cba02d5ee0bfad08b1ac18583c8f3e69989a92
commit 89cba02d5ee0bfad08b1ac18583c8f3e69989a92 Author: Priyank <priy...@frugalware.org> Date: Sun Jan 18 12:45:37 2009 +0530 gservice-backend: Added new functions for activating/deactivating servies * gsvc_service_activate() and gsvc_service_deactivate() diff --git a/src/gservice-backend.c b/src/gservice-backend.c index a1f7d1a..a9ba9ac 100644 --- a/src/gservice-backend.c +++ b/src/gservice-backend.c @@ -369,42 +369,6 @@ gsvc_glist_to_string (GList *list) return ret; } -/* strips ON/OFF/FAILED from a cmd line output */ -gchar * -gsvc_strip_service_status (const char *line) -{ - char *temp = NULL; - char *ptr = NULL; - char *ret = NULL; - - temp = g_strdup (line); - ptr = g_strdup (g_strstrip(g_strcanon(line,"ON",' '))); - if (!strcmp(ptr,"ON")) - { - ret = g_strdup (ptr); - g_free (temp); - return ret; - } - temp = g_strdup (line); - ptr = g_strdup (g_strstrip(g_strcanon(line,"OFF",' '))); - if (!strcmp(ptr,"OFF")) - { - ret = g_strdup (ptr); - g_free (temp); - return ret; - } - temp = g_strdup (line); - ptr = g_strdup (g_strstrip(g_strcanon(line,"FAILED",' '))); - if (!strcmp(ptr,"FAILED")) - { - ret = g_strdup (ptr); - g_free (temp); - return ret; - } - - return ret; -} - /* returns the status of service GSVC_ON or GSVC_OFF */ /* returns GSVC_ERR if status not supported */ gint @@ -528,4 +492,35 @@ gsvc_service_stop (const char *service, int *retval) return ret; } +gboolean +gsvc_service_activate (const char *service) +{ + char *cmd = NULL; + char *svc = NULL; + gboolean ret = FALSE; + + svc = g_strdup_printf ("rc.%s", service); + cmd = g_strdup_printf ("chkconfig --add %s", svc); + g_free (svc); + if (!system(cmd)) + ret = TRUE; + + return ret; +} + +gboolean +gsvc_service_deactivate (const char *service) +{ + char *cmd = NULL; + char *svc = NULL; + gboolean ret = FALSE; + + svc = g_strdup_printf ("rc.%s", service); + cmd = g_strdup_printf ("chkconfig --del %s", svc); + g_free (svc); + if (!system(cmd)) + ret = TRUE; + + return ret; +} diff --git a/src/gservice-backend.h b/src/gservice-backend.h index 5bba6a9..2e1076f 100644 --- a/src/gservice-backend.h +++ b/src/gservice-backend.h @@ -35,5 +35,12 @@ char * gsvc_service_start (const char *service, int *retval); /* return value of the service command is specified in retval */ char * gsvc_service_stop (const char *service, int *retval); +/* activates a service. simply runs 'chkconfig --add rc.foo' */ +/* one should note that this doesn't start the service */ +gboolean gsvc_service_activate (const char *service); + +/* deactivates a service. simply runs 'chkconfig --del rc.foo' */ +gboolean gsvc_service_deactivate (const char *service); + #endif _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git