//ok someone relayed something to us!
if(strcmp("LQ", argv[2]) == 0) {
//oooh thats exciting - we've got a LOC Query! :D
- //LQ !ABADE pk910 80.153.5.212 server.zoelle1.de ~watchcat :test
//ok let's check the login datas
struct handle_info *hi;
char tmp[MAXLEN], tmp2[MAXLEN];
sprintf(tmp, "%s@%s",argv[7],argv[6]);
sprintf(tmp2, "%s@%s",argv[7],argv[5]);
if((hi = checklogin(argv[4],argv[argc-1],&argv[3][1],tmp,tmp2))) {
- //login ok
- struct devnull_class *th;
- char devnull[512];
- if(hi->devnull && (th = devnull_get(hi->devnull))) {
- const char *devnull_modes = DEVNULL_MODES;
- int ii, flen;
- char flags[50];
- for (ii=flen=0; devnull_modes[ii]; ++ii)
- if (th->modes & (1 << ii))
- flags[flen++] = devnull_modes[ii];
- flags[flen] = 0;
- sprintf(devnull, "+%s %s %lu %lu",flags,th->name,th->maxchan,th->maxsendq);
- } else {
- devnull[0] = 0;
- }
- if(!HANDLE_FLAGGED(hi, AUTOHIDE)) {
- sprintf(tmp,"%s LA %s 0 %s\n",argv[3],hi->handle,devnull);
- } else if(getfakehost(argv[4])) {
- sprintf(tmp,"%s LA %s %s %s\n",argv[3],hi->handle,getfakehost(argv[4]),devnull);
- } else {
- extern const char *hidden_host_suffix;
- sprintf(tmp,"%s LA %s %s.%s %s\n",argv[3],hi->handle,hi->handle,hidden_host_suffix,devnull);
- }
- irc_relay(tmp);
+ //login ok
+ struct devnull_class th = devnull_user_get_class(hi);
+ char devnull[MAXLEN];
+
+ if(th.modes) {
+ const char *devnull_modes = DEVNULL_MODES;
+ int ii, flen = 0;
+ char flags[50];
+ for (ii = 0; devnull_modes[ii]; ++ii)
+ if(th.modes & (1 << ii))
+ flags[flen++] = devnull_modes[ii];
+ flags[flen] = 0;
+ sprintf(devnull, "+%s %s %lu %lu", flags, (th.name ? th.name : "custom"), (DEVNULL_HAS_PRIV(&th, CHANLIMIT) ? th.maxchan : 0), (DEVNULL_HAS_PRIV(&th, MAXSENDQ) ? th.maxsendq : 0));
+ } else
+ devnull[0] = 0;
+
+ if(!HANDLE_FLAGGED(hi, AUTOHIDE))
+ sprintf(tmp,"%s LA %s 0 %s\n",argv[3],hi->handle,devnull);
+ else if(getfakehost(argv[4]))
+ sprintf(tmp,"%s LA %s %s %s\n",argv[3],hi->handle,getfakehost(argv[4]),devnull);
+ else {
+ extern const char *hidden_host_suffix;
+ sprintf(tmp,"%s LA %s %s.%s %s\n",argv[3],hi->handle,hi->handle,hidden_host_suffix,devnull);
+ }
+ irc_relay(tmp);
} else {
- //login rejected
- sprintf(tmp,"%s LR\n",argv[3]);
- irc_relay(tmp);
+ //login rejected
+ sprintf(tmp,"%s LR\n",argv[3]);
+ irc_relay(tmp);
}
} else if(strcmp("UC", argv[2]) == 0) {
char tmp[MAXLEN];