projects
/
libradsec.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Create threads with a 32 KB stack rather than what happens to be the default.
[libradsec.git]
/
radsecproxy.c
diff --git
a/radsecproxy.c
b/radsecproxy.c
index
e919ceb
..
56abe3e
100644
(file)
--- a/
radsecproxy.c
+++ b/
radsecproxy.c
@@
-1816,7
+1816,7
@@
void *clientwr(void *arg) {
#if defined ENABLE_EXPERIMENTAL_DYNDISC
server->in_use = 1;
#endif
#if defined ENABLE_EXPERIMENTAL_DYNDISC
server->in_use = 1;
#endif
- if (pthread_create(&clientrdth,
NULL
, conf->pdef->clientconnreader, (void *)server)) {
+ if (pthread_create(&clientrdth,
&pthread_attr
, conf->pdef->clientconnreader, (void *)server)) {
debugerrno(errno, DBG_ERR, "clientwr: pthread_create failed");
goto errexit;
}
debugerrno(errno, DBG_ERR, "clientwr: pthread_create failed");
goto errexit;
}
@@
-1975,7
+1975,7
@@
void createlistener(uint8_t type, char *arg) {
if (!sp)
debugx(1, DBG_ERR, "malloc failed");
*sp = s;
if (!sp)
debugx(1, DBG_ERR, "malloc failed");
*sp = s;
- if (pthread_create(&th,
NULL
, protodefs[type]->listener, (void *)sp))
+ if (pthread_create(&th,
&pthread_attr
, protodefs[type]->listener, (void *)sp))
debugerrnox(errno, DBG_ERR, "pthread_create failed");
pthread_detach(th);
}
debugerrnox(errno, DBG_ERR, "pthread_create failed");
pthread_detach(th);
}
@@
-2225,7
+2225,7
@@
struct list *createsubrealmservers(struct realm *realm, struct list *srvconfs) {
#if defined ENABLE_EXPERIMENTAL_DYNDISC
pthread_mutex_lock(&srvconf->servers->lock);
#endif
#if defined ENABLE_EXPERIMENTAL_DYNDISC
pthread_mutex_lock(&srvconf->servers->lock);
#endif
- if (pthread_create(&clientth,
NULL
, clientwr, (void *)(srvconf->servers))) {
+ if (pthread_create(&clientth,
&pthread_attr
, clientwr, (void *)(srvconf->servers))) {
#if defined ENABLE_EXPERIMENTAL_DYNDISC
pthread_mutex_unlock(&srvconf->servers->lock);
#endif
#if defined ENABLE_EXPERIMENTAL_DYNDISC
pthread_mutex_unlock(&srvconf->servers->lock);
#endif
@@
-3344,6
+3344,11
@@
int radsecproxy_main(int argc, char **argv) {
debug_init("radsecproxy");
debug_set_level(DEBUG_LEVEL);
debug_init("radsecproxy");
debug_set_level(DEBUG_LEVEL);
+ if (pthread_attr_init(&pthread_attr))
+ debugx(1, DBG_ERR, "pthread_attr_init failed");
+ if (pthread_attr_setstacksize(&pthread_attr, PTHREAD_STACK_SIZE))
+ debugx(1, DBG_ERR, "pthread_attr_setstacksize failed");
+
for (i = 0; i < RAD_PROTOCOUNT; i++)
protodefs[i] = protoinits[i](i);
for (i = 0; i < RAD_PROTOCOUNT; i++)
protodefs[i] = protoinits[i](i);
@@
-3395,7
+3400,7
@@
int radsecproxy_main(int argc, char **argv) {
sigaddset(&sigset, SIGHUP);
sigaddset(&sigset, SIGPIPE);
pthread_sigmask(SIG_BLOCK, &sigset, NULL);
sigaddset(&sigset, SIGHUP);
sigaddset(&sigset, SIGPIPE);
pthread_sigmask(SIG_BLOCK, &sigset, NULL);
- pthread_create(&sigth,
NULL
, sighandler, NULL);
+ pthread_create(&sigth,
&pthread_attr
, sighandler, NULL);
for (entry = list_first(srvconfs); entry; entry = list_next(entry)) {
srvconf = (struct clsrvconf *)entry->data;
for (entry = list_first(srvconfs); entry; entry = list_next(entry)) {
srvconf = (struct clsrvconf *)entry->data;
@@
-3403,7
+3408,7
@@
int radsecproxy_main(int argc, char **argv) {
continue;
if (!addserver(srvconf))
debugx(1, DBG_ERR, "failed to add server");
continue;
if (!addserver(srvconf))
debugx(1, DBG_ERR, "failed to add server");
- if (pthread_create(&srvconf->servers->clientth,
NULL
, clientwr,
+ if (pthread_create(&srvconf->servers->clientth,
&pthread_attr
, clientwr,
(void *)(srvconf->servers)))
debugx(1, DBG_ERR, "pthread_create failed");
}
(void *)(srvconf->servers)))
debugx(1, DBG_ERR, "pthread_create failed");
}