Esempio n. 1
0
File: img.c Progetto: rlk/scmtiff
int img_pixel(img *p, int i, int j, float *c)
{
    int d = 0;

    if (0 <= i && i < p->h && 0 <= j && j < p->w)
    {
        switch (p->c)
        {
            case 4: d |= getchan(p, i, j, 3, c + 3);
            case 3: d |= getchan(p, i, j, 2, c + 2);
            case 2: d |= getchan(p, i, j, 1, c + 1);
            case 1: d |= getchan(p, i, j, 0, c + 0);
        }
    }
    return d;
}
Esempio n. 2
0
unsigned int cmd_ban(callbackp *callbacki)
{
	CHANNEL *chan;
	RAW *newraw;
	json *jlist;
	
	USERS *victim;

	if ((chan = getchan(callbacki->param[2], callbacki->g_ape)) == NULL) {
		send_error(callbacki->call_user, "UNKNOWN_CHANNEL", "103", callbacki->g_ape);
		
	
	} else if (!isonchannel(callbacki->call_user, chan)) {

		send_error(callbacki->call_user, "NOT_IN_CHANNEL", "104", callbacki->g_ape);
	
	} else if (getuchan(callbacki->call_user, chan)->level < 3) {

		
		send_error(callbacki->call_user, "CANT_BAN", "107", callbacki->g_ape);
		
	} else {
		victim = seek_user(callbacki->param[3], chan->name, callbacki->g_ape);
		
		if (victim == NULL) {

			send_error(callbacki->call_user, "UNKNOWN_USER", "102", callbacki->g_ape);
			
		} else if (victim->flags & FLG_NOKICK) {
			send_error(callbacki->call_user, "USER_PROTECTED", "106", callbacki->g_ape);
			
			// Bad boy :-)
			jlist = NULL;
			set_json("banner", NULL, &jlist);
			json_attach(jlist, get_json_object_user(callbacki->call_user), JSON_OBJECT);
			
			set_json("channel", NULL, &jlist);
			json_attach(jlist, get_json_object_channel(chan), JSON_OBJECT);
						
			newraw = forge_raw("TRY_BAN", jlist);
			
			post_raw(newraw, victim, callbacki->g_ape);
			
		} else if (strlen(callbacki->param[4]) > 255 || atoi(callbacki->param[5]) > 44640) { // 31 days max

			send_error(callbacki->call_user, "REASON_OR_TIME_TOO_LONG", "107", callbacki->g_ape);
		} else {
			ban(chan, callbacki->call_user, victim->ip, callbacki->param[4], atoi(callbacki->param[5]), callbacki->g_ape);
		}
		
	}
	
	return (FOR_NOTHING);
}
Esempio n. 3
0
unsigned int cmd_setlevel(callbackp *callbacki)
{
	USERS *recver;
	
	if ((recver = seek_user(callbacki->param[3], callbacki->param[2], callbacki->g_ape)) == NULL) {
		send_error(callbacki->call_user, "UNKNOWN_USER", "102", callbacki->g_ape);
	} else {
		setlevel(callbacki->call_user, recver, getchan(callbacki->param[2], callbacki->g_ape), atoi(callbacki->param[4]), callbacki->g_ape);
	}
	return (FOR_NOTHING);
}
Esempio n. 4
0
unsigned int cmd_left(callbackp *callbacki)
{
	CHANNEL *chan;

		
	if ((chan = getchan(callbacki->param[2], callbacki->g_ape)) == NULL) {
		send_error(callbacki->call_user, "UNKNOWN_CHANNEL", "103", callbacki->g_ape);
		
	} else if (!isonchannel(callbacki->call_user, chan)) {
		send_error(callbacki->call_user, "NOT_IN_CHANNEL", "104", callbacki->g_ape);
	
	} else {
	
		left(callbacki->call_user, chan, callbacki->g_ape);
	}
	
	return (FOR_NOTHING);
}
static unsigned int cmd_control(callbackp *callbacki)
{
	CHANNEL *jchan;
	
	if (strcmp(callbacki->param[1], READ_CONF("password")) != 0) {
		SENDH(callbacki->fdclient, "ERR BAD_PASSWORD", callbacki->g_ape);
		
	} else if ((jchan = getchan(callbacki->param[2], callbacki->g_ape)) == NULL) {
		SENDH(callbacki->fdclient, "ERR NOT_A_CHANNEL", callbacki->g_ape);
		
	} else {
		if (strcasecmp(callbacki->param[3], "POSTMSG") == 0) {
			send_msg_channel(jchan, callbacki->param[5], callbacki->param[4], callbacki->g_ape);
			SENDH(callbacki->fdclient, "OK POSTED", callbacki->g_ape);
		}
	}
	return (FOR_NOTHING);
}
Esempio n. 6
0
unsigned int cmd_join(callbackp *callbacki)
{
	CHANNEL *jchan;
	RAW *newraw;
	json *jlist;
	BANNED *blist;
	
	if ((jchan = getchan(callbacki->param[2], callbacki->g_ape)) == NULL) {
		jchan = mkchan(callbacki->param[2], "Default%20Topic", callbacki->g_ape);
		
		if (jchan == NULL) {
			
			send_error(callbacki->call_user, "CANT_JOIN_CHANNEL", "202", callbacki->g_ape);
			
		} else {
		
			join(callbacki->call_user, jchan, callbacki->g_ape);
		}
	
	} else if (isonchannel(callbacki->call_user, jchan)) {
		
		send_error(callbacki->call_user, "ALREADY_ON_CHANNEL", "100", callbacki->g_ape);

	} else {
		blist = getban(jchan, callbacki->call_user->ip);
		if (blist != NULL) {
			jlist = NULL;
			
			set_json("reason", blist->reason, &jlist);
			set_json("error", "YOU_ARE_BANNED", &jlist);
			/*
				TODO: Add Until
			*/
			newraw = forge_raw(RAW_ERR, jlist);
			
			post_raw(newraw, callbacki->call_user, callbacki->g_ape);
		} else {
			join(callbacki->call_user, jchan, callbacki->g_ape);
		}
	}
	return (FOR_NOTHING);
}
Esempio n. 7
0
void
getstatement(void)			/* get next statement */
{
    EPNODE  *ep;
    char  *qname;
    VARDEF  *vdef;

    if (nextc == ';') {		/* empty statement */
	scan();
	return;
    }
    if (esupport&E_OUTCHAN &&
		nextc == '$') {		/* channel assignment */
	ep = getchan();
	addchan(ep);
    } else {				/* ordinary definition */
	ep = getdefn();
	qname = qualname(dname(ep), 0);
	if (esupport&E_REDEFW && (vdef = varlookup(qname)) != NULL) {
	    if (vdef->def != NULL && epcmp(ep, vdef->def)) {
		wputs(qname);
		if (vdef->def->type == ':')
		    wputs(": redefined constant expression\n");
		else
		    wputs(": redefined\n");
	    } else if (ep->v.kid->type == FUNC && vdef->lib != NULL) {
		wputs(qname);
		wputs(": definition hides library function\n");
	    }
	}
	if (ep->type == ':')
	    dremove(qname);
	else
	    dclear(qname);
	dpush(qname, ep);
    }
    if (nextc != EOF) {
	if (nextc != ';')
	    syntax("';' expected");
	scan();
    }
}
Esempio n. 8
0
bool SourceUtil::UpdateChannelsFromListings(uint sourceid, QString inputtype, bool wait)
{
    if (wait)
    {
        QString cmd = GetAppBinDir() +
                      "mythfilldatabase";
        QStringList args;
        args.append("--only-update-channels");

        if (sourceid)
        {
            args.append(QString("--sourceid"));
            args.append(QString::number(sourceid));
        }
        if (!inputtype.isEmpty())
        {
            args.append(QString("--cardtype"));
            args.append(inputtype);
        }

        MythSystemLegacy getchan(cmd, args, kMSRunShell | kMSAutoCleanup );
        getchan.Run();
        getchan.Wait();
    }
    else
    {
        QString cmd = GetAppBinDir() +
                      "mythfilldatabase --only-update-channels";
        if (sourceid)
            cmd += QString(" --sourceid %1").arg(sourceid);
        if (!inputtype.isEmpty())
            cmd += QString(" --cardtype %1").arg(inputtype);
        cmd += logPropagateArgs;

        myth_system(cmd);
    }

    return true;
}
Esempio n. 9
0
unsigned int cmd_kick(callbackp *callbacki)
{
	CHANNEL *chan;
	RAW *newraw;
	json *jlist;
	
	USERS *victim;

	if ((chan = getchan(callbacki->param[2], callbacki->g_ape)) == NULL) {
		send_error(callbacki->call_user, "UNKNOWN_CHANNEL", "103", callbacki->g_ape);
		
	} else if (!isonchannel(callbacki->call_user, chan)) {
		send_error(callbacki->call_user, "NOT_IN_CHANNEL", "104", callbacki->g_ape);
		
	} else if (getuchan(callbacki->call_user, chan)->level < 3) {
		send_error(callbacki->call_user, "CANT_KICK", "105", callbacki->g_ape);
		
	} else {
		victim = seek_user(callbacki->param[3], chan->name, callbacki->g_ape);
		
		if (victim == NULL) {

			send_error(callbacki->call_user, "UNKNOWN_USER", "102", callbacki->g_ape);
		} else if (victim->flags & FLG_NOKICK) {
			
			send_error(callbacki->call_user, "USER_PROTECTED", "106", callbacki->g_ape);
			// haha ;-)
			
			jlist = NULL;
			set_json("kicker", NULL, &jlist);
			json_attach(jlist, get_json_object_user(callbacki->call_user), JSON_OBJECT);
			
			set_json("channel", NULL, &jlist);
			json_attach(jlist, get_json_object_channel(chan), JSON_OBJECT);
						
			newraw = forge_raw("TRY_KICK", jlist);
			
			post_raw(newraw, victim, callbacki->g_ape);
			
		} else {
			jlist = NULL;
			
			set_json("kicker", NULL, &jlist);
			json_attach(jlist, get_json_object_user(callbacki->call_user), JSON_OBJECT);
			
			set_json("channel", NULL, &jlist);
			json_attach(jlist, get_json_object_channel(chan), JSON_OBJECT);
						
			newraw = forge_raw(RAW_KICK, jlist);
			
			post_raw(newraw, victim, callbacki->g_ape);
			
			left(victim, chan, callbacki->g_ape); // chan may be removed
			
		}
		
	}
	
	return (FOR_NOTHING);
	
}
Esempio n. 10
0
unsigned int cmd_settopic(callbackp *callbacki)
{
	settopic(callbacki->call_user, getchan(callbacki->param[2], callbacki->g_ape), callbacki->param[3], callbacki->g_ape);
	
	return (FOR_NOTHING);
}