int get_display_layer_window() { IDirectFB *dfb = NULL; IDirectFBDisplayLayer *layer = NULL; IDirectFBWindow *window = NULL; DFBWindowDescription desc; DFBCHECK(DirectFBInit(NULL, NULL)); DFBCHECK(DirectFBCreate(&dfb)); push_release(dfb,dfb->Release); DFBCHECK(dfb->GetDisplayLayer(dfb, DLID_PRIMARY, &layer)); push_release(layer, layer->Release); desc.flags = DWDESC_WIDTH | DWDESC_HEIGHT | DWDESC_POSX | DWDESC_POSY; desc.posx = desc.posy = desc.width = desc.height = 20; DFBCHECK(layer->CreateWindow(layer, &desc, &window)); push_release(window, window->Release); /* check window */ release_all(); return 0; }
bool CIOModule::onSysMsg(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int x = GET_X_LPARAM(lParam); int y = GET_Y_LPARAM(lParam); switch (message) { case WM_SETFOCUS: mouse.capture(); return true; break; case WM_KILLFOCUS: release_all(); return true; break; case WM_MOUSEMOVE: mouse.setSysMouseLoc(x, y); return true; break; case WM_MOUSEWHEEL: mouse.wheel = GET_WHEEL_DELTA_WPARAM(wParam) / WHEEL_DELTA; return true; break; case WM_KEYDOWN: keys.sysSysStatus((int)wParam, true); return true; break; case WM_KEYUP: keys.sysSysStatus((int)wParam, false); return true; break; } return false; }
PageReleaseBatch::~PageReleaseBatch() { release_all(); for (thread::ThreadGroupId i = 0; i < numa_node_count_; ++i) { delete chunks_[i]; chunks_[i] = nullptr; } }
int main(int argc, char* argv[]) { parse_argv(argc, argv); printf("listen address: %s:%d\n", inet_ntoa(server_address.sin_addr), ntohs(server_address.sin_port)); printf("broadcast address %s:%d\n", inet_ntoa(bcast_address.sin_addr), ntohs(bcast_address.sin_port)); printf("tftp address: %s\n", inet_ntoa(tftp_ip)); printf("nbp name: %s\n", nbp_name); /* install signal handler */ if (install_signal_handler() == -1) { perror("sigaction() failed"); exit(-1); } /* init sockets */ if (init_socket() == -1) { perror("init_socket()"); release_all(); exit(1); } if (foreground) { pdhcp(); } else { daemon(0,0); pdhcp(); } return 0; }
int testing_multicore() { IDirectFB *dfb = NULL; IDirectFBSurface *surface = NULL; DFBSurfaceDescription dsc; pid_t n_pid = fork(); if (n_pid) { sleep(1); } DFBCHECK(DirectFBInit(NULL, NULL)); DFBCHECK(DirectFBCreate(&dfb)); push_release(dfb, dfb->Release); DFBCHECK(dfb->SetCooperativeLevel (dfb, DFSCL_FULLSCREEN)); dsc.flags = DSDESC_CAPS; dsc.caps = DSCAPS_PRIMARY | DSCAPS_FLIPPING; DFBCHECK (dfb->CreateSurface( dfb, &dsc, &surface )); push_release(surface, surface->Release); if (!n_pid) { sleep(1); } sleep(2); //DFBCHECK(surface->Release(surface)); //DFBCHECK(dfb->Release(dfb)); release_all(); if (n_pid) { wait(NULL); } return 0; }
PluginManagerPrivate::~PluginManagerPrivate() { release_all(NULL); for (vector<pluginInfo>::iterator itp = plugins.begin(); itp != plugins.end(); ++itp){ free((*itp).name); } }
int main() { island* start; start = get_islands(); display_all(start); release_all(start); return 0; }
int init_n_close() { IDirectFB *dfb = NULL; DFBCHECK(DirectFBInit(NULL, NULL)); DFBCHECK(DirectFBCreate(&dfb)); push_release(dfb, dfb->Release); release_all(); return 0; }
bool renderer::reset_device(const d3d9::display_settings & config) { release_all(); if (resetter.try_reset(config)) { recover_all(); this->config = config; return true; } return false; }
bool NdbPool::init(Uint32 init_no_objects) { bool ret_result = false; int i; do { input_pool_cond = NdbCondition_Create(); output_pool_cond = NdbCondition_Create(); if (input_pool_cond == NULL || output_pool_cond == NULL) { break; } if (init_no_objects > m_max_ndb_objects) { init_no_objects = m_max_ndb_objects; } if (init_no_objects == 0) { init_no_objects = 1; } m_pool_reference = new NdbPool::POOL_STRUCT[m_max_ndb_objects + 1]; m_hash_entry = new Uint8[POOL_HASH_TABLE_SIZE]; if ((m_pool_reference == NULL) || (m_hash_entry == NULL)) { delete [] m_pool_reference; delete [] m_hash_entry; break; } for (i = 0; i < m_max_ndb_objects + 1; i++) { m_pool_reference[i].ndb_reference = NULL; m_pool_reference[i].in_use = false; m_pool_reference[i].next_free_object = i+1; m_pool_reference[i].prev_free_object = i-1; m_pool_reference[i].next_db_object = NULL_POOL; m_pool_reference[i].prev_db_object = NULL_POOL; } for (i = 0; i < POOL_HASH_TABLE_SIZE; i++) { m_hash_entry[i] = NULL_HASH; } m_pool_reference[m_max_ndb_objects].next_free_object = NULL_POOL; m_pool_reference[1].prev_free_object = NULL_POOL; m_first_not_in_use = 1; m_no_of_objects = init_no_objects; for (i = init_no_objects; i > 0 ; i--) { Uint32 fake_id; if (!allocate_ndb(fake_id, (const char*)NULL, (const char*)NULL)) { release_all(); break; } } ret_result = true; break; } while (1); return ret_result; }
void *PluginManagerPrivate::processEvent(Event *e) { CmdParam *p; #ifndef WIN32 ExecParam *exec; #endif switch (e->type()){ case EventArg: p = (CmdParam*)(e->param()); return (void*)findParam(p->arg, p->descr, p->value); case EventPluginGetInfo: return getInfo((unsigned)(e->param())); case EventApplyPlugin: return (void*)setInfo((const char*)(e->param())); case EventPluginsUnload: release_all((Plugin*)(e->param())); return e->param(); case EventPluginsLoad: load_all((Plugin*)(e->param())); return e->param(); case EventUnloadPlugin: release((const char*)(e->param())); return e->param(); case EventLoadPlugin: load((const char*)(e->param())); return e->param(); case EventSaveState: saveState(); break; case EventGetPluginInfo: return getInfo((const char*)(e->param())); case EventArgc: return (void*)(m_argc); case EventArgv: return (void*)(m_argv); #ifndef WIN32 case EventExec: exec = (ExecParam*)(e->param()); execute(exec->cmd, exec->arg); return e->param(); #endif default: break; } return NULL; }
int get_display_layer() { IDirectFB *dfb = NULL; IDirectFBDisplayLayer *layer = NULL; DFBCHECK(DirectFBInit(NULL, NULL)); DFBCHECK(DirectFBCreate(&dfb)); push_release(dfb, dfb->Release); DFBCHECK(dfb->GetDisplayLayer(dfb, DLID_PRIMARY, &layer)); push_release(layer, layer->Release); release_all(); return 0; }
void fs_var_log(void) { build_list("/var/log"); // create /var/log if it doesn't exit if (is_dir("/var/log")) { // extract group id for /var/log/wtmp struct stat s; gid_t wtmp_group = 0; if (stat("/var/log/wtmp", &s) == 0) wtmp_group = s.st_gid; // mount a tmpfs on top of /var/log if (arg_debug) printf("Mounting tmpfs on /var/log\n"); if (mount("tmpfs", "/var/log", "tmpfs", MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_STRICTATIME | MS_REC, "mode=755,gid=0") < 0) errExit("mounting /var/log"); fs_logger("tmpfs /var/log"); build_dirs(); release_all(); // create an empty /var/log/wtmp file /* coverity[toctou] */ FILE *fp = fopen("/var/log/wtmp", "w"); if (fp) fclose(fp); if (chown("/var/log/wtmp", 0, wtmp_group) < 0) errExit("chown"); if (chmod("/var/log/wtmp", S_IRUSR | S_IWRITE | S_IRGRP | S_IWGRP | S_IROTH ) < 0) errExit("chmod"); fs_logger("touch /var/log/wtmp"); // create an empty /var/log/btmp file fp = fopen("/var/log/btmp", "w"); if (fp) fclose(fp); if (chown("/var/log/btmp", 0, wtmp_group) < 0) errExit("chown"); if (chmod("/var/log/btmp", S_IRUSR | S_IWRITE | S_IRGRP | S_IWGRP) < 0) errExit("chmod"); fs_logger("touch /var/log/btmp"); } else fprintf(stderr, "Warning: cannot mount tmpfs on top of /var/log\n"); }
int list_layers() { IDirectFB *dfb = NULL; //IDirectFBSurface *surface = NULL; //IDirectFBLayer *layer = NULL; DFBCHECK(DirectFBInit(NULL, NULL)); DFBCHECK(DirectFBCreate(&dfb)); push_release(dfb, dfb->Release); DFBCHECK(dfb->EnumDisplayLayers(dfb, layer_cb, dfb)); sleep(1); release_all(); return 0; }
void fs_var_log(void) { build_list("/var/log"); // create /var/log if it does't exit struct stat s; if (is_dir("/var/log")) { // mount a tmpfs on top of /var/log if (arg_debug) printf("Mounting tmpfs on /var/log\n"); if (mount("tmpfs", "/var/log", "tmpfs", MS_NOSUID | MS_STRICTATIME | MS_REC, "mode=755,gid=0") < 0) errExit("mounting /var/log"); build_dirs(); release_all(); } else fprintf(stderr, "Warning: cannot mount tmpfs in top of /var/log\n"); }
void fs_var_log(void) { build_list("/var/log"); // note: /var/log is not created here, if it does not exist, this section fails. // create /var/log if it doesn't exit if (is_dir("/var/log")) { // extract group id for /var/log/wtmp struct stat s; gid_t wtmp_group = 0; if (stat("/var/log/wtmp", &s) == 0) wtmp_group = s.st_gid; // mount a tmpfs on top of /var/log if (arg_debug) printf("Mounting tmpfs on /var/log\n"); if (mount("tmpfs", "/var/log", "tmpfs", MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_STRICTATIME | MS_REC, "mode=755,gid=0") < 0) errExit("mounting /var/log"); fs_logger("tmpfs /var/log"); build_dirs(); release_all(); // create an empty /var/log/wtmp file /* coverity[toctou] */ FILE *fp = fopen("/var/log/wtmp", "w"); if (fp) { SET_PERMS_STREAM(fp, 0, wtmp_group, S_IRUSR | S_IWRITE | S_IRGRP | S_IWGRP | S_IROTH); fclose(fp); } fs_logger("touch /var/log/wtmp"); // create an empty /var/log/btmp file fp = fopen("/var/log/btmp", "w"); if (fp) { SET_PERMS_STREAM(fp, 0, wtmp_group, S_IRUSR | S_IWRITE | S_IRGRP | S_IWGRP); fclose(fp); } fs_logger("touch /var/log/btmp"); } else fwarning("cannot hide /var/log directory\n"); }
void Channel::set_controller(int con,int val) { switch (con) { case 5: set_portamento_time(val); break; case 7: set_volume(val); break; case 8: set_balance(val); break; case 65: set_portamento(val); break; case 64: set_hold_pedal(val>=64); break; case 66: set_sostenuto_pedal(val>=64); break; case 67: set_soft_pedal(val>=64); break; case 68: set_legato_pedal(val>=64); break; case 119: set_quick_release(val); case 120: panic(); break; case 121: reset_controllers(); break; case 123: release_all(); break; case 126: set_n_voices(val); break; case 127: set_n_voices(999); break; default: set_user_controller(con,val); break; } }
extern "C" __declspec(dllexport) BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH: // attach to process // return FALSE to fail DLL load break; case DLL_PROCESS_DETACH: // detach from process release_all(); break; case DLL_THREAD_ATTACH: // attach to thread break; case DLL_THREAD_DETACH: // detach from thread break; } return TRUE; // succesful };
int testing_singlecore() { IDirectFB *dfb = NULL; IDirectFBSurface *surface = NULL; DFBSurfaceDescription dsc; DFBSurfaceCapabilities caps; int width, height; DFBSurfacePixelFormat p_format; int i; DFBCHECK(DirectFBInit(NULL, NULL)); DFBCHECK(DirectFBCreate(&dfb)); push_release(dfb, dfb->Release); DFBCHECK(dfb->SetCooperativeLevel (dfb, DFSCL_FULLSCREEN)); dsc.flags = DSDESC_CAPS; dsc.caps = DSCAPS_PRIMARY | DSCAPS_FLIPPING; DFBCHECK (dfb->CreateSurface( dfb, &dsc, &surface )); push_release(surface, surface->Release); DFBCHECK(surface->GetCapabilities(surface, &caps)); if (caps & DSCAPS_PRIMARY) { printf("Surface Primary\n"); } if (caps & DSCAPS_SYSTEMONLY) { printf("Surface SystemOnly\n"); } if (caps & DSCAPS_VIDEOONLY) { printf("Surface VideoOnly\n"); } if (caps & DSCAPS_DOUBLE) { printf("Surface Double buffered\n"); } if (caps & DSCAPS_SUBSURFACE) { printf("Surface is a sub surface\n"); } if (caps & DSCAPS_INTERLACED) { printf("Surface is Interlaced\n"); } if (caps & DSCAPS_SEPARATED) { printf("Surface is separated\n"); } if (caps & DSCAPS_STATIC_ALLOC) { printf("Surface is static alloc\n"); } if (caps & DSCAPS_TRIPLE) { printf("Surface is triple buffered\n"); } if (caps & DSCAPS_PREMULTIPLIED) { printf("Surface stores premiltiplied alpha\n"); } if (caps & DSCAPS_DEPTH) { printf("Surface has a depth buffer\n"); } DFBCHECK(surface->GetSize(surface, &width, &height)); printf("Surface size: %dx%d\n", width, height); DFBCHECK(surface->GetPixelFormat(surface, &p_format)); for(i = 0; pformat_names[i].format; i++) { if (pformat_names[i].format == p_format) { printf("Surface pixelformat: %s\n", pformat_names[i].name); } } release_all(); return 0; }
extern void free_all_ml_values(void) { release_all(); };
int connect_proxy_chain( int sock, unsigned int target_ip, unsigned short target_port, proxy_data *pd, unsigned int proxy_count, chain_type ct, int max_chain ) { proxy_data p4; proxy_data *p1,*p2,*p3; int ns=-1; int offset=0; int alive_count=0; int curr_len=0; #define TP "<>" #define DT "|D-chain|" #define ST "|S-chain|" #define RT "|R-chain|" p3=&p4; again: switch(ct) { case DYNAMIC_TYPE: alive_count=calc_alive(pd,proxy_count); offset=0; do { if(!(p1=select_proxy(FIFOLY,pd,proxy_count,&offset))) goto error_more; } while(SUCCESS!=start_chain(&ns,p1,DT) && offset<proxy_count); for(;;) { p2=select_proxy(FIFOLY,pd,proxy_count,&offset); if(!p2) break; if(SUCCESS!=chain_step(ns,p1,p2)) goto again; p1=p2; } proxychains_write_log(TP); p3->ip=target_ip; p3->port=target_port; if(SUCCESS!=chain_step(ns,p1,p3)) goto error; break; case STRICT_TYPE: alive_count=calc_alive(pd,proxy_count); offset=0; if(!(p1=select_proxy(FIFOLY,pd,proxy_count,&offset))) goto error_strict; if(SUCCESS!=start_chain(&ns,p1,ST)) goto error_strict; while(offset<proxy_count) { if(!(p2=select_proxy(FIFOLY,pd,proxy_count,&offset))) break; if(SUCCESS!=chain_step(ns,p1,p2)) goto error_strict; p1=p2; } proxychains_write_log(TP); p3->ip=target_ip; p3->port=target_port; if(SUCCESS!=chain_step(ns,p1,p3)) goto error; break; case RANDOM_TYPE: alive_count=calc_alive(pd,proxy_count); if(alive_count<max_chain) goto error_more; curr_len=offset=0; do { if(!(p1=select_proxy(RANDOMLY,pd,proxy_count,&offset))) goto error_more; } while(SUCCESS!=start_chain(&ns,p1,RT) && offset<max_chain); while(++curr_len<max_chain) { if(!(p2=select_proxy(RANDOMLY,pd,proxy_count,&offset))) goto error_more; if(SUCCESS!=chain_step(ns,p1,p2)) goto again; p1=p2; } proxychains_write_log(TP); p3->ip=target_ip; p3->port=target_port; if(SUCCESS!=chain_step(ns,p1,p3)) goto error; } done: proxychains_write_log("<><>-OK\n"); dup2(ns,sock); close(ns); return 0; error: if(ns!=-1) close(ns); errno = ECONNREFUSED; // for nmap ;) return -1; error_more: proxychains_write_log("\n!!!need more proxies!!!\n"); error_strict: release_all(pd,proxy_count); if(ns!=-1) close(ns); errno = ETIMEDOUT; return -1; }
DivvyupPageGrabBatch::~DivvyupPageGrabBatch() { release_all(); delete[] chunks_; chunks_ = nullptr; }
RoundRobinPageGrabBatch::~RoundRobinPageGrabBatch() { release_all(); }
int connect_proxy_chain(int sock, ip_type target_ip, unsigned short target_port, proxy_data * pd, unsigned int proxy_count, chain_type ct, unsigned int max_chain) { proxy_data p4; proxy_data *p1, *p2, *p3; int ns = -1; unsigned int offset = 0; unsigned int alive_count = 0; unsigned int curr_len = 0; p3 = &p4; PDEBUG("connect_proxy_chain\n"); again: switch (ct) { case DYNAMIC_TYPE: calc_alive(pd, proxy_count); offset = 0; do { if(!(p1 = select_proxy(FIFOLY, pd, proxy_count, &offset))) goto error_more; } while(SUCCESS != start_chain(&ns, p1, DT) && offset < proxy_count); for(;;) { p2 = select_proxy(FIFOLY, pd, proxy_count, &offset); if(!p2) break; if(SUCCESS != chain_step(ns, p1, p2)) { PDEBUG("GOTO AGAIN 1\n"); goto again; } p1 = p2; } //proxychains_write_log(TP); p3->ip = target_ip; p3->port = target_port; if(SUCCESS != chain_step(ns, p1, p3)) goto error; break; /* Chain mirrors order it appears in config file and each * proxy chain must be online. */ case STRICT_TYPE: /* Counts the number of proxy entries that are in the * PLAY_STATE. */ calc_alive(pd, proxy_count); offset = 0; /* In this case, select_proxy will choose the next avilable * proxy that is in the PLAY_STATE. */ if(!(p1 = select_proxy(FIFOLY, pd, proxy_count, &offset))) { PDEBUG("select_proxy failed\n"); goto error_strict; } /* Connect to the first proxy server in the chain. */ if(SUCCESS != start_chain(&ns, p1, ST)) { PDEBUG("start_chain failed\n"); goto error_strict; } while(offset < proxy_count) { if(!(p2 = select_proxy(FIFOLY, pd, proxy_count, &offset))) break; if(SUCCESS != chain_step(ns, p1, p2)) { PDEBUG("chain_step failed\n"); goto error_strict; } p1 = p2; } //proxychains_write_log(TP); p3->ip = target_ip; p3->port = target_port; if(SUCCESS != chain_step(ns, p1, p3)) goto error; break; case RANDOM_TYPE: alive_count = calc_alive(pd, proxy_count); if(alive_count < max_chain) goto error_more; curr_len = offset = 0; do { if(!(p1 = select_proxy(RANDOMLY, pd, proxy_count, &offset))) goto error_more; } while(SUCCESS != start_chain(&ns, p1, RT) && offset < max_chain); while(++curr_len < max_chain) { if(!(p2 = select_proxy(RANDOMLY, pd, proxy_count, &offset))) goto error_more; if(SUCCESS != chain_step(ns, p1, p2)) { PDEBUG("GOTO AGAIN 2\n"); goto again; } p1 = p2; } //proxychains_write_log(TP); p3->ip = target_ip; p3->port = target_port; if(SUCCESS != chain_step(ns, p1, p3)) goto error; } proxychains_write_log(TP " OK\n"); dup2(ns, sock); close(ns); return 0; error: if(ns != -1) close(ns); errno = ECONNREFUSED; // for nmap ;) return -1; error_more: proxychains_write_log("\n!!!need more proxies!!!\n"); error_strict: PDEBUG("error\n"); release_all(pd, proxy_count); if(ns != -1) close(ns); errno = ETIMEDOUT; return -1; }
int connect_proxy_chain(int sock, ip_type target_ip, unsigned short target_port, proxy_data * pd, unsigned int proxy_count, chain_type ct, unsigned int max_chain) { proxy_data p4; proxy_data *p1, *p2, *p3; int ns = -1; int rc = -1; unsigned int offset = 0; unsigned int alive_count = 0; unsigned int curr_len = 0; unsigned int curr_pos = 0; unsigned int looped = 0; // went back to start of list in RR mode p3 = &p4; PFUNC(); again: rc = -1; DUMP_PROXY_CHAIN(pd, proxy_count); switch (ct) { case DYNAMIC_TYPE: alive_count = calc_alive(pd, proxy_count); offset = 0; do { if(!(p1 = select_proxy(FIFOLY, pd, proxy_count, &offset))) goto error_more; } while(SUCCESS != start_chain(&ns, p1, DT) && offset < proxy_count); for(;;) { p2 = select_proxy(FIFOLY, pd, proxy_count, &offset); if(!p2) break; if(SUCCESS != chain_step(ns, p1, p2)) { PDEBUG("GOTO AGAIN 1\n"); goto again; } p1 = p2; } //proxychains_write_log(TP); p3->ip = target_ip; p3->port = target_port; if(SUCCESS != chain_step(ns, p1, p3)) goto error; break; case ROUND_ROBIN_TYPE: alive_count = calc_alive(pd, proxy_count); curr_pos = offset = proxychains_proxy_offset; if(alive_count < max_chain) goto error_more; PDEBUG("1:rr_offset = %d, curr_pos = %d\n", offset, curr_pos); /* Check from current RR offset til end */ for (;rc != SUCCESS;) { if (!(p1 = select_proxy(FIFOLY, pd, proxy_count, &offset))) { /* We've reached the end of the list, go to the start */ offset = 0; looped++; continue; } else if (looped && rc > 0 && offset >= curr_pos) { PDEBUG("GOTO MORE PROXIES 0\n"); /* We've gone back to the start and now past our starting position */ proxychains_proxy_offset = 0; goto error_more; } PDEBUG("2:rr_offset = %d\n", offset); rc=start_chain(&ns, p1, RRT); } /* Create rest of chain using RR */ for(curr_len = 1; curr_len < max_chain;) { PDEBUG("3:rr_offset = %d, curr_len = %d, max_chain = %d\n", offset, curr_len, max_chain); p2 = select_proxy(FIFOLY, pd, proxy_count, &offset); if(!p2) { /* Try from the beginning to where we started */ offset = 0; continue; } else if(SUCCESS != chain_step(ns, p1, p2)) { PDEBUG("GOTO AGAIN 1\n"); goto again; } else p1 = p2; curr_len++; } //proxychains_write_log(TP); p3->ip = target_ip; p3->port = target_port; proxychains_proxy_offset = offset+1; PDEBUG("pd_offset = %d, curr_len = %d\n", proxychains_proxy_offset, curr_len); if(SUCCESS != chain_step(ns, p1, p3)) goto error; break; case STRICT_TYPE: alive_count = calc_alive(pd, proxy_count); offset = 0; if(!(p1 = select_proxy(FIFOLY, pd, proxy_count, &offset))) { PDEBUG("select_proxy failed\n"); goto error_strict; } if(SUCCESS != start_chain(&ns, p1, ST)) { PDEBUG("start_chain failed\n"); goto error_strict; } while(offset < proxy_count) { if(!(p2 = select_proxy(FIFOLY, pd, proxy_count, &offset))) break; if(SUCCESS != chain_step(ns, p1, p2)) { PDEBUG("chain_step failed\n"); goto error_strict; } p1 = p2; } //proxychains_write_log(TP); p3->ip = target_ip; p3->port = target_port; if(SUCCESS != chain_step(ns, p1, p3)) goto error; break; case RANDOM_TYPE: alive_count = calc_alive(pd, proxy_count); if(alive_count < max_chain) goto error_more; curr_len = offset = 0; do { if(!(p1 = select_proxy(RANDOMLY, pd, proxy_count, &offset))) goto error_more; } while(SUCCESS != start_chain(&ns, p1, RT) && offset < max_chain); while(++curr_len < max_chain) { if(!(p2 = select_proxy(RANDOMLY, pd, proxy_count, &offset))) goto error_more; if(SUCCESS != chain_step(ns, p1, p2)) { PDEBUG("GOTO AGAIN 2\n"); goto again; } p1 = p2; } //proxychains_write_log(TP); p3->ip = target_ip; p3->port = target_port; if(SUCCESS != chain_step(ns, p1, p3)) goto error; } proxychains_write_log(TP " OK\n"); dup2(ns, sock); close(ns); return 0; error: if(ns != -1) close(ns); errno = ECONNREFUSED; // for nmap ;) return -1; error_more: proxychains_write_log("\n!!!need more proxies!!!\n"); error_strict: PDEBUG("error\n"); release_all(pd, proxy_count); if(ns != -1) close(ns); errno = ETIMEDOUT; return -1; }
int get_display_layer_surface() { int i; IDirectFB *dfb = NULL; IDirectFBSurface *surface = NULL; DFBSurfaceCapabilities caps; IDirectFBDisplayLayer *layer = NULL; int width, height; DFBSurfacePixelFormat p_format; DFBCHECK(DirectFBInit(NULL, NULL)); DFBCHECK(DirectFBCreate(&dfb)); push_release(dfb, dfb->Release); DFBCHECK(dfb->GetDisplayLayer(dfb, DLID_PRIMARY, &layer)); push_release(layer, layer->Release); DFBCHECK(layer->SetCooperativeLevel(layer, DLSCL_EXCLUSIVE)); DFBCHECK(layer->GetSurface(layer, &surface)); push_release(surface, surface->Release); DFBCHECK(surface->GetCapabilities(surface, &caps)); if (caps & DSCAPS_PRIMARY) { printf("Surface Primary\n"); } if (caps & DSCAPS_SYSTEMONLY) { printf("Surface SystemOnly\n"); } if (caps & DSCAPS_VIDEOONLY) { printf("Surface VideoOnly\n"); } if (caps & DSCAPS_DOUBLE) { printf("Surface Double buffered\n"); } if (caps & DSCAPS_SUBSURFACE) { printf("Surface is a sub surface\n"); } if (caps & DSCAPS_INTERLACED) { printf("Surface is Interlaced\n"); } if (caps & DSCAPS_SEPARATED) { printf("Surface is separated\n"); } if (caps & DSCAPS_STATIC_ALLOC) { printf("Surface is static alloc\n"); } if (caps & DSCAPS_TRIPLE) { printf("Surface is triple buffered\n"); } if (caps & DSCAPS_PREMULTIPLIED) { printf("Surface stores premiltiplied alpha\n"); } if (caps & DSCAPS_DEPTH) { printf("Surface has a depth buffer\n"); } DFBCHECK(surface->GetSize(surface, &width, &height)); printf("Surface size: %dx%d\n", width, height); DFBCHECK(surface->GetPixelFormat(surface, &p_format)); for(i = 0; pformat_names[i].format; i++) { if (pformat_names[i].format == p_format) { printf("Surface pixelformat: %s\n", pformat_names[i].name); } } release_all(); return 0; }