• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ conn_free函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中conn_free函数的典型用法代码示例。如果您正苦于以下问题:C++ conn_free函数的具体用法?C++ conn_free怎么用?C++ conn_free使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了conn_free函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: create_conn_struct_cwd

NTSTATUS create_conn_struct_cwd(TALLOC_CTX *ctx,
				struct tevent_context *ev,
				struct messaging_context *msg,
				connection_struct **pconn,
				int snum,
				const char *path,
				const struct auth_session_info *session_info,
				char **poldcwd)
{
	connection_struct *conn;
	char *oldcwd;

	NTSTATUS status = create_conn_struct(ctx, ev,
					     msg, &conn,
					     snum, path,
					     session_info);
	if (!NT_STATUS_IS_OK(status)) {
		return status;
	}

	/*
	 * Windows seems to insist on doing trans2getdfsreferral() calls on
	 * the IPC$ share as the anonymous user. If we try to chdir as that
	 * user we will fail.... WTF ? JRA.
	 */

	oldcwd = vfs_GetWd(ctx, conn);
	if (oldcwd == NULL) {
		status = map_nt_error_from_unix(errno);
		DEBUG(3, ("vfs_GetWd failed: %s\n", strerror(errno)));
		conn_free(conn);
		return status;
	}

	if (vfs_ChDir(conn,conn->connectpath) != 0) {
		status = map_nt_error_from_unix(errno);
		DEBUG(3,("create_conn_struct: Can't ChDir to new conn path %s. "
			"Error was %s\n",
			conn->connectpath, strerror(errno) ));
		conn_free(conn);
		return status;
	}

	*pconn = conn;
	*poldcwd = oldcwd;

	return NT_STATUS_OK;
}
开发者ID:rchicoli,项目名称:samba,代码行数:48,代码来源:msdfs.c


示例2: queue_free

static void queue_free(Queue *q)
{
    for (List *it = q->head; it != NULL; it = list_next(it))
        conn_free(it->elem);
    mon_free(q->mon);
    mem_free(q);
}
开发者ID:bandilab,项目名称:bandicoot,代码行数:7,代码来源:bandicoot.c


示例3: slave

int slave(context_t* ctx) {
	hlink_t*	hardlinks = NULL;	// The hardlinks we found while performing SCAN
	conn_t cn;

	// Config
	(void)ctx;
	conn_init(&cn);
	cn.infd = 0;
	cn.outfd = 1;

	// Main
	char line[1024];

	ssize_t l;
	while((l = conn_readline(&cn, line, sizeof line))) {
		proto_delegator(&cn,line,&hardlinks);
	}

	// close down
	conn_free(&cn);

	// Free hardlinks
	hlink_t* n = NULL;
	hlink_t* p;
	for(p = hardlinks; p; p = n) {
		n = (hlink_t*)((node_t*)p)->next;
		free(p);
	}
	hardlinks = NULL;

	return 0;
}
开发者ID:chenmoshushi,项目名称:msync,代码行数:32,代码来源:slave.c


示例4: conn_create_fd

static struct connection *conn_create_server(struct context *ctx,
        struct address *addr, char *key, bool readonly)
{
    int fd = conn_create_fd();
    if (fd == -1) {
        LOG(ERROR, "conn_create_server: fail to create fd");
        return NULL;
    }
    struct connection *server = server_create(ctx, fd);
    struct conn_info *info = server->info;
    memcpy(&info->addr, addr, sizeof(info->addr));
    extern const size_t CMD_NUM;
    info->slow_cmd_counts = cv_calloc(CMD_NUM, sizeof(uint32_t));

    if (conn_connect(server) == CORVUS_ERR) {
        LOG(ERROR, "conn_create_server: fail to connect %s:%d",
                info->addr.ip, info->addr.port);
        conn_free(server);
        conn_buf_free(server);
        conn_recycle(ctx, server);
        return NULL;
    }

    if (readonly) {
        server->info->readonly = true;
    }

    strncpy(info->dsn, key, ADDRESS_LEN);
    dict_set(&ctx->server_table, info->dsn, (void*)server);
    TAILQ_INSERT_TAIL(&ctx->servers, server, next);
    return server;
}
开发者ID:jasonjoo2010,项目名称:corvus,代码行数:32,代码来源:connection.c


示例5: conn_new

connection_struct *make_connection_smb2(struct smbd_smb2_request *req,
					struct smbXsrv_tcon *tcon,
					int snum,
					struct user_struct *vuser,
					const char *pdev,
					NTSTATUS *pstatus)
{
	struct smbd_server_connection *sconn = req->sconn;
	connection_struct *conn = conn_new(sconn);
	if (!conn) {
		DEBUG(0,("make_connection_smb2: Couldn't find free connection.\n"));
		*pstatus = NT_STATUS_INSUFFICIENT_RESOURCES;
		return NULL;
	}

	conn->cnum = tcon->global->tcon_wire_id;
	conn->tcon = tcon;

	*pstatus = make_connection_snum(req->xconn,
					conn,
					snum,
					vuser,
					pdev);
	if (!NT_STATUS_IS_OK(*pstatus)) {
		conn_free(conn);
		return NULL;
	}
	return conn;
}
开发者ID:Distrotech,项目名称:samba,代码行数:29,代码来源:service.c


示例6: CLEAR

/*
 * Get a connection for the specified service and return a pointer
 * to a new connection_s
 */
connection_s *conn_new( struct service *sp )
{
   connection_s    new_conn ;
   connection_s   *cp ;
   const char     *func = "conn_new" ;

   CLEAR( new_conn ) ;

   /*
    * The reason we first get the connection and then allocate a
    * 'connection_s' is because we want to always consume some input.
    */
   if ( get_connection( sp, &new_conn ) == FAILED )
      return( NULL ) ;

   new_conn.co_sp = sp ;
   SVC_HOLD( sp ) ;
   
   if ( SVC_WAITS( sp ) )
      svc_suspend( sp ) ;

   cp = NEW_CONN() ;
   if ( cp == CONN_NULL )
   {
      out_of_memory( func ) ;
      conn_free( &new_conn, 0 ) ;
      CLEAR( new_conn ) ;
      return( CONN_NULL ) ;
   }
   memcpy(cp, &new_conn, sizeof(connection_s));
   return( cp ) ;
}
开发者ID:Veilen,项目名称:xinetd,代码行数:36,代码来源:connection.c


示例7: make_connection

connection_struct *make_connection_with_chdir(const char *service_in,
					      DATA_BLOB password, 
					      const char *dev, uint16 vuid,
					      NTSTATUS *status)
{
	connection_struct *conn = NULL;
	
	conn = make_connection(service_in, password, dev, vuid, status);
	
	/*
	 * make_connection() does not change the directory for us any more
	 * so we have to do it as a separate step  --jerry
	 */
	 
	if ( conn && vfs_ChDir(conn,conn->connectpath) != 0 ) {
		DEBUG(0,("move_driver_to_download_area: Can't change "
			 "directory to %s for [print$] (%s)\n",
			 conn->connectpath,strerror(errno)));
		yield_connection(conn, lp_servicename(SNUM(conn)));
		conn_free(conn);
		*status = NT_STATUS_UNSUCCESSFUL;
		return NULL;
	}
	
	return conn;
}
开发者ID:themiron,项目名称:asuswrt-merlin,代码行数:26,代码来源:service.c


示例8: conn_put

void
conn_put(struct conn *conn)
{
    struct conn_base *cb = conn->cb;
    ASSERT(conn->sd < 0);
    ASSERT(conn->owner == NULL);

    log_debug(LOG_VVERB, "put conn %p", conn);

    if (cb == NULL) {
        conn_free(conn);
        return;
    }

    cb->nfree_connq++;
    TAILQ_INSERT_HEAD(&cb->free_connq, conn, conn_tqe);

    if (conn->client) {
        cb->ncurr_cconn--;

        STATS_LOCK();
        ncurr_cconn --;
        STATS_UNLOCK();
    }
    cb->ncurr_conn--;

    STATS_LOCK();
    ncurr_conn --;
    STATS_UNLOCK();
}
开发者ID:yanww-hz,项目名称:twemproxies,代码行数:30,代码来源:nc_connection.c


示例9: conn_free

void conn_free(struct connection *conn)
{
    if (conn == NULL) return;
    if (conn->fd != -1) {
        close(conn->fd);
        conn->fd = -1;
    }

    conn->registered = false;

    if (conn->ev != NULL) {
        conn->ev->info = NULL;
        conn_free(conn->ev);
        conn_recycle(conn->ctx, conn->ev);
        conn->ev = NULL;
    }

    if (conn->info == NULL) return;
    struct conn_info *info = conn->info;

    info->status = DISCONNECTED;

    reader_free(&info->reader);
    reader_init(&info->reader);

    EMPTY_CMD_QUEUE(&info->cmd_queue, cmd_next);
    EMPTY_CMD_QUEUE(&info->ready_queue, ready_next);
    EMPTY_CMD_QUEUE(&info->waiting_queue, waiting_next);
}
开发者ID:LewisPark,项目名称:corvus,代码行数:29,代码来源:connection.c


示例10: fss_vfs_conn_create

static NTSTATUS fss_vfs_conn_create(TALLOC_CTX *mem_ctx,
				    struct tevent_context *ev,
				    struct messaging_context *msg_ctx,
				    struct auth_session_info *session_info,
				    int snum,
				    struct connection_struct **conn_out)
{
	struct connection_struct *conn = NULL;
	NTSTATUS status;

	status = create_conn_struct(mem_ctx, ev, msg_ctx, &conn,
				    snum, lp_path(mem_ctx, snum),
				    session_info);
	if (!NT_STATUS_IS_OK(status)) {
		DEBUG(0,("failed to create conn for vfs: %s\n",
			 nt_errstr(status)));
		return status;
	}

	status = set_conn_force_user_group(conn, snum);
	if (!NT_STATUS_IS_OK(status)) {
		DEBUG(0, ("failed set force user / group\n"));
		goto err_free_conn;
	}

	*conn_out = conn;

	return NT_STATUS_OK;

err_free_conn:
	SMB_VFS_DISCONNECT(conn);
	conn_free(conn);
	return status;
}
开发者ID:Distrotech,项目名称:samba,代码行数:34,代码来源:srv_fss_agent.c


示例11: conn_create_fd

static struct connection *conn_create_server(struct context *ctx, struct address *addr, char *key)
{
    int fd = conn_create_fd();
    if (fd == -1) {
        LOG(ERROR, "conn_create_server: fail to create fd");
        return NULL;
    }
    struct connection *server = server_create(ctx, fd);
    struct conn_info *info = server->info;
    memcpy(&info->addr, addr, sizeof(info->addr));

    if (conn_connect(server) == CORVUS_ERR) {
        LOG(ERROR, "conn_create_server: fail to connect %s:%d",
                info->addr.ip, info->addr.port);
        conn_free(server);
        conn_buf_free(server);
        conn_recycle(ctx, server);
        return NULL;
    }

    strncpy(info->dsn, key, DSN_LEN);
    dict_set(&ctx->server_table, info->dsn, (void*)server);
    TAILQ_INSERT_TAIL(&ctx->servers, server, next);
    return server;
}
开发者ID:LewisPark,项目名称:corvus,代码行数:25,代码来源:connection.c


示例12: svc_request

void svc_request( struct service *sp )
{
   connection_s *cp ;
   status_e ret_code;

   cp = conn_new( sp ) ;
   if ( cp == CONN_NULL )
      return ;

   /*
    * Output the banner now that the connection is established. The
    * other banners come later.
    */
   banner_always(sp, cp);

   if (SVC_NOT_GENERIC(sp))
      ret_code = spec_service_handler(sp, cp);
   else 
      ret_code = svc_generic_handler(sp, cp);

   if( (SVC_SOCKET_TYPE( sp ) == SOCK_DGRAM) && (SVC_IS_ACTIVE( sp )) ) 
      drain( cp->co_descriptor ) ; /* Prevents looping next time */
   
   if ( ret_code != OK ) 
   {
      if ( SVC_LOGS_USERID_ON_FAILURE( sp ) ) {
         if( spec_service_handler( LOG_SERVICE( ps ), cp ) == FAILED ) 
	    conn_free( cp, 1 ) ;
         else if (!SC_WAITS( SVC_CONF( sp ) ) ) {
	 /* The logging service will gen SIGCHLD thus freeing connection */
	    CONN_CLOSE(cp) ; 
	 }
	 return;
      }
      if (!SC_WAITS( SVC_CONF( sp ) )) 
	 conn_free( cp, 1 );
      else { 
         if( (SVC_SOCKET_TYPE( sp ) == SOCK_DGRAM) && (SVC_IS_ACTIVE( sp )) ) 
            drain( cp->co_descriptor ) ; /* Prevents looping next time */
	 free( cp );
      }
   }
   else if ((SVC_NOT_GENERIC(sp)) || (!SC_FORKS( SVC_CONF( sp ) ) ) )
     free( cp );
}
开发者ID:Veilen,项目名称:xinetd,代码行数:45,代码来源:service.c


示例13: delete_all_connections

/**
 * Delete all connections.
 */
void delete_all_connections() {
  /* Delete connections if needed. */
  conn_t *conn, *next;
  for (conn = get_connections(); conn != NULL; conn = next) {
    next = conn->next;
    if (conn->delete_me)
      conn_free(conn);
  }
}
开发者ID:chuzui,项目名称:courses,代码行数:12,代码来源:ctcp_sys_internal.c


示例14: connmgr_free

void connmgr_free(struct conn_manager* self)
{
        size_t i;
        for (i = 0; i < connmgr_size(self); i ++) {
                conn_disconnect(self->conns[i]);
                conn_free(self->conns[i]), free(self->conns[i]);
        }
        free(self->conns);
        memset(self, 0, sizeof(*self));
}
开发者ID:DaviesX,项目名称:debussy,代码行数:10,代码来源:connmgr.c


示例15: __connmgr_remove_connection_at

void __connmgr_remove_connection_at(struct conn_manager* self, size_t i)
{
        conn_disconnect(self->conns[i]);
        conn_free(self->conns[i]), free(self->conns[i]);
        size_t j;
        for (j = i + 1; j < connmgr_size(self); j ++) {
                self->conns[j - 1] = self->conns[j];
        }
        self->num_conns --;
}
开发者ID:DaviesX,项目名称:debussy,代码行数:10,代码来源:connmgr.c


示例16: mesh_free

int32 mesh_free(Mesh *mesh)
{
  int32 ii;
  MeshTopology *topology = mesh->topology;
  LocalEntities *entities = mesh->entities;

  for (ii = 0; ii < 16; ii++) {
    conn_free(topology->conn[ii]);
  }

  for (ii = 0; ii < MAX_EL_TYPES; ii++) {
    conn_free(entities->edges[ii]);
    conn_free(entities->faces[ii]);
  }

  free_mem(topology->edge_oris);
  free_mem(topology->face_oris);

  return(RET_OK);
}
开发者ID:clazaro,项目名称:sfepy,代码行数:20,代码来源:mesh.c


示例17: close_cnum

void close_cnum(connection_struct *conn, uint16 vuid)
{
	if (IS_IPC(conn)) {
		pipe_close_conn(conn);
	} else {
		file_close_conn(conn);
		dptr_closecnum(conn);
	}

	change_to_root_user();

	DEBUG(IS_IPC(conn)?3:1, ("%s (%s) closed connection to service %s\n",
				 get_remote_machine_name(),
				 conn->client_address,
				 lp_servicename(SNUM(conn))));

	/* Call VFS disconnect hook */    
	SMB_VFS_DISCONNECT(conn);

	yield_connection(conn, lp_servicename(SNUM(conn)));

	/* make sure we leave the directory available for unmount */
	vfs_ChDir(conn, "/");

	/* execute any "postexec = " line */
	if (*lp_postexec(SNUM(conn)) && 
	    change_to_user(conn, vuid))  {
		pstring cmd;
		pstrcpy(cmd,lp_postexec(SNUM(conn)));
		standard_sub_advanced(lp_servicename(SNUM(conn)), conn->user,
				      conn->connectpath, conn->gid,
				      get_current_username(),
				      current_user_info.domain,
				      cmd, sizeof(cmd));
		smbrun(cmd,NULL);
		change_to_root_user();
	}

	change_to_root_user();
	/* execute any "root postexec = " line */
	if (*lp_rootpostexec(SNUM(conn)))  {
		pstring cmd;
		pstrcpy(cmd,lp_rootpostexec(SNUM(conn)));
		standard_sub_advanced(lp_servicename(SNUM(conn)), conn->user,
				      conn->connectpath, conn->gid,
				      get_current_username(),
				      current_user_info.domain,
				      cmd, sizeof(cmd));
		smbrun(cmd,NULL);
	}

	conn_free(conn);
}
开发者ID:themiron,项目名称:asuswrt-merlin,代码行数:53,代码来源:service.c


示例18: mesh_free_connectivity

int32 mesh_free_connectivity(Mesh *mesh, int32 d1, int32 d2)
{
  uint32 D = mesh->topology->max_dim;
  MeshConnectivity *conn = 0;

  debprintf("free connectivity %d -> %d\n", d1, d2);

  conn = mesh->topology->conn[IJ(D, d1, d2)];
  conn_free(conn);

  return(RET_OK);
}
开发者ID:clazaro,项目名称:sfepy,代码行数:12,代码来源:mesh.c


示例19: conn_deinit

void
conn_deinit(struct conn_base *cb)
{
    struct conn *conn, *nconn; /* current and next connection */

    for (conn = TAILQ_FIRST(&cb->free_connq); conn != NULL;
            conn = nconn, cb->nfree_connq--) {
        ASSERT(cb->nfree_connq > 0);
        nconn = TAILQ_NEXT(conn, conn_tqe);
        conn_free(conn);
    }
    ASSERT(cb->nfree_connq == 0);
}
开发者ID:yanww-hz,项目名称:twemproxies,代码行数:13,代码来源:nc_connection.c


示例20: conn_deinit

void
conn_deinit(void)
{
    struct conn *conn, *nconn; /* current and next connection */

    for (conn = STAILQ_FIRST(&free_connq); conn != NULL;
         conn = nconn, nfree_connq--) {
        ASSERT(nfree_connq > 0);
        nconn = STAILQ_NEXT(conn, conn_tqe);
        conn_free(conn);
    }
    ASSERT(nfree_connq == 0);
}
开发者ID:AsamQi,项目名称:twemperf,代码行数:13,代码来源:mcp_conn.c



注:本文中的conn_free函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ conn_params_init函数代码示例发布时间:2022-05-30
下一篇:
C++ conn函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap