aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console
Commit message (Expand)AuthorAgeFilesLines
* fix external viewer using shlexBryan Bishop2012-12-222-10/+18
* Show an error when $EDITOR/$PAGER are unset.Bryan Bishop2012-12-051-1/+4
* Substantially rewrite AMF decoding.Aldo Cortesi2012-11-261-24/+68
* Workaround for PIL's ambiguious import method and/or easy_install PIL packagi...Mathieu Mitchell2012-11-231-2/+7
* Move eventlog to new Urwid container API.Aldo Cortesi2012-11-231-4/+2
* Urwid 1.1 compatibility.Aldo Cortesi2012-10-292-4/+4
* Improve error reporting for one-shot scripts.Aldo Cortesi2012-10-111-4/+15
* Move cleanBin and hexdump into netutils.Aldo Cortesi2012-09-241-4/+5
* Add help entry for H global header shortcut.Aldo Cortesi2012-09-021-2/+1
* Add U shortcut to add user-agent strings to global Headers editor.Aldo Cortesi2012-09-021-1/+32
* Fix a crash when re-editing a path prompt after an error.Aldo Cortesi2012-08-311-0/+1
* Make grid editor file reading more robust.Aldo Cortesi2012-08-311-4/+8
* Add a shortcut to header editor to add standard User-Agent strings.Aldo Cortesi2012-08-313-29/+68
* Display "No Content" instead of a parse error when there is no content.Aldo Cortesi2012-08-301-0/+2
* Add a snippet to GridEditor help text explaining that we're using escaped str...Aldo Cortesi2012-08-251-0/+8
* Add a "R" shortcut to GridEditor, letting the user read unescaped data from f...Aldo Cortesi2012-08-251-11/+15
* Do away with explicit encodings, and display an error message for invalid val...Aldo Cortesi2012-08-251-15/+12
* Use Python-style escaped strings in GridEditor.Aldo Cortesi2012-08-251-14/+17
* Add an "r" shortcut in grid editors to read value from file.Aldo Cortesi2012-08-251-4/+23
* Add a graphical editor for path components (e -> p shortcut from request view...Aldo Cortesi2012-08-192-3/+19
* Command-line options for header setting.Aldo Cortesi2012-08-191-0/+4
* Add SetHeaders, analogous to ReplaceHooks, with a graphical editor in mitmpro...Aldo Cortesi2012-08-182-6/+24
* Use the new ODict get_first convenience function in a bunch of places.Aldo Cortesi2012-08-182-12/+10
* Further content view cleaups.Aldo Cortesi2012-08-181-9/+28
* Send tracebacks from content viewers to event log.Aldo Cortesi2012-08-182-3/+4
* Further simplifcation and testing of contentviews.Aldo Cortesi2012-08-182-27/+16
* Huge cleanup of content viewers.Aldo Cortesi2012-08-183-295/+301
* Optional AMF decoding supportSahn Lam2012-08-172-2/+30
* Add an HTML text outline view.Aldo Cortesi2012-08-181-3/+20
* Stop server playback after current playback buffer is exhausted.Aldo Cortesi2012-08-182-2/+2
* Server replay from current buffer.Aldo Cortesi2012-08-181-0/+44
* Return from Flow View behaviourRob Wills2012-08-021-1/+5
* Press "F" to FollowRob Wills2012-08-012-0/+16
* Prevent mitmproxy from treating logged info as urwid markup.Aldo Cortesi2012-07-271-2/+2
* Fix mitmproxy file reading.Aldo Cortesi2012-07-271-1/+1
* Be more tolerant of corrupted or truncated flows.Aldo Cortesi2012-07-241-2/+6
* fix -r option, read file in binary modeMaximilian Hils2012-07-241-1/+1
* Jump back to correct flow when limit is applied.Aldo Cortesi2012-07-141-1/+1
* Make mitmproxy "W" over-write, not append.Aldo Cortesi2012-07-091-1/+1
* Use FlowMaster streaming for "W" in mitmproxy.Aldo Cortesi2012-07-091-10/+2
* Add streaming to FlowMasterAldo Cortesi2012-07-091-1/+1
* Add a domain match filter (~d regex)Aldo Cortesi2012-07-061-2/+2
* Protect against exceptions thrown by third-party view libraries.Aldo Cortesi2012-07-061-7/+6
* mitmproxy: "W" shortcut key streams flows to file as responses arrive.Aldo Cortesi2012-07-062-6/+38
* Amalgamte saving "this flow" and "all flows" into a single keyboard shortcut.Aldo Cortesi2012-07-061-11/+24
* Fix error when viewing extended details of SSL flow.Aldo Cortesi2012-07-061-1/+1
* Firm up handling of Unicode dataAldo Cortesi2012-07-051-1/+11
* Make upstream-cert the default. There's now a --no-upstream-cert option to tu...Aldo Cortesi2012-07-031-4/+4
* Merge pull request #48 from afh/pull/palette-optionAldo Cortesi2012-07-012-15/+19
|\
| * Improve palette colors for headingsAlexis Hildebrandt2012-07-011-4/+4
s="n">dom)) == NULL) ) break; page = mfn_to_page(mfn); if ( likely(get_page(page, d)) ) { ret = 0; op->u.getpageframeinfo.type = NOTAB; if ( (page->u.inuse.type_info & PGT_count_mask) != 0 ) { switch ( page->u.inuse.type_info & PGT_type_mask ) { default: panic("No such page type\n"); break; } } put_page(page); } put_domain(d); copy_to_guest(u_dom0_op, op, 1); } break; case DOM0_GETPAGEFRAMEINFO2: { #define GPF2_BATCH 128 int n,j; int num = op->u.getpageframeinfo2.num; domid_t dom = op->u.getpageframeinfo2.domain; struct domain *d; unsigned long *l_arr; ret = -ESRCH; if ( unlikely((d = find_domain_by_id(dom)) == NULL) ) break; if ( unlikely(num > 1024) ) { ret = -E2BIG; break; } l_arr = (unsigned long *)alloc_xenheap_page(); ret = 0; for( n = 0; n < num; ) { int k = ((num-n)>GPF2_BATCH)?GPF2_BATCH:(num-n); if ( copy_from_guest_offset(l_arr, op->u.getpageframeinfo2.array, n, k) ) { ret = -EINVAL; break; } for( j = 0; j < k; j++ ) { struct page_info *page; unsigned long mfn = l_arr[j]; if ( unlikely(mfn >= max_page) ) goto e2_err; page = mfn_to_page(mfn); if ( likely(get_page(page, d)) ) { unsigned long type = 0; switch( page->u.inuse.type_info & PGT_type_mask ) { default: panic("No such page type\n"); break; } if ( page->u.inuse.type_info & PGT_pinned ) type |= LPINTAB; l_arr[j] |= type; put_page(page); } else { e2_err: l_arr[j] |= XTAB; } } if ( copy_to_guest_offset(op->u.getpageframeinfo2.array, n, l_arr, k) ) { ret = -EINVAL; break; } n += j; } free_xenheap_page((void *) l_arr); put_domain(d); } break; case DOM0_GETMEMLIST: { unsigned long i = 0; struct domain *d = find_domain_by_id(op->u.getmemlist.domain); unsigned long start_page = op->u.getmemlist.max_pfns >> 32; unsigned long nr_pages = op->u.getmemlist.max_pfns & 0xffffffff; unsigned long mfn; struct list_head *list_ent; ret = -EINVAL; if ( d != NULL ) { ret = 0; list_ent = d->page_list.next; while ( (i != start_page) && (list_ent != &d->page_list)) { mfn = page_to_mfn(list_entry( list_ent, struct page_info, list)); i++; list_ent = mfn_to_page(mfn)->list.next; } if (i == start_page) { while((i < (start_page + nr_pages)) && (list_ent != &d->page_list)) { mfn = page_to_mfn(list_entry( list_ent, struct page_info, list)); if ( copy_to_guest_offset(op->u.getmemlist.buffer, i - start_page, &mfn, 1) ) { ret = -EFAULT; break; } i++; list_ent = mfn_to_page(mfn)->list.next; } } else ret = -ENOMEM; op->u.getmemlist.num_pfns = i - start_page; if (copy_to_guest(u_dom0_op, op, 1)) ret = -EFAULT; put_domain(d); } } break; case DOM0_PHYSINFO: { dom0_physinfo_t *pi = &op->u.physinfo; pi->threads_per_core = cpus_weight(cpu_sibling_map[0]); pi->cores_per_socket = cpus_weight(cpu_core_map[0]) / pi->threads_per_core; pi->sockets_per_node = num_online_cpus() / cpus_weight(cpu_core_map[0]); pi->nr_nodes = 1; pi->total_pages = total_pages; pi->free_pages = avail_domheap_pages(); pi->cpu_khz = local_cpu_data->proc_freq / 1000; memset(pi->hw_cap, 0, sizeof(pi->hw_cap)); //memcpy(pi->hw_cap, boot_cpu_data.x86_capability, NCAPINTS*4); ret = 0; if ( copy_to_guest(u_dom0_op, op, 1) ) ret = -EFAULT; } break; default: printf("arch_do_dom0_op: unrecognized dom0 op: %d!!!\n",op->cmd); ret = -ENOSYS; } return ret; } #ifdef CONFIG_XEN_IA64_DOM0_VP unsigned long do_dom0vp_op(unsigned long cmd, unsigned long arg0, unsigned long arg1, unsigned long arg2, unsigned long arg3) { unsigned long ret = 0; struct domain *d = current->domain; switch (cmd) { case IA64_DOM0VP_ioremap: ret = assign_domain_mmio_page(d, arg0, arg1); break; case IA64_DOM0VP_phystomach: ret = ____lookup_domain_mpa(d, arg0 << PAGE_SHIFT); if (ret == INVALID_MFN) { DPRINTK("%s:%d INVALID_MFN ret: 0x%lx\n", __func__, __LINE__, ret); } else { ret = (ret & _PFN_MASK) >> PAGE_SHIFT;//XXX pte_pfn() } break; case IA64_DOM0VP_machtophys: if (max_page <= arg0) { ret = INVALID_M2P_ENTRY; break; } ret = get_gpfn_from_mfn(arg0); break; case IA64_DOM0VP_zap_physmap: ret = dom0vp_zap_physmap(d, arg0, (unsigned int)arg1); break; case IA64_DOM0VP_add_physmap: ret = dom0vp_add_physmap(d, arg0, arg1, (unsigned int)arg2, (domid_t)arg3); break; default: ret = -1; printf("unknown dom0_vp_op 0x%lx\n", cmd); break; } return ret; } #endif /* * Local variables: * mode: C * c-set-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil * End: */