int main(int argc, char **argv) { int fd, database_fd, database_size; krb5_error_code retval; krb5_context context; krb5_creds *my_creds; krb5_auth_context auth_context; setlocale(LC_ALL, ""); retval = krb5_init_context(&context); if (retval) { com_err(argv[0], retval, _("while initializing krb5")); exit(1); } parse_args(argc, argv); get_tickets(context); database_fd = open_database(context, file, &database_size); open_connection(context, slave_host, &fd); kerberos_authenticate(context, &auth_context, fd, my_principal, &my_creds); xmit_database(context, auth_context, my_creds, fd, database_fd, database_size); update_last_prop_file(slave_host, file); printf(_("Database propagation to %s: SUCCEEDED\n"), slave_host); krb5_free_cred_contents(context, my_creds); close_database(context, database_fd); exit(0); }
int p_get_tickets(request *rqt, int client_sockfd){ response rsp; response *rsps; memset(&rsp, '\0', sizeof(response)); ticket *tset; int getn; tset = get_tickets(&rqt->t, &getn); if(getn == -1) rsp.rs = rs_failure; else if(getn == 0){ rsp.rs = rs_find_nothing; rsp.remain = 0; }else{ rsps = (response *)malloc(sizeof(response)*getn); memset(rsps, '\0', sizeof(response)*getn); int i; for(i=0; i<getn; ++i){ response *p; p = rsps + i; p->rs = rs_success; memcpy(&p->t, tset+i, sizeof(ticket)); } rsps->remain = getn - 1; } free_get_tickets(tset); if(getn) return srv_send_responses(rsps, getn, client_sockfd); else return srv_send_response(&rsp, client_sockfd); }