static int mod_auth_patch_connection(server *srv, connection *con, mod_auth_plugin_data *p) { size_t i, j; mod_auth_plugin_config *s = p->config_storage[0]; PATCH(auth_backend); PATCH(auth_plain_groupfile); PATCH(auth_plain_userfile); PATCH(auth_htdigest_userfile); PATCH(auth_htpasswd_userfile); PATCH(auth_require); PATCH(auth_debug); PATCH(auth_ldap_hostname); PATCH(auth_ldap_basedn); PATCH(auth_ldap_binddn); PATCH(auth_ldap_bindpw); PATCH(auth_ldap_filter); PATCH(auth_ldap_cafile); PATCH(auth_ldap_starttls); PATCH(auth_ldap_allow_empty_pw); #ifdef USE_LDAP p->anon_conf = s; PATCH(ldap_filter_pre); PATCH(ldap_filter_post); #endif /* skip the first, the global context */ for (i = 1; i < srv->config_context->used; i++) { data_config *dc = (data_config *)srv->config_context->data[i]; s = p->config_storage[i]; /* condition didn't match */ if (!config_check_cond(srv, con, dc)) continue; /* merge config */ for (j = 0; j < dc->value->used; j++) { data_unset *du = dc->value->data[j]; if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend"))) { PATCH(auth_backend); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.plain.groupfile"))) { PATCH(auth_plain_groupfile); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.plain.userfile"))) { PATCH(auth_plain_userfile); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.htdigest.userfile"))) { PATCH(auth_htdigest_userfile); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.htpasswd.userfile"))) { PATCH(auth_htpasswd_userfile); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.require"))) { PATCH(auth_require); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.debug"))) { PATCH(auth_debug); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.ldap.hostname"))) { PATCH(auth_ldap_hostname); #ifdef USE_LDAP p->anon_conf = s; #endif } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.ldap.base-dn"))) { PATCH(auth_ldap_basedn); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.ldap.filter"))) { PATCH(auth_ldap_filter); #ifdef USE_LDAP PATCH(ldap_filter_pre); PATCH(ldap_filter_post); #endif } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.ldap.ca-file"))) { PATCH(auth_ldap_cafile); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.ldap.starttls"))) { PATCH(auth_ldap_starttls); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.ldap.bind-dn"))) { PATCH(auth_ldap_binddn); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.ldap.bind-pw"))) { PATCH(auth_ldap_bindpw); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.ldap.allow-empty-pw"))) { PATCH(auth_ldap_allow_empty_pw); } } } return 0; }
/* sound hardware */ MDRV_SPEAKER_STANDARD_MONO("mono") MDRV_SOUND_ADD(SAA1099, 0) MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_DRIVER_END ROM_START( xorworld ) ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "c13.bin", 0x000000, 0x010000, CRC(615a864d) SHA1(db07eef19d26a4daa0bcc17ac24d237483f93bf6) ) ROM_LOAD16_BYTE( "b13.bin", 0x000001, 0x010000, CRC(632e8ee5) SHA1(ec53e632c762f72ad1fe3fab85111bdcc1e818ae) ) ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) ROM_LOAD( "d9.bin", 0x000000, 0x010000, CRC(da8d4d65) SHA1(41bcc15f26066bd820b44c0f258e70d0102953c9) ) ROM_LOAD( "d10.bin", 0x010000, 0x010000, CRC(3b1d6f24) SHA1(bedf60a4cbf20492b8a846b6a7b578f8fe8dbde9) ) ROM_REGION( 0x0300, REGION_PROMS, 0 ) ROM_LOAD( "b4.bin", 0x0000, 0x0100, CRC(75e468af) SHA1(b5fd1a086c27ca2e837cbbf1b7e57dfdd369b0d0) ) /* Red palette ROM (4 bits) */ ROM_LOAD( "b7.bin", 0x0100, 0x0100, CRC(7e1cd146) SHA1(fd26a28f90c50ffcb0fe7718820c81eb9fe79e66) ) /* Green palette ROM (4 bits) */ ROM_LOAD( "b5.bin", 0x0200, 0x0100, CRC(c1b9d9f9) SHA1(c4b02bf60db449fb308a5eb3e41c43299ad8e3e3) ) /* Blue palette ROM (4 bits) */ ROM_END #define PATCH(data) *rom = data; rom++ static DRIVER_INIT( xorworld ) { /* patch some strange protection (without this, strange characters appear after level 5 and some pieces don't rotate properly some times) */ UINT16 *rom = (UINT16 *)(memory_region(REGION_CPU1) + 0x1390); PATCH(0x4239); PATCH(0x00ff); PATCH(0xe196); /* clr.b $ffe196 */ PATCH(0x4239); PATCH(0x00ff); PATCH(0xe197); /* clr.b $ffe197 */ PATCH(0x4239); PATCH(0x00ff); PATCH(0xe0bc); /* clr.b $ffe0bc */ PATCH(0x41f9); PATCH(0x00ff); PATCH(0xcfce); /* lea $ffcfce,A0 */ PATCH(0x3e3c); PATCH(0x000f); /* move #$f,D7 */ PATCH(0x4218); /* clr.b (A0)+ */ PATCH(0x51cf); PATCH(0xfffc); /* dbra D7,$13ac */ PATCH(0x4e75); /* rts */ PATCH(0x31ff); /* adjust checksum */ }
static int mod_dirlisting_patch_connection(server *srv, connection *con, plugin_data *p) { size_t i, j; plugin_config *s = p->config_storage[0]; PATCH(dir_listing); PATCH(external_css); PATCH(external_js); PATCH(hide_dot_files); PATCH(encoding); PATCH(show_readme); PATCH(hide_readme_file); PATCH(show_header); PATCH(hide_header_file); PATCH(excludes); PATCH(set_footer); PATCH(encode_readme); PATCH(encode_header); PATCH(auto_layout); /* skip the first, the global context */ for (i = 1; i < srv->config_context->used; i++) { data_config *dc = (data_config *)srv->config_context->data[i]; s = p->config_storage[i]; /* condition didn't match */ if (!config_check_cond(srv, con, dc)) continue; /* merge config */ for (j = 0; j < dc->value->used; j++) { data_unset *du = dc->value->data[j]; if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_ACTIVATE)) || buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_DIR_LISTING))) { PATCH(dir_listing); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_HIDE_DOTFILES))) { PATCH(hide_dot_files); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_EXTERNAL_CSS))) { PATCH(external_css); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_EXTERNAL_JS))) { PATCH(external_js); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_ENCODING))) { PATCH(encoding); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_SHOW_README))) { PATCH(show_readme); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_HIDE_README_FILE))) { PATCH(hide_readme_file); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_SHOW_HEADER))) { PATCH(show_header); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_HIDE_HEADER_FILE))) { PATCH(hide_header_file); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_SET_FOOTER))) { PATCH(set_footer); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_EXCLUDE))) { PATCH(excludes); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_ENCODE_README))) { PATCH(encode_readme); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_ENCODE_HEADER))) { PATCH(encode_header); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_AUTO_LAYOUT))) { PATCH(auto_layout); } } } return 0; }
static int mod_authn_mysql_patch_connection(server *srv, connection *con, plugin_data *p) { size_t i, j; plugin_config *s = p->config_storage[0]; PATCH(auth_mysql_host); PATCH(auth_mysql_user); PATCH(auth_mysql_pass); PATCH(auth_mysql_db); PATCH(auth_mysql_port); PATCH(auth_mysql_socket); PATCH(auth_mysql_users_table); PATCH(auth_mysql_col_user); PATCH(auth_mysql_col_pass); PATCH(auth_mysql_col_realm); /* skip the first, the global context */ for (i = 1; i < srv->config_context->used; i++) { data_config *dc = (data_config *)srv->config_context->data[i]; s = p->config_storage[i]; /* condition didn't match */ if (!config_check_cond(srv, con, dc)) continue; /* merge config */ for (j = 0; j < dc->value->used; j++) { data_unset *du = dc->value->data[j]; if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.mysql.host"))) { PATCH(auth_mysql_host); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.mysql.user"))) { PATCH(auth_mysql_user); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.mysql.pass"))) { PATCH(auth_mysql_pass); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.mysql.db"))) { PATCH(auth_mysql_db); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.mysql.port"))) { PATCH(auth_mysql_port); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.mysql.socket"))) { PATCH(auth_mysql_socket); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.mysql.users_table"))) { PATCH(auth_mysql_users_table); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.mysql.col_user"))) { PATCH(auth_mysql_col_user); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.mysql.col_pass"))) { PATCH(auth_mysql_col_pass); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("auth.backend.mysql.col_realm"))) { PATCH(auth_mysql_col_realm); } } } return 0; }
int config_patch_connection(server *srv, connection *con, comp_key_t comp) { size_t i, j; con->conditional_is_valid[comp] = 1; /* skip the first, the global context */ for (i = 1; i < srv->config_context->used; i++) { data_config *dc = (data_config *)srv->config_context->data[i]; specific_config *s = srv->config_storage[i]; /* condition didn't match */ if (!config_check_cond(srv, con, dc)) continue; /* merge config */ for (j = 0; j < dc->value->used; j++) { data_unset *du = dc->value->data[j]; if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.document-root"))) { PATCH(document_root); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("smbdav.auth_ntlm"))) { PATCH(auth_ntlm_list); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.range-requests"))) { PATCH(range_requests); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.error-handler-404"))) { PATCH(error_handler); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.errorfile-prefix"))) { PATCH(errorfile_prefix); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("mimetype.assign"))) { PATCH(mimetypes); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.max-keep-alive-requests"))) { PATCH(max_keep_alive_requests); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.max-keep-alive-idle"))) { PATCH(max_keep_alive_idle); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.max-write-idle"))) { PATCH(max_write_idle); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.max-read-idle"))) { PATCH(max_read_idle); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("mimetype.use-xattr"))) { PATCH(use_xattr); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("etag.use-inode"))) { PATCH(etag_use_inode); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("etag.use-mtime"))) { PATCH(etag_use_mtime); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("etag.use-size"))) { PATCH(etag_use_size); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.pemfile"))) { PATCH(ssl_pemfile); #ifdef USE_OPENSSL PATCH(ssl_ctx); #endif } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.ca-file"))) { PATCH(ssl_ca_file); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.use-sslv2"))) { PATCH(ssl_use_sslv2); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.use-sslv3"))) { PATCH(ssl_use_sslv3); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.cipher-list"))) { PATCH(ssl_cipher_list); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.engine"))) { PATCH(is_ssl); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.dh-file"))) { PATCH(ssl_dh_file); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.ec-curve"))) { PATCH(ssl_ec_curve); #ifdef HAVE_LSTAT } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.follow-symlink"))) { PATCH(follow_symlink); #endif } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.name"))) { buffer_copy_string_buffer(con->server_name, s->server_name); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.tag"))) { PATCH(server_tag); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("connection.kbytes-per-second"))) { PATCH(kbytes_per_second); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("debug.log-request-handling"))) { PATCH(log_request_handling); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("debug.log-request-header"))) { PATCH(log_request_header); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("debug.log-response-header"))) { PATCH(log_response_header); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("debug.log-condition-handling"))) { PATCH(log_condition_handling); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("debug.log-file-not-found"))) { PATCH(log_file_not_found); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("debug.log-ssl-noise"))) { PATCH(log_ssl_noise); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("debug.log-timeouts"))) { PATCH(log_timeouts); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.protocol-http11"))) { PATCH(allow_http11); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.force-lowercase-filenames"))) { PATCH(force_lowercase_filenames); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.kbytes-per-second"))) { PATCH(global_kbytes_per_second); PATCH(global_bytes_per_second_cnt); con->conf.global_bytes_per_second_cnt_ptr = &s->global_bytes_per_second_cnt; } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.verifyclient.activate"))) { PATCH(ssl_verifyclient); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.verifyclient.enforce"))) { PATCH(ssl_verifyclient_enforce); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.verifyclient.depth"))) { PATCH(ssl_verifyclient_depth); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.verifyclient.username"))) { PATCH(ssl_verifyclient_username); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.verifyclient.exportcert"))) { PATCH(ssl_verifyclient_export_cert); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.arpping-interface"))) { Cdbg(DBE, "arpping_interface"); //PATCH(arpping_interface); } } } con->etag_flags = (con->conf.etag_use_mtime ? ETAG_USE_MTIME : 0) | (con->conf.etag_use_inode ? ETAG_USE_INODE : 0) | (con->conf.etag_use_size ? ETAG_USE_SIZE : 0); return 0; }
int HTTPClient::PATCH(String payload) { return PATCH((uint8_t *) payload.c_str(), payload.length()); }
void initSynth( JunoControl* _junoControl, Settings* settings, MidiInput* midiInput, int numVoices ) { stereo = strcmp( "yes", settings->getString("devices", "stereo_output") ) == 0; int numFrags = -1; int fragSize = -1; const char *p; p = settings->getString("devices", "NumFrags"); if (strlen(p)) numFrags = atoi(p); p = settings->getString("devices", "FragSize"); if (strlen(p)) fragSize = atoi(p); dsp = new DSPOutput( settings->getString( "devices", "dsp-output" ), SAMPLE_RATE_44k, ( stereo ) ? 2 : 1, numFrags, fragSize); //FIXME: we have to hold on to the junoControl pointer... sloppy junoControl = _junoControl; lfo = new JunoLfo(junoControl,numVoices); arpeggio = new JunoArpeggio(junoControl,numVoices); pwmLfo = new Attenuator; noise = new Rand; voiceMix = new Mixer(numVoices); hpf = new HPF; PATCH(lfo, "sig", pwmLfo, "sig"); pwmLfo->set("amp", .5); pwmLfo->set("zro", .5); //FIXME: an array of voices would be nice, huh? debug(DEBUG_APPMSG1, "Creating %d voices...", numVoices); /* fall thru each case */ if (numVoices>64) { debug(DEBUG_APPMSG1, "more than 64 voices are not allowed, truncated!"); numVoices=64; } numV = numVoices; for (int i=0;i<numVoices;i++) { //debug(DEBUG_APPMSG1, "CREATING VOICE %d",i); voice[i] = new JunoVoice(junoControl,i); char *tmp = new char[6]; sprintf(tmp,"sig%d",i); //debug(DEBUG_APPMSG1, "patching voice",i); PATCH(voice[i],"sig",voiceMix,tmp); } /*switch(numVoices) { case 6: voice5 = new JunoVoice(junoControl, 5); PATCH(voice5, "sig", voiceMix, "sig5"); case 5: voice4 = new JunoVoice(junoControl, 4); PATCH(voice4, "sig", voiceMix, "sig4"); case 4: voice3 = new JunoVoice(junoControl, 3); PATCH(voice3, "sig", voiceMix, "sig3"); case 3: voice2 = new JunoVoice(junoControl, 2); PATCH(voice2, "sig", voiceMix, "sig2"); case 2: voice1 = new JunoVoice(junoControl, 1); PATCH(voice1, "sig", voiceMix, "sig1"); case 1: voice0 = new JunoVoice(junoControl, 0); PATCH(voice0, "sig", voiceMix, "sig0"); }*/ PATCH(voiceMix, "sig", hpf, "sig"); PATCH(junoControl, "hpf_frq", hpf, "frq"); //FIXME: tune the Q of the hpf hpf->set("Q", 0.0); chorus = new JunoChorus( hpf, "sig", 0 ); if ( stereo ) { chorus2 = new JunoChorus( hpf, "sig", 1 ); PATCH( junoControl, "chorus_off_switch", chorus2, "off" ); PATCH( junoControl, "chorus_I_switch", chorus2, "I" ); PATCH( junoControl, "chorus_II_switch", chorus2, "II" ); PATCH( chorus2, "sig", dsp, "sig1" ); PATCH( junoControl, "volume", dsp, "amp1"); } PATCH( junoControl, "chorus_off_switch", chorus, "off" ); PATCH( junoControl, "chorus_I_switch", chorus, "I" ); PATCH( junoControl, "chorus_II_switch", chorus, "II" ); PATCH( chorus, "sig", dsp, "sig0" ); PATCH( junoControl, "volume", dsp, "amp0"); // all cool dave, scope does nothing until you pop it up. scope = new Scope(); PATCH( chorus, "sig", scope, "sig" ); /* the Balance in the voices needs signal to calibrate, so start * the oscillators with an arbitrary frequency - they run forever */ for (int i=0;i<numV;i++) { junoControl->getOutput((String)"voice"+i+(String)"_pitch")->setData(CPS(666)); } /*junoControl->getOutput("voice1_pitch")->setData(CPS(666)); junoControl->getOutput("voice2_pitch")->setData(CPS(666)); junoControl->getOutput("voice3_pitch")->setData(CPS(666)); junoControl->getOutput("voice4_pitch")->setData(CPS(666)); junoControl->getOutput("voice5_pitch")->setData(CPS(666));*/ PATCH( junoControl, "volume", dsp, "amp0"); Scheduler::start( dsp ); }
static int mod_simple_vhost_patch_connection(server *srv, connection *con, plugin_data *p) { size_t i, j; plugin_config *s = p->config_storage[0]; PATCH(server_root); PATCH(default_host); PATCH(document_root); PATCH(docroot_cache_key); PATCH(docroot_cache_value); PATCH(docroot_cache_servername); PATCH(debug); /* skip the first, the global context */ for (i = 1; i < srv->config_context->used; i++) { data_config *dc = (data_config *)srv->config_context->data[i]; s = p->config_storage[i]; /* condition didn't match */ if (!config_check_cond(srv, con, dc)) continue; /* merge config */ for (j = 0; j < dc->value->used; j++) { data_unset *du = dc->value->data[j]; if (buffer_is_equal_string(du->key, CONST_STR_LEN("simple-vhost.server-root"))) { PATCH(server_root); PATCH(docroot_cache_key); PATCH(docroot_cache_value); PATCH(docroot_cache_servername); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("simple-vhost.default-host"))) { PATCH(default_host); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("simple-vhost.document-root"))) { PATCH(document_root); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("simple-vhost.debug"))) { PATCH(debug); } } } return 0; }
static int mod_lisp_patch_connection(server *srv, connection *con, plugin_data *p) #define PATCH(x) p->conf.x = s->x { size_t i, j; plugin_config *s = p->config_storage[0]; PATCH(LispUseHandler); PATCH(LispServerId); PATCH(LispServerPort); PATCH(LispServerIP); PATCH(loglevel); PATCH(LispSocketPoolSize); /* Skip the first, global context. */ for (i = 1; i < srv->config_context->used; i++) { data_config *dc = (data_config *)srv->config_context->data[i]; s = p->config_storage[i]; if (!config_check_cond(srv, con, dc)) continue; /* Condition did not match. */ for (j = 0; j < dc->value->used; j++) { /* Merge config. */ data_unset *du = dc->value->data[j]; if (buffer_is_equal_string(du->key, CONST_STR_LEN("lisp.use-handler"))) PATCH(LispUseHandler); else if (buffer_is_equal_string(du->key, CONST_STR_LEN("lisp.server-id"))) PATCH(LispServerId); else if (buffer_is_equal_string(du->key, CONST_STR_LEN("lisp.server-ip"))) PATCH(LispServerIP); else if (buffer_is_equal_string(du->key, CONST_STR_LEN("lisp.server-port"))) PATCH(LispServerPort); else if (buffer_is_equal_string(du->key, CONST_STR_LEN("lisp.log-level"))) PATCH(loglevel); } } return 0; }
static int mod_secdownload_patch_connection(server *srv, connection *con, plugin_data *p) { size_t i, j; plugin_config *s = p->config_storage[0]; PATCH(secret); PATCH(doc_root); PATCH(uri_prefix); PATCH(timeout); PATCH(algorithm); PATCH(path_segments); PATCH(hash_querystr); /* skip the first, the global context */ for (i = 1; i < srv->config_context->used; i++) { data_config *dc = (data_config *)srv->config_context->data[i]; s = p->config_storage[i]; /* condition didn't match */ if (!config_check_cond(srv, con, dc)) continue; /* merge config */ for (j = 0; j < dc->value->used; j++) { data_unset *du = dc->value->data[j]; if (buffer_is_equal_string(du->key, CONST_STR_LEN("secdownload.secret"))) { PATCH(secret); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("secdownload.document-root"))) { PATCH(doc_root); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("secdownload.uri-prefix"))) { PATCH(uri_prefix); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("secdownload.timeout"))) { PATCH(timeout); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("secdownload.algorithm"))) { PATCH(algorithm); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("secdownload.path-segments"))) { PATCH(path_segments); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("secdownload.hash-querystr"))) { PATCH(hash_querystr); } } } return 0; }
static int mod_rewrite_patch_connection(server *srv, connection *con, plugin_data *p) { size_t i, j; plugin_config *s = p->config_storage[0]; PATCH(rewrite); PATCH(rewrite_NF); p->conf.context = NULL; p->conf.context_NF = NULL; PATCH(rewrite_repeat_idx); PATCH(rewrite_NF_repeat_idx); /* skip the first, the global context */ for (i = 1; i < srv->config_context->used; i++) { data_config *dc = (data_config *)srv->config_context->data[i]; s = p->config_storage[i]; /* condition didn't match */ if (!config_check_cond(srv, con, dc)) continue; /* merge config */ for (j = 0; j < dc->value->used; j++) { data_unset *du = dc->value->data[j]; if (buffer_is_equal_string(du->key, CONST_STR_LEN("url.rewrite"))) { PATCH(rewrite); p->conf.context = dc; PATCH(rewrite_repeat_idx); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("url.rewrite-once"))) { PATCH(rewrite); p->conf.context = dc; PATCH(rewrite_repeat_idx); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("url.rewrite-repeat"))) { PATCH(rewrite); p->conf.context = dc; PATCH(rewrite_repeat_idx); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("url.rewrite-if-not-file"))) { PATCH(rewrite_NF); p->conf.context_NF = dc; PATCH(rewrite_NF_repeat_idx); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("url.rewrite-repeat-if-not-file"))) { PATCH(rewrite_NF); p->conf.context_NF = dc; PATCH(rewrite_NF_repeat_idx); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("url.rewrite-final"))) { PATCH(rewrite); p->conf.context = dc; PATCH(rewrite_repeat_idx); } } } return 0; }
/* Mixer file operations */ static int emu10k1_private_mixer(struct emu10k1_card *card, unsigned int cmd, unsigned long arg) { struct mixer_private_ioctl *ctl; struct dsp_patch *patch; u32 size, page; int addr, size_reg, i, ret; unsigned int id, ch; switch (cmd) { case SOUND_MIXER_PRIVATE3: ctl = (struct mixer_private_ioctl *) kmalloc(sizeof(struct mixer_private_ioctl), GFP_KERNEL); if (ctl == NULL) return -ENOMEM; if (copy_from_user(ctl, (void *) arg, sizeof(struct mixer_private_ioctl))) { kfree(ctl); return -EFAULT; } ret = 0; switch (ctl->cmd) { #ifdef DBGEMU case CMD_WRITEFN0: emu10k1_writefn0(card, ctl->val[0], ctl->val[1]); break; case CMD_WRITEPTR: if (ctl->val[1] >= 0x40 || ctl->val[0] > 0xff) { ret = -EINVAL; break; } if ((ctl->val[0] & 0x7ff) > 0x3f) ctl->val[1] = 0x00; sblive_writeptr(card, ctl->val[0], ctl->val[1], ctl->val[2]); break; #endif case CMD_READFN0: ctl->val[2] = emu10k1_readfn0(card, ctl->val[0]); if (copy_to_user((void *) arg, ctl, sizeof(struct mixer_private_ioctl))) ret = -EFAULT; break; case CMD_READPTR: if (ctl->val[1] >= 0x40 || (ctl->val[0] & 0x7ff) > 0xff) { ret = -EINVAL; break; } if ((ctl->val[0] & 0x7ff) > 0x3f) ctl->val[1] = 0x00; ctl->val[2] = sblive_readptr(card, ctl->val[0], ctl->val[1]); if (copy_to_user((void *) arg, ctl, sizeof(struct mixer_private_ioctl))) ret = -EFAULT; break; case CMD_SETRECSRC: switch (ctl->val[0]) { case WAVERECORD_AC97: if (card->is_aps) { ret = -EINVAL; break; } card->wavein.recsrc = WAVERECORD_AC97; break; case WAVERECORD_MIC: card->wavein.recsrc = WAVERECORD_MIC; break; case WAVERECORD_FX: card->wavein.recsrc = WAVERECORD_FX; card->wavein.fxwc = ctl->val[1] & 0xffff; if (!card->wavein.fxwc) ret = -EINVAL; break; default: ret = -EINVAL; break; } break; case CMD_GETRECSRC: ctl->val[0] = card->wavein.recsrc; ctl->val[1] = card->wavein.fxwc; if (copy_to_user((void *) arg, ctl, sizeof(struct mixer_private_ioctl))) ret = -EFAULT; break; case CMD_GETVOICEPARAM: ctl->val[0] = card->waveout.send_routing[0]; ctl->val[1] = card->waveout.send_a[0] | card->waveout.send_b[0] << 8 | card->waveout.send_c[0] << 16 | card->waveout.send_d[0] << 24; ctl->val[2] = card->waveout.send_routing[1]; ctl->val[3] = card->waveout.send_a[1] | card->waveout.send_b[1] << 8 | card->waveout.send_c[1] << 16 | card->waveout.send_d[1] << 24; ctl->val[4] = card->waveout.send_routing[2]; ctl->val[5] = card->waveout.send_a[2] | card->waveout.send_b[2] << 8 | card->waveout.send_c[2] << 16 | card->waveout.send_d[2] << 24; if (copy_to_user((void *) arg, ctl, sizeof(struct mixer_private_ioctl))) ret = -EFAULT; break; case CMD_SETVOICEPARAM: card->waveout.send_routing[0] = ctl->val[0] & 0xffff; card->waveout.send_a[0] = ctl->val[1] & 0xff; card->waveout.send_b[0] = (ctl->val[1] >> 8) & 0xff; card->waveout.send_c[0] = (ctl->val[1] >> 16) & 0xff; card->waveout.send_d[0] = (ctl->val[1] >> 24) & 0xff; card->waveout.send_routing[1] = ctl->val[2] & 0xffff; card->waveout.send_a[1] = ctl->val[3] & 0xff; card->waveout.send_b[1] = (ctl->val[3] >> 8) & 0xff; card->waveout.send_c[1] = (ctl->val[3] >> 16) & 0xff; card->waveout.send_d[1] = (ctl->val[3] >> 24) & 0xff; card->waveout.send_routing[2] = ctl->val[4] & 0xffff; card->waveout.send_a[2] = ctl->val[5] & 0xff; card->waveout.send_b[2] = (ctl->val[5] >> 8) & 0xff; card->waveout.send_c[2] = (ctl->val[5] >> 16) & 0xff; card->waveout.send_d[2] = (ctl->val[5] >> 24) & 0xff; break; case CMD_SETMCH_FX: card->mchannel_fx = ctl->val[0] & 0x000f; break; case CMD_GETPATCH: if (ctl->val[0] == 0) { if (copy_to_user((void *) arg, &card->mgr.rpatch, sizeof(struct dsp_rpatch))) ret = -EFAULT; } else { if ((ctl->val[0] - 1) / PATCHES_PER_PAGE >= card->mgr.current_pages) { ret = -EINVAL; break; } if (copy_to_user((void *) arg, PATCH(&card->mgr, ctl->val[0] - 1), sizeof(struct dsp_patch))) ret = -EFAULT; } break; case CMD_GETGPR: id = ctl->val[0]; if (id > NUM_GPRS) { ret = -EINVAL; break; } if (copy_to_user((void *) arg, &card->mgr.gpr[id], sizeof(struct dsp_gpr))) ret = -EFAULT; break; case CMD_GETCTLGPR: addr = emu10k1_find_control_gpr(&card->mgr, (char *) ctl->val, &((char *) ctl->val)[PATCH_NAME_SIZE]); ctl->val[0] = sblive_readptr(card, addr, 0); if (copy_to_user((void *) arg, ctl, sizeof(struct mixer_private_ioctl))) ret = -EFAULT; break; case CMD_SETPATCH: if (ctl->val[0] == 0) memcpy(&card->mgr.rpatch, &ctl->val[1], sizeof(struct dsp_rpatch)); else { page = (ctl->val[0] - 1) / PATCHES_PER_PAGE; if (page > MAX_PATCHES_PAGES) { ret = -EINVAL; break; } if (page >= card->mgr.current_pages) { for (i = card->mgr.current_pages; i < page + 1; i++) { card->mgr.patch[i] = (void *)__get_free_page(GFP_KERNEL); if(card->mgr.patch[i] == NULL) { card->mgr.current_pages = i; ret = -ENOMEM; break; } memset(card->mgr.patch[i], 0, PAGE_SIZE); } card->mgr.current_pages = page + 1; } patch = PATCH(&card->mgr, ctl->val[0] - 1); memcpy(patch, &ctl->val[1], sizeof(struct dsp_patch)); if (patch->code_size == 0) { for(i = page + 1; i < card->mgr.current_pages; i++) free_page((unsigned long) card->mgr.patch[i]); card->mgr.current_pages = page + 1; } } break; case CMD_SETGPR: if (ctl->val[0] > NUM_GPRS) { ret = -EINVAL; break; } memcpy(&card->mgr.gpr[ctl->val[0]], &ctl->val[1], sizeof(struct dsp_gpr)); break; case CMD_SETCTLGPR: addr = emu10k1_find_control_gpr(&card->mgr, (char *) ctl->val, (char *) ctl->val + PATCH_NAME_SIZE); emu10k1_set_control_gpr(card, addr, *((s32 *)((char *) ctl->val + 2 * PATCH_NAME_SIZE)), 0); break; case CMD_SETGPOUT: if (ctl->val[0] > 2 || ctl->val[1] > 1) { ret= -EINVAL; break; } emu10k1_writefn0(card, (1 << 24) | (((ctl->val[0]) + 10) << 16) | HCFG, ctl->val[1]); break; case CMD_GETGPR2OSS: id = ctl->val[0]; ch = ctl->val[1]; if (id >= SOUND_MIXER_NRDEVICES || ch >= 2) { ret = -EINVAL; break; } ctl->val[2] = card->mgr.ctrl_gpr[id][ch]; if (copy_to_user((void *) arg, ctl, sizeof(struct mixer_private_ioctl))) ret = -EFAULT; break; case CMD_SETGPR2OSS: id = ctl->val[0]; /* 0 == left, 1 == right */ ch = ctl->val[1]; addr = ctl->val[2]; if (id >= SOUND_MIXER_NRDEVICES || ch >= 2) { ret = -EINVAL; break; } card->mgr.ctrl_gpr[id][ch] = addr; if (card->is_aps) break; if (addr >= 0) { unsigned int state = card->ac97.mixer_state[id]; if (ch == 1) { state >>= 8; card->ac97.stereo_mixers |= (1 << id); } card->ac97.supported_mixers |= (1 << id); if (id == SOUND_MIXER_TREBLE) { set_treble(card, card->ac97.mixer_state[id] & 0xff, (card->ac97.mixer_state[id] >> 8) & 0xff); } else if (id == SOUND_MIXER_BASS) {
static int mod_trigger_b4_dl_patch_connection(server *srv, connection *con, plugin_data *p) { size_t i, j; plugin_config *s = p->config_storage[0]; #if defined(HAVE_GDBM) PATCH(db); #endif #if defined(HAVE_PCRE_H) PATCH(download_regex); PATCH(trigger_regex); #endif PATCH(trigger_timeout); PATCH(deny_url); PATCH(mc_namespace); PATCH(debug); #if defined(USE_MEMCACHED) PATCH(memc); #endif /* skip the first, the global context */ for (i = 1; i < srv->config_context->used; i++) { data_config *dc = (data_config *)srv->config_context->data[i]; s = p->config_storage[i]; /* condition didn't match */ if (!config_check_cond(srv, con, dc)) continue; /* merge config */ for (j = 0; j < dc->value->used; j++) { data_unset *du = dc->value->data[j]; if (buffer_is_equal_string(du->key, CONST_STR_LEN("trigger-before-download.download-url"))) { #if defined(HAVE_PCRE_H) PATCH(download_regex); #endif } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("trigger-before-download.trigger-url"))) { # if defined(HAVE_PCRE_H) PATCH(trigger_regex); # endif } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("trigger-before-download.gdbm-filename"))) { #if defined(HAVE_GDBM_H) PATCH(db); #endif } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("trigger-before-download.trigger-timeout"))) { PATCH(trigger_timeout); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("trigger-before-download.debug"))) { PATCH(debug); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("trigger-before-download.deny-url"))) { PATCH(deny_url); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("trigger-before-download.memcache-namespace"))) { PATCH(mc_namespace); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("trigger-before-download.memcache-hosts"))) { #if defined(USE_MEMCACHED) PATCH(memc); #endif } } } return 0; }
static int mod_accesslog_patch_connection(server *srv, connection *con, plugin_data *p) { size_t i, j; plugin_config *s = p->config_storage[0]; PATCH(access_logfile); PATCH(format); PATCH(log_access_fd); PATCH(last_generated_accesslog_ts_ptr); PATCH(access_logbuffer); PATCH(ts_accesslog_str); PATCH(ts_accesslog_fmt_str); PATCH(append_tz_offset); PATCH(parsed_format); PATCH(use_syslog); PATCH(syslog_level); /* skip the first, the global context */ for (i = 1; i < srv->config_context->used; i++) { data_config *dc = (data_config *)srv->config_context->data[i]; s = p->config_storage[i]; /* condition didn't match */ if (!config_check_cond(srv, con, dc)) continue; /* merge config */ for (j = 0; j < dc->value->used; j++) { data_unset *du = dc->value->data[j]; if (buffer_is_equal_string(du->key, CONST_STR_LEN("accesslog.filename"))) { PATCH(access_logfile); PATCH(log_access_fd); PATCH(access_logbuffer); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("accesslog.format"))) { PATCH(format); PATCH(parsed_format); PATCH(last_generated_accesslog_ts_ptr); PATCH(ts_accesslog_str); PATCH(ts_accesslog_fmt_str); PATCH(append_tz_offset); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("accesslog.use-syslog"))) { PATCH(use_syslog); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("accesslog.syslog-level"))) { PATCH(syslog_level); } } } return 0; }
int config_setup_connection(server *srv, connection *con) { specific_config *s = srv->config_storage[0]; PATCH(allow_http11); PATCH(mimetypes); PATCH(document_root); PATCH(max_keep_alive_requests); PATCH(max_keep_alive_idle); PATCH(max_read_idle); PATCH(max_write_idle); PATCH(use_xattr); PATCH(error_handler); PATCH(errorfile_prefix); #ifdef HAVE_LSTAT PATCH(follow_symlink); #endif PATCH(server_tag); PATCH(kbytes_per_second); PATCH(global_kbytes_per_second); PATCH(global_bytes_per_second_cnt); con->conf.global_bytes_per_second_cnt_ptr = &s->global_bytes_per_second_cnt; buffer_copy_string_buffer(con->server_name, s->server_name); PATCH(log_request_header); PATCH(log_response_header); PATCH(log_request_handling); PATCH(log_condition_handling); PATCH(log_file_not_found); PATCH(log_ssl_noise); PATCH(log_timeouts); PATCH(range_requests); PATCH(force_lowercase_filenames); PATCH(is_ssl); PATCH(ssl_pemfile); #ifdef USE_OPENSSL PATCH(ssl_ctx); #endif PATCH(ssl_ca_file); PATCH(ssl_cipher_list); PATCH(ssl_dh_file); PATCH(ssl_ec_curve); PATCH(ssl_use_sslv2); PATCH(ssl_use_sslv3); PATCH(etag_use_inode); PATCH(etag_use_mtime); PATCH(etag_use_size); PATCH(ssl_verifyclient); PATCH(ssl_verifyclient_enforce); PATCH(ssl_verifyclient_depth); PATCH(ssl_verifyclient_username); PATCH(ssl_verifyclient_export_cert); return 0; }
static int mod_userdir_patch_connection(server *srv, connection *con, plugin_data *p) { size_t i, j; plugin_config *s = p->config_storage[0]; PATCH(path); PATCH(exclude_user); PATCH(include_user); PATCH(basepath); PATCH(letterhomes); PATCH(active); /* skip the first, the global context */ for (i = 1; i < srv->config_context->used; i++) { data_config *dc = (data_config *)srv->config_context->data[i]; s = p->config_storage[i]; /* condition didn't match */ if (!config_check_cond(srv, con, dc)) continue; /* merge config */ for (j = 0; j < dc->value->used; j++) { data_unset *du = dc->value->data[j]; if (buffer_is_equal_string(du->key, CONST_STR_LEN("userdir.path"))) { PATCH(path); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("userdir.exclude-user"))) { PATCH(exclude_user); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("userdir.include-user"))) { PATCH(include_user); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("userdir.basepath"))) { PATCH(basepath); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("userdir.letterhomes"))) { PATCH(letterhomes); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("userdir.active"))) { PATCH(active); } } } return 0; }
static int mod_cgi_patch_connection(server *srv, connection *con, plugin_data *p) { size_t i, j; plugin_config *s = p->config_storage[0]; PATCH(cgi); PATCH(execute_x_only); PATCH(local_redir); PATCH(upgrade); PATCH(xsendfile_allow); PATCH(xsendfile_docroot); /* skip the first, the global context */ for (i = 1; i < srv->config_context->used; i++) { data_config *dc = (data_config *)srv->config_context->data[i]; s = p->config_storage[i]; /* condition didn't match */ if (!config_check_cond(srv, con, dc)) continue; /* merge config */ for (j = 0; j < dc->value->used; j++) { data_unset *du = dc->value->data[j]; if (buffer_is_equal_string(du->key, CONST_STR_LEN("cgi.assign"))) { PATCH(cgi); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("cgi.execute-x-only"))) { PATCH(execute_x_only); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("cgi.local-redir"))) { PATCH(local_redir); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("cgi.upgrade"))) { PATCH(upgrade); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("cgi.x-sendfile"))) { PATCH(xsendfile_allow); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("cgi.x-sendfile-docroot"))) { PATCH(xsendfile_docroot); } } } return 0; }