#include <stdbool.h>
#include <dirent.h>
#include <poll.h>
+#include <sys/wait.h>
#include <sys/socket.h>
#include <netinet/tcp.h>
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");
}
} 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);
}
#include <stdlib.h>
#include <stdint.h>
#include <sys/stat.h>
+#include <errno.h>
#include <sys/socket.h>
#include <netinet/tcp.h>
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;
}