updated
This commit is contained in:
+1
-1
@@ -110,7 +110,7 @@ Examples:
|
|||||||
CONFIG FILE
|
CONFIG FILE
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
Loaded from ~/.ircrc or ~/.config/irc/ircrc (first found wins).
|
Loaded from ~/.sirc or ~/.config/sirc/config (first found wins).
|
||||||
CLI flags override the first server in the config.
|
CLI flags override the first server in the config.
|
||||||
|
|
||||||
Use [server] blocks for multiple servers. Each block is an independent
|
Use [server] blocks for multiple servers. Each block is an independent
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* Usage: sirc [options]
|
* Usage: sirc [options]
|
||||||
*
|
*
|
||||||
* Config (~/.sircrc):
|
* Config (~/.sirc):
|
||||||
* # Default server (applied when no [server] block precedes it)
|
* # Default server (applied when no [server] block precedes it)
|
||||||
* nick = mynick
|
* nick = mynick
|
||||||
* ignore = badbot,spammer
|
* ignore = badbot,spammer
|
||||||
@@ -584,7 +584,7 @@ static void handle_irc_line(int si, const char *raw) {
|
|||||||
} else if (strcmp(sub,"NAK")==0) {
|
} else if (strcmp(sub,"NAK")==0) {
|
||||||
ev_simple(EV_ERROR, si, NULL, NULL, "Server rejected SASL CAP.");
|
ev_simple(EV_ERROR, si, NULL, NULL, "Server rejected SASL CAP.");
|
||||||
srv_sendf(si, "NICK %s", s->nick);
|
srv_sendf(si, "NICK %s", s->nick);
|
||||||
srv_sendf(si, "USER %s 0 * :circ", s->nick);
|
srv_sendf(si, "USER %s 0 * :sirc", s->nick);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -600,7 +600,7 @@ static void handle_irc_line(int si, const char *raw) {
|
|||||||
ev_simple(EV_STATUS, si, NULL, NULL, "SASL authentication successful.");
|
ev_simple(EV_STATUS, si, NULL, NULL, "SASL authentication successful.");
|
||||||
srv_send_raw(si, "CAP END");
|
srv_send_raw(si, "CAP END");
|
||||||
srv_sendf(si, "NICK %s", s->nick);
|
srv_sendf(si, "NICK %s", s->nick);
|
||||||
srv_sendf(si, "USER %s 0 * :circ", s->nick);
|
srv_sendf(si, "USER %s 0 * :sirc", s->nick);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (strcmp(m.cmd,"902")==0||strcmp(m.cmd,"904")==0||
|
if (strcmp(m.cmd,"902")==0||strcmp(m.cmd,"904")==0||
|
||||||
@@ -610,7 +610,7 @@ static void handle_irc_line(int si, const char *raw) {
|
|||||||
ev_simple(EV_ERROR, si, NULL, NULL, buf);
|
ev_simple(EV_ERROR, si, NULL, NULL, buf);
|
||||||
srv_send_raw(si, "CAP END");
|
srv_send_raw(si, "CAP END");
|
||||||
srv_sendf(si, "NICK %s", s->nick);
|
srv_sendf(si, "NICK %s", s->nick);
|
||||||
srv_sendf(si, "USER %s 0 * :circ", s->nick);
|
srv_sendf(si, "USER %s 0 * :sirc", s->nick);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -943,7 +943,7 @@ static void *net_thread(void *arg) {
|
|||||||
srv_send_raw(si,"CAP REQ :sasl");
|
srv_send_raw(si,"CAP REQ :sasl");
|
||||||
else {
|
else {
|
||||||
srv_sendf(si,"NICK %s",s->nick);
|
srv_sendf(si,"NICK %s",s->nick);
|
||||||
srv_sendf(si,"USER %s 0 * :circ",s->nick);
|
srv_sendf(si,"USER %s 0 * :sirc",s->nick);
|
||||||
}
|
}
|
||||||
|
|
||||||
char readbuf[8192], linebuf[MAX_LINE*4];
|
char readbuf[8192], linebuf[MAX_LINE*4];
|
||||||
@@ -1056,8 +1056,8 @@ static void load_config(const char *path) {
|
|||||||
char candidates[2][MAX_HOST];
|
char candidates[2][MAX_HOST];
|
||||||
const char *home=getenv("HOME");
|
const char *home=getenv("HOME");
|
||||||
if (home) {
|
if (home) {
|
||||||
snprintf(candidates[0],MAX_HOST,"%s/.ircrc",home);
|
snprintf(candidates[0],MAX_HOST,"%s/.sirc",home);
|
||||||
snprintf(candidates[1],MAX_HOST,"%s/.config/irc/ircrc",home);
|
snprintf(candidates[1],MAX_HOST,"%s/.config/sirc/config",home);
|
||||||
}
|
}
|
||||||
FILE *f=NULL;
|
FILE *f=NULL;
|
||||||
if (path) f=fopen(path,"r");
|
if (path) f=fopen(path,"r");
|
||||||
@@ -1965,7 +1965,7 @@ static void usage(const char *prog) {
|
|||||||
" --sasl-pass PASS SASL password\n"
|
" --sasl-pass PASS SASL password\n"
|
||||||
" --config FILE config file\n"
|
" --config FILE config file\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Multiple servers via ~/.ircrc [server] blocks.\n", prog);
|
"Multiple servers via ~/.sirc [server] blocks.\n", prog);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
@@ -1994,19 +1994,27 @@ int main(int argc, char **argv) {
|
|||||||
if (cli_host) {
|
if (cli_host) {
|
||||||
int si;
|
int si;
|
||||||
if (g_srv_count==0) si=srv_alloc();
|
if (g_srv_count==0) si=srv_alloc();
|
||||||
else si=0; /* override first */
|
else si=0;
|
||||||
strncpy(g_srv[si].host,cli_host,MAX_HOST-1);
|
strncpy(g_srv[si].host,cli_host,MAX_HOST-1);
|
||||||
if(cli_port>0) g_srv[si].port=cli_port;
|
if(cli_port>0) g_srv[si].port=cli_port;
|
||||||
if(cli_nick) strncpy(g_srv[si].nick,cli_nick,MAX_NICK-1);
|
|
||||||
if(cli_tls>=0) g_srv[si].use_tls=cli_tls;
|
if(cli_tls>=0) g_srv[si].use_tls=cli_tls;
|
||||||
|
if(cli_chan) srv_add_autojoin(si,cli_chan);
|
||||||
if(cli_su) strncpy(g_srv[si].sasl_user,cli_su,MAX_NICK-1);
|
if(cli_su) strncpy(g_srv[si].sasl_user,cli_su,MAX_NICK-1);
|
||||||
if(cli_sp) strncpy(g_srv[si].sasl_pass,cli_sp,255);
|
if(cli_sp) strncpy(g_srv[si].sasl_pass,cli_sp,255);
|
||||||
if(cli_chan) srv_add_autojoin(si,cli_chan);
|
if(cli_nick) strncpy(g_srv[si].nick,cli_nick,MAX_NICK-1);
|
||||||
} else if (g_srv_count==0) {
|
} else if (g_srv_count==0) {
|
||||||
/* no config, no --host: add default server */
|
/* no config, no --host: add default server */
|
||||||
srv_alloc();
|
srv_alloc();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* apply --nick / --channel / --tls to all servers that don't have
|
||||||
|
their own value set (covers the no-host case) */
|
||||||
|
for (int i=0; i<g_srv_count; i++) {
|
||||||
|
if (cli_nick && !cli_host) strncpy(g_srv[i].nick, cli_nick, MAX_NICK-1);
|
||||||
|
if (cli_tls>=0 && !cli_host) g_srv[i].use_tls = cli_tls;
|
||||||
|
if (cli_chan && !cli_host) srv_add_autojoin(i, cli_chan);
|
||||||
|
}
|
||||||
|
|
||||||
/* create status channels */
|
/* create status channels */
|
||||||
for(int i=0;i<g_srv_count;i++) chan_add(i,"*status*");
|
for(int i=0;i<g_srv_count;i++) chan_add(i,"*status*");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user