Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hook 配置的问题 #1

Closed
hsinor opened this issue May 27, 2022 · 2 comments
Closed

hook 配置的问题 #1

hsinor opened this issue May 27, 2022 · 2 comments

Comments

@hsinor
Copy link

hsinor commented May 27, 2022

问题:

一、当仅配置 urllist 时,出现 requestlist 没有初始化为 nil 的 panic。
二、当同时配置 urllist 和 requestlist 时,出现 reflect.Value.Convert() panic

描述

根据 plugin-hook配置中的描述,默认会用POST方法发送request

Golang 版本

go 1.18.2
windows/amd64

期望

能修复这两个问题

出现问题的位置

一、当仅配置 urllist 时,使用了未初始化内容的panic

image

plugin-hook/main.go

Lines 67 to 71 in d4f76fd

for k, u := range h.URLList {
if _, ok := h.RequestList[k]; !ok {
h.RequestList[k] = &HookAddr{URL: u, Method: "POST", Header: h.Header}
}
}

二、同时配置 urllist 和 requestlist

panic 堆栈如下

image

出问题位置

https://github.com/Monibuca/engine/blob/d94fd98e9d34127e5d2e4df1486f119768cd1f41/config/config.go#L44-L49
image

配置文件:

配置一(仅配置 urllist,不配置requestlist)

hook:
  urllist:
    startup: "http://localhost:58888/api/monibuca/startup"
    publish: "http://localhost:58888/api/monibuca/publish"
    subscribe: "http://localhost:58888/api/monibuca/subscribe"
    streamClose: "http://localhost:58888/api/monibuca/streamClose"

配置二(同时配置 urllist 和 requestlist)

hook:
  urllist:
    startup: "http://localhost:58888/api/monibuca/startup"
    publish: "http://localhost:58888/api/monibuca/publish"
    subscribe: "http://localhost:58888/api/monibuca/subscribe"
    streamClose: "http://localhost:58888/api/monibuca/streamClose"
  requestlist:
    startup:
      method: "POST"
      header:
        referer: "http://localhost:58888/api/monibuca/startup"
      url: "http://localhost:58888/api/monibuca/startup"
    publish:
      method: "POST"
      header:
        referer: "http://localhost:58888/api/monibuca/publish"
      url: "http://localhost:58888/api/monibuca/publish"
    subscribe:
      method: "POST"
      header:
        referer: "http://localhost:58888/api/monibuca/subscribe"
      url: "http://localhost:58888/api/monibuca/subscribe"
    streamClose:
      method: "POST"
      header:
        referer: "http://localhost:58888/api/monibuca/streamClose"
      url: "http://localhost:58888/api/monibuca/streamClose"
@langhuihui
Copy link
Member

你都分析的这么透彻了,直接提PR吧

@langhuihui
Copy link
Member

已经解决了:langhuihui/monibuca@96d886c

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants