Пример #1
0
void CVideoDecoder2::Close(CLOSERESOURCECB cb)
{
    if(bInit){
        Finit();
    }
    CResource::Close(cb);
}
Пример #2
0
/* 
 * Remove a user from the list. 
 * Destroy all his permissions and completely detach him from the session.
 */
int 
UserDel(char *name, struct acluser **up)
{
  struct acluser *u;
  int i;
  struct display *old, *next;

  if (!up)
    up = FindUserPtr(name);
  if (!(u = *up))
    return -1;			/* he who does not exist cannot be removed */
  old = display;
  for (display = displays; display; display = next)
    {
      next = display->d_next;	/* read the next ptr now, Detach may zap it. */
      if (D_user != u)
	continue;
      if (display == old)
	old = NULL;
      Detach(D_REMOTE);
    }
  display = old;
  *up = u->u_next;

  for (up = &users; *up; up = &(*up)->u_next)
    {
      /* unlink all group references to this user */
      struct aclusergroup **g = &(*up)->u_group;

      while (*g)
        {
	  if ((*g)->u == u)
	    {
	      struct aclusergroup *next = (*g)->next;

	      free((char *)(*g));
	      *g = next;
	    }
	  else
	    g = &(*g)->next;
	}
    }
  ACLBYTE(userbits, u->u_id) &= ~ACLBIT(u->u_id);
  /* restore the bits in his slot to default: */
  AclSetPerm(NULL, u, default_w_bit[ACL_READ] ? "+r" : "-r", "#");
  AclSetPerm(NULL, u, default_w_bit[ACL_WRITE]? "+w" : "-w", "#");
  AclSetPerm(NULL, u, default_w_bit[ACL_EXEC] ? "+x" : "-x", "#");
  AclSetPerm(NULL, u, default_c_bit[ACL_EXEC] ? "+x" : "-x", "?");
  for (i = 0; i < ACL_BITS_PER_WIN; i++)
    free((char *)u->u_umask_w_bits[i]);
  debug1("FREEING user structure for %s\n", u->u_name);
  UserFreeCopyBuffer(u);
  free((char *)u);
  if (!users)
    {
      debug("Last user deleted. Feierabend.\n");
      Finit(0);	/* Destroying whole session. Noone could ever attach again. */
    }
  return 0;
}
Пример #3
0
Файл: x.c Проект: knusbaum/Wily
int
main(int argc, char *argv[])
{
	char *p, *re;
	size_t len;
	Subrange *r;
	void (*fn)(ulong p0, ulong p1);

	/* This isn't wonderful: assume that the regexp is delimited by // */
	if (argc < 2 || *(re = argv[1]) != '/'  || (len = strlen(re)) < 2) {
		fprintf(stderr,"Usage: x /regexp/\n");
		exit(1);
	}
	if (re[--len] == '/')
		re[len] = 0;
	re++;		/* skip / */
	if (len == 0) {
		fprintf(stderr,"null regexp\n");
		exit(1);
	}
	if (init_regexp(re)) {
		fprintf(stderr,"Invalid regexp\n");
		exit(1);
	}
	p = strrchr(argv[0], '/');
	p = p? p+1 : argv[0];
	switch (*p) {
		case 'x' :	fn = fn_x;	break;
		case 'y' :	fn = fn_y;	break;
		case 'g' :	fn = fn_g;	break;
		case 'v' :	fn = fn_v;	break;
		default:
			fprintf(stderr,"Uknown program name!\n");
			exit(1);
	}
	read_info(0);		/* Don't reverse ranges */
	Finit(&runefile, tmpfilename);
	write_info();
	while (r = next_range())
		(*fn)(r->p0, r->p1);
	exit(0);
}
CTLSStorageInstance::~CTLSStorageInstance()
{
	Finit();
}
Пример #5
0
int CVideoDecoder2::Init(void)
{
	int ret = -1;
	while (!bInit){
        pQueueMutex = (uv_mutex_t*)malloc(sizeof(uv_mutex_t));
        if(!pQueueMutex){
			ret = -1;
			break;
		}
        ret = uv_mutex_init(pQueueMutex);
		if (ret < 0){
            free(pQueueMutex);
            pQueueMutex = NULL;
			break;
		}
        pQueueNotEmpty = (uv_cond_t*)malloc(sizeof(uv_cond_t));
        if(!pQueueNotEmpty){
			ret = -1;
			break;
		}
        ret = uv_cond_init(pQueueNotEmpty);
		if (ret < 0){
            free(pQueueNotEmpty);
            pQueueNotEmpty = NULL;
			break;
		}

		// Register all codecs
		avcodec_register_all();
		pCodec = avcodec_find_decoder(codecId);
		if (!pCodec){
			ret = -1;
			break;
		}
		pCodecCtx = avcodec_alloc_context3(pCodec);
		if (!pCodecCtx){
			ret = -1;
			break;
		}
		if (avcodec_open2(pCodecCtx, pCodec, NULL) < 0){
			ret = -1;
			break;
		}

		pCodecParserCtx = av_parser_init(codecId);
		if (!pCodecParserCtx){
			ret = -1;
			break;
		}
        decodeWorkerReq.data = this;
        ret = uv_queue_work(pLoop, &decodeWorkerReq, DecodeWorker, AfterDecode);
        if(ret < 0){
            bStop = true;
            break;
        }
		bInit = true;
	}
	if (!bInit){
		Finit();
		return -1;
	} else {
		return 0;
	}
}
Пример #6
0
void main(int argc, char *argv[])
{
    char val[512], *p;
    char rbuf[512+1];
    char svcname[17];
    int timeout;
    long revent, rcvlen;
    FLDKEY key;
    FBUF *transf;
    FILE *fp;
    int cd, n, fflag=0, i, idx=0;
    int ret;

/*
    if (argc != 2) {
        fprintf(stderr, "Usage:%s input-file\n", argv[0]);
        exit(1);
    }
*/

    if(parseArg(argc, argv)<0){
	printf("parseArg error!!\n");
	exit(1);
    }

    if( (fp=fopen(filename, "r")) == (FILE *)0 ){
        printf( "file open error [%d:%s]\n", errno, strerror(errno) );
        exit( 1 );
    }

    memset( svcname, 0x00, sizeof(svcname) );

    if( get_svcname(fp, svcname) < 0 ){
        printf( "get_svcname() failed!! -- (input-file=%s)\n", argv[1] );
        exit(1);
    }


    timeout = 5;

    n = tpstart((TPSTART_T *)NULL);
    if (n < 0) {
       fprintf(stderr, "tpstart fail tperrno = %s\n", tperrno);
       exit(1);
    }
    printf("tpstart ok!\n");


    transf = fballoc(100, 100);

    if( transf == NULL) {
        fprintf(stderr, "fballoc fail: rcvbuf tperrno = %d\n", tperrno);
        tpend();
        exit(1);
    }

    Finit(transf, Fsizeof(transf));

    while( 1 ){
       memset( rbuf, 0x00, sizeof(rbuf) );
       if( fgets(rbuf, sizeof(rbuf)-1, fp)==(char *) 0 ){
           break;
       }

       p = strchr(rbuf, '\n');
       if( p == (char *)0 && strlen(rbuf) >= sizeof(rbuf)-1 ){
           printf( "한 라인의 길이가 너무 길어 무시합니다..\n" );
           printf( "=>[%s]\n", rbuf );
           continue;
       }
       *p = 0x00;

       memset( val, 0x00, sizeof(val) );
       key = 0;

       if( line_proc(rbuf, &key, &idx, val)<0 ) continue;
       PUT(key, idx, val);
printf( "key=%d, idx=%d, val=%s\n", key, idx, val );
       fflag = 1;
    }

    if( !fflag ){
        printf( "not exist send data .....\n" );
        fbfree( transf );
        tpend();
        exit(1);
    }

printf( ">>service[%s], send data->\n", svcname );
fbprint( transf );
printf( "\t----------------------------------------------------\n\n\n" );
fflush( stdout );

/* original
    cd = tpconnect(svcname, (char *)transf, fbget_fbsize(transf), TPRECVONLY);
*/
    if(flag==1){
	ret = tx_begin();
	printf("tx_begin() [%s] \n", ret==TX_OK ? "success" : "fail");
	if(ret!=TX_OK) exit(1);
    }
    cd = tpcall(svcname, (char *)transf, fbget_fbsize(transf), (char **)&transf, (long *)&rcvlen, 0);
    if (cd < 0) {
    if(flag==1){
	ret = tx_rollback();
	printf("tx_rollback() [%s] \n", ret==TX_OK ? "success" : "fail");
	if(ret!=TX_OK) exit(1);
    }
        fprintf(stderr, "tpcall fail tperrno = %d\n", tperrno);
        fbfree( transf );
        tpend();
        exit(1);
    }
    fprintf(stdout, "TPCALL SUCCESS!!\n");
    if(flag==1){
	ret = tx_commit();
	printf("tx_commit() [%s] \n", ret==TX_OK ? "success" : "fail");
	if(ret!=TX_OK) exit(1);
    }
/*
    i = 0;
    while( 1 ){

       Finit(transf, Fsizeof(transf));

       n = tprecv(cd, (char **)&transf, (long *)&rcvlen, 0, &revent);

       if (n < 0 && tperrno == TPEEVENT ){
           if(revent == TPEV_SVCSUCC )
                  printf( "service completed(TPSUCC) !\n" );
           else if(revent == TPEV_SVCFAIL )
                  printf( "service completed(TPFAIL) !\n" );
           else{
                  printf( "tprecv error : event[0x%08X], tperrno[%d]\n", revent, tperrno );
                  break;
           }
       }
       else if( n < 0 ){
           printf( "tprecv error(no event) : tperrno[%d]\n", tperrno );
           break;
       }

       fbprint( transf );
       printf( "\t------------------------------------------------------[%3d th]\n\n", i++ );
       fflush( stdout );
       if (n < 0 ) break;
    }
*/

    fbfree(transf);

    tpend();
}