void query_free ( query_t *queryPtr ) { TRACE3 (("called with queryPtr=%p", queryPtr)); assert (queryPtr != NULL); /* Free imports that were not xCOM_Import'ed. */ if (queryPtr->firstImportPtr != NULL) { TRACE4 (("freeing unused imports")); import_free_unused (queryPtr->firstImportPtr); } /* Free query handle. */ if (queryPtr->queryHandle != XC_INVALID_HANDLE) { handle_dir_remove (queryHandles, queryPtr->queryHandle); } free (queryPtr->queriedPort); free (queryPtr->queriedComponent); free ((void *) queryPtr->queriedInterface.name); free (queryPtr->clientPortName); if (queryPtr->componentPtr != NULL) { component_unref (queryPtr->componentPtr); } free (queryPtr); TRACE3 (("exiting")); }
static apr_status_t ftp_protocol_loop(struct lfd_sess * sess) { apr_status_t rc = APR_SUCCESS; int rnfrto; // "rename from" and "rename to" should go togheter char * temp_name; temp_name = NULL; rnfrto = 0; while(APR_SUCCESS == rc) { apr_pool_clear(sess->loop_pool); rc = lfd_cmdio_get_cmd_and_arg(sess, &sess->ftp_cmd_str, &sess->ftp_arg_str); if(APR_SUCCESS != rc) return rc; // special case if(lfd_cmdio_cmd_equals(sess, "RNTO")) { if(rnfrto) { rnfrto = 0; rc = handle_rnto(sess, temp_name); } else rc = handle_bad_rnto(sess); continue; } // here we treat all the other cases if(rnfrto){ rnfrto = 0; rc = handle_bad_rnto(sess); continue; } if(lfd_cmdio_cmd_equals(sess, "PASV")) { rc = handle_pasv(sess); } else if(lfd_cmdio_cmd_equals(sess, "SYST")) { rc = handle_syst(sess); } else if(lfd_cmdio_cmd_equals(sess, "USER")) { rc = handle_user(sess); } else if(lfd_cmdio_cmd_equals(sess, "PASS")) { rc = handle_pass(sess); } else if(lfd_cmdio_cmd_equals(sess, "QUIT")) { rc = handle_quit(sess); return rc; } else if(lfd_cmdio_cmd_equals(sess, "ABOR")) { rc = handle_abort(sess); } else if(lfd_cmdio_cmd_equals(sess, "PORT")) { rc = handle_port(sess); } else if(lfd_cmdio_cmd_equals(sess, "RMD")) { rc = handle_dir_remove(sess); } else if(lfd_cmdio_cmd_equals(sess, "MKD")) { rc = handle_dir_create(sess); } else if(lfd_cmdio_cmd_equals(sess, "PWD")) { rc = handle_pwd(sess); } else if(lfd_cmdio_cmd_equals(sess, "CWD")) { rc = handle_cwd(sess); } else if(lfd_cmdio_cmd_equals(sess, "CDUP")) { rc = handle_cdup(sess); } else if(lfd_cmdio_cmd_equals(sess, "RNFR")) { rc = handle_rnfr(sess, &temp_name); if(APR_SUCCESS == rc && NULL != temp_name) rnfrto = 1; } else if(lfd_cmdio_cmd_equals(sess, "TYPE")) { rc = handle_type(sess); } else if(lfd_cmdio_cmd_equals(sess, "RETR")) { rc = handle_retr(sess); } else if(lfd_cmdio_cmd_equals(sess, "STOR")) { rc = handle_stor(sess); } else if(lfd_cmdio_cmd_equals(sess, "DELE")) { rc = handle_dele(sess); } else if(lfd_cmdio_cmd_equals(sess, "STOU")) { rc = handle_stou(sess); } else if(lfd_cmdio_cmd_equals(sess, "LIST")) { rc = handle_list(sess); } else if(lfd_cmdio_cmd_equals(sess, "FEAT")) { rc = handle_feat(sess); } else if(lfd_cmdio_cmd_equals(sess, "APPE")) { rc = handle_appe(sess); } else if(lfd_cmdio_cmd_equals(sess, "SITE")) { rc = handle_site(sess); } else if(lfd_cmdio_cmd_equals(sess, "ALLO")) { rc = lfd_cmdio_write(sess, FTP_ALLOOK, "ALLO command ignored."); } else if(lfd_cmdio_cmd_equals(sess, "REIN")) { rc = lfd_cmdio_write(sess, FTP_COMMANDNOTIMPL, "REIN not implemented."); } else if(lfd_cmdio_cmd_equals(sess, "ACCT")) { rc = lfd_cmdio_write(sess, FTP_COMMANDNOTIMPL, "ACCT not implemented."); } else if(lfd_cmdio_cmd_equals(sess, "SMNT")) { rc = lfd_cmdio_write(sess, FTP_COMMANDNOTIMPL, "SMNT not implemented."); } else //default { printf("The cmd [%s] has no installed handler! \n", sess->ftp_cmd_str); if(NULL != sess->ftp_arg_str) printf("The cmd args were [%s] \n", sess->ftp_arg_str); lfd_cmdio_write(sess, FTP_COMMANDNOTIMPL, "Command not implemented."); } } return rc; }