2017-05-29 07:04:14 +03:00
/*
Unix SMB / CIFS implementation .
Samba utility functions
Copyright ( C ) Catalyst IT 2017
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation ; either version 3 of the License , or
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program . If not , see < http : //www.gnu.org/licenses/>.
*/
2023-11-09 13:35:56 +03:00
# include "lib/replace/system/python.h"
2017-05-29 07:04:14 +03:00
# include "librpc/gen_ndr/lsa.h"
static PyObject * py_lsa_String_str ( PyObject * py_self )
{
struct lsa_String * self = pytalloc_get_ptr ( py_self ) ;
PyObject * ret = NULL ;
if ( self - > string = = NULL ) {
const char * empty = " " ;
2019-06-07 11:45:52 +03:00
ret = PyUnicode_FromString ( empty ) ;
2017-05-29 07:04:14 +03:00
} else {
2019-06-07 11:45:52 +03:00
ret = PyUnicode_FromString ( self - > string ) ;
2017-05-29 07:04:14 +03:00
}
return ret ;
}
static PyObject * py_lsa_String_repr ( PyObject * py_self )
{
struct lsa_String * self = pytalloc_get_ptr ( py_self ) ;
PyObject * ret = NULL ;
if ( self - > string = = NULL ) {
const char * empty = " lsaString(None) " ;
2019-06-07 11:45:52 +03:00
ret = PyUnicode_FromString ( empty ) ;
2017-05-29 07:04:14 +03:00
} else {
2019-06-07 12:08:55 +03:00
ret = PyUnicode_FromFormat ( " lsaString('%s') " , self - > string ) ;
2017-05-29 07:04:14 +03:00
}
return ret ;
}
static int py_lsa_String_init ( PyObject * self , PyObject * args , PyObject * kwargs )
{
struct lsa_String * string = pytalloc_get_ptr ( self ) ;
const char * str = NULL ;
const char * kwnames [ ] = { " str " , NULL } ;
if ( ! PyArg_ParseTupleAndKeywords ( args , kwargs , " |s " , discard_const_p ( char * , kwnames ) , & str ) )
return - 1 ;
string - > string = talloc_strdup ( string , str ) ;
if ( str ! = NULL & & string - > string = = NULL ) {
PyErr_NoMemory ( ) ;
return - 1 ;
}
return 0 ;
}
static void py_lsa_String_patch ( PyTypeObject * type )
{
type - > tp_init = py_lsa_String_init ;
type - > tp_str = py_lsa_String_str ;
type - > tp_repr = py_lsa_String_repr ;
}
# define PY_STRING_PATCH py_lsa_String_patch