os: drop self-limiting resources
It's only rarely used and can be easily achieved by generic means, eg. via ulimit or supervisor settings. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
		
							parent
							
								
									b7b526024a
								
							
						
					
					
						commit
						6a01f488c8
					
				| 
						 | 
				
			
			@ -153,10 +153,6 @@ try_raising_nofile_limit(void)
 | 
			
		|||
#ifdef RLIMIT_NOFILE
 | 
			
		||||
    struct rlimit rlim;
 | 
			
		||||
 | 
			
		||||
    /* Only fiddle with the limit if not set explicitly from the command line */
 | 
			
		||||
    if (limitNoFile >= 0)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
    if (getrlimit(RLIMIT_NOFILE, &rlim) < 0) {
 | 
			
		||||
        ErrorF("Failed to get the current nofile limit: %s\n", strerror(errno));
 | 
			
		||||
        return;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -323,21 +323,6 @@ platform and configuration specific.
 | 
			
		|||
.SH SERVER DEPENDENT OPTIONS
 | 
			
		||||
Some X servers accept the following options:
 | 
			
		||||
.TP 8
 | 
			
		||||
.B \-ld \fIkilobytes\fP
 | 
			
		||||
sets the data space limit of the server to the specified number of kilobytes.
 | 
			
		||||
A value of zero makes the data size as large as possible.  The default value
 | 
			
		||||
of \-1 leaves the data space limit unchanged.
 | 
			
		||||
.TP 8
 | 
			
		||||
.B \-lf \fIfiles\fP
 | 
			
		||||
sets the number-of-open-files limit of the server to the specified number.
 | 
			
		||||
A value of zero makes the limit as large as possible.  The default value
 | 
			
		||||
of \-1 leaves the limit unchanged.
 | 
			
		||||
.TP 8
 | 
			
		||||
.B \-ls \fIkilobytes\fP
 | 
			
		||||
sets the stack space limit of the server to the specified number of kilobytes.
 | 
			
		||||
A value of zero makes the stack size as large as possible.  The default value
 | 
			
		||||
of \-1 leaves the stack space limit unchanged.
 | 
			
		||||
.TP 8
 | 
			
		||||
.B \-maxclients
 | 
			
		||||
.BR 64 | 128 | 256 | 512
 | 
			
		||||
Set the maximum number of clients allowed to connect to the X server.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -205,10 +205,6 @@ void CloseDownConnection(ClientPtr client);
 | 
			
		|||
extern int LimitClients;
 | 
			
		||||
extern Bool PartialNetwork;
 | 
			
		||||
 | 
			
		||||
extern int limitDataSpace;
 | 
			
		||||
extern int limitStackSpace;
 | 
			
		||||
extern int limitNoFile;
 | 
			
		||||
 | 
			
		||||
extern Bool CoreDump;
 | 
			
		||||
extern Bool NoListenAll;
 | 
			
		||||
extern Bool AllowByteSwappedClients;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										50
									
								
								os/osinit.c
								
								
								
								
							
							
						
						
									
										50
									
								
								os/osinit.c
								
								
								
								
							| 
						 | 
				
			
			@ -77,16 +77,6 @@ SOFTWARE.
 | 
			
		|||
#define ADMPATH "/usr/adm/X%smsgs"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef RLIMIT_DATA
 | 
			
		||||
int limitDataSpace = -1;
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef RLIMIT_STACK
 | 
			
		||||
int limitStackSpace = -1;
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef RLIMIT_NOFILE
 | 
			
		||||
int limitNoFile = -1;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* The actual user defined max number of clients */
 | 
			
		||||
int LimitClients = LIMITCLIENTS;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -266,46 +256,6 @@ OsInit(void)
 | 
			
		|||
        if (getpgrp() == 0)
 | 
			
		||||
            setpgid(0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef RLIMIT_DATA
 | 
			
		||||
        if (limitDataSpace >= 0) {
 | 
			
		||||
            struct rlimit rlim;
 | 
			
		||||
 | 
			
		||||
            if (!getrlimit(RLIMIT_DATA, &rlim)) {
 | 
			
		||||
                if ((limitDataSpace > 0) && (limitDataSpace < rlim.rlim_max))
 | 
			
		||||
                    rlim.rlim_cur = limitDataSpace;
 | 
			
		||||
                else
 | 
			
		||||
                    rlim.rlim_cur = rlim.rlim_max;
 | 
			
		||||
                (void) setrlimit(RLIMIT_DATA, &rlim);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef RLIMIT_STACK
 | 
			
		||||
        if (limitStackSpace >= 0) {
 | 
			
		||||
            struct rlimit rlim;
 | 
			
		||||
 | 
			
		||||
            if (!getrlimit(RLIMIT_STACK, &rlim)) {
 | 
			
		||||
                if ((limitStackSpace > 0) && (limitStackSpace < rlim.rlim_max))
 | 
			
		||||
                    rlim.rlim_cur = limitStackSpace;
 | 
			
		||||
                else
 | 
			
		||||
                    rlim.rlim_cur = rlim.rlim_max;
 | 
			
		||||
                (void) setrlimit(RLIMIT_STACK, &rlim);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef RLIMIT_NOFILE
 | 
			
		||||
        if (limitNoFile >= 0) {
 | 
			
		||||
            struct rlimit rlim;
 | 
			
		||||
 | 
			
		||||
            if (!getrlimit(RLIMIT_NOFILE, &rlim)) {
 | 
			
		||||
                if ((limitNoFile > 0) && (limitNoFile < rlim.rlim_max))
 | 
			
		||||
                    rlim.rlim_cur = limitNoFile;
 | 
			
		||||
                else
 | 
			
		||||
                    rlim.rlim_cur = rlim.rlim_max;
 | 
			
		||||
                (void) setrlimit(RLIMIT_NOFILE, &rlim);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
#endif
 | 
			
		||||
        LockServer();
 | 
			
		||||
        been_here = TRUE;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										39
									
								
								os/utils.c
								
								
								
								
							
							
						
						
									
										39
									
								
								os/utils.c
								
								
								
								
							| 
						 | 
				
			
			@ -302,15 +302,6 @@ UseMsg(void)
 | 
			
		|||
    ErrorF("+iglx                  Allow creating indirect GLX contexts\n");
 | 
			
		||||
    ErrorF("-iglx                  Prohibit creating indirect GLX contexts (default)\n");
 | 
			
		||||
    ErrorF("-I                     ignore all remaining arguments\n");
 | 
			
		||||
#ifdef RLIMIT_DATA
 | 
			
		||||
    ErrorF("-ld int                limit data space to N Kb\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef RLIMIT_NOFILE
 | 
			
		||||
    ErrorF("-lf int                limit number of open files to N\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef RLIMIT_STACK
 | 
			
		||||
    ErrorF("-ls int                limit stack space to N Kb\n");
 | 
			
		||||
#endif
 | 
			
		||||
    LockServerUseMsg();
 | 
			
		||||
    ErrorF("-maxclients n          set maximum number of clients (power of two)\n");
 | 
			
		||||
    ErrorF("-nolisten string       don't listen on protocol\n");
 | 
			
		||||
| 
						 | 
				
			
			@ -574,36 +565,6 @@ ProcessCommandLine(int argc, char *argv[])
 | 
			
		|||
            else
 | 
			
		||||
                UseMsg();
 | 
			
		||||
        }
 | 
			
		||||
#ifdef RLIMIT_DATA
 | 
			
		||||
        else if (strcmp(argv[i], "-ld") == 0) {
 | 
			
		||||
            if (++i < argc) {
 | 
			
		||||
                limitDataSpace = atoi(argv[i]);
 | 
			
		||||
                if (limitDataSpace > 0)
 | 
			
		||||
                    limitDataSpace *= 1024;
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
                UseMsg();
 | 
			
		||||
        }
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef RLIMIT_NOFILE
 | 
			
		||||
        else if (strcmp(argv[i], "-lf") == 0) {
 | 
			
		||||
            if (++i < argc)
 | 
			
		||||
                limitNoFile = atoi(argv[i]);
 | 
			
		||||
            else
 | 
			
		||||
                UseMsg();
 | 
			
		||||
        }
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef RLIMIT_STACK
 | 
			
		||||
        else if (strcmp(argv[i], "-ls") == 0) {
 | 
			
		||||
            if (++i < argc) {
 | 
			
		||||
                limitStackSpace = atoi(argv[i]);
 | 
			
		||||
                if (limitStackSpace > 0)
 | 
			
		||||
                    limitStackSpace *= 1024;
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
                UseMsg();
 | 
			
		||||
        }
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef LOCK_SERVER
 | 
			
		||||
        else if (strcmp(argv[i], "-nolock") == 0) {
 | 
			
		||||
#if !defined(WIN32) && !defined(__CYGWIN__)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue