Public feed #601497

Something

public cpp v1 · immutable
Raw Edit
·published 2007-07-03 15:22 UTC
rendered paste body
void* ScriptThread(void *data){int abc=I_Script;char *p=NULL;p=(char*)malloc(256);int command;char pp[128];strcpy(p,((char*)data));	strcpy(pp,p);	sscanf(pp,"%d %s",&command,pp);	int tmp2 = command;	    Scripts=(script*)realloc(Scripts, (num_scripts+1)*sizeof(script));	++num_scripts;	int i=0;		char tmp[128];		sprintf(tmp,"./%d.so",tmp2);	void* handle = dlopen(tmp, RTLD_LAZY);    if (!handle) {    printf("Couldn't Open\n");        return 0;    }    // load the symbol    typedef int (*main_t)(int);    // reset errors    dlerror();    main_t hello = (main_t) dlsym(handle, "main");    const char *dlsym_error = dlerror();    if (dlsym_error) {    	printf("Error:%s\n",dlsym_error);        dlclose(handle);        return 0;    }    Scripts[num_scripts].Snum=tmp2;	Scripts[num_scripts].Inum=I_Script;	if(strcmp(pp,"SERVER")==0)		Scripts[num_scripts].player = -2;	else	for(int a = 0; a<=num_players;a++){		if(strcmp(pp,players[a].name)==0){			Scripts[num_scripts].player = players[a].Inum;			break;		}	}    		hello(Scripts[num_scripts].Inum);			dlclose(handle);    for(i=0;i<=num_scripts;i++){    	if(Scripts[i].Inum == abc){    		break;    	}    }    num_scripts--;	if(num_scripts>i)		memmove(&Scripts[i], &Scripts[i+1], (num_scripts-i)*sizeof(script));	Scripts=(script*)realloc(Scripts, num_scripts*sizeof(script));	I_Script++;	free(data);	return 0;}