Exemplo n.º 1
0
static void do_create_connects(struct sockaddr_in *servaddr, int nums)
{
    int fd;
    struct socket *sock;
    struct sockaddr cliaddr;
    int i;

    for (i = 0; i < nums; i++) {

        fd = lkm_create_tcp_connect(servaddr);
        if (fd < 0)
            break;

        sock = getsock(fd); 
        if (!sock)
            break;
            
        if (!getsockcliaddr(sock, &cliaddr))
            break;
        
        if (insert_sock_to_sockp(&cliaddr, 
                    (struct sockaddr *)servaddr,
                    sock, fd, 
                    SOCK_PRECONNECT, 
                    NULL) != KCP_OK) {
            orig_sys_close(fd);
            break;
        } 
    }

    return;
}
Exemplo n.º 2
0
int translucent_create_whiteout(char *file) {
	int (*orig_sys_close)(int)=sys_call_table[__NR_close];
	int (*orig_sys_fchmod)(int,mode_t)=sys_call_table[__NR_fchmod];
	int result;
	BEGIN_KMEM
		result=orig_sys_open(file, O_CREAT|O_EXCL|O_WRONLY|O_TRUNC, 0);
//		printk("translucent whiteout %s result %i\n", file, result);
	END_KMEM;
	if(result<0) return result;
	orig_sys_fchmod(result, 01001);
	orig_sys_close(result);
	return 0;
}
Exemplo n.º 3
0
static void do_close_files(int close_type)
{
    int fd;

    if (close_type == CLOSE_ALL)
        shutdown_all_sock_list();
    else 
        shutdown_timeout_sock_list();

    while ((fd = connpd_close_pending_fds_out()) >= 0)
        orig_sys_close(fd);

}