* changed logic to skip entries without chance for success (backported
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Fri, 20 Feb 2004 19:35:50 +0000 (19:35 +0000)
committerEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Fri, 20 Feb 2004 19:35:50 +0000 (19:35 +0000)
  from HEAD)
* fixed '--help' message
* give vc_set_rlimit() the context instead of a static '-2'
* require a ctx on the CLI

git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/branches/SYSCALL_SWITCH@979 94cd875c-1c1d-0410-91d2-eb244daf1a30

util-vserver/src/vlimit.c

index 6d0a9da..45134d6 100644 (file)
@@ -74,7 +74,7 @@ showHelp(int fd, char const *cmd, int res)
   WRITE_MSG(fd, "Usage:  ");
   WRITE_STR(fd, cmd);
   WRITE_MSG(fd,
-           " [-c|--ctx <ctx>] [-a|--all] [-MSH  --<nr> <value>]*\n"
+           " -c <xid> [-a|--all] [-MSH  --<nr> <value>]*\n"
            "Please report bugs to " PACKAGE_BUGREPORT "\n");
   exit(res);
 }
@@ -123,9 +123,9 @@ showAll(int ctx)
   struct vc_rlimit_mask        mask;
   size_t               i;
 
-  if (vc_get_rlimit_mask(-2, &mask)==-1) {
+  if (vc_get_rlimit_mask(ctx, &mask)==-1) {
     perror("vc_get_rlimit_mask()");
-    //exit(1);
+    exit(1);
   }
 
   for (i=0; i<32; ++i) {
@@ -133,6 +133,7 @@ showAll(int ctx)
     struct vc_rlimit   limit;
     char               buf[100], *ptr=buf;
     
+    if (((mask.min|mask.soft|mask.hard) & bitmask)==0) continue;
     if (vc_get_rlimit(ctx, i, &limit)==-1) {
       perror("vc_get_rlimit()");
       //continue;
@@ -157,7 +158,7 @@ static void
   size_t               i;
   for (i=0; i<32; ++i) {
     if ((mask & (1<<i))==0) continue;
-    if (vc_set_rlimit(-2, i, limits+i)) {
+    if (vc_set_rlimit(ctx, i, limits+i)) {
       perror("vc_set_rlimit()");
     }
   }
@@ -170,7 +171,7 @@ int main (int argc, char *argv[])
   int                  set_mask = 0;
   struct vc_rlimit     limits[32];
   bool                 show_all = false;
-  xid_t                        ctx      = VC_SAMECTX;
+  xid_t                        ctx      = VC_NOCTX;
 
   {
     size_t             i;
@@ -224,6 +225,11 @@ int main (int argc, char *argv[])
     }
   }
 
+  if (ctx==VC_NOCTX) {
+    WRITE_MSG(2, "No context specified; try '--help' for more information\n");
+    return EXIT_FAILURE;
+  }
+
   setLimits(ctx, limits, lim_mask);
   if (show_all) showAll(ctx);