fixed other stuff

This commit is contained in:
garbeam@mmv.wmii.de 2005-12-29 19:24:42 +02:00
parent 061faac6ec
commit f313260be0

10
ii.c
View File

@ -70,8 +70,7 @@ static void create_dirtree(const char *dir)
mkdir(tmp, S_IRWXU); mkdir(tmp, S_IRWXU);
} }
static int get_filepath(char *filepath, size_t len, char *channel, static int get_filepath(char *filepath, size_t len, char *channel, char *file)
char *file)
{ {
if(channel) { if(channel) {
if(!snprintf(filepath, len, "%s/%s", path, channel)) if(!snprintf(filepath, len, "%s/%s", path, channel))
@ -82,8 +81,7 @@ static int get_filepath(char *filepath, size_t len, char *channel,
return snprintf(filepath, len, "%s/%s", path, file); return snprintf(filepath, len, "%s/%s", path, file);
} }
static void create_filepath(char *filepath, size_t len, char *channel, static void create_filepath(char *filepath, size_t len, char *channel, char *suffix)
char *suffix)
{ {
if(!get_filepath(filepath, len, channel, suffix)) { if(!get_filepath(filepath, len, channel, suffix)) {
fprintf(stderr, "%s", "ii: path to irc directory too long\n"); fprintf(stderr, "%s", "ii: path to irc directory too long\n");
@ -102,6 +100,8 @@ static int open_channel(char *name)
{ {
static char infile[256]; static char infile[256];
create_filepath(infile, sizeof(infile), name, "in"); create_filepath(infile, sizeof(infile), name, "in");
if(access(infile, F_OK) == -1)
mkfifo(infile, S_IRWXU);
return open(infile, O_RDONLY | O_NONBLOCK, 0); return open(infile, O_RDONLY | O_NONBLOCK, 0);
} }
@ -110,7 +110,7 @@ static void add_channel(char *name)
Channel *c; Channel *c;
int fd = open_channel(name); int fd = open_channel(name);
if(fd < 0) { if(fd == -1) {
perror("ii: cannot create in channels"); perror("ii: cannot create in channels");
return; return;
} }