Changeset 745 for trunk/server/source4/auth/credentials/pycredentials.c
- Timestamp:
- Nov 27, 2012, 4:43:17 PM (13 years ago)
- Location:
- trunk/server
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
source4/auth/credentials/pycredentials.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/server
- Property svn:mergeinfo changed
/vendor/current merged: 581,587,591,594,597,600,615,618,740
- Property svn:mergeinfo changed
-
trunk/server/source4/auth/credentials/pycredentials.c
r414 r745 17 17 */ 18 18 19 19 20 #include "includes.h" 20 #include <Python.h>21 21 #include "pycredentials.h" 22 22 #include "param/param.h" … … 25 25 #include "libcli/util/pyerrors.h" 26 26 #include "param/pyparam.h" 27 28 #ifndef Py_RETURN_NONE 29 #define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None 30 #endif 27 #include <tevent.h> 31 28 32 29 static PyObject *PyString_FromStringOrNULL(const char *str) … … 197 194 } 198 195 196 197 198 199 200 201 202 203 204 205 199 206 static PyObject *py_creds_guess(py_talloc_Object *self, PyObject *args) 200 207 { 201 208 PyObject *py_lp_ctx = Py_None; 202 209 struct loadparm_context *lp_ctx; 210 211 212 213 214 203 215 if (!PyArg_ParseTuple(args, "|O", &py_lp_ctx)) 204 216 return NULL; 205 217 206 lp_ctx = lp_from_py_object(py_lp_ctx); 207 if (lp_ctx == NULL) 208 return NULL; 209 210 cli_credentials_guess(PyCredentials_AsCliCredentials(self), lp_ctx); 218 mem_ctx = talloc_new(NULL); 219 if (mem_ctx == NULL) { 220 PyErr_NoMemory(); 221 return NULL; 222 } 223 224 lp_ctx = lpcfg_from_py_object(mem_ctx, py_lp_ctx); 225 if (lp_ctx == NULL) { 226 talloc_free(mem_ctx); 227 return NULL; 228 } 229 230 cli_credentials_guess(creds, lp_ctx); 231 232 talloc_free(mem_ctx); 211 233 212 234 Py_RETURN_NONE; … … 218 240 struct loadparm_context *lp_ctx; 219 241 NTSTATUS status; 242 243 244 245 246 220 247 if (!PyArg_ParseTuple(args, "|O", &py_lp_ctx)) 221 248 return NULL; 222 249 223 lp_ctx = lp_from_py_object(py_lp_ctx); 224 if (lp_ctx == NULL) 225 return NULL; 226 227 status = cli_credentials_set_machine_account(PyCredentials_AsCliCredentials(self), lp_ctx); 250 mem_ctx = talloc_new(NULL); 251 if (mem_ctx == NULL) { 252 PyErr_NoMemory(); 253 return NULL; 254 } 255 256 lp_ctx = lpcfg_from_py_object(mem_ctx, py_lp_ctx); 257 if (lp_ctx == NULL) { 258 talloc_free(mem_ctx); 259 return NULL; 260 } 261 262 status = cli_credentials_set_machine_account(creds, lp_ctx); 263 talloc_free(mem_ctx); 264 228 265 PyErr_NTSTATUS_IS_ERR_RAISE(status); 229 266 230 267 Py_RETURN_NONE; 231 268 } 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 232 355 233 356 static PyMethodDef py_creds_methods[] = { … … 285 408 { "set_kerberos_state", (PyCFunction)py_creds_set_kerberos_state, METH_VARARGS, 286 409 NULL }, 410 411 287 412 { "guess", (PyCFunction)py_creds_guess, METH_VARARGS, NULL }, 288 413 { "set_machine_account", (PyCFunction)py_creds_set_machine_account, METH_VARARGS, NULL }, 414 415 416 289 417 { NULL } 290 418 }; … … 293 421 .tp_name = "Credentials", 294 422 .tp_basicsize = sizeof(py_talloc_Object), 295 .tp_dealloc = py_talloc_dealloc,296 423 .tp_new = py_creds_new, 297 424 .tp_flags = Py_TPFLAGS_DEFAULT, … … 299 426 }; 300 427 428 429 430 431 432 433 434 301 435 void initcredentials(void) 302 436 { 303 437 PyObject *m; 438 439 440 441 442 304 443 305 444 if (PyType_Ready(&PyCredentials) < 0) 445 446 447 306 448 return; 307 449 … … 314 456 PyModule_AddObject(m, "MUST_USE_KERBEROS", PyInt_FromLong(CRED_MUST_USE_KERBEROS)); 315 457 458 459 460 461 316 462 Py_INCREF(&PyCredentials); 317 463 PyModule_AddObject(m, "Credentials", (PyObject *)&PyCredentials); 318 } 464 Py_INCREF(&PyCredentialCacheContainer); 465 PyModule_AddObject(m, "CredentialCacheContainer", (PyObject *)&PyCredentialCacheContainer); 466 }
Note:
See TracChangeset
for help on using the changeset viewer.
