- remove priv_exit.

- sync errno handling code from orignal of syslogd.
This commit is contained in:
iratqq 2008-03-16 17:36:54 +00:00
commit 43758179d9
3 changed files with 5 additions and 21 deletions

View file

@ -93,7 +93,6 @@ server_terminate()
{
close_socket();
sj_closeall();
priv_exit();
exit(0);
}
@ -152,7 +151,6 @@ main(int argc, char **argv)
close_socket();
sj_closeall();
priv_exit();
exit(0);
}

View file

@ -33,8 +33,7 @@ enum priv_state {
};
enum cmd_types {
PRIV_GETUGID,
PRIV_EXIT
PRIV_GETUGID
};
static int auth_fd = -1;
@ -166,17 +165,12 @@ priv_init()
}
endpwent();
break;
case PRIV_EXIT:
close(socks[0]);
_exit(1);
default:
fprintf(stderr, "auth unknown command %d\n", cmd);
close(socks[0]);
_exit(255);
}
}
fprintf(stderr, "auth fatal error\n");
close(socks[0]);
_exit(1);
}
@ -255,11 +249,11 @@ must_write(int fd, void *buf, size_t n)
static void
sig_pass_to_chld(int sig)
{
int oerrno = errno;
int save_errno = errno;
if (child_pid != -1)
kill(child_pid, sig);
errno = oerrno;
errno = save_errno;
}
/* When child dies, move into the shutdown state */
@ -267,6 +261,7 @@ sig_pass_to_chld(int sig)
static void
sig_got_chld(int sig)
{
int save_errno = errno;
pid_t pid;
do {
@ -274,6 +269,7 @@ sig_got_chld(int sig)
if (pid == child_pid && cur_state < STATE_QUIT)
cur_state = STATE_QUIT;
} while (pid > 0 || (pid == -1 && errno == EINTR));
errno = save_errno;
}
int
@ -309,13 +305,4 @@ priv_getugid(char *username, sj3_ugid *ugid)
}
}
void
priv_exit()
{
int cmd = PRIV_EXIT;
must_write(auth_fd, &cmd, sizeof(int));
return;
}

View file

@ -29,7 +29,6 @@ typedef struct {
/* auth.c */
int priv_init();
void priv_exit();
int priv_getugid(char *, sj3_ugid *);