void f_external_start (void) { int fd, num_arg = st_num_arg; svalue_t *arg = sp - num_arg + 1; if (check_valid_socket("external", -1, current_object, "N/A", -1)) { fd = external_start(arg[0].u.number, arg + 1, arg + 2, arg + 3, (num_arg == 5 ? arg + 4 : 0)); pop_n_elems(num_arg - 1); sp->u.number = fd; } else { pop_n_elems(num_arg - 1); sp->u.number = EESECURITY; } }
void f_socket_create (void) { int fd, num_arg = st_num_arg; svalue_t *arg; arg = sp - num_arg + 1; if ((num_arg == 3) && !(arg[2].type & (T_STRING | T_FUNCTION))) { bad_arg(3, F_SOCKET_CREATE); } if (check_valid_socket("create", -1, current_object, "N/A", -1)) { if (num_arg == 2) fd = socket_create(arg[0].u.number, &arg[1], NULL); else { fd = socket_create(arg[0].u.number, &arg[1], &arg[2]); } pop_n_elems(num_arg - 1); sp->u.number = fd; } else { pop_n_elems(num_arg - 1); sp->u.number = EESECURITY; } }