Articles of 处理程序

Nginx的gzipfilter不能与我的自定义处理程序一起工作

我写了一个非常简单的nginx处理程序,只输出一些文本(大小100B到10KB)。 代码与nginx(版本1.0.6)正常工作 但我发现gzipfilter不能与处理程序一起工作。 当我在nginx.conf中打开gzip(在http部分下)时,gzip使用静态html文件工作。 但是,处理程序的响应不是用gzip压缩的。 经过大量的search工作,我仍然找不到答案。 任何意见 ? 非常感谢。 🙂 //my code : static ngx_int_t ngx_http_test_handler(ngx_http_request_t *r){ ngx_chain_t out; ngx_buf_t *b; b = ngx_pcalloc(r->pool, sizeof(ngx_buf_t)); …… //writing text to buffer …… r->headers_out.status = NGX_HTTP_OK; r->headers_out.content_length_n = len; r->headers_out.content_type.len = sizeof("text/html")-1; r->headers_out.content_type.data = (u_char *) "text/html"; out.buf = b; out.next = NULL; return ngx_http_output_filter(r, &out); }

为什么我不能处理NMI?

我想要处理NMI,并在发生NMI时做一些事情。 首先我写一个天真的nmi处理程序: static irqreturn_t nmi_handler(int irq, void* dev_id) { printk("-#_#- I'm TT, I am handling NMI.\n"); return IRQ_HANDLED; } 并写一个模块注册我的nmi处理程序,然后使用API​​C触发NMI 5次: static void __init ipi_init(void) { printk("-#_#- I'm coming again, hahaha!\n"); int result = request_irq(NMI_VECTOR, nmi_handler, IRQF_DISABLED, "NMI Watchdog", NULL); printk("— the result of request_irq is: %d\n", result); int i; for (i = 0; i […]

LINUX / glibc的。 我可以在信号处理程序中使用fprintf吗?

我可以在glibc / linux的信号(SIGALRM)处理程序中使用fprintf(stderr)吗?

在共享ARM9 GPIO中断(linux)上需要帮助处理多个共享I2C MAX3107芯片

我们的团队正在使用embedded式处理器(Phytec LPC3180,ARM9)。 我们devise了一块在LPC3180的I2C总线上包含四个MAX3107 uart芯片的电路板。 如果有问题,我们正在运行内核2.6.10,这个处理器的最新版本(这个产品的支持并不是很好,我们不得不开发或修复由Phytec提供的许多驱动程序,Phytec似乎没有兴趣升级这个产品的linux代码(特别是内核版本),这太糟糕了,因为LPC3180是一个很好的设备,特别是在低功耗的embedded式产品中,不需要以太网, (由于以太网控制器芯片的相关功耗),现在安装的处理程序(由其他人开发)基于上半部分处理程序和下半部分工作队列方法。 当I2C总线上的四个器件之一(MAX3107 UART芯片)接收到一个字符时,它会产生一个中断。 所有四个MAX3107芯片的中断线是共用的(漏极开路下拉),线连接到configuration为电平中断的3180的GPIO引脚。 当其中一个3017产生一个中断时,会执行一个处理程序(粗略地)进行以下处理: spin_lock_irqsave(); disable_irq_nosync(irqno); irq_enabled = 0; irq_received = 1; spin_unlock_irqrestore() set_queued_work(); // Queue up work for all four devices for every interrupt // because at this point we don't know which of the four // 3107's generated the interrupt return IRQ_HANDLED; 请注意,这是我觉得有点麻烦,中断不能重新启用之前离开上面的代码。 相反,驱动程序是这样编写的,以便下半部分工作队列任务(使用“enable_irq(LPC_IRQ_LINE)函数调用”)重新启用中断。由于工作队列任务不在中断环境中运行,我相信他们可能会睡眠,我认为这是一个中断处理程序的坏主意。 上述方法的基本原理如下:1.如果四个MAX3107 UART芯片中的一个接收到一个字符并产生一个中断(例如),则中断处理程序需要确定四个I2C器件中哪一个实际上引起中断。 然而,很显然,在上半部分中断处理程序的上下文中,不能读取I2C设备,因为I2C读取可以睡眠,对于中断处理程序上半部分来说,这是不适当的。 […]

IPropertyStore接口不在属性处理程序中调用

我正在开发一个实现IPropertyStore和IInitializeWithFile的属性处理程序,在Win 8.1 x64上进行testing。 属性名称以前使用prop.exe正确注册的.propdesc文件添加到系统中。 我使用PROCMON.EXE来监视当我重新索引我的文件在磁盘上的事件。 SearchPrototocolHost.exe加载协议处理程序,用IInitializeWithFile(文件中的属性似乎从文件加载OK)正确初始化它,然后继续使用PSCreatePropertyStoreFromObject检索IPropertyStore接口,并开始从文件中检索属性。 那么没有其他的事情发生,IPropertyStore的方法永远不会被调用。 相反,SearchPrototocolHost.exe在文件上发出一个CreateFile,用“Open Reparse Point”重新编入索引,在获取QueryRemoteProtocolInformation时失败,closures文件,然后继续下一个文件进行索引。 为什么我的属性处理程序失败(这是一个安全问题等?)?

Ubuntu自定义URL协议处理程序

我想问一个问题,但我会先显示我的文件 <html> <body> <a href="cloudje:firefox">Open firefox</a> </body> </html> 我的.desktop文件: [Desktop Entry] Encoding=UTF-8 Version=1.0 Type=Application Terminal=false Exec=/usr/bin/cloudjerun -c gedit Name[en_US]=Gedit Comment[en_US]=Small, easy-to-use program to access iTunesU media Name=TunesViewer Comment=Small, easy-to-use program to access iTunesU media Icon=/usr/share/icons/hicolor/scalable/apps/tunesview.svg Categories=Application;Network; MimeType=x-scheme-handler/cloudje; Comment[en_US.utf8]=Small, easy-to-use program to access iTunesU media 教程: http : //jarrpa.net/2011/10/28/creating-custom-url-handlers-in-ubuntu-11-04-11-10-gnome-3-0/ 好的,这很酷。 .desktop文件将被放置在/ usr / share / applications中。 […]

使用filter处理程序扩展Windowssearch索引,该处理程序使用C#/ .NET自定义文件格式

是否有可能扩大Windowssearch索引与filter处理程序与.NET / C#中的自定义文件格式? 我希望索引适用于某些自定义文件types。 对于一些自定义的文件格式,我需要实现一个filter或属性处理程序来索引文件内容和属性。 我search了一些相关的样本,但是我找不到任何有用的东西。 尽pipe我从msdn那里得到了一篇关于扩展windows索引的文章。 Windowssearch开发人员指南 – 扩展索引 任何人都可以帮我开始吗?

C ++exception处理程序问题

我编写了一个exception处理程序,帮助我们发现我们的软件问题。 我用 SetUnhandledExceptionFilter(); 捕捉任何未捕获的exception,并且工作得很好。 然而,我的处理程序popup一个对话框,要求用户详细说明他们在崩溃时正在做的事情。 这是问题出现的地方,因为对话框和崩溃在同一个线程上下文中,对话框继续抽取应用程序的消息。 这导致我一个问题,因为我们的崩溃之一是在WM_TIMER,每分钟熄灭。 正如你可以想象,如果对话框已经在屏幕上超过了一分钟,一个WM_TIMER调度,应用程序重新崩溃。 在这种情况下重新进入exception处理程序是个坏消息。 如果我让Windows处理崩溃,Windows将显示一个对话框,该对话框似乎正常工作,但会停止传播到应用程序其余部分的消息,因此WM_TIMER不会被重新发布。 有谁知道我怎么能达到相同的效果? 谢谢Rich

以编程方式调用文件types的默认应用程序

在这个问题的相关说明,说我有一个处理程序定义的文件,我将如何以编程方式调用注册的处理程序? 不一定需要实际的代码来做到这一点,只是一些指向一些文档或谷歌这个术语的指针。 谢谢, 克里斯

如何处理在Python中编写的Windows服务信号?

我正在写一个Windows服务在Python中。 我已经把信号处理代码放在服务的SvcDoRun()方法中。 当我启动服务时,在日志文件中出现以下exception:exception:信号仅在主线程中起作用 以下是我的代码: import pythoncom import win32serviceutil import win32service import win32event import socket import sys sys.path.append("E:\\AnuntaTech\\SecondDrop") from src.CPE.cpe import Cpe_MBus from src.Utilities import atlogger import threading import os import signal ''' This is Thread subclass to wait on the MessageBus Channel for CPE ''' class CpeThread(threading.Thread): def __init__(self,oCpeMbus): threading.Thread.__init__(self) self.oCpeMbus = oCpeMbus def run(self): […]