mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
Refine typo in service.
This commit is contained in:
parent
fbe40dc42c
commit
224d7c539f
7 changed files with 129 additions and 231 deletions
|
@ -26,9 +26,7 @@
|
|||
|
||||
#include <srs_core.hpp>
|
||||
|
||||
/**
|
||||
* The connection interface for all HTTP/RTMP/RTSP object.
|
||||
*/
|
||||
// The connection interface for all HTTP/RTMP/RTSP object.
|
||||
class ISrsConnection
|
||||
{
|
||||
public:
|
||||
|
@ -36,18 +34,14 @@ public:
|
|||
virtual ~ISrsConnection();
|
||||
};
|
||||
|
||||
/**
|
||||
* the manager for connection.
|
||||
*/
|
||||
// The manager for connection.
|
||||
class IConnectionManager
|
||||
{
|
||||
public:
|
||||
IConnectionManager();
|
||||
virtual ~IConnectionManager();
|
||||
public:
|
||||
/**
|
||||
* Remove then free the specified connection.
|
||||
*/
|
||||
// Remove then free the specified connection.
|
||||
virtual void remove(ISrsConnection* c) = 0;
|
||||
};
|
||||
|
||||
|
|
|
@ -40,18 +40,16 @@ class SrsKbps;
|
|||
class SrsWallClock;
|
||||
class SrsTcpClient;
|
||||
|
||||
// the default timeout for http client.
|
||||
#define SRS_HTTP_CLIENT_TIMEOUT (30 * SRS_UTIME_SECONDS)
|
||||
// The default timeout for http client.
|
||||
#define SRS_HTTP_CLIENT_TIMEOUT (30// SRS_UTIME_SECONDS)
|
||||
|
||||
/**
|
||||
* The client to GET/POST/PUT/DELETE over HTTP.
|
||||
* @remark We will reuse the TCP transport until initialize or channel error,
|
||||
* such as send/recv failed.
|
||||
* Usage:
|
||||
* SrsHttpClient hc;
|
||||
* hc.initialize("127.0.0.1", 80, 9000);
|
||||
* hc.post("/api/v1/version", "Hello world!", NULL);
|
||||
*/
|
||||
// The client to GET/POST/PUT/DELETE over HTTP.
|
||||
// @remark We will reuse the TCP transport until initialize or channel error,
|
||||
// such as send/recv failed.
|
||||
// Usage:
|
||||
// SrsHttpClient hc;
|
||||
// hc.initialize("127.0.0.1", 80, 9000);
|
||||
// hc.post("/api/v1/version", "Hello world!", NULL);
|
||||
class SrsHttpClient
|
||||
{
|
||||
private:
|
||||
|
@ -72,33 +70,25 @@ public:
|
|||
SrsHttpClient();
|
||||
virtual ~SrsHttpClient();
|
||||
public:
|
||||
/**
|
||||
* Initliaze the client, disconnect the transport, renew the HTTP parser.
|
||||
* @param tm The underlayer TCP transport timeout in srs_utime_t.
|
||||
* @remark we will set default values in headers, which can be override by set_header.
|
||||
*/
|
||||
// Initliaze the client, disconnect the transport, renew the HTTP parser.
|
||||
// @param tm The underlayer TCP transport timeout in srs_utime_t.
|
||||
// @remark we will set default values in headers, which can be override by set_header.
|
||||
virtual srs_error_t initialize(std::string h, int p, srs_utime_t tm = SRS_HTTP_CLIENT_TIMEOUT);
|
||||
/**
|
||||
* Set HTTP request header in header[k]=v.
|
||||
* @return the HTTP client itself.
|
||||
*/
|
||||
// Set HTTP request header in header[k]=v.
|
||||
// @return the HTTP client itself.
|
||||
virtual SrsHttpClient* set_header(std::string k, std::string v);
|
||||
public:
|
||||
/**
|
||||
* to post data to the uri.
|
||||
* @param the path to request on.
|
||||
* @param req the data post to uri. empty string to ignore.
|
||||
* @param ppmsg output the http message to read the response.
|
||||
* @remark user must free the ppmsg if not NULL.
|
||||
*/
|
||||
// Post data to the uri.
|
||||
// @param the path to request on.
|
||||
// @param req the data post to uri. empty string to ignore.
|
||||
// @param ppmsg output the http message to read the response.
|
||||
// @remark user must free the ppmsg if not NULL.
|
||||
virtual srs_error_t post(std::string path, std::string req, ISrsHttpMessage** ppmsg);
|
||||
/**
|
||||
* to get data from the uri.
|
||||
* @param the path to request on.
|
||||
* @param req the data post to uri. empty string to ignore.
|
||||
* @param ppmsg output the http message to read the response.
|
||||
* @remark user must free the ppmsg if not NULL.
|
||||
*/
|
||||
// Get data from the uri.
|
||||
// @param the path to request on.
|
||||
// @param req the data post to uri. empty string to ignore.
|
||||
// @param ppmsg output the http message to read the response.
|
||||
// @remark user must free the ppmsg if not NULL.
|
||||
virtual srs_error_t get(std::string path, std::string req, ISrsHttpMessage** ppmsg);
|
||||
private:
|
||||
virtual void set_recv_timeout(srs_utime_t tm);
|
||||
|
|
|
@ -37,18 +37,16 @@ class ISrsReader;
|
|||
class SrsHttpResponseReader;
|
||||
class SrsStSocket;
|
||||
|
||||
/**
|
||||
* wrapper for http-parser,
|
||||
* provides HTTP message originted service.
|
||||
*/
|
||||
// A wrapper for http-parser,
|
||||
// provides HTTP message originted service.
|
||||
class SrsHttpParser
|
||||
{
|
||||
private:
|
||||
http_parser_settings settings;
|
||||
http_parser parser;
|
||||
// the global parse buffer.
|
||||
// The global parse buffer.
|
||||
SrsFastStream* buffer;
|
||||
// whether allow jsonp parse.
|
||||
// Whether allow jsonp parse.
|
||||
bool jsonp;
|
||||
private:
|
||||
// http parse data, reset before parse message.
|
||||
|
@ -64,24 +62,18 @@ public:
|
|||
SrsHttpParser();
|
||||
virtual ~SrsHttpParser();
|
||||
public:
|
||||
/**
|
||||
* initialize the http parser with specified type,
|
||||
* one parser can only parse request or response messages.
|
||||
* @param allow_jsonp whether allow jsonp parser, which indicates the method in query string.
|
||||
*/
|
||||
// initialize the http parser with specified type,
|
||||
// one parser can only parse request or response messages.
|
||||
// @param allow_jsonp whether allow jsonp parser, which indicates the method in query string.
|
||||
virtual srs_error_t initialize(enum http_parser_type type, bool allow_jsonp = false);
|
||||
/**
|
||||
* always parse a http message,
|
||||
* that is, the *ppmsg always NOT-NULL when return success.
|
||||
* or error and *ppmsg must be NULL.
|
||||
* @remark, if success, *ppmsg always NOT-NULL, *ppmsg always is_complete().
|
||||
* @remark user must free the ppmsg if not NULL.
|
||||
*/
|
||||
// always parse a http message,
|
||||
// that is, the *ppmsg always NOT-NULL when return success.
|
||||
// or error and *ppmsg must be NULL.
|
||||
// @remark, if success, *ppmsg always NOT-NULL, *ppmsg always is_complete().
|
||||
// @remark user must free the ppmsg if not NULL.
|
||||
virtual srs_error_t parse_message(ISrsReader* reader, ISrsHttpMessage** ppmsg);
|
||||
private:
|
||||
/**
|
||||
* parse the HTTP message to member field: msg.
|
||||
*/
|
||||
// parse the HTTP message to member field: msg.
|
||||
virtual srs_error_t parse_message_imp(ISrsReader* reader);
|
||||
private:
|
||||
static int on_message_begin(http_parser* parser);
|
||||
|
@ -105,62 +97,41 @@ typedef std::pair<std::string, std::string> SrsHttpHeaderField;
|
|||
class SrsHttpMessage : public ISrsHttpMessage
|
||||
{
|
||||
private:
|
||||
/**
|
||||
* parsed url.
|
||||
*/
|
||||
// The parsed url.
|
||||
std::string _url;
|
||||
/**
|
||||
* the extension of file, for example, .flv
|
||||
*/
|
||||
// The extension of file, for example, .flv
|
||||
std::string _ext;
|
||||
/**
|
||||
* parsed http header.
|
||||
*/
|
||||
// parsed http header.
|
||||
http_parser _header;
|
||||
/**
|
||||
* body object, reader object.
|
||||
* @remark, user can get body in string by get_body().
|
||||
*/
|
||||
// The body object, reader object.
|
||||
// @remark, user can get body in string by get_body().
|
||||
SrsHttpResponseReader* _body;
|
||||
/**
|
||||
* whether the body is chunked.
|
||||
*/
|
||||
// Whether the body is chunked.
|
||||
bool chunked;
|
||||
/**
|
||||
* whether the body is infinite chunked.
|
||||
*/
|
||||
// Whether the body is infinite chunked.
|
||||
bool infinite_chunked;
|
||||
/**
|
||||
* whether the request indicates should keep alive
|
||||
* for the http connection.
|
||||
*/
|
||||
// Whether the request indicates should keep alive for the http connection.
|
||||
bool keep_alive;
|
||||
/**
|
||||
* uri parser
|
||||
*/
|
||||
// The uri parser
|
||||
SrsHttpUri* _uri;
|
||||
/**
|
||||
* use a buffer to read and send ts file.
|
||||
*/
|
||||
// Use a buffer to read and send ts file.
|
||||
// TODO: FIXME: remove it.
|
||||
char* _http_ts_send_buffer;
|
||||
// http headers
|
||||
// The http headers
|
||||
std::vector<SrsHttpHeaderField> _headers;
|
||||
// the query map
|
||||
// The query map
|
||||
std::map<std::string, std::string> _query;
|
||||
// the transport connection, can be NULL.
|
||||
// The transport connection, can be NULL.
|
||||
SrsConnection* owner_conn;
|
||||
// whether request is jsonp.
|
||||
// Whether request is jsonp.
|
||||
bool jsonp;
|
||||
// the method in QueryString will override the HTTP method.
|
||||
// The method in QueryString will override the HTTP method.
|
||||
std::string jsonp_method;
|
||||
public:
|
||||
SrsHttpMessage(ISrsReader* io);
|
||||
virtual ~SrsHttpMessage();
|
||||
public:
|
||||
/**
|
||||
* set the original messages, then update the message.
|
||||
*/
|
||||
// set the original messages, then update the message.
|
||||
virtual srs_error_t update(std::string url, bool allow_jsonp, http_parser* header, SrsFastStream* body, std::vector<SrsHttpHeaderField>& headers);
|
||||
public:
|
||||
// Get the owner connection, maybe NULL.
|
||||
|
@ -169,91 +140,62 @@ public:
|
|||
public:
|
||||
virtual uint8_t method();
|
||||
virtual uint16_t status_code();
|
||||
/**
|
||||
* method helpers.
|
||||
*/
|
||||
// The method helpers.
|
||||
virtual std::string method_str();
|
||||
virtual bool is_http_get();
|
||||
virtual bool is_http_put();
|
||||
virtual bool is_http_post();
|
||||
virtual bool is_http_delete();
|
||||
virtual bool is_http_options();
|
||||
/**
|
||||
* whether body is chunked encoding, for reader only.
|
||||
*/
|
||||
// Whether body is chunked encoding, for reader only.
|
||||
virtual bool is_chunked();
|
||||
/**
|
||||
* whether body is infinite chunked encoding.
|
||||
* @remark set by enter_infinite_chunked.
|
||||
*/
|
||||
// Whether body is infinite chunked encoding.
|
||||
// @remark set by enter_infinite_chunked.
|
||||
virtual bool is_infinite_chunked();
|
||||
/**
|
||||
* whether should keep the connection alive.
|
||||
*/
|
||||
// Whether should keep the connection alive.
|
||||
virtual bool is_keep_alive();
|
||||
/**
|
||||
* the uri contains the host and path.
|
||||
*/
|
||||
// The uri contains the host and path.
|
||||
virtual std::string uri();
|
||||
/**
|
||||
* the url maybe the path.
|
||||
*/
|
||||
// The url maybe the path.
|
||||
virtual std::string url();
|
||||
virtual std::string host();
|
||||
virtual std::string path();
|
||||
virtual std::string query();
|
||||
virtual std::string ext();
|
||||
/**
|
||||
* get the RESTful matched id.
|
||||
*/
|
||||
// Get the RESTful matched id.
|
||||
virtual int parse_rest_id(std::string pattern);
|
||||
public:
|
||||
virtual srs_error_t enter_infinite_chunked();
|
||||
public:
|
||||
/**
|
||||
* read body to string.
|
||||
* @remark for small http body.
|
||||
*/
|
||||
// Read body to string.
|
||||
// @remark for small http body.
|
||||
virtual srs_error_t body_read_all(std::string& body);
|
||||
/**
|
||||
* get the body reader, to read one by one.
|
||||
* @remark when body is very large, or chunked, use this.
|
||||
*/
|
||||
// Get the body reader, to read one by one.
|
||||
// @remark when body is very large, or chunked, use this.
|
||||
virtual ISrsHttpResponseReader* body_reader();
|
||||
/**
|
||||
* the content length, -1 for chunked or not set.
|
||||
*/
|
||||
// The content length, -1 for chunked or not set.
|
||||
virtual int64_t content_length();
|
||||
/**
|
||||
* get the param in query string,
|
||||
* for instance, query is "start=100&end=200",
|
||||
* then query_get("start") is "100", and query_get("end") is "200"
|
||||
*/
|
||||
// Get the param in query string, for instance, query is "start=100&end=200",
|
||||
// then query_get("start") is "100", and query_get("end") is "200"
|
||||
virtual std::string query_get(std::string key);
|
||||
/**
|
||||
* get the headers.
|
||||
*/
|
||||
// Get the headers.
|
||||
virtual int request_header_count();
|
||||
virtual std::string request_header_key_at(int index);
|
||||
virtual std::string request_header_value_at(int index);
|
||||
virtual std::string get_request_header(std::string name);
|
||||
public:
|
||||
/**
|
||||
* convert the http message to a request.
|
||||
* @remark user must free the return request.
|
||||
*/
|
||||
// Convert the http message to a request.
|
||||
// @remark user must free the return request.
|
||||
virtual SrsRequest* to_request(std::string vhost);
|
||||
public:
|
||||
virtual bool is_jsonp();
|
||||
};
|
||||
|
||||
// the http chunked header size,
|
||||
// The http chunked header size,
|
||||
// for writev, there always one chunk to send it.
|
||||
#define SRS_HTTP_HEADER_CACHE_SIZE 64
|
||||
|
||||
/**
|
||||
* response writer use st socket
|
||||
*/
|
||||
// Response writer use st socket
|
||||
class SrsHttpResponseWriter : public ISrsHttpResponseWriter
|
||||
{
|
||||
private:
|
||||
|
@ -264,17 +206,17 @@ private:
|
|||
iovec* iovss_cache;
|
||||
int nb_iovss_cache;
|
||||
private:
|
||||
// reply header has been (logically) written
|
||||
// Reply header has been (logically) written
|
||||
bool header_wrote;
|
||||
// status code passed to WriteHeader
|
||||
// The status code passed to WriteHeader
|
||||
int status;
|
||||
private:
|
||||
// explicitly-declared Content-Length; or -1
|
||||
// The explicitly-declared Content-Length; or -1
|
||||
int64_t content_length;
|
||||
// number of bytes written in body
|
||||
// The number of bytes written in body
|
||||
int64_t written;
|
||||
private:
|
||||
// wroteHeader tells whether the header's been written to "the
|
||||
// The wroteHeader tells whether the header's been written to "the
|
||||
// wire" (or rather: w.conn.buf). this is unlike
|
||||
// (*response).wroteHeader, which tells only whether it was
|
||||
// logically written.
|
||||
|
@ -291,9 +233,7 @@ public:
|
|||
virtual srs_error_t send_header(char* data, int size);
|
||||
};
|
||||
|
||||
/**
|
||||
* response reader use st socket.
|
||||
*/
|
||||
// Response reader use st socket.
|
||||
class SrsHttpResponseReader : virtual public ISrsHttpResponseReader
|
||||
{
|
||||
private:
|
||||
|
@ -301,19 +241,17 @@ private:
|
|||
SrsHttpMessage* owner;
|
||||
SrsFastStream* buffer;
|
||||
bool is_eof;
|
||||
// the left bytes in chunk.
|
||||
// The left bytes in chunk.
|
||||
int nb_left_chunk;
|
||||
// the number of bytes of current chunk.
|
||||
// The number of bytes of current chunk.
|
||||
int nb_chunk;
|
||||
// already read total bytes.
|
||||
// Already read total bytes.
|
||||
int64_t nb_total_read;
|
||||
public:
|
||||
SrsHttpResponseReader(SrsHttpMessage* msg, ISrsReader* reader);
|
||||
virtual ~SrsHttpResponseReader();
|
||||
public:
|
||||
/**
|
||||
* initialize the response reader with buffer.
|
||||
*/
|
||||
// Initialize the response reader with buffer.
|
||||
virtual srs_error_t initialize(SrsFastStream* buffer);
|
||||
// interface ISrsHttpResponseReader
|
||||
public:
|
||||
|
|
|
@ -31,10 +31,8 @@
|
|||
#include <srs_service_st.hpp>
|
||||
#include <srs_kernel_log.hpp>
|
||||
|
||||
/**
|
||||
* st thread context, get_id will get the st-thread id,
|
||||
* which identify the client.
|
||||
*/
|
||||
// The st thread context, get_id will get the st-thread id,
|
||||
// which identify the client.
|
||||
class SrsThreadContext : public ISrsThreadContext
|
||||
{
|
||||
private:
|
||||
|
@ -50,9 +48,7 @@ public:
|
|||
virtual void clear_cid();
|
||||
};
|
||||
|
||||
/**
|
||||
* The basic console log, which write log to console.
|
||||
*/
|
||||
// The basic console log, which write log to console.
|
||||
class SrsConsoleLog : public ISrsLog
|
||||
{
|
||||
private:
|
||||
|
@ -74,13 +70,11 @@ public:
|
|||
virtual void error(const char* tag, int context_id, const char* fmt, ...);
|
||||
};
|
||||
|
||||
/**
|
||||
* Generate the log header.
|
||||
* @param dangerous Whether log is warning or error, log the errno if true.
|
||||
* @param utc Whether use UTC time format in the log header.
|
||||
* @param psize Output the actual header size.
|
||||
* @remark It's a internal API.
|
||||
*/
|
||||
// Generate the log header.
|
||||
// @param dangerous Whether log is warning or error, log the errno if true.
|
||||
// @param utc Whether use UTC time format in the log header.
|
||||
// @param psize Output the actual header size.
|
||||
// @remark It's a internal API.
|
||||
bool srs_log_header(char* buffer, int size, bool utc, bool dangerous, const char* tag, int cid, const char* level, int* psize);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -37,15 +37,13 @@ class SrsPacket;
|
|||
class SrsKbps;
|
||||
class SrsWallClock;
|
||||
|
||||
/**
|
||||
* The simple RTMP client, provides friendly APIs.
|
||||
* @remark Should never use client when closed.
|
||||
* Usage:
|
||||
* SrsBasicRtmpClient client("rtmp://127.0.0.1:1935/live/livestream", 3000, 9000);
|
||||
* client.connect();
|
||||
* client.play();
|
||||
* client.close();
|
||||
*/
|
||||
// The simple RTMP client, provides friendly APIs.
|
||||
// @remark Should never use client when closed.
|
||||
// Usage:
|
||||
// SrsBasicRtmpClient client("rtmp://127.0.0.1:1935/live/livestream", 3000, 9000);
|
||||
// client.connect();
|
||||
// client.play();
|
||||
// client.close();
|
||||
class SrsBasicRtmpClient
|
||||
{
|
||||
private:
|
||||
|
|
|
@ -36,10 +36,10 @@ typedef void* srs_thread_t;
|
|||
typedef void* srs_cond_t;
|
||||
typedef void* srs_mutex_t;
|
||||
|
||||
// initialize st, requires epoll.
|
||||
// Initialize st, requires epoll.
|
||||
extern srs_error_t srs_st_init();
|
||||
|
||||
// close the netfd, and close the underlayer fd.
|
||||
// Close the netfd, and close the underlayer fd.
|
||||
// @remark when close, user must ensure io completed.
|
||||
extern void srs_close_stfd(srs_netfd_t& stfd);
|
||||
|
||||
|
@ -81,9 +81,7 @@ extern srs_netfd_t srs_accept(srs_netfd_t stfd, struct sockaddr *addr, int *addr
|
|||
|
||||
extern ssize_t srs_read(srs_netfd_t stfd, void *buf, size_t nbyte, srs_utime_t timeout);
|
||||
|
||||
/**
|
||||
* The mutex locker.
|
||||
*/
|
||||
// The mutex locker.
|
||||
#define SrsLocker(instance) \
|
||||
impl__SrsLocker _srs_auto_free_##instance(&instance)
|
||||
|
||||
|
@ -102,10 +100,8 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* the socket provides TCP socket over st,
|
||||
* that is, the sync socket mechanism.
|
||||
*/
|
||||
// the socket provides TCP socket over st,
|
||||
// that is, the sync socket mechanism.
|
||||
class SrsStSocket : public ISrsProtocolReadWriter
|
||||
{
|
||||
private:
|
||||
|
@ -133,28 +129,22 @@ public:
|
|||
virtual int64_t get_recv_bytes();
|
||||
virtual int64_t get_send_bytes();
|
||||
public:
|
||||
/**
|
||||
* @param nread, the actual read bytes, ignore if NULL.
|
||||
*/
|
||||
// @param nread, the actual read bytes, ignore if NULL.
|
||||
virtual srs_error_t read(void* buf, size_t size, ssize_t* nread);
|
||||
virtual srs_error_t read_fully(void* buf, size_t size, ssize_t* nread);
|
||||
/**
|
||||
* @param nwrite, the actual write bytes, ignore if NULL.
|
||||
*/
|
||||
// @param nwrite, the actual write bytes, ignore if NULL.
|
||||
virtual srs_error_t write(void* buf, size_t size, ssize_t* nwrite);
|
||||
virtual srs_error_t writev(const iovec *iov, int iov_size, ssize_t* nwrite);
|
||||
};
|
||||
|
||||
/**
|
||||
* The client to connect to server over TCP.
|
||||
* User must never reuse the client when close it.
|
||||
* Usage:
|
||||
* SrsTcpClient client("127.0.0.1", 1935, 9 * SRS_UTIME_SECONDS);
|
||||
* client.connect();
|
||||
* client.write("Hello world!", 12, NULL);
|
||||
* client.read(buf, 4096, NULL);
|
||||
* @remark User can directly free the object, which will close the fd.
|
||||
*/
|
||||
// The client to connect to server over TCP.
|
||||
// User must never reuse the client when close it.
|
||||
// Usage:
|
||||
// SrsTcpClient client("127.0.0.1", 1935, 9// SRS_UTIME_SECONDS);
|
||||
// client.connect();
|
||||
// client.write("Hello world!", 12, NULL);
|
||||
// client.read(buf, 4096, NULL);
|
||||
// @remark User can directly free the object, which will close the fd.
|
||||
class SrsTcpClient : public ISrsProtocolReadWriter
|
||||
{
|
||||
private:
|
||||
|
@ -166,25 +156,19 @@ private:
|
|||
// The timeout in srs_utime_t.
|
||||
srs_utime_t timeout;
|
||||
public:
|
||||
/**
|
||||
* Constructor.
|
||||
* @param h the ip or hostname of server.
|
||||
* @param p the port to connect to.
|
||||
* @param tm the timeout in srs_utime_t.
|
||||
*/
|
||||
// Constructor.
|
||||
// @param h the ip or hostname of server.
|
||||
// @param p the port to connect to.
|
||||
// @param tm the timeout in srs_utime_t.
|
||||
SrsTcpClient(std::string h, int p, srs_utime_t tm);
|
||||
virtual ~SrsTcpClient();
|
||||
public:
|
||||
/**
|
||||
* Connect to server over TCP.
|
||||
* @remark We will close the exists connection before do connect.
|
||||
*/
|
||||
// Connect to server over TCP.
|
||||
// @remark We will close the exists connection before do connect.
|
||||
virtual srs_error_t connect();
|
||||
private:
|
||||
/**
|
||||
* Close the connection to server.
|
||||
* @remark User should never use the client when close it.
|
||||
*/
|
||||
// Close the connection to server.
|
||||
// @remark User should never use the client when close it.
|
||||
virtual void close();
|
||||
// interface ISrsProtocolReadWriter
|
||||
public:
|
||||
|
|
|
@ -32,17 +32,17 @@
|
|||
|
||||
#include <srs_service_st.hpp>
|
||||
|
||||
// whether the url is starts with http:// or https://
|
||||
// Whether the url is starts with http:// or https://
|
||||
extern bool srs_string_is_http(std::string url);
|
||||
extern bool srs_string_is_rtmp(std::string url);
|
||||
|
||||
// get local ip, fill to @param ips
|
||||
// Get local ip, fill to @param ips
|
||||
extern std::vector<std::string>& srs_get_local_ips();
|
||||
|
||||
// get local public ip, empty string if no public internet address found.
|
||||
// Get local public ip, empty string if no public internet address found.
|
||||
extern std::string srs_get_public_internet_address();
|
||||
|
||||
// detect whether specified device is internet public address.
|
||||
// Detect whether specified device is internet public address.
|
||||
extern bool srs_net_device_is_internet(std::string ifname);
|
||||
extern bool srs_net_device_is_internet(const sockaddr* addr);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue