socket.c
来自「samba-3.0.22.tar.gz 编译smb服务器的源码」· C语言 代码 · 共 70 行
C
70 行
/* Unix SMB/CIFS implementation. process incoming packets - main loop Copyright (C) Jean Fran鏾is Micouleau 1998-2002. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.*/#include "includes.h"#include "wins_repl.h"fd_set *listen_set = NULL;int listen_number = 0;int *sock_array = NULL;/******************************************************************* Add an fd from the sock_array******************************************************************/void add_fd_to_sock_array(int fd){ int *temp_sock=NULL; temp_sock=(int *)Realloc(sock_array, (listen_number+1)*sizeof(int)); if (temp_sock==NULL) return; sock_array=temp_sock; sock_array[listen_number]=fd; listen_number++;}/******************************************************************* Remove an fd from the sock_array******************************************************************/void remove_fd_from_sock_array(int fd){ int i,j; for (i=0; sock_array[i]!=fd && i<listen_number; i++) ; if (i==listen_number) { DEBUG(0,("remove_fd_from_sock_array: unknown fd: %d\n", fd)); return; } if (i==listen_number-1) { sock_array=(int *)Realloc(sock_array, --listen_number*sizeof(int)); return; } for (j=i; j<listen_number-1; j++) sock_array[j]=sock_array[j+1]; sock_array=(int *)Realloc(sock_array, --listen_number*sizeof(int)); }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?