Subject: [PATCH] From ab9a8c940d22da552df9159987c364282a2b02e5 Mon Sep 17 00:00:00 2001 From: Frederic Crozat <fcrozat@mandriva.com> Subject: [PATCH] Introduce runlevel 7, acting as runlevel S Signed-off-by: Frederic Crozat <fcrozat@mandriva.com> --- chkconfig.c~ 2012-03-07 12:23:29.000000000 -0500 +++ chkconfig.c 2012-07-28 22:31:35.255726486 -0400 @@ -114,7 +114,7 @@ if (services[i].stopDeps) { for (j = 0; services[i].stopDeps[j].name ; j++) { if (!strcmp(services[i].stopDeps[j].name, s.name)) { - for (k = 0 ; k <= 6; k++) { + for (k = 0 ; k <= 7; k++) { if (isConfigured(services[i].name, k, NULL, NULL) && !(services[i].currentLevels & (1 << k))) return 1; } @@ -124,7 +124,7 @@ } } - for (j = 0 ; j < 7; j++) { + for (j = 0 ; j < 8; j++) { if (level == -1 || level == j) { if (!findServiceEntries(name, j, &globres)) { for (i = 0; i < globres.gl_pathc; i++) @@ -233,7 +233,7 @@ int resolved = (s0 != s->sPriority) || (k0 != s->kPriority); if (target || resolved) { - for (i = 0; i < 7; i++) { + for (i = 0; i < 8; i++) { if (isConfigured(s->name, i, NULL, NULL)) { int on = isOn(s->name, i); delService(s->name, TYPE_INIT_D, i); @@ -301,16 +301,16 @@ return 0; } if (s.isLSB) { - for (i = 0; i < 7; i++) { + for (i = 0; i < 8; i++) { if (isConfigured(s.name, i, NULL, NULL)) break; } - if (i == 7) { + if (i == 8) { s.currentLevels = s.levels; } rc = frobDependencies(&s); } else - for (i = 0; i < 7; i++) { + for (i = 0; i < 8; i++) { if (!isConfigured(name, i, NULL, NULL)) { if ((1 << i) & s.levels) doSetService(s, i, 1); @@ -346,7 +346,7 @@ * at all. */ - for (level = 0; level < 7; level++) { + for (level = 0; level < 8; level++) { thisLevelAdded = isConfigured(name, level, &priority, &type); thisLevelOn = s.levels & 1<<level; if (thisLevelAdded) { @@ -366,7 +366,7 @@ } if (configured && doChange) { - for (level = 0; level < 7; level++) { + for (level = 0; level < 8; level++) { if (!findServiceEntries(name, level, &globres)) { for (i = 0; i < globres.gl_pathc; i++) unlink(globres.gl_pathv[i]); @@ -389,7 +389,7 @@ if (s.type == TYPE_INIT_D) { rc = 2; - for (i = 0 ; i < 7 ; i++) { + for (i = 0 ; i < 8 ; i++) { if (isConfigured(s.name, i, NULL, NULL)) { rc = 0; break; @@ -409,7 +409,7 @@ return 0; } - for (i = 0; i < 7; i++) { + for (i = 0; i < 8; i++) { printf("\t%d:%s", i, isOn(s.name, i) ? _("on") : _("off")); } printf("\n"); @@ -542,11 +542,11 @@ struct service s; if (!where && state != -1) { - /* levels 2, 3, 4, 5 */ - where = (1 << 2) | (1 << 3) | (1 << 4) | (1 << 5); + /* levels 2, 3, 4, 5, 7 */ + where = (1 << 2) | (1 << 3) | (1 << 4) | (1 << 5) | (1 << 7); } else if (!where) { where = (1 << 0) | (1 << 1) | (1 << 2) | - (1 << 3) | (1 << 4) | (1 << 5) | (1 << 6); + (1 << 3) | (1 << 4) | (1 << 5) | (1 << 6) | (1 << 7); } if ((rc = readServiceInfo(name, type, &s, 0))) { @@ -564,7 +564,7 @@ else if (state != -2) { /* If we're enabling/disabling, set currentLevels to desired state */ - for (i = 0; i < 7; i++) { + for (i = 0; i < 8; i++) { if (!((1 << i) & where)) continue; if (state == 1) @@ -575,7 +575,7 @@ } if (s.isLSB) frobDependencies(&s); - for (i = 0; i < 7; i++) { + for (i = 0; i < 8; i++) { if (!((1 << i) & where)) continue; --- leveldb.c~ 2012-03-07 12:23:29.000000000 -0500 +++ leveldb.c 2012-07-28 22:36:04.904997521 -0400 @@ -46,7 +46,7 @@ return emptyOk ? 0 : -1; while (*chptr) { - if (!isdigit(*chptr) || *chptr > '6') return -1; + if (!isdigit(*chptr) || *chptr > '7') return -1; rc |= 1 << (*chptr - '0'); chptr++; } @@ -226,7 +226,7 @@ } while(isspace(*buf)); if (buf && strncmp(buf,"yes",3)) { - serv.levels = parseLevels("0123456",0); + serv.levels = parseLevels("01234567",0); if (serv.enabled == -1) serv.enabled = 1; } else { @@ -731,7 +731,7 @@ int whatLevels(char *name) { int i, ret = 0; - for (i = 0; i < 7; i++) { + for (i = 0; i < 8; i++) { ret |= (isOn(name, i) << i); } return ret; --- ntsysv.c~ 2012-03-07 12:23:29.000000000 -0500 +++ ntsysv.c 2012-07-28 22:33:37.495262502 -0400 @@ -131,7 +131,7 @@ (!services[i].enabled && states[i] == '*')) setXinetdService(services[i], states[i] == '*'); } else { - for (j = 0; j < 7; j++) { + for (j = 0; j < 8; j++) { if (levels & (1 << j)) doSetService(services[i], j, states[i] == '*'); } @@ -196,7 +196,7 @@ int i; rc = -2; - for (i = 0 ; i < 7 ; i++) { + for (i = 0 ; i < 8 ; i++) { if (isConfigured(ent->d_name, i, NULL, NULL)) { rc = 0; break;