#pragma implementation #include #include #include #include #include #include "conectiva.h" #include "conectiva.m" #include "../module_apis/servicectl_api.h" MODULE_DEFINE_VERSION(conectiva); PUBLIC MODULE_conectiva::MODULE_conectiva() : LINUXCONF_MODULE ("conectiva") { linuxconf_loadmsg ("conectiva",PACKAGE_REV); linuxconf_sethook (filter_fctnew); if (conectiva_release()>401){ hostinfo_sethook (devinfo_load,devinfo_save); groutes_sethook (routes_load,routes_save); ipalias_sethook (devinfo_ipalias_load,devinfo_ipalias_save); #if defined(__GLIBC__) && defined(HAS_PAM) users_sethook (user_del,user_add,user_change); passwd_sethook (pam_check_pass,pam_change_pass,pam_check_pair); #endif } module_register_api (SERVICECTL_API_KEY,SERVICECTL_API_REV ,sysv_api_get,sysv_api_release); } PUBLIC int MODULE_conectiva::dohtml (const char *key) { int ret = LNCF_NOT_APPLICABLE; if (strcmp(key,"conectiva")==0){ // ### Insert any menu and dialog here ret = 0; } return ret; } static void usage() { xconf_error (MSG_U(T_USAGE ,"Module conectiva\n" "linuxconf --modulemain conectiva [ specific options ]\n" "\n") ); } PUBLIC void MODULE_conectiva::usage(SSTRINGS &tb) { tb.add (new SSTRING(MSG_R(T_USAGE))); } PUBLIC int MODULE_conectiva::execmain (int argc , char *argv[], bool) { int ret = LNCF_NOT_APPLICABLE; const char *pt = strrchr(argv[0],'/'); if (pt != NULL){ pt++; }else{ pt = argv[0]; } if (strcmp(pt,"conectiva")==0){ ret = -1; if (argc == 1){ // ### Place call to main menu of the module }else{ // ### Add some option parsing for the module ::usage(); } } return ret; } static MODULE_conectiva conectiva; const char *vendor_getid() { return "Conectiva S.A."; } const char *vendor_getdistid() { int release = conectiva_release(); const char *ret = ""; if (release == 500 || release == 501){ ret = "Xavante"; }else if (release >= 400 && release <= 402){ ret = "Ipanema"; }else if (release == 300 || release == 301){ ret = "Guarani"; } return ret; }