should have fixed fd issue
git-svn-id: file:///raid/svn-personal/okuu/trunk@13 7d206d2a-66c2-044b-96de-ba755a9b3ba8
This commit is contained in:
parent
11be027fcf
commit
461ca3c698
16
Bot/bot.c
16
Bot/bot.c
|
@ -16,6 +16,7 @@
|
|||
#include <stdbool.h>
|
||||
#include <dirent.h>
|
||||
#include <poll.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/tcp.h>
|
||||
|
@ -42,7 +43,9 @@ extern int ircport;
|
|||
int ok_sock;
|
||||
struct sockaddr_in ok_addr;
|
||||
|
||||
void ok_close(int sock) { shutdown(sock, SHUT_RDWR);close(sock); }
|
||||
void ok_close(int sock) {
|
||||
while(close(sock) == 0);
|
||||
}
|
||||
|
||||
void ok_bot_kill(int sig) {
|
||||
fprintf(stderr, "Shutdown\n");
|
||||
|
@ -241,7 +244,16 @@ void ok_bot(void) {
|
|||
}
|
||||
} else if(sentin[0] == '#') {
|
||||
/* This was sent in channel */
|
||||
if(ok_news_write(nick, msg) != 0) {
|
||||
pid_t pid = fork();
|
||||
int code;
|
||||
if(pid == 0){
|
||||
_exit(ok_news_write(nick, msg));
|
||||
}else{
|
||||
int status;
|
||||
waitpid(pid, &status, 0);
|
||||
code = WEXITSTATUS(status);
|
||||
}
|
||||
if(code != 0) {
|
||||
sprintf(construct, "PRIVMSG %s :Could not send the message to the USENET", sentin);
|
||||
ircfw_socket_send_cmd(ok_sock, NULL, construct);
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <sys/stat.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/tcp.h>
|
||||
|
@ -250,7 +251,7 @@ int ok_news_write(const char* nick, const char* message) {
|
|||
int nt_sock;
|
||||
struct sockaddr_in nt_addr;
|
||||
if((nt_sock = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
|
||||
fprintf(stderr, "Socket creation failure\n");
|
||||
fprintf(stderr, "Socket creation failure: %s\n", strerror(errno));
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user