@@ -936,10 +936,12 @@ context_general(getdns_ContextObject *self, PyObject *args, PyObject *keywds)
936
936
char * name ;
937
937
uint16_t request_type ;
938
938
PyDictObject * extensions_obj = 0 ;
939
+ struct getdns_dict * extensions_dict = 0 ;
940
+ getdns_return_t ret ;
939
941
void * userarg ;
940
942
getdns_transaction_t tid = 0 ;
941
943
char * callback = 0 ;
942
- PyObject * resp ;
944
+ struct getdns_dict * resp ;
943
945
944
946
if ((context = PyCapsule_GetPointer (self -> py_context , "context" )) == NULL ) {
945
947
PyErr_SetString (getdns_error , GETDNS_RETURN_GENERIC_ERROR_TEXT );
@@ -948,16 +950,23 @@ context_general(getdns_ContextObject *self, PyObject *args, PyObject *keywds)
948
950
if (!PyArg_ParseTupleAndKeywords (args , keywds , "sH|OsLs" , kwlist ,
949
951
& name , & request_type ,
950
952
& extensions_obj , & userarg , & tid , & callback )) {
953
+ PyErr_SetString (getdns_error , GETDNS_RETURN_INVALID_PARAMETER_TEXT );
951
954
return NULL ;
952
955
}
953
- if ((resp = do_query (self -> py_context , name , request_type , extensions_obj , userarg ,
954
- tid , callback )) == 0 ) {
955
- PyObject * err_type , * err_value , * err_traceback ;
956
- PyErr_Fetch (& err_type , & err_value , & err_traceback );
957
- PyErr_Restore (err_type , err_value , err_traceback );
956
+ if (extensions_obj ) {
957
+ if ((extensions_dict = extensions_to_getdnsdict (extensions_obj )) == 0 ) {
958
+ PyErr_SetString (getdns_error , GETDNS_RETURN_INVALID_PARAMETER_TEXT );
959
+ return NULL ;
960
+ }
961
+ }
962
+ if ((ret = getdns_general_sync (context , name , request_type ,
963
+ extensions_dict , & resp )) != GETDNS_RETURN_GOOD ) {
964
+ char err_buf [256 ];
965
+ getdns_strerror (ret , err_buf , sizeof err_buf );
966
+ PyErr_SetString (getdns_error , err_buf );
958
967
return NULL ;
959
968
}
960
- return resp ;
969
+ return result_create ( resp ) ;
961
970
}
962
971
963
972
@@ -972,13 +981,15 @@ context_address(getdns_ContextObject *self, PyObject *args, PyObject *keywds)
972
981
"callback" ,
973
982
0
974
983
};
984
+ getdns_return_t ret ;
975
985
getdns_context * context ;
976
986
char * name ;
977
- PyDictObject * extensions_obj = 0 ;
987
+ PyDictObject * extensions_obj ;
988
+ struct getdns_dict * extensions_dict = 0 ;
978
989
void * userarg ;
979
990
getdns_transaction_t tid ;
980
991
char * callback = 0 ;
981
- PyObject * resp ;
992
+ struct getdns_dict * resp ;
982
993
983
994
if ((context = PyCapsule_GetPointer (self -> py_context , "context" )) == NULL ) {
984
995
PyErr_SetString (getdns_error , GETDNS_RETURN_GENERIC_ERROR_TEXT );
@@ -989,14 +1000,20 @@ context_address(getdns_ContextObject *self, PyObject *args, PyObject *keywds)
989
1000
& extensions_obj , & userarg , & tid , & callback )) {
990
1001
PyErr_SetString (getdns_error , GETDNS_RETURN_INVALID_PARAMETER_TEXT );
991
1002
}
992
- if ((resp = do_query (self -> py_context , name , GETDNS_RRTYPE_A , extensions_obj , userarg ,
993
- tid , callback )) == 0 ) {
994
- PyObject * err_type , * err_value , * err_traceback ;
995
- PyErr_Fetch (& err_type , & err_value , & err_traceback );
996
- PyErr_Restore (err_type , err_value , err_traceback );
1003
+ if (extensions_obj ) {
1004
+ if ((extensions_dict = extensions_to_getdnsdict (extensions_obj )) == 0 ) {
1005
+ PyErr_SetString (getdns_error , GETDNS_RETURN_INVALID_PARAMETER_TEXT );
1006
+ return NULL ;
1007
+ }
1008
+ }
1009
+
1010
+ if ((ret = getdns_address_sync (context , name , extensions_dict , & resp )) != GETDNS_RETURN_GOOD ) {
1011
+ char err_buf [256 ];
1012
+ getdns_strerror (ret , err_buf , sizeof err_buf );
1013
+ PyErr_SetString (getdns_error , err_buf );
997
1014
return NULL ;
998
1015
}
999
- return resp ;
1016
+ return result_create ( resp ) ;
1000
1017
}
1001
1018
1002
1019
@@ -1013,11 +1030,14 @@ context_hostname(getdns_ContextObject *self, PyObject *args, PyObject *keywds)
1013
1030
};
1014
1031
void * address ;
1015
1032
PyDictObject * extensions_obj = 0 ;
1033
+ struct getdns_dict * extensions_dict = 0 ;
1016
1034
void * userarg ;
1017
1035
getdns_transaction_t tid ;
1018
1036
char * callback = 0 ;
1019
- PyObject * resp ;
1037
+ struct getdns_dict * resp ;
1020
1038
getdns_context * context ;
1039
+ struct getdns_dict * addr_dict ;
1040
+ getdns_return_t ret ;
1021
1041
1022
1042
if ((context = PyCapsule_GetPointer (self -> py_context , "context" )) == NULL ) {
1023
1043
PyErr_SetString (getdns_error , GETDNS_RETURN_GENERIC_ERROR_TEXT );
@@ -1029,14 +1049,25 @@ context_hostname(getdns_ContextObject *self, PyObject *args, PyObject *keywds)
1029
1049
PyErr_SetString (getdns_error , GETDNS_RETURN_INVALID_PARAMETER_TEXT );
1030
1050
return NULL ;
1031
1051
}
1032
- if ((resp = do_query (self -> py_context , address , GETDNS_RRTYPE_PTR , extensions_obj , userarg ,
1033
- tid , callback )) == 0 ) {
1052
+ if (extensions_obj ) {
1053
+ if ((extensions_dict = extensions_to_getdnsdict (extensions_obj )) == 0 ) {
1054
+ PyErr_SetString (getdns_error , GETDNS_RETURN_INVALID_PARAMETER_TEXT );
1055
+ return NULL ;
1056
+ }
1057
+ }
1058
+ if ((addr_dict = getdnsify_addressdict ((PyObject * )address )) == NULL ) {
1034
1059
PyObject * err_type , * err_value , * err_traceback ;
1035
1060
PyErr_Fetch (& err_type , & err_value , & err_traceback );
1036
1061
PyErr_Restore (err_type , err_value , err_traceback );
1037
1062
return NULL ;
1038
1063
}
1039
- return resp ;
1064
+ if ((ret = getdns_hostname_sync (context , addr_dict , extensions_dict , & resp )) != GETDNS_RETURN_GOOD ) {
1065
+ char err_buf [256 ];
1066
+ getdns_strerror (ret , err_buf , sizeof err_buf );
1067
+ PyErr_SetString (getdns_error , err_buf );
1068
+ return NULL ;
1069
+ }
1070
+ return result_create (resp );
1040
1071
}
1041
1072
1042
1073
@@ -1053,10 +1084,12 @@ context_service(getdns_ContextObject *self, PyObject *args, PyObject *keywds)
1053
1084
};
1054
1085
char * name ;
1055
1086
PyDictObject * extensions_obj = 0 ;
1087
+ struct getdns_dict * extensions_dict = 0 ;
1088
+ getdns_return_t ret ;
1056
1089
void * userarg ;
1057
1090
getdns_transaction_t tid ;
1058
1091
char * callback = 0 ;
1059
- PyObject * resp ;
1092
+ struct getdns_dict * resp ;
1060
1093
getdns_context * context ;
1061
1094
1062
1095
if ((context = PyCapsule_GetPointer (self -> py_context , "context" )) == NULL ) {
@@ -1069,14 +1102,17 @@ context_service(getdns_ContextObject *self, PyObject *args, PyObject *keywds)
1069
1102
PyErr_SetString (getdns_error , GETDNS_RETURN_INVALID_PARAMETER_TEXT );
1070
1103
return NULL ;
1071
1104
}
1072
- if ((resp = do_query (self -> py_context , name , (uint16_t )GETDNS_RRTYPE_SRV , extensions_obj , userarg ,
1073
- tid , callback )) == 0 ) {
1074
- PyObject * err_type , * err_value , * err_traceback ;
1075
- PyErr_Fetch (& err_type , & err_value , & err_traceback );
1076
- PyErr_Restore (err_type , err_value , err_traceback );
1105
+ if (extensions_obj ) {
1106
+ if ((extensions_dict = extensions_to_getdnsdict (extensions_obj )) == 0 ) {
1107
+ PyErr_SetString (getdns_error , GETDNS_RETURN_INVALID_PARAMETER_TEXT );
1108
+ return NULL ;
1109
+ }
1110
+ }
1111
+ if ((ret = getdns_service_sync (context , name , extensions_dict , & resp )) != GETDNS_RETURN_GOOD ) {
1112
+ PyErr_SetString (getdns_error , GETDNS_RETURN_GENERIC_ERROR_TEXT );
1077
1113
return NULL ;
1078
1114
}
1079
- return resp ;
1115
+ return result_create ( resp ) ;
1080
1116
}
1081
1117
1082
1118
0 commit comments