小编Kim*_*chy的帖子

SSL_add0_chain_cert和SSL_add1_chain_cert之间的用法区别?

在OpenSSL 文档中,它说:

所有这些功能都以宏的形式实现.包含1的那些增加了所提供的证书或链的引用计数,因此必须在操作之后的某个时刻释放它.包含0的那些不会增加引用计数,并且在操作之后不得释放提供的证书或链.

但是,当我试图查看一些案例的例子时,我应该在困惑的地方使用哪一个.

第一个OpenSSL:

它使用SSL_add0_chain_cert自身的SSL_CTX_use_certificate_chain_file功能ssl_rsa.c.是来源:

static int use_certificate_chain_file(SSL_CTX *ctx, SSL *ssl, const char *file) {
    if (ctx)
        ret = SSL_CTX_use_certificate(ctx, x);
    else
        ret = SSL_use_certificate(ssl, x);
    ......
    while ((ca = PEM_read_bio_X509(in, NULL, passwd_callback,
                                   passwd_callback_userdata))
           != NULL) {
        if (ctx)
            r = SSL_CTX_add0_chain_cert(ctx, ca);
        else
            r = SSL_add0_chain_cert(ssl, ca);
    ......
}
Run Code Online (Sandbox Code Playgroud)

我看到的第二种用法是OpenResty Lua:

SSL_add0_chain_cert以一种方式设置certificate(ngx_http_lua_ffi_ssl_set_der_certificate),见这里:

int ngx_http_lua_ffi_ssl_set_der_certificate(ngx_http_request_t *r,
const char *data, size_t …
Run Code Online (Sandbox Code Playgroud)

ssl lua openssl nginx ssl-certificate

5
推荐指数
0
解决办法
399
查看次数

响应没有“内容长度”标头时的 AVURLAsset

我的 iOS 应用程序使用 AVPlayer 从我的服务器播放流音频并将其存储在设备上。我实现了 AVAssetResourceLoaderDelegate,所以我可以拦截流。我改变了我的方案(从http一个假方案,这样 AVAssetResourceLoaderDelegate 方法被调用:

func resourceLoader(_ resourceLoader: AVAssetResourceLoader, shouldWaitForLoadingOfRequestedResource loadingRequest: AVAssetResourceLoadingRequest) -> Bool

我跟着这个教程:

http://blog.jaredsinclair.com/post/149892449150/implementing-avassetresourceloaderdelegate-a

在那里,我将原始方案放回原处,并创建一个会话以从服务器提取音频。当我的服务器为Content-Length流式音频文件提供(以字节为单位的音频文件大小)标头时,一切正常。

但有时我会在无法提前提供长度的情况下流式传输音频文件(比如直播播客流)。在这种情况下,AVURLAsset 将长度设置为-1并失败:

"Error Domain=AVFoundationErrorDomain Code=-11849 \"Operation Stopped\" UserInfo={NSUnderlyingError=0x61800004abc0 {Error Domain=NSOSStatusErrorDomain Code=-12873 \"(null)\"}, NSLocalizedFailureReason=This media may be damaged., NSLocalizedDescription=Operation Stopped}"

我无法绕过这个错误。我试图采取一种骇人听闻的方式,提供 fake Content-Length: 999999999,但在这种情况下,一旦下载了整个音频流,我的会话就会失败:

Loaded so far: 10349852 out of 99999999 The request timed out. //Audio file got downloaded, its size is 10349852 //AVPlayer tries to get the next chunk and then fails with …

audio streaming ios avplayer avurlasset

5
推荐指数
1
解决办法
1615
查看次数

Odoo - 扩展搜索视图

是否可以扩展搜索视图并添加多个搜索框或复选框以方便用户?

现在只有一个搜索框,有些时候用户不希望点击搜索框,然后键入,然后过滤或选择从过滤器plugin.It过滤器自定义过滤器会很快,如果我可以添加复选框.

openerp odoo-view

5
推荐指数
1
解决办法
636
查看次数

如何以编程方式将Google Fonts .xml设置为TextView

从Android Studio 3.0开始,您可以简单地将google字体集成到您的项目中(请参阅android演练).

当您添加某些字体时,Android Studio会为您生成字体文件夹,包括字体的XML文件(在我的例子中为amatic_sc.xml).Studio还在value文件夹中创建了preloaded_fonts.xml.

amatic_sc.xml:

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:app="http://schemas.android.com/apk/res-auto"
        app:fontProviderAuthority="com.google.android.gms.fonts"
        app:fontProviderPackage="com.google.android.gms"
        app:fontProviderQuery="Amatic SC"
        app:fontProviderCerts="@array/com_google_android_gms_fonts_certs">
</font-family>
Run Code Online (Sandbox Code Playgroud)

preloaded_fonts.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="preloaded_fonts" translatable="false">
        <item>@font/amatic_sc</item>
    </array>
</resources>
Run Code Online (Sandbox Code Playgroud)

当我将以下行static包含到我的xml文件中时,它可以正常工作:

android:fontFamily="@font/amatic_sc"
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,我需要在我的自定义listAdapter中以编程方式设置字体系列.我尝试了以下代码示例,但没有任何作用:

// Display text with default fontFamily
viewHolder.textView.setTypeface(Typeface.create("@font/amatic_sc", Typeface.NORMAL));

// both throws java.lang.RuntimeException: Font asset not found [../res/]font/amatic_sc.xml
viewHolder.textView.setTypeface(Typeface.createFromAsset(context.getAssets(), "font/amatic_sc.xml"));
viewHolder.textView.setTypeface(Typeface.createFromAsset(context.getAssets(), "../res/font/amatic_sc.xml"));

// both throws java.lang.RuntimeException: Font asset not found [../res/]font/amatic_sc.xml
viewHolder.textView.setTypeface(Typeface.createFromFile("font/amatic_sc.xml"));
viewHolder.textView.setTypeface(Typeface.createFromFile("../res/font/amatic_sc.xml"));
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我使用min SDK版本16,我希望我的代码片段足够.

谢谢您的帮助!

xml fonts android google-fonts

5
推荐指数
2
解决办法
2558
查看次数

多个应用程序的 Django Rest Framework URL 映射

我有一个名为 django-rest 的项目main,在它下我创建了一个名为 的应用程序users。所以,我的项目有这些文件:-

主/主/urls.py

主/用户/urls.py

在 users/urls.py 我有

from django.conf.urls import url, include
from rest_framework import routers
from users import views

router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
Run Code Online (Sandbox Code Playgroud)

在 main/main/urls.py 中我有

from django.conf.urls import url
from django.contrib import admin

from users import urls

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^users/', users.urls),
]
Run Code Online (Sandbox Code Playgroud)

但是,我不断收到错误NameError: name 'users' is not defined。当我有多个应用程序时,设置 url 的正确方法是什么?我希望为每个独立于项目的应用程序都有一个 urls.py 文件。在根 urls.py 中将包含到不同应用程序的路由。

django django-rest-framework

4
推荐指数
1
解决办法
2271
查看次数