Репозитории ALT
5.1: | 3.6.4-alt2.rel3.2 |
4.1: | 3.6.4-alt2.rel3 |
4.0: | 3.6.1-alt1 |
3.0: | |
+backports: | 3.0-alt0.M30.4 |
Группа :: Система/Серверы
Пакет: ss5
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: ss5-daemon.patch
Скачать
Скачать
--- 3.6.4.orig/ss5-3.6.4/src/SS5Server.c 2008-04-12 03:38:54 +0300
+++ 3.6.4/ss5-3.6.4/src/SS5Server.c 2008-04-12 03:41:23 +0300
@@ -140,28 +140,25 @@
S5RetCode S5MakeDaemon( void )
{
- pid_t pid;
+ pid_t pid, sid;
pid=fork();
-
- /* If father then exit */
- if( pid )
- exit(0);
- /* If child then ontinue and become process group leader */
- else if( pid != -1 )
- setsid();
- else
- return ERR;
-
- pid=fork();
- /* No terminal association */
- if( pid )
- exit(0);
- else if( pid != -1 ) {
- chdir("/"); umask(0);
- }
- else
- return ERR;
+ if (pid < 0)
+ return ERR;
+ if (pid > 0)
+ exit(0);
+
+ umask(0);
+ sid = setsid();
+ if (sid < 0)
+ return ERR;
+
+ if ((chdir("/")) < 0)
+ return ERR;
+
+ freopen( "/dev/null", "r", stdin);
+ freopen( "/dev/null", "w", stdout);
+ freopen( "/dev/null", "w", stderr);
return OK;
}