stunnel/stunnel-listenqueue-option.patch
Andreas Vetter f25c4c5cca Accepting request 93518 from home:darix:branches:security:Stunnel
- update to version 4.47
- refreshed stunnel-listenqueue-option.patch to apply cleanly again
- pass the path to the config file to the binary in the init
  script: without this the init script does not work for me.

OBS-URL: https://build.opensuse.org/request/show/93518
OBS-URL: https://build.opensuse.org/package/show/security:Stunnel/stunnel?expand=0&rev=55
2011-11-25 09:53:07 +00:00

56 lines
2.0 KiB
Diff

Index: src/options.c
===================================================================
--- src/options.c.orig
+++ src/options.c
@@ -1535,6 +1535,25 @@ static char *parse_service_option(CMD cm
break;
}
+ /* listenqueue */
+ switch(cmd) {
+ case CMD_INIT:
+ section->listenqueue=SOMAXCONN;
+ break;
+ case CMD_EXEC:
+ if(strcasecmp(opt, "listenqueue"))
+ break;
+ section->listenqueue=atoi(arg);
+ return (section->listenqueue?NULL:"Bad verify level");
+ case CMD_DEFAULT:
+ s_log(LOG_NOTICE, "%-15s = %d", "listenqueue", SOMAXCONN);
+ break;
+ case CMD_HELP:
+ s_log(LOG_NOTICE, "%-15s = defines the maximum length the queue of pending onnections may grow to (max SOMAXCONN)", "listenqueue");
+ break;
+ }
+
+
if(cmd==CMD_EXEC)
return option_not_found;
return NULL; /* OK */
Index: src/prototypes.h
===================================================================
--- src/prototypes.h.orig
+++ src/prototypes.h
@@ -170,6 +170,7 @@ typedef struct service_options_struct {
int timeout_close; /* maximum close_notify time */
int timeout_connect; /* maximum connect() time */
int timeout_idle; /* maximum idle connection time */
+ int listenqueue; /* Listen backlog */
enum {FAILOVER_RR, FAILOVER_PRIO} failover; /* failover strategy */
/* service-specific data for protocol.c */
Index: src/stunnel.c
===================================================================
--- src/stunnel.c.orig
+++ src/stunnel.c
@@ -330,7 +330,7 @@ int bind_ports(void) {
s_log(LOG_DEBUG, "Service %s bound to %s",
opt->servname, local_address);
str_free(local_address);
- if(listen(opt->fd, SOMAXCONN)) {
+ if(listen(opt->fd, opt->listenqueue)) {
sockerror("listen");
closesocket(opt->fd);
return 1;