Github user lordofkey commented on a diff in the pull request:

    https://github.com/apache/zookeeper/pull/586#discussion_r207772138
  
    --- Diff: src/contrib/zkpython/src/c/zookeeper.c ---
    @@ -387,8 +387,8 @@ int parse_acls(struct ACL_vector *acls, PyObject 
*pyacls)
         PyObject *perms = PyDict_GetItemString( a, "perms" );
     #if PY_MAJOR_VERSION >= 3
         acls->data[i].perms = (int32_t)(PyLong_AsLong(perms));
    -    acls->data[i].id.id = strdup( PyUnicode_AsUnicode( 
PyDict_GetItemString( a, "id" ) ) );
    -    acls->data[i].id.scheme = strdup( PyUnicode_AsUnicode( 
PyDict_GetItemString( a, "scheme" ) ) );
    +    acls->data[i].id.id = strdup( PyBytes_AS_STRING( 
PyUnicode_AsASCIIString( PyDict_GetItemString( a, "id" ) ) ) );
    --- End diff --
    
    i thought the value of id can be "anyone" or ip or the string like 
"usrname:password", either of them can be represented  as a string. then i 
tried "anyone", "127.0.0.1/16" and "usrname:password", and they all worked.


---

Reply via email to