コード例 #1
0
ファイル: socket_wrapper.c プロジェクト: berte/mediaplayer
_PUBLIC_ int swrap_listen(int s, int backlog)
{
	int ret;
	struct socket_info *si = find_socket_info(s);

	if (!si) {
		return real_listen(s, backlog);
	}

	ret = real_listen(s, backlog);

	return ret;
}
コード例 #2
0
ファイル: libsocket.c プロジェクト: anan-cn/fastsocket
int listen(int fd, int backlog)
{
	static int (*real_listen)(int, int) = NULL;
	int ret = 0;
	struct fsocket_ioctl_arg arg;

	if (!real_listen)
		real_listen = dlsym(RTLD_NEXT, "listen");

	if (fsocket_channel_fd >= 0) {
		arg.fd = fd;
		arg.backlog = backlog;

		if (!fsocket_fd_set[fd])
			fsocket_fd_set[fd] = 1;

		ret = ioctl(fsocket_channel_fd, FSOCKET_IOC_LISTEN, &arg);
		if (ret < 0) {
			FSOCKET_ERR("FSOCKET:Listen failed!\n");
			fsocket_fd_set[fd] = 0;
		} else {
			arg.fd = fd;
        	arg.op.spawn_op.cpu = -1;

			if (ioctl(fsocket_channel_fd, FSOCKET_IOC_SPAWN_LISTEN, &arg) < 0) {
				FSOCKET_ERR("FSOCKET: spawn failed!\n");
			}
		}
	} else {
		ret =  real_listen(fd, backlog);
	}

	return ret;
}
コード例 #3
0
int
listen(int sockfd, int backlog) throw()
{
  int retval;

  print_trace ("%*slisten(%d, %d)=...\n", indent, "",
	       sockfd, backlog);
  indent+=2;

  /* call the real listen function */
  retval = real_listen (sockfd, backlog);

  indent-=2;
  print_trace ("%*slisten(%d, %d)=%d\n", indent, "", 
	       sockfd, backlog, retval);

  return retval;
}