| 393 |
} |
} |
| 394 |
|
|
| 395 |
// Redirect Input |
// Redirect Input |
|
close(STDIN_FILENO); |
|
| 396 |
if (dup2(socket_client, STDIN_FILENO) == -1) |
if (dup2(socket_client, STDIN_FILENO) == -1) |
| 397 |
{ |
{ |
| 398 |
log_error("Redirect stdin to client socket failed\n"); |
log_error("Redirect stdin to client socket failed\n"); |
| 400 |
} |
} |
| 401 |
|
|
| 402 |
// Redirect Output |
// Redirect Output |
|
close(STDOUT_FILENO); |
|
| 403 |
if (dup2(socket_client, STDOUT_FILENO) == -1) |
if (dup2(socket_client, STDOUT_FILENO) == -1) |
| 404 |
{ |
{ |
| 405 |
log_error("Redirect stdout to client socket failed\n"); |
log_error("Redirect stdout to client socket failed\n"); |
| 594 |
} |
} |
| 595 |
else |
else |
| 596 |
{ |
{ |
| 597 |
sin.sin_addr.s_addr = (uint32_t)j; |
ret = hash_dict_inc(hash_dict_sockaddr_count, (uint64_t)j, -1); |
|
j = 0; |
|
|
ret = hash_dict_get(hash_dict_sockaddr_count, sin.sin_addr.s_addr, (int64_t *)&j); |
|
| 598 |
if (ret < 0) |
if (ret < 0) |
| 599 |
{ |
{ |
| 600 |
log_error("hash_dict_get(hash_dict_sockaddr_count, %d) error\n", sin.sin_addr.s_addr); |
log_error("hash_dict_inc(hash_dict_sockaddr_count, %d, -1) error\n", j); |
|
} |
|
|
else if (ret == 0) |
|
|
{ |
|
|
log_error("hash_dict_get(hash_dict_sockaddr_count, %d) not found\n", sin.sin_addr.s_addr); |
|
|
j = 1; |
|
|
} |
|
|
|
|
|
j--; |
|
|
ret = hash_dict_set(hash_dict_sockaddr_count, sin.sin_addr.s_addr, j); |
|
|
if (ret < 0) |
|
|
{ |
|
|
log_error("hash_dict_set(hash_dict_sockaddr_count, %d, %d) error\n", sin.sin_addr.s_addr, j); |
|
| 601 |
} |
} |
| 602 |
|
|
| 603 |
ret = hash_dict_del(hash_dict_pid_sockaddr, (uint64_t)siginfo.si_pid); |
ret = hash_dict_del(hash_dict_pid_sockaddr, (uint64_t)siginfo.si_pid); |
| 658 |
SYS_conf_reload = 0; |
SYS_conf_reload = 0; |
| 659 |
sd_notify(0, "RELOADING=1"); |
sd_notify(0, "RELOADING=1"); |
| 660 |
|
|
| 661 |
|
// Restart log |
| 662 |
|
if (log_restart() < 0) |
| 663 |
|
{ |
| 664 |
|
log_error("Restart logging failed\n"); |
| 665 |
|
} |
| 666 |
|
|
| 667 |
// Reload configuration |
// Reload configuration |
| 668 |
if (load_conf(CONF_BBSD) < 0) |
if (load_conf(CONF_BBSD) < 0) |
| 669 |
{ |
{ |
| 720 |
log_common("Reload section config and gen_ex successfully\n"); |
log_common("Reload section config and gen_ex successfully\n"); |
| 721 |
} |
} |
| 722 |
|
|
| 723 |
|
// Notify child processes to reload configuration |
| 724 |
|
if (kill(-getpid(), SIGUSR1) < 0) |
| 725 |
|
{ |
| 726 |
|
log_error("Send SIGUSR1 signal failed (%d)\n", errno); |
| 727 |
|
} |
| 728 |
|
|
| 729 |
sd_notify(0, "READY=1"); |
sd_notify(0, "READY=1"); |
| 730 |
} |
} |
| 731 |
|
|
| 804 |
log_error("hash_dict_set(hash_dict_pid_sockaddr, %d, %s) error\n", pid, hostaddr_client); |
log_error("hash_dict_set(hash_dict_pid_sockaddr, %d, %s) error\n", pid, hostaddr_client); |
| 805 |
} |
} |
| 806 |
|
|
| 807 |
ret = hash_dict_set(hash_dict_sockaddr_count, (uint64_t)sin.sin_addr.s_addr, j + 1); |
ret = hash_dict_inc(hash_dict_sockaddr_count, (uint64_t)sin.sin_addr.s_addr, 1); |
| 808 |
if (ret < 0) |
if (ret < 0) |
| 809 |
{ |
{ |
| 810 |
log_error("hash_dict_set(hash_dict_sockaddr_count, %s, %d) error\n", hostaddr_client, j + 1); |
log_error("hash_dict_inc(hash_dict_sockaddr_count, %s, %d) error\n", hostaddr_client, 1); |
| 811 |
} |
} |
| 812 |
} |
} |
| 813 |
} |
} |