784 static PyObject *
785 l_ldap_delete_ext( LDAPObject* self, PyObject *args )
786 {
787 char *dn;
788 PyObject *serverctrls = Py_None;
789 PyObject *clientctrls = Py_None;
790 LDAPControl** server_ldcs = NULL;
791 LDAPControl** client_ldcs = NULL;
792
793 int msgid;
794 int ldaperror;
795
796 if (!PyArg_ParseTuple( args, "s|OO", &dn, &serverctrls, &clientctrls )) return NULL;
when _PyArg_ParseTuple_SizeT() succeeds
taking False path
797 if (not_valid(self)) return NULL;
when considering value == (int)0 from Modules/LDAPObject.c:797
taking False path
798
799 if (!PyNone_Check(serverctrls)) {
taking True path
800 if (!LDAPControls_from_object(serverctrls, &server_ldcs))
when considering range: 1 <= value <= 0x7fffffff
taking False path
801 return NULL;
802 }
803
804 if (!PyNone_Check(clientctrls)) {
taking True path
805 if (!LDAPControls_from_object(clientctrls, &client_ldcs))
when considering value == (int)0 from Modules/LDAPObject.c:805
taking True path
806 return NULL;
807 }
808
809 LDAP_BEGIN_ALLOW_THREADS( self );
810 ldaperror = ldap_delete_ext( self->ldap, dn, server_ldcs, client_ldcs, &msgid );
811 LDAP_END_ALLOW_THREADS( self );
812
813 LDAPControl_List_DEL( server_ldcs );
814 LDAPControl_List_DEL( client_ldcs );
815
816 if ( ldaperror!=LDAP_SUCCESS )
817 return LDAPerror( self->ldap, "ldap_delete_ext" );
818
819 return PyInt_FromLong(msgid);
820 }
returning (PyObject*)NULL without setting an exception
found 3 similar trace(s) to this