mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-06-13 03:31:45 +08:00
事件广播触发者改成SockInfo对象
This commit is contained in:
@@ -36,7 +36,7 @@ typedef struct {
|
||||
*/
|
||||
void (API_CALL *on_mk_media_publish)(const mk_media_info url_info,
|
||||
const mk_publish_auth_invoker invoker,
|
||||
const mk_tcp_session sender);
|
||||
const mk_sock_info sender);
|
||||
|
||||
/**
|
||||
* 播放rtsp/rtmp/http-flv/hls事件广播,通过该事件控制播放鉴权
|
||||
@@ -47,7 +47,7 @@ typedef struct {
|
||||
*/
|
||||
void (API_CALL *on_mk_media_play)(const mk_media_info url_info,
|
||||
const mk_auth_invoker invoker,
|
||||
const mk_tcp_session sender);
|
||||
const mk_sock_info sender);
|
||||
|
||||
/**
|
||||
* 未找到流后会广播该事件,请在监听该事件后去拉流或其他方式产生流,这样就能按需拉流了
|
||||
@@ -55,7 +55,7 @@ typedef struct {
|
||||
* @param sender 播放客户端相关信息
|
||||
*/
|
||||
void (API_CALL *on_mk_media_not_found)(const mk_media_info url_info,
|
||||
const mk_tcp_session sender);
|
||||
const mk_sock_info sender);
|
||||
|
||||
/**
|
||||
* 某个流无人消费时触发,目的为了实现无人观看时主动断开拉流等业务逻辑
|
||||
@@ -73,7 +73,7 @@ typedef struct {
|
||||
void (API_CALL *on_mk_http_request)(const mk_parser parser,
|
||||
const mk_http_response_invoker invoker,
|
||||
int *consumed,
|
||||
const mk_tcp_session sender);
|
||||
const mk_sock_info sender);
|
||||
|
||||
/**
|
||||
* 在http文件服务器中,收到http访问文件或目录的广播,通过该事件控制访问http目录的权限
|
||||
@@ -87,7 +87,7 @@ typedef struct {
|
||||
const char *path,
|
||||
int is_dir,
|
||||
const mk_http_access_path_invoker invoker,
|
||||
mk_tcp_session sender);
|
||||
const mk_sock_info sender);
|
||||
|
||||
/**
|
||||
* 在http文件服务器中,收到http访问文件或目录前的广播,通过该事件可以控制http url到文件路径的映射
|
||||
@@ -98,7 +98,7 @@ typedef struct {
|
||||
*/
|
||||
void (API_CALL *on_mk_http_before_access)(const mk_parser parser,
|
||||
char *path,
|
||||
const mk_tcp_session sender);
|
||||
const mk_sock_info sender);
|
||||
|
||||
/**
|
||||
* 该rtsp流是否需要认证?是的话调用invoker并传入realm,否则传入空的realm
|
||||
@@ -108,7 +108,7 @@ typedef struct {
|
||||
*/
|
||||
void (API_CALL *on_mk_rtsp_get_realm)(const mk_media_info url_info,
|
||||
const mk_rtsp_get_realm_invoker invoker,
|
||||
const mk_tcp_session sender);
|
||||
const mk_sock_info sender);
|
||||
|
||||
/**
|
||||
* 请求认证用户密码事件,user_name为用户名,must_no_encrypt如果为true,则必须提供明文密码(因为此时是base64认证方式),否则会导致认证失败
|
||||
@@ -125,7 +125,7 @@ typedef struct {
|
||||
const char *user_name,
|
||||
int must_no_encrypt,
|
||||
const mk_rtsp_auth_invoker invoker,
|
||||
const mk_tcp_session sender);
|
||||
const mk_sock_info sender);
|
||||
|
||||
/**
|
||||
* 录制mp4分片文件成功后广播
|
||||
@@ -138,7 +138,7 @@ typedef struct {
|
||||
void (API_CALL *on_mk_shell_login)(const char *user_name,
|
||||
const char *passwd,
|
||||
const mk_auth_invoker invoker,
|
||||
const mk_tcp_session sender);
|
||||
const mk_sock_info sender);
|
||||
|
||||
/**
|
||||
* 停止rtsp/rtmp/http-flv会话后流量汇报事件广播
|
||||
|
||||
@@ -17,19 +17,41 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
///////////////////////////////////////////SockInfo/////////////////////////////////////////////
|
||||
//SockInfo对象的C映射
|
||||
typedef void* mk_sock_info;
|
||||
|
||||
//SockInfo::get_peer_ip()
|
||||
API_EXPORT const char* API_CALL mk_sock_info_peer_ip(const mk_sock_info ctx);
|
||||
//SockInfo::get_local_ip()
|
||||
API_EXPORT const char* API_CALL mk_sock_info_local_ip(const mk_sock_info ctx);
|
||||
//SockInfo::get_peer_port()
|
||||
API_EXPORT uint16_t API_CALL mk_sock_info_peer_port(const mk_sock_info ctx);
|
||||
//SockInfo::get_local_port()
|
||||
API_EXPORT uint16_t API_CALL mk_sock_info_local_port(const mk_sock_info ctx);
|
||||
|
||||
#ifndef SOCK_INFO_API_RENAME
|
||||
#define SOCK_INFO_API_RENAME
|
||||
//mk_tcp_session对象转换成mk_sock_info对象后再获取网络相关信息
|
||||
#define mk_tcp_session_peer_ip(x) mk_sock_info_peer_ip(mk_tcp_session_get_sock_info(x))
|
||||
#define mk_tcp_session_local_ip(x) mk_sock_info_local_ip(mk_tcp_session_get_sock_info(x))
|
||||
#define mk_tcp_session_peer_port(x) mk_sock_info_peer_port(mk_tcp_session_get_sock_info(x))
|
||||
#define mk_tcp_session_local_port(x) mk_sock_info_local_port(mk_tcp_session_get_sock_info(x))
|
||||
|
||||
//mk_tcp_client对象转换成mk_sock_info对象后再获取网络相关信息
|
||||
#define mk_tcp_client_peer_ip(x) mk_sock_info_peer_ip(mk_tcp_client_get_sock_info(x))
|
||||
#define mk_tcp_client_local_ip(x) mk_sock_info_local_ip(mk_tcp_client_get_sock_info(x))
|
||||
#define mk_tcp_client_peer_port(x) mk_sock_info_peer_port(mk_tcp_client_get_sock_info(x))
|
||||
#define mk_tcp_client_local_port(x) mk_sock_info_local_port(mk_tcp_client_get_sock_info(x))
|
||||
#endif
|
||||
///////////////////////////////////////////TcpSession/////////////////////////////////////////////
|
||||
//TcpSession对象的C映射
|
||||
typedef void* mk_tcp_session;
|
||||
//获取基类指针以便获取其网络相关信息
|
||||
API_EXPORT mk_sock_info API_CALL mk_tcp_session_get_sock_info(const mk_tcp_session ctx);
|
||||
|
||||
//TcpSession::safeShutdown()
|
||||
API_EXPORT void API_CALL mk_tcp_session_shutdown(const mk_tcp_session ctx,int err,const char *err_msg);
|
||||
//TcpSession::get_peer_ip()
|
||||
API_EXPORT const char* API_CALL mk_tcp_session_peer_ip(const mk_tcp_session ctx);
|
||||
//TcpSession::get_local_ip()
|
||||
API_EXPORT const char* API_CALL mk_tcp_session_local_ip(const mk_tcp_session ctx);
|
||||
//TcpSession::get_peer_port()
|
||||
API_EXPORT uint16_t API_CALL mk_tcp_session_peer_port(const mk_tcp_session ctx);
|
||||
//TcpSession::get_local_port()
|
||||
API_EXPORT uint16_t API_CALL mk_tcp_session_local_port(const mk_tcp_session ctx);
|
||||
//TcpSession::send()
|
||||
API_EXPORT void API_CALL mk_tcp_session_send(const mk_tcp_session ctx,const char *data,int len);
|
||||
//切换到该对象所在线程后再TcpSession::send()
|
||||
@@ -115,6 +137,8 @@ API_EXPORT void API_CALL mk_tcp_server_events_listen(const mk_tcp_session_events
|
||||
///////////////////////////////////////////自定义tcp客户端/////////////////////////////////////////////
|
||||
|
||||
typedef void* mk_tcp_client;
|
||||
//获取基类指针以便获取其网络相关信息
|
||||
API_EXPORT mk_sock_info API_CALL mk_tcp_client_get_sock_info(const mk_tcp_client ctx);
|
||||
|
||||
typedef struct {
|
||||
/**
|
||||
|
||||
@@ -14,38 +14,46 @@
|
||||
#include "Http/WebSocketSession.h"
|
||||
using namespace mediakit;
|
||||
|
||||
API_EXPORT const char* API_CALL mk_sock_info_peer_ip(const mk_sock_info ctx){
|
||||
assert(ctx);
|
||||
SockInfo *sock = (SockInfo *)ctx;
|
||||
return sock->get_peer_ip().c_str();
|
||||
}
|
||||
API_EXPORT const char* API_CALL mk_sock_info_local_ip(const mk_sock_info ctx){
|
||||
assert(ctx);
|
||||
SockInfo *sock = (SockInfo *)ctx;
|
||||
return sock->get_local_ip().c_str();
|
||||
}
|
||||
API_EXPORT uint16_t API_CALL mk_sock_info_peer_port(const mk_sock_info ctx){
|
||||
assert(ctx);
|
||||
SockInfo *sock = (SockInfo *)ctx;
|
||||
return sock->get_peer_port();
|
||||
}
|
||||
API_EXPORT uint16_t API_CALL mk_sock_info_local_port(const mk_sock_info ctx){
|
||||
assert(ctx);
|
||||
SockInfo *sock = (SockInfo *)ctx;
|
||||
return sock->get_local_port();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////
|
||||
API_EXPORT mk_sock_info API_CALL mk_tcp_session_get_sock_info(const mk_tcp_session ctx){
|
||||
assert(ctx);
|
||||
TcpSessionForC *session = (TcpSessionForC *)ctx;
|
||||
return (SockInfo *)session;
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_tcp_session_shutdown(const mk_tcp_session ctx,int err,const char *err_msg){
|
||||
assert(ctx);
|
||||
TcpSession *session = (TcpSession *)ctx;
|
||||
TcpSessionForC *session = (TcpSessionForC *)ctx;
|
||||
session->safeShutdown(SockException((ErrCode)err,err_msg));
|
||||
}
|
||||
API_EXPORT const char* API_CALL mk_tcp_session_peer_ip(const mk_tcp_session ctx){
|
||||
assert(ctx);
|
||||
TcpSession *session = (TcpSession *)ctx;
|
||||
return session->get_peer_ip().c_str();
|
||||
}
|
||||
API_EXPORT const char* API_CALL mk_tcp_session_local_ip(const mk_tcp_session ctx){
|
||||
assert(ctx);
|
||||
TcpSession *session = (TcpSession *)ctx;
|
||||
return session->get_local_ip().c_str();
|
||||
}
|
||||
API_EXPORT uint16_t API_CALL mk_tcp_session_peer_port(const mk_tcp_session ctx){
|
||||
assert(ctx);
|
||||
TcpSession *session = (TcpSession *)ctx;
|
||||
return session->get_peer_port();
|
||||
}
|
||||
API_EXPORT uint16_t API_CALL mk_tcp_session_local_port(const mk_tcp_session ctx){
|
||||
assert(ctx);
|
||||
TcpSession *session = (TcpSession *)ctx;
|
||||
return session->get_local_port();
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_tcp_session_send(const mk_tcp_session ctx,const char *data,int len){
|
||||
assert(ctx && data);
|
||||
if(!len){
|
||||
len = strlen(data);
|
||||
}
|
||||
TcpSession *session = (TcpSession *)ctx;
|
||||
TcpSessionForC *session = (TcpSessionForC *)ctx;
|
||||
session->SockSender::send(data,len);
|
||||
}
|
||||
|
||||
@@ -55,9 +63,9 @@ API_EXPORT void API_CALL mk_tcp_session_send_safe(const mk_tcp_session ctx,const
|
||||
len = strlen(data);
|
||||
}
|
||||
try {
|
||||
weak_ptr<TcpSession> weak_session = ((TcpSession *)ctx)->shared_from_this();
|
||||
weak_ptr<TcpSession> weak_session = ((TcpSessionForC *)ctx)->shared_from_this();
|
||||
string str = string(data,len);
|
||||
((TcpSession *)ctx)->async([weak_session,str](){
|
||||
((TcpSessionForC *)ctx)->async([weak_session,str](){
|
||||
auto session_session = weak_session.lock();
|
||||
if(session_session){
|
||||
session_session->SockSender::send(str);
|
||||
@@ -205,6 +213,12 @@ TcpClientForC::Ptr *mk_tcp_client_create_l(mk_tcp_client_events *events, mk_tcp_
|
||||
}
|
||||
}
|
||||
|
||||
API_EXPORT mk_sock_info API_CALL mk_tcp_client_get_sock_info(const mk_tcp_client ctx){
|
||||
assert(ctx);
|
||||
TcpClientForC::Ptr *client = (TcpClientForC::Ptr *)ctx;
|
||||
return (SockInfo *)client->get();
|
||||
}
|
||||
|
||||
API_EXPORT mk_tcp_client API_CALL mk_tcp_client_create(mk_tcp_client_events *events, mk_tcp_type type){
|
||||
auto ret = mk_tcp_client_create_l(events,type);
|
||||
(*ret)->setClient(ret);
|
||||
@@ -213,25 +227,25 @@ API_EXPORT mk_tcp_client API_CALL mk_tcp_client_create(mk_tcp_client_events *eve
|
||||
|
||||
API_EXPORT void API_CALL mk_tcp_client_release(mk_tcp_client ctx){
|
||||
assert(ctx);
|
||||
TcpClient::Ptr *client = (TcpClient::Ptr *)ctx;
|
||||
TcpClientForC::Ptr *client = (TcpClientForC::Ptr *)ctx;
|
||||
delete client;
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_tcp_client_connect(mk_tcp_client ctx, const char *host, uint16_t port, float time_out_sec){
|
||||
assert(ctx);
|
||||
TcpClient::Ptr *client = (TcpClient::Ptr *)ctx;
|
||||
TcpClientForC::Ptr *client = (TcpClientForC::Ptr *)ctx;
|
||||
(*client)->startConnect(host,port);
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_tcp_client_send(mk_tcp_client ctx, const char *data, int len){
|
||||
assert(ctx && data);
|
||||
TcpClient::Ptr *client = (TcpClient::Ptr *)ctx;
|
||||
TcpClientForC::Ptr *client = (TcpClientForC::Ptr *)ctx;
|
||||
(*client)->SockSender::send(data,len);
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_tcp_client_send_safe(mk_tcp_client ctx, const char *data, int len){
|
||||
assert(ctx && data);
|
||||
TcpClient::Ptr *client = (TcpClient::Ptr *)ctx;
|
||||
TcpClientForC::Ptr *client = (TcpClientForC::Ptr *)ctx;
|
||||
weak_ptr<TcpClient> weakClient = *client;
|
||||
Buffer::Ptr buf = (*client)->obtainBuffer(data,len);
|
||||
(*client)->async([weakClient,buf](){
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
using namespace toolkit;
|
||||
|
||||
class TcpClientForC : public TcpClient {
|
||||
public:
|
||||
public:
|
||||
typedef std::shared_ptr<TcpClientForC> Ptr;
|
||||
TcpClientForC(mk_tcp_client_events *events) ;
|
||||
~TcpClientForC() override ;
|
||||
@@ -27,13 +27,13 @@ class TcpClientForC : public TcpClient {
|
||||
void onConnect(const SockException &ex) override;
|
||||
void setClient(mk_tcp_client client);
|
||||
void *_user_data;
|
||||
private:
|
||||
private:
|
||||
mk_tcp_client_events _events;
|
||||
mk_tcp_client _client;
|
||||
};
|
||||
|
||||
class TcpSessionForC : public TcpSession {
|
||||
public:
|
||||
public:
|
||||
TcpSessionForC(const Socket::Ptr &pSock) ;
|
||||
~TcpSessionForC() override = default;
|
||||
void onRecv(const Buffer::Ptr &buffer) override ;
|
||||
|
||||
@@ -46,14 +46,14 @@ void API_CALL on_mk_media_changed(int regist,
|
||||
*/
|
||||
void API_CALL on_mk_media_publish(const mk_media_info url_info,
|
||||
const mk_publish_auth_invoker invoker,
|
||||
const mk_tcp_session sender) {
|
||||
const mk_sock_info sender) {
|
||||
log_printf(LOG_LEV,
|
||||
"client info, local: %s:%d, peer: %s:%d\n"
|
||||
"%s/%s/%s/%s, url params: %s",
|
||||
mk_tcp_session_local_ip(sender),
|
||||
mk_tcp_session_local_port(sender),
|
||||
mk_tcp_session_peer_ip(sender),
|
||||
mk_tcp_session_peer_port(sender),
|
||||
mk_sock_info_local_ip(sender),
|
||||
mk_sock_info_local_port(sender),
|
||||
mk_sock_info_peer_ip(sender),
|
||||
mk_sock_info_peer_port(sender),
|
||||
mk_media_info_get_schema(url_info),
|
||||
mk_media_info_get_vhost(url_info),
|
||||
mk_media_info_get_app(url_info),
|
||||
@@ -73,15 +73,15 @@ void API_CALL on_mk_media_publish(const mk_media_info url_info,
|
||||
*/
|
||||
void API_CALL on_mk_media_play(const mk_media_info url_info,
|
||||
const mk_auth_invoker invoker,
|
||||
const mk_tcp_session sender) {
|
||||
const mk_sock_info sender) {
|
||||
|
||||
log_printf(LOG_LEV,
|
||||
"client info, local: %s:%d, peer: %s:%d\n"
|
||||
"%s/%s/%s/%s, url params: %s",
|
||||
mk_tcp_session_local_ip(sender),
|
||||
mk_tcp_session_local_port(sender),
|
||||
mk_tcp_session_peer_ip(sender),
|
||||
mk_tcp_session_peer_port(sender),
|
||||
mk_sock_info_local_ip(sender),
|
||||
mk_sock_info_local_port(sender),
|
||||
mk_sock_info_peer_ip(sender),
|
||||
mk_sock_info_peer_port(sender),
|
||||
mk_media_info_get_schema(url_info),
|
||||
mk_media_info_get_vhost(url_info),
|
||||
mk_media_info_get_app(url_info),
|
||||
@@ -98,14 +98,14 @@ void API_CALL on_mk_media_play(const mk_media_info url_info,
|
||||
* @param sender 播放客户端相关信息
|
||||
*/
|
||||
void API_CALL on_mk_media_not_found(const mk_media_info url_info,
|
||||
const mk_tcp_session sender) {
|
||||
const mk_sock_info sender) {
|
||||
log_printf(LOG_LEV,
|
||||
"client info, local: %s:%d, peer: %s:%d\n"
|
||||
"%s/%s/%s/%s, url params: %s",
|
||||
mk_tcp_session_local_ip(sender),
|
||||
mk_tcp_session_local_port(sender),
|
||||
mk_tcp_session_peer_ip(sender),
|
||||
mk_tcp_session_peer_port(sender),
|
||||
mk_sock_info_local_ip(sender),
|
||||
mk_sock_info_local_port(sender),
|
||||
mk_sock_info_peer_ip(sender),
|
||||
mk_sock_info_peer_port(sender),
|
||||
mk_media_info_get_schema(url_info),
|
||||
mk_media_info_get_vhost(url_info),
|
||||
mk_media_info_get_app(url_info),
|
||||
@@ -137,17 +137,17 @@ void API_CALL on_mk_media_no_reader(const mk_media_source sender) {
|
||||
void API_CALL on_mk_http_request(const mk_parser parser,
|
||||
const mk_http_response_invoker invoker,
|
||||
int *consumed,
|
||||
const mk_tcp_session sender) {
|
||||
const mk_sock_info sender) {
|
||||
|
||||
log_printf(LOG_LEV,
|
||||
"client info, local: %s:%d, peer: %s:%d\n"
|
||||
"%s %s?%s %s\n"
|
||||
"User-Agent: %s\n"
|
||||
"%s",
|
||||
mk_tcp_session_local_ip(sender),
|
||||
mk_tcp_session_local_port(sender),
|
||||
mk_tcp_session_peer_ip(sender),
|
||||
mk_tcp_session_peer_port(sender),
|
||||
mk_sock_info_local_ip(sender),
|
||||
mk_sock_info_local_port(sender),
|
||||
mk_sock_info_peer_ip(sender),
|
||||
mk_sock_info_peer_port(sender),
|
||||
mk_parser_get_method(parser),
|
||||
mk_parser_get_url(parser),
|
||||
mk_parser_get_url_params(parser),
|
||||
@@ -191,17 +191,17 @@ void API_CALL on_mk_http_access(const mk_parser parser,
|
||||
const char *path,
|
||||
int is_dir,
|
||||
const mk_http_access_path_invoker invoker,
|
||||
mk_tcp_session sender) {
|
||||
const mk_sock_info sender) {
|
||||
|
||||
log_printf(LOG_LEV,
|
||||
"client info, local: %s:%d, peer: %s:%d, path: %s ,is_dir: %d\n"
|
||||
"%s %s?%s %s\n"
|
||||
"User-Agent: %s\n"
|
||||
"%s",
|
||||
mk_tcp_session_local_ip(sender),
|
||||
mk_tcp_session_local_port(sender),
|
||||
mk_tcp_session_peer_ip(sender),
|
||||
mk_tcp_session_peer_port(sender),
|
||||
mk_sock_info_local_ip(sender),
|
||||
mk_sock_info_local_port(sender),
|
||||
mk_sock_info_peer_ip(sender),
|
||||
mk_sock_info_peer_port(sender),
|
||||
path,(int)is_dir,
|
||||
mk_parser_get_method(parser),
|
||||
mk_parser_get_url(parser),
|
||||
@@ -223,16 +223,16 @@ void API_CALL on_mk_http_access(const mk_parser parser,
|
||||
*/
|
||||
void API_CALL on_mk_http_before_access(const mk_parser parser,
|
||||
char *path,
|
||||
const mk_tcp_session sender) {
|
||||
const mk_sock_info sender) {
|
||||
log_printf(LOG_LEV,
|
||||
"client info, local: %s:%d, peer: %s:%d, path: %s\n"
|
||||
"%s %s?%s %s\n"
|
||||
"User-Agent: %s\n"
|
||||
"%s",
|
||||
mk_tcp_session_local_ip(sender),
|
||||
mk_tcp_session_local_port(sender),
|
||||
mk_tcp_session_peer_ip(sender),
|
||||
mk_tcp_session_peer_port(sender),
|
||||
mk_sock_info_local_ip(sender),
|
||||
mk_sock_info_local_port(sender),
|
||||
mk_sock_info_peer_ip(sender),
|
||||
mk_sock_info_peer_port(sender),
|
||||
path,
|
||||
mk_parser_get_method(parser),
|
||||
mk_parser_get_url(parser),
|
||||
@@ -251,14 +251,14 @@ void API_CALL on_mk_http_before_access(const mk_parser parser,
|
||||
*/
|
||||
void API_CALL on_mk_rtsp_get_realm(const mk_media_info url_info,
|
||||
const mk_rtsp_get_realm_invoker invoker,
|
||||
const mk_tcp_session sender) {
|
||||
const mk_sock_info sender) {
|
||||
log_printf(LOG_LEV,
|
||||
"client info, local: %s:%d, peer: %s:%d\n"
|
||||
"%s/%s/%s/%s, url params: %s",
|
||||
mk_tcp_session_local_ip(sender),
|
||||
mk_tcp_session_local_port(sender),
|
||||
mk_tcp_session_peer_ip(sender),
|
||||
mk_tcp_session_peer_port(sender),
|
||||
mk_sock_info_local_ip(sender),
|
||||
mk_sock_info_local_port(sender),
|
||||
mk_sock_info_peer_ip(sender),
|
||||
mk_sock_info_peer_port(sender),
|
||||
mk_media_info_get_schema(url_info),
|
||||
mk_media_info_get_vhost(url_info),
|
||||
mk_media_info_get_app(url_info),
|
||||
@@ -284,16 +284,16 @@ void API_CALL on_mk_rtsp_auth(const mk_media_info url_info,
|
||||
const char *user_name,
|
||||
int must_no_encrypt,
|
||||
const mk_rtsp_auth_invoker invoker,
|
||||
const mk_tcp_session sender) {
|
||||
const mk_sock_info sender) {
|
||||
|
||||
log_printf(LOG_LEV,
|
||||
"client info, local: %s:%d, peer: %s:%d\n"
|
||||
"%s/%s/%s/%s, url params: %s\n"
|
||||
"realm: %s, user_name: %s, must_no_encrypt: %d",
|
||||
mk_tcp_session_local_ip(sender),
|
||||
mk_tcp_session_local_port(sender),
|
||||
mk_tcp_session_peer_ip(sender),
|
||||
mk_tcp_session_peer_port(sender),
|
||||
mk_sock_info_local_ip(sender),
|
||||
mk_sock_info_local_port(sender),
|
||||
mk_sock_info_peer_ip(sender),
|
||||
mk_sock_info_peer_port(sender),
|
||||
mk_media_info_get_schema(url_info),
|
||||
mk_media_info_get_vhost(url_info),
|
||||
mk_media_info_get_app(url_info),
|
||||
@@ -338,13 +338,13 @@ void API_CALL on_mk_record_mp4(const mk_mp4_info mp4) {
|
||||
void API_CALL on_mk_shell_login(const char *user_name,
|
||||
const char *passwd,
|
||||
const mk_auth_invoker invoker,
|
||||
const mk_tcp_session sender) {
|
||||
const mk_sock_info sender) {
|
||||
log_printf(LOG_LEV,"client info, local: %s:%d, peer: %s:%d\n"
|
||||
"user_name: %s, passwd: %s",
|
||||
mk_tcp_session_local_ip(sender),
|
||||
mk_tcp_session_local_port(sender),
|
||||
mk_tcp_session_peer_ip(sender),
|
||||
mk_tcp_session_peer_port(sender),
|
||||
mk_sock_info_local_ip(sender),
|
||||
mk_sock_info_local_port(sender),
|
||||
mk_sock_info_peer_ip(sender),
|
||||
mk_sock_info_peer_port(sender),
|
||||
user_name, passwd);
|
||||
//允许登录shell
|
||||
mk_auth_invoker_do(invoker, NULL);
|
||||
|
||||
Reference in New Issue
Block a user