Exemplo n.º 1
0
int parsemot(char *skri) {
    struct Mote *motpek=(struct Mote *)Servermem->mot_list.mlh_Head;
    int going2=TRUE,found=-1;
    char *faci,*skri2;
    if(skri[0]==0 || skri[0]==' ') return(-3);
    for(; motpek->mot_node.mln_Succ; motpek=(struct Mote *)motpek->mot_node.mln_Succ) {
        if(!MaySeeConf(motpek->nummer, inloggad, &Servermem->inne[nodnr])) continue;
        faci=motpek->namn;
        skri2=skri;
        going2=TRUE;
        if(matchar(skri2,faci)) {
            while(going2) {
                skri2=hittaefter(skri2);
                faci=hittaefter(faci);
                if(skri2[0]==0) return((int)motpek->nummer);
                else if(faci[0]==0) going2=FALSE;
                else if(!matchar(skri2,faci)) {
                    faci=hittaefter(faci);
                    if(faci[0]==0 || !matchar(skri2,faci)) going2=FALSE;
                }
            }
        }
    }
    return(found);
}
Exemplo n.º 2
0
void listmot(char *foo)
{
    struct Mote *listpek=(struct Mote *)Servermem->mot_list.mlh_Head;
    int cnt, pattern = 0, patret;
    char buffer[61], motpattern[101];
    puttekn("\r\n\n",-1);

    if(foo[0])
    {
        strncpy(buffer,foo,50);
        patret = ParsePatternNoCase(buffer, motpattern, 98);

        if(patret != 1)
        {
            puttekn("\r\n\nDu måste ange ett argument som innehåller wildcards!\r\n", -1);
            return;
        }

        pattern = 1;
    }

    for(; listpek->mot_node.mln_Succ; listpek=(struct Mote *)listpek->mot_node.mln_Succ) {
        if(!MaySeeConf(listpek->nummer,inloggad,&Servermem->inne[nodnr])) continue;

        if(pattern && !MatchPatternNoCase(motpattern, listpek->namn)) continue;
        cnt=0;
        if(IsMemberConf(listpek->nummer, inloggad, &Servermem->inne[nodnr])) sprintf(outbuffer,"%3d %s ",countunread(listpek->nummer),listpek->namn);
        else sprintf(outbuffer,"   *%s ",listpek->namn);
        if(puttekn(outbuffer,-1)) return;
        if(listpek->status & SLUTET) if(puttekn(" (Slutet)",-1)) return;
        if(listpek->status & SKRIVSKYDD) if(puttekn(" (Skrivskyddat)",-1)) return;
        if(listpek->status & KOMSKYDD) if(puttekn(" (Kom.skyddat)",-1)) return;
        if(listpek->status & HEMLIGT) if(puttekn(" (Hemligt)",-1)) return;
        if(listpek->status & AUTOMEDLEM) if(puttekn(" (Auto)",-1)) return;
        if(listpek->status & SKRIVSTYRT) if(puttekn(" (Skrivstyrt)",-1)) return;
        if((listpek->status & SUPERHEMLIGT) && Servermem->inne[nodnr].status >= Servermem->cfg.st.medmoten) if(puttekn(" (ARexx-styrt)",-1)) return;
        if(puttekn("\r\n",-1)) return;
    }

    if(Servermem->info.hightext > -1)
        sprintf(outbuffer,"\r\n\nGlobala texter: Lägsta textnummer: %d   Högsta textnummer: %d\r\n\n",Servermem->info.lowtext, Servermem->info.hightext);
    else
        strcpy(outbuffer, "\r\n\nDet finns inga texter.\r\n\n");
    puttekn(outbuffer,-1);
}
Exemplo n.º 3
0
void vilka(void) {
	int x,verbose=FALSE;
	long timenow, idle;
	struct Mote *motpek;
	char namn[50],bps[15];
	if(argument[0]) {
		if(argument[0] == '-' && (argument[1] == 'v' || argument[1] == 'V')) verbose = TRUE;
	}
	puttekn("\r\n\n",-1);
	timenow = time(NULL);
	for(x=0;x<MAXNOD;x++) {
		if(!Servermem->nodtyp[x]) continue;
		if(Servermem->inloggad[x] == -1) strcpy(namn,"<Ingen inloggad>");
		else if(Servermem->inloggad[x] == -2) strcpy(namn,"<Uppringd>");
		else strcpy(namn,getusername(Servermem->inloggad[x]));
		if(Servermem->nodtyp[x]==NODCON) sprintf(outbuffer,"Nod #%-2d CON %-20s %s\n\r",x,Servermem->nodid[x],namn);
		else if(Servermem->nodtyp[x]==NODSER) sprintf(outbuffer,"Nod #%-2d SER %-20s %s\n\r",x,Servermem->nodid[x],namn);
		else sprintf(outbuffer,"Nod #%-2d FOO %-20s %s\n\r",x,Servermem->nodid[x],namn);
		puttekn(outbuffer,-1);
		if(!verbose) continue;
		idle = timenow - Servermem->idletime[x];
		if(Servermem->inloggad[x] == -1 || Servermem->inloggad[x] == -2)
		{
/*			eka('\n');
			continue; */

			if(Servermem->inloggad[x] == -2)
				sprintf(bps,"Bps: %-7d%15d:%02d %c\r\n\n",Servermem->connectbps[x],idle/3600,(idle%3600)/60,Servermem->say[x] ? '*' : ' ');
			else
				sprintf(bps,"Bps: -      %15d:%02d %c\r\n\n",idle/3600,(idle%3600)/60,Servermem->say[x] ? '*' : ' ');

			puttekn(bps,-1);
			continue;
		}
		if(Servermem->nodtyp[x]==NODCON)
			sprintf(bps,"Bps: -      %15d:%02d %c",idle/3600,(idle%3600)/60,Servermem->say[x] ? '*' : ' ');
		else sprintf(bps,"Bps: %-7d%15d:%02d %c",Servermem->connectbps[x],idle/3600,(idle%3600)/60,Servermem->say[x] ? '*' : ' ');
		switch(Servermem->action[x]) {
			case INGET :
				sprintf(outbuffer,"%-32s Har inga olästa texter\r\n\n",bps);
				break;
			case SKRIVER :
				if(Servermem->varmote[x]!=-1) {
					motpek=getmotpek(Servermem->varmote[x]);
					if(!motpek) continue;
					if(!MaySeeConf(motpek->nummer, inloggad, &Servermem->inne[nodnr]))
						sprintf(outbuffer,"%-32s Skriver en text\r\n\n",bps);
					else sprintf(outbuffer,"%-32s Skriver i %s\r\n\n",bps,motpek->namn);
				} else sprintf(outbuffer,"%-32s Skriver ett brev\r\n\n",bps);
				break;
			case LASER :
				if(Servermem->varmote[x]!=-1) {
					motpek=getmotpek(Servermem->varmote[x]);
					if(!motpek) continue;
					if(!MaySeeConf(motpek->nummer, inloggad, &Servermem->inne[nodnr]))
						sprintf(outbuffer,"%-32s Läser texter\r\n",bps);
					else sprintf(outbuffer,"%-32s Läser i %s\r\n",bps,motpek->namn);
				} else sprintf(outbuffer,"%-32s Läser i %s\r\n",bps,Servermem->cfg.brevnamn);
				break;
			case GORNGTANNAT :
				sprintf(outbuffer,"%-32s %s\r\n",bps,Servermem->vilkastr[x]);
				break;
			case UPLOAD :
				if(!Servermem->areor[Servermem->varmote[x]].namn[0] || !arearatt(Servermem->varmote[x], inloggad, &Servermem->inne[nodnr]))
					sprintf(outbuffer,"%-32s Laddar upp\r\n",bps);
				else {
					if(Servermem->vilkastr[x]) sprintf(outbuffer,"%-32s Laddar upp %s\r\n",bps,Servermem->vilkastr[x]);
					else sprintf(outbuffer,"%-32s Ska strax ladda upp en fil\r\n",bps);
				}
				break;
			case DOWNLOAD :
				if(!Servermem->areor[Servermem->varmote[x]].namn[0] || !arearatt(Servermem->varmote[x], inloggad, &Servermem->inne[nodnr]))
					sprintf(outbuffer,"%-32s Laddar ner\r\n",bps);
				else {
					if(Servermem->vilkastr[x]) sprintf(outbuffer,"%-32s Laddar ner %s\r\n",bps,Servermem->vilkastr[x]);
					else sprintf(outbuffer,"%-32s Ska strax ladda ner en fil\r\n",bps);
				}
				break;
			default :
				sprintf(outbuffer,"%-32s <Gör något odefinierat>\r\n",bps);
				break;
		}
		if(Servermem->CallerID[x])
		{
			strcat(outbuffer, Servermem->CallerID[x]);
			strcat(outbuffer, "\r\n");
		}

		strcat(outbuffer, "\n");
		puttekn(outbuffer,-1);
	}
}