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 <stdbool.h>
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <poll.h>
|
#include <poll.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <netinet/tcp.h>
|
#include <netinet/tcp.h>
|
||||||
|
@ -42,7 +43,9 @@ extern int ircport;
|
||||||
int ok_sock;
|
int ok_sock;
|
||||||
struct sockaddr_in ok_addr;
|
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) {
|
void ok_bot_kill(int sig) {
|
||||||
fprintf(stderr, "Shutdown\n");
|
fprintf(stderr, "Shutdown\n");
|
||||||
|
@ -241,7 +244,16 @@ void ok_bot(void) {
|
||||||
}
|
}
|
||||||
} else if(sentin[0] == '#') {
|
} else if(sentin[0] == '#') {
|
||||||
/* This was sent in channel */
|
/* 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);
|
sprintf(construct, "PRIVMSG %s :Could not send the message to the USENET", sentin);
|
||||||
ircfw_socket_send_cmd(ok_sock, NULL, construct);
|
ircfw_socket_send_cmd(ok_sock, NULL, construct);
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <netinet/tcp.h>
|
#include <netinet/tcp.h>
|
||||||
|
@ -250,7 +251,7 @@ int ok_news_write(const char* nick, const char* message) {
|
||||||
int nt_sock;
|
int nt_sock;
|
||||||
struct sockaddr_in nt_addr;
|
struct sockaddr_in nt_addr;
|
||||||
if((nt_sock = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
|
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;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user