void socket_send(char* buf, int sendsize) { if(context->send_on != 1) return; #ifdef _WIN32 win_send(buf,sendsize); #else linux_send(buf, sendsize); #endif }
int linux_socketcall(struct proc *p, struct linux_socketcall_args *args,int *retval) { switch (args->what) { case LINUX_SOCKET: return linux_socket(p, args->args, retval); case LINUX_BIND: return linux_bind(p, args->args, retval); case LINUX_CONNECT: return linux_connect(p, args->args, retval); case LINUX_LISTEN: return linux_listen(p, args->args, retval); case LINUX_ACCEPT: return linux_accept(p, args->args, retval); case LINUX_GETSOCKNAME: return linux_getsockname(p, args->args, retval); case LINUX_GETPEERNAME: return linux_getpeername(p, args->args, retval); case LINUX_SOCKETPAIR: return linux_socketpair(p, args->args, retval); case LINUX_SEND: return linux_send(p, args->args, retval); case LINUX_RECV: return linux_recv(p, args->args, retval); case LINUX_SENDTO: return linux_sendto(p, args->args, retval); case LINUX_RECVFROM: return linux_recvfrom(p, args->args, retval); case LINUX_SHUTDOWN: return linux_shutdown(p, args->args, retval); case LINUX_SETSOCKOPT: return linux_setsockopt(p, args->args, retval); case LINUX_GETSOCKOPT: return linux_getsockopt(p, args->args, retval); default: uprintf("LINUX: 'socket' typ=%d not implemented\n", args->what); return ENOSYS; } }