bool_t _xdr_directory_obj (XDR *xdrs, directory_obj *objp) { bool_t res = xdr_nis_name (xdrs, &objp->do_name); if (__builtin_expect (res, TRUE)) { res = xdr_nstype (xdrs, &objp->do_type); if (__builtin_expect (res, TRUE)) { res = xdr_array (xdrs, (void *) &objp->do_servers.do_servers_val, &objp->do_servers.do_servers_len, ~0, sizeof (nis_server), (xdrproc_t) _xdr_nis_server); if (__builtin_expect (res, TRUE)) { res = xdr_uint32_t (xdrs, &objp->do_ttl); if (__builtin_expect (res, TRUE)) res = xdr_array (xdrs, (void *) &objp->do_armask.do_armask_val, &objp->do_armask.do_armask_len, ~0, sizeof (oar_mask), (xdrproc_t) xdr_oar_mask); } } } return res; }
static int xdr_RPGP_grid_t (XDR *xdrs, RPGP_grid_t *grid) { int len; len = 0; if (xdrs->x_op == XDR_DECODE) { grid->comp_params = NULL; grid->dimensions = NULL; } else len = Get_n_grid_points (grid); if (xdr_int (xdrs, &(grid->comp_type)) == 0 || xdr_int (xdrs, &(grid->n_dimensions)) == 0 || (grid->n_dimensions > 0 && xdr_array (xdrs, (char **)&(grid->dimensions), (unsigned int *)&(grid->n_dimensions), MAX_ARRAY_SIZE, sizeof (int), (xdrproc_t)xdr_int) == 0) || xdr_int (xdrs, &(grid->grid_type)) == 0 || xdr_int (xdrs, &(grid->numof_comp_params)) == 0 || (grid->numof_comp_params > 0 && xdr_array (xdrs, (char **)&(grid->comp_params), (unsigned int *)&(grid->numof_comp_params), MAX_ARRAY_SIZE, sizeof (RPGP_parameter_t), (xdrproc_t)xdr_RPGP_parameter_t) == 0)) return (0); if (xdrs->x_op == XDR_DECODE) len = Get_n_grid_points (grid); if (xdr_RPGP_data_t (xdrs, &(grid->data), len) == 0) return (0); return (1); }
static int xdr_RPGP_radial_t (XDR *xdrs, RPGP_radial_t *radial) { if (xdrs->x_op == XDR_DECODE) { radial->description = NULL; radial->comp_params = NULL; radial->radials = NULL; } if (xdr_int (xdrs, &(radial->comp_type)) == 0 || xdr_string (xdrs, &(radial->description), MAX_ARRAY_SIZE) == 0 || xdr_float (xdrs, &(radial->bin_size)) == 0 || xdr_float (xdrs, &(radial->first_range)) == 0 || xdr_int (xdrs, &(radial->numof_comp_params)) == 0 || (radial->numof_comp_params > 0 && xdr_array (xdrs, (char **)&(radial->comp_params), (unsigned int *)&(radial->numof_comp_params), MAX_ARRAY_SIZE, sizeof (RPGP_parameter_t), (xdrproc_t)xdr_RPGP_parameter_t) == 0) || xdr_int (xdrs, &(radial->numof_radials)) == 0) return (0); if (radial->numof_radials > 0) { if (xdr_array (xdrs, (char **)&(radial->radials), (unsigned int *)&(radial->numof_radials), MAX_ARRAY_SIZE, sizeof (RPGP_radial_data_t), (xdrproc_t)xdr_RPGP_radial_data_t) == 0) return (0); } return (1); }
bool_t xdr_matrice2(XDR *xdrs, matrice2 *m) { bool_t res = 1; if (xdr_int(xdrs, &m->s) == 0) { res = 0; } if (xdr_int(xdrs, &m->mul) == 0) { res = 0; } //Force XDR to allocate memory while decoding if((xdrs->x_op == XDR_DECODE) && (m->x != NULL)) { free(m->x); m->x = NULL; } if((xdrs->x_op == XDR_DECODE) && (m->y != NULL)) { free(m->y); m->y = NULL; } // if(xdrs->x_op != XDR_DECODE) { // printf("%d\n", m->x[0]); // } uint si = m->s*m->s; if (xdr_array(xdrs, (char **)&m->x, &si, (m->s*m->s), sizeof(int), (xdrproc_t)xdr_int) == 0) { res = 0; } if (xdr_array(xdrs, (char **)&m->y, &si, (m->s*m->s), sizeof(int), (xdrproc_t)xdr_int) == 0) { res = 0; } return res; }
bool_t xdr_rpc_request_session_update (XDR *xdrs, rpc_request_session_update *objp) { if (!xdr_array (xdrs, (char **)&objp->session_id.session_id_val, (u_int *) &objp->session_id.session_id_len, ~0, sizeof (char), (xdrproc_t) xdr_char)) return FALSE; if (!xdr_array (xdrs, (char **)&objp->key.key_val, (u_int *) &objp->key.key_len, ~0, sizeof (uint8_t), (xdrproc_t) xdr_uint8_t)) return FALSE; return TRUE; }
bool_t xdr_rpc_request_is_type_supported (XDR *xdrs, rpc_request_is_type_supported *objp) { if (!xdr_array (xdrs, (char **)&objp->key_system.key_system_val, (u_int *) &objp->key_system.key_system_len, ~0, sizeof (char), (xdrproc_t) xdr_char)) return FALSE; if (!xdr_array (xdrs, (char **)&objp->mime_type.mime_type_val, (u_int *) &objp->mime_type.mime_type_len, ~0, sizeof (char), (xdrproc_t) xdr_char)) return FALSE; return TRUE; }
bool_t xdr_ndmp3_data_start_recover_request (XDR *xdrs, ndmp3_data_start_recover_request *objp) { if (!xdr_array (xdrs, (char **)&objp->env.env_val, (u_int *) &objp->env.env_len, ~0, sizeof (ndmp3_pval), (xdrproc_t) xdr_ndmp3_pval)) return FALSE; if (!xdr_array (xdrs, (char **)&objp->nlist.nlist_val, (u_int *) &objp->nlist.nlist_len, ~0, sizeof (ndmp3_name), (xdrproc_t) xdr_ndmp3_name)) return FALSE; if (!xdr_string (xdrs, &objp->bu_type, ~0)) return FALSE; return TRUE; }
bool_t xdr_rpc_response_create_session (XDR *xdrs, rpc_response_create_session *objp) { if (!xdr_int (xdrs, &objp->platform_val)) return FALSE; if (!xdr_array (xdrs, (char **)&objp->session_id.session_id_val, (u_int *) &objp->session_id.session_id_len, ~0, sizeof (char), (xdrproc_t) xdr_char)) return FALSE; if (!xdr_array (xdrs, (char **)&objp->licence_req.licence_req_val, (u_int *) &objp->licence_req.licence_req_len, ~0, sizeof (char), (xdrproc_t) xdr_char)) return FALSE; return TRUE; }
bool_t xdr_rpc_request_create_session (XDR *xdrs, rpc_request_create_session *objp) { if (!xdr_array (xdrs, (char **)&objp->init_data_type.init_data_type_val, (u_int *) &objp->init_data_type.init_data_type_len, ~0, sizeof (char), (xdrproc_t) xdr_char)) return FALSE; if (!xdr_array (xdrs, (char **)&objp->init_data.init_data_val, (u_int *) &objp->init_data.init_data_len, ~0, sizeof (uint8_t), (xdrproc_t) xdr_uint8_t)) return FALSE; if (!xdr_rpc_request_callback_info (xdrs, &objp->callback_info)) return FALSE; return TRUE; }
bool_t xdr_ndmp3_file (XDR *xdrs, ndmp3_file *objp) { if (!xdr_array (xdrs, (char **)&objp->names.names_val, (u_int *) &objp->names.names_len, ~0, sizeof (ndmp3_file_name), (xdrproc_t) xdr_ndmp3_file_name)) return FALSE; if (!xdr_array (xdrs, (char **)&objp->stats.stats_val, (u_int *) &objp->stats.stats_len, ~0, sizeof (ndmp3_file_stat), (xdrproc_t) xdr_ndmp3_file_stat)) return FALSE; if (!xdr_ndmp3_u_quad (xdrs, &objp->node)) return FALSE; if (!xdr_ndmp3_u_quad (xdrs, &objp->fh_info)) return FALSE; return TRUE; }
/* Special xdr_db_dict_desc that understands optional version number at end. */ bool_t xdr_db_dict_desc(XDR *xdrs, db_dict_desc *objp) { if (!xdr_db_dict_version(xdrs, &objp->impl_vers)) return (FALSE); if (!xdr_array(xdrs, (char **)&objp->tables.tables_val, (uint_t *)&objp->tables.tables_len, ~0, sizeof (db_table_desc_p), (xdrproc_t)xdr_db_table_desc_p)) return (FALSE); if (!xdr_int(xdrs, &objp->count)) return (FALSE); if (xdrs->x_op == XDR_DECODE) { /* If no version was found, set version to 0. */ if (!xdr_vers(xdrs, (void**) &db_update_version)) make_zero(&db_update_version); return (TRUE); } else if (xdrs->x_op == XDR_ENCODE) { /* Always write out version */ if (!xdr_vers(xdrs, (void**) &db_update_version)) return (FALSE); } /* else XDR_FREE: do nothing */ return (TRUE); }
bool_t xdr_cprinc3_arg(XDR *xdrs, cprinc3_arg *objp) { if (!xdr_ui_4(xdrs, &objp->api_version)) { return (FALSE); } if (objp->api_version == KADM5_API_VERSION_1) { if (!xdr_kadm5_principal_ent_rec_v1(xdrs, &objp->rec)) { return (FALSE); } } else { if (!xdr_kadm5_principal_ent_rec(xdrs, &objp->rec)) { return (FALSE); } } if (!xdr_long(xdrs, &objp->mask)) { return (FALSE); } if (!xdr_array(xdrs, (caddr_t *)&objp->ks_tuple, (unsigned int *)&objp->n_ks_tuple, ~0, sizeof(krb5_key_salt_tuple), xdr_krb5_key_salt_tuple)) { return (FALSE); } if (!xdr_nullstring(xdrs, &objp->passwd)) { return (FALSE); } return (TRUE); }
bool_t xdr_rpc_request_load_session(XDR *xdrs, rpc_request_load_session *objp) { if (!xdr_array(xdrs, (char **) &objp->session_id.session_id_val, (u_int *) &objp->session_id.session_id_len, ~0, sizeof(uint16_t), (xdrproc_t) xdr_uint16_t)) return FALSE; return TRUE; }
bool_t xdr_rpc_request_mediakeys(XDR *xdrs, rpc_request_mediakeys *objp) { if (!xdr_array(xdrs, (char **) &objp->key_system.key_system_val, (u_int *) &objp->key_system.key_system_len, ~0, sizeof(char), (xdrproc_t) xdr_char)) return FALSE; return TRUE; }
bool_t xdr_ls_hqn_state(XDR *xdrs, ls_hqn_state *objp) { if (!xdr_array(xdrs, (char **)&objp->domlist.dom, (u_int *)&objp->domlist.len, ~0, sizeof(ls_domain), xdr_ls_domain)) { return (FALSE); } return (TRUE); }
/* * XDR loopback unix auth parameters. * NOTE: this is an XDR_ENCODE only routine. */ bool_t xdr_authloopback(XDR *xdrs) { uid_t uid; gid_t gid; int len; caddr_t groups; char *name = uts_nodename(); struct cred *cr; time_t now; if (xdrs->x_op != XDR_ENCODE) return (FALSE); cr = CRED(); uid = crgetuid(cr); gid = crgetgid(cr); len = crgetngroups(cr); groups = (caddr_t)crgetgroups(cr); now = gethrestime_sec(); if (xdr_uint32(xdrs, (uint32_t *)&now) && xdr_string(xdrs, &name, MAX_MACHINE_NAME) && xdr_uid_t(xdrs, &uid) && xdr_gid_t(xdrs, &gid) && xdr_array(xdrs, &groups, (uint_t *)&len, NGRPS_LOOPBACK, sizeof (int), (xdrproc_t)xdr_int)) return (TRUE); return (FALSE); }
bool_t xdr_cback_data (XDR *xdrs, cback_data *objp) { return xdr_array (xdrs, (void *) &objp->entries.entries_val, &objp->entries.entries_len, ~0, sizeof (obj_p), (xdrproc_t) xdr_obj_p); }
bool_t xdr_deskeyarray(XDR *xdrs, deskeyarray *objp) { return (xdr_array(xdrs, (char **)&objp->deskeyarray_val, (uint_t *)&objp->deskeyarray_len, ~0, sizeof (des_block), (xdrproc_t)xdr_des_block)); }
bool_t xdr_chrand_ret(XDR *xdrs, chrand_ret *objp) { if (!xdr_ui_4(xdrs, &objp->api_version)) { return (FALSE); } if (!xdr_kadm5_ret_t(xdrs, &objp->code)) { return (FALSE); } if (objp->api_version == KADM5_API_VERSION_1) { if(objp->code == KADM5_OK) { if (!xdr_krb5_keyblock(xdrs, &objp->key)) { return (FALSE); } } } else { if (objp->code == KADM5_OK) { if (!xdr_array(xdrs, (char **)&objp->keys, &objp->n_keys, ~0, sizeof(krb5_keyblock), xdr_krb5_keyblock)) return FALSE; } } return (TRUE); }
bool_t dfs_info_xdr(XDR *xdrs, dfs_info_t *objp) { if (!xdr_vector(xdrs, (char *)objp->i_uncpath, DFS_PATH_MAX, sizeof (char), (xdrproc_t)xdr_char)) return (FALSE); if (!xdr_vector(xdrs, (char *)objp->i_comment, DFS_COMMENT_MAX, sizeof (char), (xdrproc_t)xdr_char)) return (FALSE); if (!xdr_vector(xdrs, (char *)objp->i_guid, UUID_PRINTABLE_STRING_LENGTH, sizeof (char), (xdrproc_t)xdr_char)) return (FALSE); if (!xdr_uint32_t(xdrs, &objp->i_state)) return (FALSE); if (!xdr_uint32_t(xdrs, &objp->i_timeout)) return (FALSE); if (!xdr_uint32_t(xdrs, &objp->i_propflags)) return (FALSE); if (!xdr_uint32_t(xdrs, &objp->i_type)) return (FALSE); if (!xdr_array(xdrs, (char **)&objp->i_targets, (uint32_t *)&objp->i_ntargets, ~0, sizeof (dfs_target_t), (xdrproc_t)dfs_target_xdr)) return (FALSE); return (TRUE); }
bool_t _xdr_nis_taglist (XDR *xdrs, nis_taglist *objp) { return xdr_array (xdrs, (void *) &objp->tags.tags_val, &objp->tags.tags_len, ~0, sizeof (nis_tag), (xdrproc_t) _xdr_nis_tag); }
bool_t xdr_rpc_request_mediaengine_data (XDR *xdrs, rpc_request_mediaengine_data *objp) { if (!xdr_array (xdrs, (char **)&objp->session_id.session_id_val, (u_int *) &objp->session_id.session_id_len, ~0, sizeof (char), (xdrproc_t) xdr_char)) return FALSE; if (!xdr_array (xdrs, (char **)&objp->auth_data.auth_data_val, (u_int *) &objp->auth_data.auth_data_len, ~0, sizeof (uint8_t), (xdrproc_t) xdr_uint8_t)) return FALSE; if (!xdr_int32_t (xdrs, &objp->id_exchange_shmem)) return FALSE; if (!xdr_int32_t (xdrs, &objp->id_exchange_sem)) return FALSE; return TRUE; }
bool_t xdr_osa_princ_ent_rec(XDR *xdrs, osa_princ_ent_t objp) { switch (xdrs->x_op) { case XDR_ENCODE: objp->version = OSA_ADB_PRINC_VERSION_1; /* fall through */ case XDR_FREE: if (!xdr_int(xdrs, &objp->version)) return FALSE; break; case XDR_DECODE: if (!xdr_int(xdrs, &objp->version)) return FALSE; if (objp->version != OSA_ADB_PRINC_VERSION_1) return FALSE; break; } if (!xdr_nullstring(xdrs, &objp->policy)) return (FALSE); if (!xdr_long(xdrs, &objp->aux_attributes)) return (FALSE); if (!xdr_u_int(xdrs, &objp->old_key_next)) return (FALSE); if (!xdr_krb5_kvno(xdrs, &objp->admin_history_kvno)) return (FALSE); if (!xdr_array(xdrs, (caddr_t *) &objp->old_keys, (unsigned int *) &objp->old_key_len, ~0, sizeof(osa_pw_hist_ent), xdr_osa_pw_hist_ent)) return (FALSE); return (TRUE); }
bool_t xdr_ndmp3_fs_info (XDR *xdrs, ndmp3_fs_info *objp) { if (!xdr_u_long (xdrs, &objp->invalid)) return FALSE; if (!xdr_string (xdrs, &objp->fs_type, ~0)) return FALSE; if (!xdr_string (xdrs, &objp->fs_logical_device, ~0)) return FALSE; if (!xdr_string (xdrs, &objp->fs_physical_device, ~0)) return FALSE; if (!xdr_ndmp3_u_quad (xdrs, &objp->total_size)) return FALSE; if (!xdr_ndmp3_u_quad (xdrs, &objp->used_size)) return FALSE; if (!xdr_ndmp3_u_quad (xdrs, &objp->avail_size)) return FALSE; if (!xdr_ndmp3_u_quad (xdrs, &objp->total_inodes)) return FALSE; if (!xdr_ndmp3_u_quad (xdrs, &objp->used_inodes)) return FALSE; if (!xdr_array (xdrs, (char **)&objp->fs_env.fs_env_val, (u_int *) &objp->fs_env.fs_env_len, ~0, sizeof (ndmp3_pval), (xdrproc_t) xdr_ndmp3_pval)) return FALSE; if (!xdr_string (xdrs, &objp->fs_status, ~0)) return FALSE; return TRUE; }
bool_t _xdr_nis_result (XDR *xdrs, nis_result *objp) { bool_t res = xdr_nis_error (xdrs, &objp->status); if (__builtin_expect (res, TRUE)) { res = xdr_array (xdrs, (void *) &objp->objects.objects_val, &objp->objects.objects_len, ~0, sizeof (nis_object), (xdrproc_t) _xdr_nis_object); if (__builtin_expect (res, TRUE)) { res = xdr_netobj (xdrs, &objp->cookie); if (__builtin_expect (res, TRUE)) { res = xdr_uint32_t (xdrs, &objp->zticks); if (__builtin_expect (res, TRUE)) { res = xdr_uint32_t (xdrs, &objp->dticks); if (__builtin_expect (res, TRUE)) { res = xdr_uint32_t (xdrs, &objp->aticks); if (__builtin_expect (res, TRUE)) res = xdr_uint32_t (xdrs, &objp->cticks); } } } } } return res; }
bool_t xdr_ndmp3_fh_add_dir_request (XDR *xdrs, ndmp3_fh_add_dir_request *objp) { if (!xdr_array (xdrs, (char **)&objp->dirs.dirs_val, (u_int *) &objp->dirs.dirs_len, ~0, sizeof (ndmp3_dir), (xdrproc_t) xdr_ndmp3_dir)) return FALSE; return TRUE; }
bool_t xdr_ndmp3_fh_add_node_request (XDR *xdrs, ndmp3_fh_add_node_request *objp) { if (!xdr_array (xdrs, (char **)&objp->nodes.nodes_val, (u_int *) &objp->nodes.nodes_len, ~0, sizeof (ndmp3_node), (xdrproc_t) xdr_ndmp3_node)) return FALSE; return TRUE; }
bool_t xdr_directory_obj(XDR *xdrs, directory_obj *objp) { if (!xdr_nis_name(xdrs, &objp->do_name)) return (FALSE); if (!xdr_nstype(xdrs, &objp->do_type)) return (FALSE); if (!xdr_array(xdrs, (char **)&objp->do_servers.do_servers_val, (uint_t *)&objp->do_servers.do_servers_len, ~0, sizeof (nis_server), (xdrproc_t)xdr_nis_server)) return (FALSE); if (!xdr_uint32_t(xdrs, &objp->do_ttl)) return (FALSE); return (xdr_array(xdrs, (char **)&objp->do_armask.do_armask_val, (uint_t *)&objp->do_armask.do_armask_len, ~0, sizeof (oar_mask), (xdrproc_t)xdr_oar_mask)); }
bool_t xdr_kdbe_key_t (XDR *xdrs, kdbe_key_t *objp) { int32_t *buf; if (!xdr_int32_t (xdrs, &objp->k_ver)) return FALSE; if (!xdr_int32_t (xdrs, &objp->k_kvno)) return FALSE; if (!xdr_array (xdrs, (char **)&objp->k_enctype.k_enctype_val, (u_int *) &objp->k_enctype.k_enctype_len, ~0, sizeof (int32_t), (xdrproc_t) xdr_int32_t)) return FALSE; if (!xdr_array (xdrs, (char **)&objp->k_contents.k_contents_val, (u_int *) &objp->k_contents.k_contents_len, ~0, sizeof (utf8str_t), (xdrproc_t) xdr_utf8str_t)) return FALSE; return TRUE; }
static int xdr_RPGP_table_t (XDR *xdrs, RPGP_table_t *table) { int len; if (xdrs->x_op == XDR_DECODE) { table->comp_params = NULL; table->column_labels = NULL; table->row_labels = NULL; table->entries = NULL; } if (xdr_int (xdrs, &(table->comp_type)) == 0 || xdr_int (xdrs, &(table->numof_comp_params)) == 0 || (table->numof_comp_params > 0 && xdr_array (xdrs, (char **)&(table->comp_params), (unsigned int *)&(table->numof_comp_params), MAX_ARRAY_SIZE, sizeof (RPGP_parameter_t), (xdrproc_t)xdr_RPGP_parameter_t) == 0) || xdr_RPGP_string_t (xdrs, &(table->title)) == 0 || xdr_short (xdrs, &(table->n_columns)) == 0 || xdr_short (xdrs, &(table->n_rows)) == 0) return (0); len = table->n_columns; if (len > 0 && xdr_array (xdrs, (char **)&(table->column_labels), (unsigned int *)&len, MAX_ARRAY_SIZE, sizeof (RPGP_string_t), (xdrproc_t)xdr_RPGP_string_t) == 0) return (0); len = table->n_rows; if (len > 0 && xdr_array (xdrs, (char **)&(table->row_labels), (unsigned int *)&len, MAX_ARRAY_SIZE, sizeof (RPGP_string_t), (xdrproc_t)xdr_RPGP_string_t) == 0) return (0); len = table->n_rows * table->n_columns; if (len > 0 && xdr_array (xdrs, (char **)&(table->entries), (unsigned int *)&len, MAX_ARRAY_SIZE, sizeof (RPGP_string_t), (xdrproc_t)xdr_RPGP_string_t) == 0) return (0); return (1); }